def test_add_same_resource(self, mock_session):
        mock_document = Document(text='cat bar')

        comp = ShellCompleter()
        r1 = Resource('bar', uuid='4c6d3711-61f1-4505-b8df-189d32b52872')
        r2 = Resource('bar', uuid='4c6d3711-61f1-4505-b8df-189d32b52872')
        completions = comp.get_completions(mock_document, None)
        self.assertEqual(len(list(completions)), 1)
        r1.delete()
        completions = comp.get_completions(mock_document, None)
        self.assertEqual(len(list(completions)), 0)
        r2.delete()
    def test_add_same_resource(self, mock_session):
        mock_document = Document(text='cat bar')

        comp = ShellCompleter()
        r1 = Resource('bar', uuid='4c6d3711-61f1-4505-b8df-189d32b52872')
        r2 = Resource('bar', uuid='4c6d3711-61f1-4505-b8df-189d32b52872')
        completions = comp.get_completions(mock_document, None)
        self.assertEqual(len(list(completions)), 1)
        r1.delete()
        completions = comp.get_completions(mock_document, None)
        self.assertEqual(len(list(completions)), 0)
        r2.delete()
Beispiel #3
0
 def __call__(self, project_fqname=None, virtual_network_name=None):
     vn_fqname = '%s:%s' % (project_fqname, virtual_network_name)
     vn = Resource('virtual-network', fq_name=vn_fqname, fetch=True)
     if vn.get('router_external', False):
         try:
             fip_pool = Resource('floating-ip-pool',
                                 fq_name='%s:%s' %
                                 (vn_fqname, 'floating-ip-pool'),
                                 check=True)
             fip_pool.delete()
         except ResourceNotFound:
             pass
     vn.delete()
 def test_add_same_resource(self, mock_session):
     ShellContext.current_path = Path('/')
     mock_document = mock.Mock()
     mock_document.get_word_before_cursor.return_value = 'bar'
     comp = ResourceCompleter()
     r1 = Resource('bar', uuid='4c6d3711-61f1-4505-b8df-189d32b52872')
     r2 = Resource('bar', uuid='4c6d3711-61f1-4505-b8df-189d32b52872')
     completions = comp.get_completions(mock_document, None)
     self.assertEqual(len(list(completions)), 1)
     r1.delete()
     completions = comp.get_completions(mock_document, None)
     self.assertEqual(len(list(completions)), 0)
     r2.delete()
