mirror of
https://github.com/elem74/fabaccess-config-generator.git
synced 2025-04-20 18:26:28 +02:00
add initiators to codebase
This commit is contained in:
parent
4e0e431dc0
commit
d67471b689
@ -40,21 +40,23 @@ roles = generate_roles(machines)
|
|||||||
# Finale DHALL-Daten erzeugen
|
# Finale DHALL-Daten erzeugen
|
||||||
export_roles = generate_bffh_roles(roles)
|
export_roles = generate_bffh_roles(roles)
|
||||||
export_machines = generate_bffh_machines(machines)
|
export_machines = generate_bffh_machines(machines)
|
||||||
export_actors = generate_bffh_actors(machines)
|
export_actors = generate_bffh_plugins(machines, "actors")
|
||||||
export_actorconnections = generate_bffh_actorconnections(machines)
|
export_actorconnections = generate_bffh_pluginconnections(machines, "actors")
|
||||||
export_all = export_roles + export_machines + export_actors + export_actorconnections
|
export_initiators = generate_bffh_plugins(machines, "initiators")
|
||||||
|
export_initiatorconnections = generate_bffh_pluginconnections(machines, "initiators")
|
||||||
|
export_all = export_roles + export_machines + export_actors + export_actorconnections + export_initiators + export_initiatorconnections
|
||||||
|
|
||||||
|
|
||||||
# ------- Daten exportieren
|
# ------- Daten exportieren
|
||||||
|
|
||||||
# Textdatei mit komplettem dhall-Inhalt
|
# Textdatei mit komplettem dhall-Inhalt
|
||||||
create_singledhall(export_roles, export_machines, export_actors, export_actorconnections)
|
create_singledhall(export_roles, export_machines, export_actors, export_actorconnections, export_actors, export_initiatorconnections)
|
||||||
|
|
||||||
# Rollenliste als CSV
|
# Rollenliste als CSV
|
||||||
create_roles_csv(roles)
|
create_roles_csv(roles)
|
||||||
|
|
||||||
# Einzelne DHALLs
|
# Einzelne DHALLs
|
||||||
create_multipledhalls(export_roles, export_machines, export_actors, export_actorconnections)
|
create_multipledhalls(export_roles, export_machines, export_actors, export_actorconnections, export_actors, export_initiatorconnections)
|
||||||
|
|
||||||
# Mermaid-Code
|
# Mermaid-Code
|
||||||
create_mermaid(machines)
|
create_mermaid(machines)
|
||||||
|
@ -20,9 +20,15 @@ else:
|
|||||||
settings = config_load('./settings.ini', 'generator')
|
settings = config_load('./settings.ini', 'generator')
|
||||||
|
|
||||||
if os.path.isfile('actors.ini') == True:
|
if os.path.isfile('actors.ini') == True:
|
||||||
actor_library = load_plugins('actors.ini')
|
plugin_library = load_plugins('actors.ini')
|
||||||
else:
|
else:
|
||||||
actor_library = load_plugins('./actors.ini')
|
plugin_library = load_plugins('./actors.ini')
|
||||||
|
|
||||||
|
if os.path.isfile('initiators.ini') == True:
|
||||||
|
initiator_library = load_plugins('initiators.ini')
|
||||||
|
else:
|
||||||
|
initiator_library = load_plugins('./initiators.ini')
|
||||||
|
|
||||||
|
|
||||||
string_userhandle = settings["string_userhandle"] + ' '
|
string_userhandle = settings["string_userhandle"] + ' '
|
||||||
string_adminhandle = settings["string_adminhandle"] + ' '
|
string_adminhandle = settings["string_adminhandle"] + ' '
|
||||||
@ -198,6 +204,9 @@ class Machine(Subarea):
|
|||||||
actor_id = string_clean(data["actor_id"].strip()).lower()
|
actor_id = string_clean(data["actor_id"].strip()).lower()
|
||||||
# actor_module = data["actor_module"].strip()
|
# actor_module = data["actor_module"].strip()
|
||||||
actor_type = data["actor_type"].strip().lower()
|
actor_type = data["actor_type"].strip().lower()
|
||||||
|
initiator_id = string_clean(data["initiator_id"].strip()).lower()
|
||||||
|
# initiator_module = data["initiator_module"].strip()
|
||||||
|
initiator_type = data["initiator_type"].strip().lower()
|
||||||
|
|
||||||
customrole_id = string_clean(data["customrole_id"].strip()).lower()
|
customrole_id = string_clean(data["customrole_id"].strip()).lower()
|
||||||
customrole_name = data["customrole_name"].strip()
|
customrole_name = data["customrole_name"].strip()
|
||||||
@ -246,6 +255,8 @@ class Machine(Subarea):
|
|||||||
"wikiurl": wikiurl,
|
"wikiurl": wikiurl,
|
||||||
"actor_id": actor_id,
|
"actor_id": actor_id,
|
||||||
"actor_type": actor_type
|
"actor_type": actor_type
|
||||||
|
"initiator_id": initiator_id,
|
||||||
|
"initiator_type": initiator_type
|
||||||
}
|
}
|
||||||
|
|
||||||
self.customrole = {
|
self.customrole = {
|
||||||
@ -652,7 +663,7 @@ def generate_bffh_machines(machines):
|
|||||||
return data
|
return data
|
||||||
|
|
||||||
# Aktoren
|
# Aktoren
|
||||||
def generate_bffh_actors(machines):
|
def generate_bffh_plugins(machines, type):
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
|
|
||||||
@ -660,30 +671,30 @@ def generate_bffh_actors(machines):
|
|||||||
data.append('{')
|
data.append('{')
|
||||||
|
|
||||||
# Inhalt
|
# Inhalt
|
||||||
last_actor = len(machines) - 1
|
last_plugin = len(machines) - 1
|
||||||
|
|
||||||
for index_actor, (id, m) in enumerate(machines.items()):
|
for index_plugin, (id, m) in enumerate(machines.items()):
|
||||||
specs = m.get_machine()
|
specs = m.get_machine()
|
||||||
|
|
||||||
if len(specs["actor_id"]) > 0 and len(specs["actor_type"]) > 0:
|
if len(specs["{}_id"].format(type)) > 0 and len(specs["{}_type"].format(type)) > 0:
|
||||||
actor_handle = specs["actor_type"] + '_' + specs["actor_id"]
|
plugin_handle = specs["{}_type".format(type)] + '_' + specs["{}_id".format(type)]
|
||||||
|
|
||||||
# 2do Actor Library Funktionalität
|
# 2do Plugin Library Funktionalität
|
||||||
|
|
||||||
data.append(space * 1 + f'{actor_handle} =')
|
data.append(space * 1 + f'{plugin_handle} =')
|
||||||
data.append(space * 1 + '{')
|
data.append(space * 1 + '{')
|
||||||
data.append(space * 2 + f'module = "{actor_library[specs["actor_type"]]["module"]}",')
|
data.append(space * 2 + f'module = "{plugin_library[specs["{}_type".format(type)]]["module"]}",')
|
||||||
data.append(space * 2 + 'params =')
|
data.append(space * 2 + 'params =')
|
||||||
data.append(space * 2 + '{')
|
data.append(space * 2 + '{')
|
||||||
|
|
||||||
# Aktor-ID der aktuellen Maschine speichern
|
# Aktor-ID der aktuellen Maschine speichern
|
||||||
replace = {
|
replace = {
|
||||||
"actor_id": specs["actor_id"]
|
"{}_id".format(type): specs["{}_id".format(type)]
|
||||||
}
|
}
|
||||||
|
|
||||||
last_param = len(actor_library[specs["actor_type"]]["params"]) - 1
|
last_param = len(plugin_library[specs["{}_type".format(type)]]["params"]) - 1
|
||||||
|
|
||||||
for index_param, (key, value) in enumerate(actor_library[specs["actor_type"]]["params"].items()):
|
for index_param, (key, value) in enumerate(plugin_library[specs["{}_type".format(type)]]["params"].items()):
|
||||||
template = Template(value)
|
template = Template(value)
|
||||||
string = template.substitute(replace)
|
string = template.substitute(replace)
|
||||||
|
|
||||||
@ -694,7 +705,7 @@ def generate_bffh_actors(machines):
|
|||||||
|
|
||||||
data.append(space * 2 + '}')
|
data.append(space * 2 + '}')
|
||||||
|
|
||||||
if index_actor == last_actor:
|
if index_plugin == last_plugin:
|
||||||
data.append(space * 1 + '}')
|
data.append(space * 1 + '}')
|
||||||
else:
|
else:
|
||||||
data.append(space * 1 + '},')
|
data.append(space * 1 + '},')
|
||||||
@ -707,9 +718,8 @@ def generate_bffh_actors(machines):
|
|||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
# Aktoren-Verbindungen
|
# Verbindungen (type = "actor" oder "initiator")
|
||||||
def generate_bffh_actorconnections(machines):
|
def generate_bffh_pluginconnections(machines, type):
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
|
|
||||||
# Anfang Datenstruktur
|
# Anfang Datenstruktur
|
||||||
@ -721,13 +731,14 @@ def generate_bffh_actorconnections(machines):
|
|||||||
for index, (id, m) in enumerate(machines.items()):
|
for index, (id, m) in enumerate(machines.items()):
|
||||||
specs = m.get_machine()
|
specs = m.get_machine()
|
||||||
|
|
||||||
if len(specs["actor_id"]) > 0 and len(specs["actor_type"]) > 0:
|
if len(specs["{}_id".format(type)]) > 0 and len(specs["{}_type"].format(type)) > 0:
|
||||||
actor_fullid = specs["actor_type"] + '_' + specs["actor_id"]
|
plugin_fullid = specs["{}_type"] + '_' + specs["{}_id".format(type)]
|
||||||
|
|
||||||
if index == last:
|
if index == last:
|
||||||
data.append(space * 1 + '{ ' + f'machine = "{specs["fa_id"]}", actor = "{actor_fullid}"' + ' }')
|
"{ machine = \"{}\", {} = \"{}\" }".format(specs["fa_id"], type, plugin_fullid)
|
||||||
|
data.append(space * 1 + "{ machine = \"{}\", {} = \"{}\" }".format(specs["fa_id"], type, plugin_fullid))
|
||||||
else:
|
else:
|
||||||
data.append(space * 1 + '{ ' + f'machine = "{specs["fa_id"]}", actor = "{actor_fullid}"' + ' },')
|
data.append(space * 1 + "{ machine = \"{}\", {} = \"{}\" },".format(specs["fa_id"], type, plugin_fullid))
|
||||||
|
|
||||||
# Ende Datenstruktur
|
# Ende Datenstruktur
|
||||||
data.append(']')
|
data.append(']')
|
||||||
@ -752,10 +763,10 @@ def create_roles_csv(roles):
|
|||||||
|
|
||||||
# dhall-Dateien erzeugen
|
# dhall-Dateien erzeugen
|
||||||
|
|
||||||
def create_singledhall(export_roles, export_machines, export_actors, export_actorconnections):
|
def create_singledhall(export_roles, export_machines, export_actors, export_actorconnections, export_initiators, export_initiatorconnections):
|
||||||
print('|- Gesamten DHALL-Output exportieren')
|
print('|- Gesamten DHALL-Output exportieren')
|
||||||
|
|
||||||
input = [export_roles, export_machines, export_actors, export_actorconnections]
|
input = [export_roles, export_machines, export_actors, export_actorconnections, export_actorconnections, export_initiators, export_initiatorconnections]
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
|
|
||||||
@ -770,7 +781,8 @@ def create_singledhall(export_roles, export_machines, export_actors, export_acto
|
|||||||
case 1: data.append('machines =')
|
case 1: data.append('machines =')
|
||||||
case 2: data.append('actors =')
|
case 2: data.append('actors =')
|
||||||
case 3: data.append('export_actorconnections =')
|
case 3: data.append('export_actorconnections =')
|
||||||
|
case 4: data.append('initiators =')
|
||||||
|
case 5: data.append('export_initiatorconnections =')
|
||||||
|
|
||||||
last = len(input[index_input]) - 1
|
last = len(input[index_input]) - 1
|
||||||
for index_seg, (el) in enumerate(i):
|
for index_seg, (el) in enumerate(i):
|
||||||
@ -785,11 +797,11 @@ def create_singledhall(export_roles, export_machines, export_actors, export_acto
|
|||||||
|
|
||||||
write_file('output/bffh-dhall-data.txt', data)
|
write_file('output/bffh-dhall-data.txt', data)
|
||||||
|
|
||||||
def create_multipledhalls(export_roles, export_machines, export_actors, export_actorconnections):
|
def create_multipledhalls(export_roles, export_machines, export_actors, export_actorconnections, export_initiators, export_initiatorconnections):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
input = [export_roles, export_machines, export_actors, export_actorconnections]
|
input = [export_roles, export_machines, export_actors, export_actorconnections, export_initiators, export_initiatorconnections]
|
||||||
|
|
||||||
fa_dhall_directory = settings["fa_dhall_directory"].replace('\\', '/')
|
fa_dhall_directory = settings["fa_dhall_directory"].replace('\\', '/')
|
||||||
|
|
||||||
@ -808,7 +820,8 @@ def create_multipledhalls(export_roles, export_machines, export_actors, export_a
|
|||||||
case 1: target_file = 'machines.dhall'
|
case 1: target_file = 'machines.dhall'
|
||||||
case 2: target_file = 'actors.dhall'
|
case 2: target_file = 'actors.dhall'
|
||||||
case 3: target_file = 'actorconnections.dhall'
|
case 3: target_file = 'actorconnections.dhall'
|
||||||
|
case 4: target_file = 'initiator.dhall'
|
||||||
|
case 5: target_file = 'initiatorconnections.dhall'
|
||||||
print(f' |- Erzeuge {target_file}')
|
print(f' |- Erzeuge {target_file}')
|
||||||
|
|
||||||
# Im Output-Ordner
|
# Im Output-Ordner
|
||||||
@ -911,6 +924,8 @@ def display_machine(machine_object):
|
|||||||
print(' ' + p)
|
print(' ' + p)
|
||||||
print('actor_id = ' + scope["actor_id"])
|
print('actor_id = ' + scope["actor_id"])
|
||||||
print('actor_type = ' + scope["actor_type"])
|
print('actor_type = ' + scope["actor_type"])
|
||||||
|
print('initiator_id = ' + scope["initiator_id"])
|
||||||
|
print('initiator_type = ' + scope["initiator_type"])
|
||||||
|
|
||||||
print('\n[Alternativrolle: '+ role["name"] + ']')
|
print('\n[Alternativrolle: '+ role["name"] + ']')
|
||||||
print('state = ' + str(machine_object.has_customrole()))
|
print('state = ' + str(machine_object.has_customrole()))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user