Skip to content

Commit 8d405fd

Browse files
committed
Finished PDU model creation refactoring
1 parent 1a681dc commit 8d405fd

2 files changed

Lines changed: 20 additions & 87 deletions

File tree

enginecore/enginecore/model/graph_reference.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ def get_asset_oid_by_name(cls, session, asset_key, oid_name):
124124

125125
results = session.run(
126126
"""
127-
MATCH (:Asset { key: $key })-[:HAS_OID]->(oid {name: $oid_name})
127+
MATCH (:Asset { key: $key })-[:HAS_OID]->(oid {OIDName: $oid_name})
128128
OPTIONAL MATCH (oid)-[:HAS_STATE_DETAILS]->(oid_details)
129129
RETURN oid, oid_details
130130
""",
@@ -154,7 +154,7 @@ def get_component_oid_by_name(cls, session, component_key, oid_name):
154154

155155
result = session.run(
156156
"""
157-
MATCH (component:Component { key: $key})<-[:HAS_COMPONENT]-(p:Asset)-[:HAS_OID]->(oid:OID {name: $oid_name})
157+
MATCH (component:Component { key: $key})<-[:HAS_COMPONENT]-(p:Asset)-[:HAS_OID]->(oid:OID {OIDName: $oid_name})
158158
RETURN oid, p.key as parent_key
159159
""",
160160
oid_name=oid_name, key=component_key

enginecore/enginecore/model/system_modeler.py

Lines changed: 18 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -526,121 +526,54 @@ def create_pdu(key, attr, preset_file=os.path.join(os.path.dirname(__file__), 'p
526526
props_stm = _get_props_stm({**v, **{'OIDName': k}}, supported_attr=["OID", "OIDName", "defaultValue", "dataType"])
527527
query.append("CREATE (:OID {{ {props_stm} }})<-[:HAS_OID]-(pdu)".format(oid_name=k, props_stm=props_stm))
528528

529-
print("\n".join(query))
530-
session.run("\n".join(query))
531529

532530
# Outlet-specific OIDs
533531
for k, v in data["outletOIDs"].items():
534532

533+
# For outlet state, outlet asset will need to be created
535534
if k == "OutletState":
536535
if 'oidDesc' in v:
537536
oid_desc = dict((y,x) for x,y in v["oidDesc"].items())
538537

539538
desc_stm = _get_oid_desc_stm(oid_desc, oid_name="{}-{}".format(k,key))
540539
query.append("CREATE (oidDesc:OIDDesc {{ {} }})<-[:HAS_OID]-(pdu)".format(desc_stm))
541540

542-
# query = "\
543-
# CREATE (OutletStateDetails:OIDDesc {{\
544-
# OIDName: $name, \
545-
# {}: \"switchOn\",\
546-
# {}: \"switchOff\", \
547-
# {}: \"immediateReboot\",\
548-
# {}: \"delayedOn\",\
549-
# {}: \"delayedOff\"\
550-
# }})\
551-
# ".format(
552-
# oid_desc["switchOn"],
553-
# oid_desc["switchOff"],
554-
# oid_desc["immediateReboot"],
555-
# oid_desc["delayedOn"],
556-
# oid_desc["delayedOff"]
557-
# )
558-
# print(query)
559-
560-
# session.run(query, name="{}-{}".format(k,key))
561-
562541
for j in range(outlet_count):
563542

564543
out_key = int("{}{}".format(key,str(j+1)))
565544
props_stm = _get_props_stm({'key': out_key, 'name': 'out'+str(j+1), 'type': 'outlet'})
566545

567546
# create outlet per OID
568-
query.append("CREATE (out{}:Asset:Outlet:Component {{ {} }}".format(out_key, props_stm))
547+
query.append("CREATE (out{}:Asset:Outlet:Component {{ {} }})".format(out_key, props_stm))
569548

570549
# set outlet relationships
571550
query.append("CREATE (out{})-[:POWERED_BY]->(pdu)".format(out_key))
572551
query.append("CREATE (pdu)-[:HAS_COMPONENT]->(out{})".format(out_key))
573552

574-
# session.run("\
575-
# MATCH (pdu:PDU {key: $pkey})\
576-
# CREATE (out1:Asset:Outlet:Component { \
577-
# name: $outname,\
578-
# key: $outkey,\
579-
# type: 'outlet'\
580-
# })\
581-
# CREATE (out1)-[:POWERED_BY]->(pdu)\
582-
# CREATE (pdu)-[:HAS_COMPONENT]->(out1)\
583-
# ",
584-
# pkey=key,
585-
# outname='out'+str(j+1),
586-
# outkey=int("{}{}".format(key,str(j+1))))
587553

588-
589-
for j in range(outlet_count):
590-
for oid in v['OID']:
554+
# create OID associated with outlet & pdu
555+
for oid_n, oid in enumerate(v['OID']):
591556

592557
out_key = int("{}{}".format(key,str(j+1)))
593558
oid = oid + "." + str(j+1)
594-
559+
oid_node_name = "{oid_name}{outlet_num}{oid_num}".format(oid_name=k, outlet_num=j, oid_num=oid_n)
595560

596-
query.append("CREATE (oid:OID {{ {} }})")
597-
598-
query.append("CREATE (out{})-[:POWERED_BY]->(oid)".format(out_key))
599-
query.append("CREATE (oid)-[:HAS_STATE_DETAILS]->(oidDesc)")
600-
query.append("CREATE (pdu)-[:HAS_OID]->(oid)")
601-
602-
session.run("\
603-
MATCH (pdu:PDU {key: $pkey})\
604-
MATCH (oidDesc:OIDDesc {OIDName: $oid_desc})\
605-
MATCH (out1:Asset:Outlet:Component { key: $outkey })\
606-
CREATE (oid:OID { \
607-
OID: $oid,\
608-
OIDName: $name,\
609-
name: $name, \
610-
defaultValue: $dv,\
611-
dataType: $dt \
612-
})\
613-
CREATE (out1)-[:POWERED_BY]->(oid)\
614-
CREATE (oid)-[:HAS_STATE_DETAILS]->(oidDesc)\
615-
CREATE (pdu)-[:HAS_OID]->(oid)\
616-
",
617-
pkey=key,
618-
oid=oid,
619-
name=k,
620-
dv=v['defaultValue'],
621-
dt=v['dataType'],
622-
outname='out'+str(j+1),
623-
oid_desc="{}-{}".format(k,key),
624-
outkey=int("{}{}".format(key,str(j+1))))
561+
props_stm = _get_props_stm({'OID': oid, 'OIDName': k, 'dataType': v['dataType'], 'defaultValue': v['defaultValue']})
562+
query.append("CREATE ({oid_node_name}:OID {{ {props_stm} }})".format(oid_node_name=oid_node_name, props_stm=props_stm))
563+
564+
# set the relationships
565+
query.append("CREATE (out{})-[:POWERED_BY]->({})".format(out_key, oid_node_name))
566+
query.append("CREATE ({})-[:HAS_STATE_DETAILS]->(oidDesc)".format(oid_node_name))
567+
query.append("CREATE (pdu)-[:HAS_OID]->({})".format(oid_node_name))
625568
else:
626569
oid = v['OID']
570+
571+
props_stm = _get_props_stm({'OID': oid, 'OIDName': k, 'dataType': v['dataType'], 'defaultValue': v['defaultValue']})
572+
query.append("CREATE ({}:OID {{ {} }})".format(k, props_stm))
573+
query.append("CREATE (pdu)-[:HAS_OID]->({})".format(k))
627574

628-
session.run("\
629-
MATCH (pdu:PDU {key: $pkey})\
630-
CREATE (oid:OID { \
631-
OID: $oid,\
632-
OIDName: $name,\
633-
name: $name, \
634-
defaultValue: $dv,\
635-
dataType: $dt \
636-
})\
637-
CREATE (pdu)-[:HAS_OID]->(oid)\
638-
",
639-
pkey=key,
640-
oid=oid,
641-
name=k,
642-
dv=v['defaultValue'],
643-
dt=v['dataType'])
575+
# print("\n".join(query))
576+
session.run("\n".join(query))
644577

645578

646579
def create_static(key, attr):

0 commit comments

Comments
 (0)