Пример #1
0
    def test_new_project_network_setup_no_id(self):
        """
        No project id given, should do nothing.
        """
        setup_neutron_cache('RegionOne', 'test_project_id')
        task = Task.objects.create(ip_address="0.0.0.0",
                                   keystone_user={'roles': ['admin']})

        data = {
            'setup_network': True,
            'region': 'RegionOne',
        }

        action = NewProjectDefaultNetworkAction(data, task=task, order=1)

        action.pre_approve()
        self.assertEqual(action.valid, True)

        action.post_approve()
        self.assertEqual(action.valid, False)

        self.assertEqual(action.action.cache, {})

        global neutron_cache
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['networks']), 0)
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['routers']), 0)
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['subnets']), 0)
Пример #2
0
    def test_new_project_network_setup_no_id(self):
        """
        No project id given, should do nothing.
        """
        setup_identity_cache()
        setup_neutron_cache("RegionOne", "test_project_id")
        task = Task.objects.create(keystone_user={"roles": ["admin"]})

        data = {
            "setup_network": True,
            "region": "RegionOne",
        }

        action = NewProjectDefaultNetworkAction(data, task=task, order=1)

        action.prepare()
        self.assertEqual(action.valid, True)

        action.approve()
        self.assertEqual(action.valid, False)

        self.assertEqual(action.action.cache, {})

        global neutron_cache
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["networks"]), 0)
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["routers"]), 0)
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["subnets"]), 0)
Пример #3
0
    def test_new_project_network_setup(self):
        """
        Base case, setup network after a new project, no issues.
        """
        setup_identity_cache()
        setup_neutron_cache("RegionOne", "test_project_id")
        task = Task.objects.create(keystone_user={"roles": ["admin"]})

        data = {
            "setup_network": True,
            "region": "RegionOne",
        }

        action = NewProjectDefaultNetworkAction(data, task=task, order=1)

        action.prepare()
        self.assertEqual(action.valid, True)

        # Now we add the project data as this is where the project
        # would be created:
        project = mock.Mock()
        project.id = "test_project_id"
        project.name = "test_project"
        project.domain = "default"
        project.roles = {}

        setup_identity_cache(projects=[project])

        task.cache = {"project_id": "test_project_id"}

        action.approve()
        self.assertEqual(action.valid, True)

        self.assertEqual(
            action.action.cache,
            {
                "network_id": "net_id_0",
                "port_id": "port_id_3",
                "router_id": "router_id_2",
                "subnet_id": "subnet_id_1",
            },
        )

        global neutron_cache
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["networks"]), 1)
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["routers"]), 1)
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["subnets"]), 1)
Пример #4
0
    def test_network_setup(self):
        """
        Base case, setup a new network , no issues.
        """
        setup_neutron_cache('RegionOne', 'test_project_id')
        task = Task.objects.create(ip_address="0.0.0.0",
                                   keystone_user={
                                       'roles': ['admin'],
                                       'project_id': 'test_project_id'
                                   })

        project = mock.Mock()
        project.id = 'test_project_id'
        project.name = 'test_project'
        project.domain = 'default'
        project.roles = {}

        setup_identity_cache(projects=[project])

        data = {
            'setup_network': True,
            'region': 'RegionOne',
            'project_id': 'test_project_id',
        }

        action = NewDefaultNetworkAction(data, task=task, order=1)

        action.pre_approve()
        self.assertEqual(action.valid, True)

        action.post_approve()
        self.assertEqual(action.valid, True)

        self.assertEqual(
            action.action.cache, {
                'network_id': 'net_id_0',
                'port_id': 'port_id_3',
                'router_id': 'router_id_2',
                'subnet_id': 'subnet_id_1'
            })

        global neutron_cache
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['networks']), 1)
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['routers']), 1)
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['subnets']), 1)
Пример #5
0
    def test_update_quota(self):
        """
        Sets a new quota on all services of a project in a single region
        """
        project = mock.Mock()
        project.id = 'test_project_id'
        project.name = 'test_project'
        project.domain = 'default'
        project.roles = {}

        user = mock.Mock()
        user.id = 'user_id'
        user.name = "*****@*****.**"
        user.email = "*****@*****.**"
        user.domain = 'default'
        user.password = "******"

        setup_identity_cache(projects=[project], users=[user])
        setup_neutron_cache('RegionOne', 'test_project_id')

        # Test sending to only a single region
        task = Task.objects.create(ip_address="0.0.0.0",
                                   keystone_user={'roles': ['admin']})

        data = {
            'project_id': 'test_project_id',
            'size': 'medium',
            'regions': ['RegionOne'],
            'user_id': user.id
        }

        action = UpdateProjectQuotasAction(data, task=task, order=1)

        action.pre_approve()
        self.assertEqual(action.valid, True)

        action.post_approve()
        self.assertEqual(action.valid, True)

        # check the quotas were updated
        # This relies on test_settings heavily.
        cinderquota = cinder_cache['RegionOne']['test_project_id']['quota']
        self.assertEqual(cinderquota['gigabytes'], 10000)
        novaquota = nova_cache['RegionOne']['test_project_id']['quota']
        self.assertEqual(novaquota['ram'], 327680)
        neutronquota = neutron_cache['RegionOne']['test_project_id']['quota']
        self.assertEqual(neutronquota['network'], 5)
