Esempio n. 1
0
def check_ri_without_rt(g):
    """routing-instance that doesn't have any route-target (that crashes schema)
    """
    return g.V().hasLabel("routing_instance") \
        .not_(__.has('fq_name', within(["default-domain", "default-project", "ip-fabric", "__default__"],
                                       ["default-domain", "default-project", "__link_local__", "__link_local__"]))) \
        .not_(__.out().hasLabel("route_target"))
Esempio n. 2
0
def check_duplicate_public_ips(g):
    """duplicate public ips
    """
    r = g.V().hasLabel(within('floating_ip', 'instance_ip')) \
        .property('ip_address', __.values('floating_ip_address', 'instance_ip_address')).group().by('ip_address').unfold() \
        .filter(lambda: "it.get().value.size() > 1 && it.get().value.findAll{it.label.value == 'floating_ip'} != []").toList()
    if len(r) > 0:
        printo('Found %d %s:' % (len(r), check_duplicate_public_ips.__doc__.strip()))
    return r
Esempio n. 3
0
def check_unused_rt(g):
    """unused route-target
    """
    return g.V().hasLabel("route_target").not_(
        __.in_().hasLabel(within("routing_instance", "logical_router"))
    )
    def test_edges(self) -> None:
        db_name = Fixtures.next_database()
        database_uri = f'database://{db_name}'
        cluster1_uri = f'{db_name}://acluster'
        cluster2_uri = f'{db_name}://bcluster'
        self.assertNotEqual(cluster1_uri, cluster2_uri)
        cluster_vertex_type = VertexType.construct_type(
            label=VertexTypes.Cluster.value.label,
            properties=tuple([
                Property(name='aproperty', type=GremlinType.String),
                Property(name='b', type=GremlinType.String),
                Property(name='c', type=GremlinType.String)
            ]))
        self._upsert(label=VertexTypes.Database, key=database_uri, name='test')
        self._upsert(label=cluster_vertex_type,
                     key=cluster1_uri,
                     aproperty='one',
                     b='b')
        self._upsert(label=cluster_vertex_type,
                     key=cluster2_uri,
                     aproperty='two',
                     c='c')

        cluster_edge_type = EdgeType(label=EdgeTypes.Cluster.value.label,
                                     properties=tuple([
                                         Property(name='created',
                                                  type=GremlinType.Date,
                                                  required=True),
                                         Property(name='aproperty',
                                                  type=GremlinType.String),
                                         Property(name='b',
                                                  type=GremlinType.String),
                                         Property(name='c',
                                                  type=GremlinType.String)
                                     ]))
        self._link(vertex1_label=VertexTypes.Database,
                   vertex1_key=database_uri,
                   vertex2_label=VertexTypes.Cluster,
                   vertex2_key=cluster1_uri,
                   edge_label=cluster_edge_type,
                   aproperty='won',
                   b='bee')
        self._link(vertex1_label=VertexTypes.Database,
                   vertex1_key=database_uri,
                   vertex2_label=VertexTypes.Cluster,
                   vertex2_key=cluster2_uri,
                   edge_label=cluster_edge_type,
                   aproperty='too',
                   c='sea')

        # get the one
        e1 = _edges_from(g=self.get_proxy().g,
                         vertex1_label=VertexTypes.Database,
                         vertex1_key=database_uri,
                         vertex2_label=None,
                         vertex2_key=None,
                         edge_label=None,
                         aproperty='won').id().toList()
        self.assertEqual(len(e1), 1)

        # get the other
        e2 = _edges_from(g=self.get_proxy().g,
                         vertex1_label=VertexTypes.Database,
                         vertex1_key=database_uri,
                         vertex2_label=None,
                         vertex2_key=None,
                         edge_label=None,
                         aproperty='too').id().toList()
        self.assertEqual(len(e2), 1)
        self.assertNotEqual(e1[0], e2[0])

        # get both edges
        e = _edges_from(g=self.get_proxy().g,
                        vertex1_label=VertexTypes.Database,
                        vertex1_key=database_uri,
                        vertex2_label=None,
                        vertex2_key=None,
                        edge_label=EdgeTypes.Cluster).id().toList()
        self.assertTrue(e == e1 + e2 or e == e2 + e1)

        # get both edges
        e = _edges_from(g=self.get_proxy().g,
                        vertex1_label=VertexTypes.Database,
                        vertex1_key=database_uri,
                        vertex2_label=None,
                        vertex2_key=None,
                        edge_label=None,
                        aproperty=within('won', 'too')).id().toList()
        self.assertTrue(e == e1 + e2 or e == e2 + e1)

        # get the one
        e = _edges_from(g=self.get_proxy().g,
                        vertex1_label=VertexTypes.Database,
                        vertex1_key=database_uri,
                        vertex2_label=VertexTypes.Cluster,
                        vertex2_key=cluster1_uri,
                        edge_label=None).id().toList()
        self.assertEqual(e, e1)

        # get the other
        e = _edges_from(g=self.get_proxy().g,
                        vertex1_label=VertexTypes.Database,
                        vertex1_key=database_uri,
                        vertex2_label=VertexTypes.Cluster,
                        vertex2_key=cluster2_uri,
                        edge_label=None).id().toList()
        self.assertEqual(e, e2)

        # get the one
        e = _edges_from(g=self.get_proxy().g,
                        vertex1_label=VertexTypes.Database,
                        vertex1_key=database_uri,
                        vertex2_label=None,
                        vertex2_key=None,
                        vertex2_properties=dict(aproperty='one'),
                        edge_label=None).id().toList()
        self.assertEqual(e, e1)

        # get the other
        e = _edges_from(g=self.get_proxy().g,
                        vertex1_label=VertexTypes.Database,
                        vertex1_key=database_uri,
                        vertex2_label=None,
                        vertex2_key=None,
                        vertex2_properties=dict(aproperty='two'),
                        edge_label=None).id().toList()
        self.assertEqual(e, e2)

        # get the one
        e = _edges_from(g=self.get_proxy().g,
                        vertex1_label=VertexTypes.Database,
                        vertex1_key=database_uri,
                        vertex2_label=None,
                        vertex2_key=None,
                        vertex2_properties=dict(c=None),
                        edge_label=None).id().toList()
        self.assertEqual(e, e1)

        # get the other
        e = _edges_from(g=self.get_proxy().g,
                        vertex1_label=VertexTypes.Database,
                        vertex1_key=database_uri,
                        vertex2_label=None,
                        vertex2_key=None,
                        vertex2_properties=dict(b=None),
                        edge_label=None).id().toList()
        self.assertEqual(e, e2)

        # get none
        e = _edges_from(g=self.get_proxy().g,
                        vertex1_label=VertexTypes.Database,
                        vertex1_key=database_uri,
                        vertex2_label=None,
                        vertex2_key=None,
                        edge_label=EdgeTypes.Schema).id().toList()
        self.assertEqual(len(e), 0)

        # get none
        e = _edges_from(g=self.get_proxy().g,
                        vertex1_label=VertexTypes.Database,
                        vertex1_key=database_uri,
                        vertex2_label=VertexTypes.Schema,
                        vertex2_key=None,
                        edge_label=None).id().toList()
        self.assertEqual(len(e), 0)