Example #1
0
 def get_contacts(self):
     q = """
         MATCH (c:Node:Contact)-[:Works_for]->(o:Node:Organization)
         WHERE o.handle_id = {handle_id}
         RETURN c.handle_id as handle_id, c.name as name
         """
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #2
0
 def get_ports(self):
     q = """
         MATCH (node:Node {handle_id: {handle_id}})-[r:Connected_to|Depends_on]-(port:Port)
         WITH port, r
         OPTIONAL MATCH p=(port)<-[:Has*1..]-(parent)
         RETURN port, r as relationship, LAST(nodes(p)) as parent
         ORDER BY parent.name
         """
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #3
0
 def get_ports(self):
     q = """
         MATCH (node:Node {handle_id: {handle_id}})-[r:Connected_to|Depends_on]-(port:Port)
         WITH port, r
         OPTIONAL MATCH p=(port)<-[:Has*1..]-(parent)
         RETURN port, r as relationship, LAST(nodes(p)) as parent
         ORDER BY parent.name
         """
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #4
0
 def get_connected_equipment(self):
     q = """
         MATCH (n:Node {handle_id: {handle_id}})-[rel:Connected_to]->(port)
         OPTIONAL MATCH (port)<-[:Has*1..10]-(end)
         WITH  rel, port, last(collect(end)) as end
         OPTIONAL MATCH (end)-[:Located_in]->(location)
         OPTIONAL MATCH (location)<-[:Has]-(site)
         RETURN id(rel) as rel_id, rel, port, end, location, site
         ORDER BY end.name, port.name
         """
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #5
0
 def get_connections(self):
     q = """
         MATCH (porta:Node {handle_id: {handle_id}})<-[r0:Connected_to]-(cable)
         OPTIONAL MATCH (porta)<-[r0:Connected_to]-(cable)-[r1:Connected_to]->(portb)
         OPTIONAL MATCH (portb)<-[:Has*1..10]-(end)
         WITH  porta, r0, cable, portb, r1, last(collect(end)) as end
         OPTIONAL MATCH (end)-[:Located_in]->(location)
         OPTIONAL MATCH (location)<-[:Has]-(site)
         RETURN porta, r0, cable, r1, portb, end, location, site
         """
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #6
0
 def get_connected_equipment(self):
     q = """
         MATCH (n:Node {handle_id: {handle_id}})-[rel:Connected_to]->(port)
         OPTIONAL MATCH (port)<-[:Has*1..10]-(end)
         WITH  rel, port, last(collect(end)) as end
         OPTIONAL MATCH (end)-[:Located_in]->(location)
         OPTIONAL MATCH (location)<-[:Has]-(site)
         RETURN id(rel) as rel_id, rel, port, end, location, site
         ORDER BY end.name, port.name
         """
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #7
0
 def get_connections(self):
     q = """
         MATCH (porta:Node {handle_id: {handle_id}})<-[r0:Connected_to]-(cable)
         OPTIONAL MATCH (porta)<-[r0:Connected_to]-(cable)-[r1:Connected_to]->(portb)
         OPTIONAL MATCH (portb)<-[:Has*1..10]-(end)
         WITH  porta, r0, cable, portb, r1, last(collect(end)) as end
         OPTIONAL MATCH (end)-[:Located_in]->(location)
         OPTIONAL MATCH (location)<-[:Has]-(site)
         RETURN porta, r0, cable, r1, portb, end, location, site
         """
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #8
0
 def get_services(self):
     q = """
         MATCH (n:Node {handle_id: {handle_id}})
         MATCH (n)-[:Connected_to*1..20]-(equip)
         WITH equip
         MATCH (equip)<-[:Depends_on*1..10]-(service)
         WHERE service:Service
         WITH distinct service
         OPTIONAL MATCH (service)<-[:Uses]-(user)
         RETURN service, collect(user) as users
         """
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #9
0
 def get_child_form_data(self, node_type):
     type_filter = ''
     if node_type:
         type_filter = 'and (child):{node_type}'.format(node_type=node_type)
     q = """
         MATCH (parent:Node {{handle_id:{{handle_id}}}})
         MATCH (parent)--(child)
         WHERE (parent)-[:Has]->(child) or (parent)<-[:Located_in|Part_of]-(child) {type_filter}
         RETURN child.handle_id as handle_id, labels(child) as labels, child.name as name,
                child.description as description
         """.format(type_filter=type_filter)
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #10
0
 def get_services(self):
     q = """
         MATCH (n:Node {handle_id: {handle_id}})
         MATCH (n)-[:Connected_to*1..20]-(equip)
         WITH equip
         MATCH (equip)<-[:Depends_on*1..10]-(service)
         WHERE service:Service
         WITH distinct service
         OPTIONAL MATCH (service)<-[:Uses]-(user)
         RETURN service, collect(user) as users
         """
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #11
0
 def get_child_form_data(self, node_type):
     type_filter = ''
     if node_type:
         type_filter = 'and (child):{node_type}'.format(node_type=node_type)
     q = """
         MATCH (parent:Node {{handle_id:{{handle_id}}}})
         MATCH (parent)--(child)
         WHERE (parent)-[:Has]->(child) or (parent)<-[:Located_in|Part_of]-(child) {type_filter}
         RETURN child.handle_id as handle_id, labels(child) as labels, child.name as name,
                child.description as description
         """.format(type_filter=type_filter)
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #12
0
 def get_connection_path(self):
     q = """
         MATCH (n:Cable {handle_id: {handle_id}})-[:Connected_to*1..10]-(port:Port)
         OPTIONAL MATCH path=(port)-[:Connected_to*]-()
         WITH nodes(path) AS parts, length(path) AS len
         ORDER BY len DESC
         LIMIT 1
         UNWIND parts AS part
         OPTIONAL MATCH (part)<-[:Has*1..10]-(parent)
         WHERE NOT (parent)<-[:Has]-()
         RETURN part, parent
         """
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #13
0
 def get_child_form_data(self, node_type=None):
     if node_type:
         type_filter = ':{node_type}'.format(node_type=node_type)
     else:
         type_filter = ':Port'
     q = """
         MATCH (parent:Node {{handle_id:{{handle_id}}}})
         MATCH (parent)-[:Has*]->(child{type_filter})
         RETURN child.handle_id as handle_id, labels(child) as labels, child.name as name,
                child.description as description
         ORDER BY child.name
         """.format(type_filter=type_filter)
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #14
0
 def get_connection_path(self):
     q = """
         MATCH (n:Cable {handle_id: {handle_id}})-[:Connected_to*1..10]-(port:Port)
         OPTIONAL MATCH path=(port)-[:Connected_to*]-()
         WITH nodes(path) AS parts, length(path) AS len
         ORDER BY len DESC
         LIMIT 1
         UNWIND parts AS part
         OPTIONAL MATCH (part)<-[:Has*1..10]-(parent)
         WHERE NOT (parent)<-[:Has]-()
         RETURN part, parent
         """
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)
Example #15
0
 def get_child_form_data(self, node_type=None):
     if node_type:
         type_filter = ':{node_type}'.format(node_type=node_type)
     else:
         type_filter = ':Port'
     q = """
         MATCH (parent:Node {{handle_id:{{handle_id}}}})
         MATCH (parent)-[:Has*]->(child{type_filter})
         RETURN child.handle_id as handle_id, labels(child) as labels, child.name as name,
                child.description as description
         ORDER BY child.name
         """.format(type_filter=type_filter)
     return core.query_to_list(self.manager, q, handle_id=self.handle_id)