Пример #6
0
    def test_new_project_network_setup_no_setup(self):
        """
        Told not to setup, should do nothing.
        """
        setup_identity_cache()
        setup_neutron_cache("RegionOne", "test_project_id")
        task = Task.objects.create(keystone_user={"roles": ["admin"]})

        data = {
            "setup_network": False,
            "region": "RegionOne",
        }

        action = NewProjectDefaultNetworkAction(data, task=task, order=1)

        action.prepare()
        self.assertEqual(action.valid, True)

        # Now we add the project data as this is where the project
        # would be created:
        project = mock.Mock()
        project.id = "test_project_id"
        project.name = "test_project"
        project.domain = "default"
        project.roles = {}

        setup_identity_cache(projects=[project])

        task.cache = {"project_id": "test_project_id"}

        action.approve()
        self.assertEqual(action.valid, True)

        self.assertEqual(action.action.cache, {})

        global neutron_cache
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["networks"]), 0)
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["routers"]), 0)
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["subnets"]), 0)
Пример #7
0
    def test_network_setup_no_setup(self):
        """
        Told not to setup, should do nothing.
        """
        setup_neutron_cache('RegionOne', 'test_project_id')
        task = Task.objects.create(ip_address="0.0.0.0",
                                   keystone_user={
                                       'roles': ['admin'],
                                       'project_id': 'test_project_id'
                                   })

        project = mock.Mock()
        project.id = 'test_project_id'
        project.name = 'test_project'
        project.domain = 'default'
        project.roles = {}

        setup_identity_cache(projects=[project])

        data = {
            'setup_network': False,
            'region': 'RegionOne',
            'project_id': 'test_project_id',
        }

        action = NewDefaultNetworkAction(data, task=task, order=1)

        action.pre_approve()
        self.assertEqual(action.valid, True)

        action.post_approve()
        self.assertEqual(action.valid, True)

        self.assertEqual(action.action.cache, {})

        global neutron_cache
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['networks']), 0)
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['routers']), 0)
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['subnets']), 0)
Пример #8
0
    def test_new_project_network_setup_fail(self):
        """
        Should fail, but on re_approve will continue where it left off.
        """
        setup_identity_cache()
        setup_neutron_cache("RegionOne", "test_project_id")
        global neutron_cache
        task = Task.objects.create(keystone_user={"roles": ["admin"]})

        data = {
            "setup_network": True,
            "region": "RegionOne",
        }

        action = NewProjectDefaultNetworkAction(data, task=task, order=1)

        action.prepare()
        self.assertEqual(action.valid, True)

        neutron_cache["RegionOne"]["test_project_id"]["routers"] = []

        # Now we add the project data as this is where the project
        # would be created:
        project = mock.Mock()
        project.id = "test_project_id"
        project.name = "test_project"
        project.domain = "default"
        project.roles = {}

        setup_identity_cache(projects=[project])

        task.cache = {"project_id": "test_project_id"}

        try:
            action.approve()
            self.fail("Shouldn't get here.")
        except Exception:
            pass

        self.assertEqual(action.action.cache, {
            "network_id": "net_id_0",
            "subnet_id": "subnet_id_1"
        })

        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["networks"]), 1)
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["subnets"]), 1)
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["routers"]), 0)

        neutron_cache["RegionOne"]["test_project_id"]["routers"] = {}

        action.approve()

        self.assertEqual(
            action.action.cache,
            {
                "network_id": "net_id_0",
                "port_id": "port_id_3",
                "router_id": "router_id_2",
                "subnet_id": "subnet_id_1",
            },
        )

        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["networks"]), 1)
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["routers"]), 1)
        self.assertEqual(
            len(neutron_cache["RegionOne"]["test_project_id"]["subnets"]), 1)
Пример #9
0
    def test_new_project_network_setup_fail(self):
        """
        Should fail, but on re_approve will continue where it left off.
        """
        setup_neutron_cache('RegionOne', 'test_project_id')
        global neutron_cache
        task = Task.objects.create(ip_address="0.0.0.0",
                                   keystone_user={'roles': ['admin']})

        data = {
            'setup_network': True,
            'region': 'RegionOne',
        }

        action = NewProjectDefaultNetworkAction(data, task=task, order=1)

        action.pre_approve()
        self.assertEqual(action.valid, True)

        neutron_cache['RegionOne']['test_project_id']['routers'] = []

        # Now we add the project data as this is where the project
        # would be created:
        project = mock.Mock()
        project.id = 'test_project_id'
        project.name = 'test_project'
        project.domain = 'default'
        project.roles = {}

        setup_identity_cache(projects=[project])

        task.cache = {'project_id': "test_project_id"}

        try:
            action.post_approve()
            self.fail("Shouldn't get here.")
        except Exception:
            pass

        self.assertEqual(action.action.cache, {
            'network_id': 'net_id_0',
            'subnet_id': 'subnet_id_1'
        })

        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['networks']), 1)
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['subnets']), 1)
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['routers']), 0)

        neutron_cache['RegionOne']['test_project_id']['routers'] = {}

        action.post_approve()

        self.assertEqual(
            action.action.cache, {
                'network_id': 'net_id_0',
                'port_id': 'port_id_3',
                'router_id': 'router_id_2',
                'subnet_id': 'subnet_id_1'
            })

        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['networks']), 1)
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['routers']), 1)
        self.assertEqual(
            len(neutron_cache['RegionOne']['test_project_id']['subnets']), 1)