Beispiel #5
0
    def __call__(self, force=False, parent_type=None, cassandra_servers=None):
        valid_acl = []
        parents = Collection(parent_type, fetch=True, recursive=2)
        for parent in parents:
            if 'access_control_lists' in parent.keys():
                valid_acl += [
                    acl['uuid'] for acl in parent['access_control_lists']
                ]
        valid_acl = list(set(valid_acl))

        orphaned_acls = set([])
        # Due to a bug in contrail API, we cannot list more than 10000 elements
        # on a resource and there is no way to list ACL by tenant.
        # So that ugly hack directly fetch all ACL UUIDs from the cassandra database :(
        pool = ConnectionPool('config_db_uuid', server_list=cassandra_servers)
        fqname_cf = ColumnFamily(pool, 'obj_fq_name_table')
        for key, value in fqname_cf.xget('access_control_list'):
            acl_uuid = decode_string(key).split(':')[-1]
            if acl_uuid in valid_acl:
                continue
            acl = Resource('access-control-list', uuid=acl_uuid, fetch=True)
            if ('parent_uuid' in acl.keys() and 'parent_type' in acl.keys()
                    and acl['parent_type'] == parent_type
                    and acl.uuid not in valid_acl):
                try:
                    parent_acl = acl.parent
                except ResourceNotFound:
                    msg = ("The %s parent ACL %s was not found." %
                           (parent_type.replace('-', ' '), acl['parent_uuid']))
                    if force:
                        msg = msg + " Delete orphan ACL %s." % acl.uuid
                        acl.delete()
                    logger.debug(msg)
                    orphaned_acls.add(acl['uuid'])
                else:
                    logger.debug(
                        "The ACL %(acl)s have a %(parent_type)s %(parent_acl)s which exists but \
                                  was not found in the precedent %(parent_type)s list. Not delete it."
                        % {
                            'acl': acl,
                            'parent_type': parent_type.replace('-', ' '),
                            'parent_acl': parent_acl
                        })

        if force:
            logger.debug("%d orphaned ACL were deleted" % len(orphaned_acls))
        else:
            logger.debug("Found %d orphaned ACL to delete" %
                         len(orphaned_acls))
    def test_add_del_resource(self, mock_session):
        mock_document = Document(text='cat bar')

        comp = ShellCompleter()
        r1 = Resource('foo', uuid='d8eb36b4-9c57-49c5-9eac-95bedc90eb9a')
        r2 = Resource('bar', uuid='4c6d3711-61f1-4505-b8df-189d32b52872')
        completions = comp.get_completions(mock_document, None)
        self.assertTrue(str(r2.path.relative_to(Context().shell.current_path)) in
                        [c.text for c in completions])

        r1.delete()
        r2.delete()
        completions = comp.get_completions(mock_document, None)
        self.assertTrue(str(r2.path.relative_to(Context().shell.current_path)) not in
                        [c.text for c in completions])
    def test_add_del_resource(self, mock_session):
        mock_document = Document(text='cat bar')

        comp = ShellCompleter()
        r1 = Resource('foo', uuid='d8eb36b4-9c57-49c5-9eac-95bedc90eb9a')
        r2 = Resource('bar', uuid='4c6d3711-61f1-4505-b8df-189d32b52872')
        completions = comp.get_completions(mock_document, None)
        self.assertTrue(str(r2.path.relative_to(Context().shell.current_path)) in
                        [c.text for c in completions])

        r1.delete()
        r2.delete()
        completions = comp.get_completions(mock_document, None)
        self.assertTrue(str(r2.path.relative_to(Context().shell.current_path)) not in
                        [c.text for c in completions])
    def test_fq_name_completion(self, mock_session):
        mock_document = Document(text='cat bar/default-dom')

        comp = ShellCompleter()
        r1 = Resource('bar', fq_name='default-domain:project:resource')
        r2 = Resource('bar', fq_name='foo:foo:foo')

        completions = list(comp.get_completions(mock_document, None))
        self.assertEqual(len(completions), 1)
        self.assertTrue(str(r1.path.relative_to(Context().shell.current_path)) in
                        [c.text for c in completions])

        r1.delete()
        r2.delete()
        completions = comp.get_completions(mock_document, None)
        self.assertEqual(len(list(completions)), 0)
    def test_fq_name_completion(self, mock_session):
        mock_document = Document(text='cat bar/default-dom')

        comp = ShellCompleter()
        r1 = Resource('bar', fq_name='default-domain:project:resource')
        r2 = Resource('bar', fq_name='foo:foo:foo')

        completions = list(comp.get_completions(mock_document, None))
        self.assertEqual(len(completions), 1)
        self.assertTrue(str(r1.path.relative_to(Context().shell.current_path)) in
                        [c.text for c in completions])

        r1.delete()
        r2.delete()
        completions = comp.get_completions(mock_document, None)
        self.assertEqual(len(list(completions)), 0)
    def test_add_del_resource(self, mock_session):
        ShellContext.current_path = Path('/')
        mock_document = mock.Mock()
        mock_document.get_word_before_cursor.return_value = 'bar'
        comp = ResourceCompleter()

        r1 = Resource('foo', uuid='d8eb36b4-9c57-49c5-9eac-95bedc90eb9a')
        r2 = Resource('bar', uuid='4c6d3711-61f1-4505-b8df-189d32b52872')
        completions = comp.get_completions(mock_document, None)
        self.assertTrue(str(r2.path.relative_to(ShellContext.current_path)) in
                        [c.text for c in completions])

        r1.delete()
        r2.delete()
        completions = comp.get_completions(mock_document, None)
        self.assertTrue(str(r2.path.relative_to(ShellContext.current_path)) not in
                        [c.text for c in completions])
    def test_fq_name_completion(self, mock_session):
        ShellContext.current_path = Path('/')
        mock_document = mock.Mock()
        mock_document.get_word_before_cursor.return_value = 'default-dom'

        comp = ResourceCompleter()
        r1 = Resource('bar', fq_name='default-domain:project:resource')
        r2 = Resource('foo', fq_name='foo:foo:foo')

        completions = list(comp.get_completions(mock_document, None))
        self.assertEqual(len(completions), 1)
        self.assertTrue(str(r1.path.relative_to(ShellContext.current_path)) in
                        [c.text for c in completions])

        r1.delete()
        r2.delete()
        completions = comp.get_completions(mock_document, None)
        self.assertEqual(len(list(completions)), 0)
 def __call__(self, analytics_name=None):
     analytics = Resource('analytics-node',
                          fq_name='default-global-system-config:%s' %
                          analytics_name,
                          fetch=True)
     analytics.delete()
Beispiel #13
0
 def __call__(self, config_name=None):
     config = Resource('config-node',
                       fq_name='default-global-system-config:%s' %
                       config_name,
                       check=True)
     config.delete()
 def __call__(self, router_name=None):
     router_fq_name = DEFAULT_RI_FQ_NAME + [router_name]
     bgp_router = Resource('bgp-router', fq_name=router_fq_name, check=True)
     bgp_router.delete()
Beispiel #15
0
 def __call__(self, vrouter_name=None):
     vrouter = Resource('virtual-router',
                        fq_name='default-global-system-config:%s' %
                        vrouter_name,
                        check=True)
     vrouter.delete()
 def __call__(self, appliance_set_name=None):
     sas = Resource('service-appliance-set',
                    fq_name='default-global-system-config:%s' %
                    appliance_set_name,
                    check=True)
     sas.delete()