Пример #1
0
 def test_security_group_two_sg_in_list(self):
     name = "fake_name"
     fake_secgroup1 = fake_compute.FakeSecurityGroup(name=name)
     fake_secgroup2 = fake_compute.FakeSecurityGroup(name=name)
     self.stubs.Set(
         self._manager.compute_api, 'security_group_list',
         mock.Mock(return_value=[fake_secgroup1, fake_secgroup2]))
     self.assertRaises(exception.ServiceInstanceException,
                       self._manager._get_or_create_security_group,
                       self._context, name)
     self._manager.compute_api.security_group_list.assert_called_once_with(
         self._context)
Пример #2
0
    def test_create_service_instance_failed_setup_connectivity(self):
        fake_server = fake_compute.FakeServer(status='ERROR')
        fake_port = fake_network.FakePort()
        fake_security_group = fake_compute.FakeSecurityGroup()
        fake_network_data = {'ports': [fake_port]}

        self.stubs.Set(self._manager, '_get_service_image',
                       mock.Mock(return_value='fake_image_id'))
        self.stubs.Set(
            self._manager, '_get_key',
            mock.Mock(return_value=('fake_key_name', 'fake_key_path')))
        self.stubs.Set(self._manager, '_get_or_create_security_group',
                       mock.Mock(return_value=fake_security_group))
        self.stubs.Set(self._manager, '_setup_network_for_instance',
                       mock.Mock(return_value=fake_network_data))
        self.stubs.Set(self._manager,
                       '_setup_connectivity_with_service_instances',
                       mock.Mock(side_effect=exception.ManilaException))
        self.stubs.Set(self._manager.neutron_api, 'delete_port', mock.Mock())
        self.stubs.Set(self._manager.compute_api, 'server_create',
                       mock.Mock(return_value=fake_server))
        self.stubs.Set(self._manager.compute_api, 'server_get',
                       mock.Mock(return_value=fake_server))
        self.stubs.Set(service_instance.socket, 'socket', mock.Mock())

        self.assertRaises(exception.ManilaException,
                          self._manager._create_service_instance,
                          self._context, 'fake-inst-name', 'fake-neutron-net',
                          'fake-neutron-subnet')

        self._manager.neutron_api.delete_port.assert_called_once_with(
            fake_port['id'])
        self.assertFalse(self._manager.compute_api.server_create.called)
        self.assertFalse(self._manager.compute_api.server_get.called)
        self.assertFalse(service_instance.socket.socket.called)
Пример #3
0
 def test_security_group_creation_with_name_from_config(self):
     name = "fake_sg_name"
     desc = "fake_sg_description"
     fake_secgroup = fake_compute.FakeSecurityGroup(name=name,
                                                    description=desc)
     self.stubs.Set(self._manager, 'get_config_option',
                    mock.Mock(return_value=name))
     self.stubs.Set(self._manager.compute_api, 'security_group_list',
                    mock.Mock(return_value=[]))
     self.stubs.Set(self._manager.compute_api, 'security_group_create',
                    mock.Mock(return_value=fake_secgroup))
     self.stubs.Set(self._manager.compute_api, 'security_group_rule_create',
                    mock.Mock())
     result = self._manager._get_or_create_security_group(
         context=self._context,
         name=None,
         description=desc,
     )
     self.assertEqual(result, fake_secgroup)
     self._manager.compute_api.security_group_list.assert_called_once_with(
         self._context)
     self._manager.compute_api.security_group_create.\
         assert_called_once_with(self._context, name, desc)
     self._manager.get_config_option.assert_has_calls([
         mock.call('service_instance_security_group'),
     ])
Пример #4
0
    def test_create_service_instance(self):
        fake_server = fake_compute.FakeServer()
        fake_port = fake_network.FakePort(fixed_ips=[{
            'ip_address': '127.0.0.1'
        }])
        fake_security_group = fake_compute.FakeSecurityGroup()
        fake_instance_name = 'fake_instance_name'
        fake_router = {'id': 'fake-router-id'}
        fake_service_subnet = {'id': 'fake-service-subnet-id'}
        fake_network_data = {
            'router': fake_router,
            'service_subnet': fake_service_subnet,
            'service_port': fake_port,
            'ports': [fake_port],
        }

        self.stubs.Set(self._manager, '_get_service_image',
                       mock.Mock(return_value='fake_image_id'))
        self.stubs.Set(
            self._manager, '_get_key',
            mock.Mock(return_value=('fake_key_name', 'fake_key_path')))
        self.stubs.Set(self._manager, '_setup_network_for_instance',
                       mock.Mock(return_value=fake_network_data))
        self.stubs.Set(self._manager,
                       '_setup_connectivity_with_service_instances',
                       mock.Mock())
        self.stubs.Set(self._manager.compute_api, 'server_create',
                       mock.Mock(return_value=fake_server))
        self.stubs.Set(self._manager, '_get_server_ip',
                       mock.Mock(return_value='fake_ip'))
        self.stubs.Set(self._manager, '_get_or_create_security_group',
                       mock.Mock(return_value=fake_security_group))
        self.stubs.Set(service_instance.socket, 'socket', mock.Mock())
        self.stubs.Set(self._manager, '_get_service_instance_name',
                       mock.Mock(return_value=fake_instance_name))

        result = self._manager._create_service_instance(
            self._context, fake_instance_name, 'fake-net', 'fake-subnet')

        self._manager._get_service_image.assert_called_once_with(self._context)
        self._manager._get_key.assert_called_once_with(self._context)
        self._manager._setup_network_for_instance.assert_called_once_with(
            'fake-net', 'fake-subnet')
        self._manager._setup_connectivity_with_service_instances.\
            assert_called_once_with()
        self._manager.compute_api.server_create.assert_called_once_with(
            self._context,
            name=fake_instance_name,
            image='fake_image_id',
            flavor=CONF.service_instance_flavor_id,
            key_name='fake_key_name',
            nics=[{
                'port-id': fake_port['id']
            }])
        service_instance.socket.socket.assert_called_once_with()

        self.assertIs(result, fake_server)
        self.assertEqual(result['public_address'], '127.0.0.1')
Пример #5
0
    def test_create_service_instance_error(self):
        fake_server = fake_compute.FakeServer(status='ERROR')
        fake_port = fake_network.FakePort()
        fake_security_group = fake_compute.FakeSecurityGroup()
        fake_network_data = {
            'ports': [fake_port],
        }

        self.stubs.Set(self._manager, '_get_service_image',
                       mock.Mock(return_value='fake_image_id'))
        self.stubs.Set(
            self._manager, '_get_key',
            mock.Mock(return_value=('fake_key_name', 'fake_key_path')))
        self.stubs.Set(self._manager, '_get_or_create_security_group',
                       mock.Mock(return_value=fake_security_group))
        self.stubs.Set(self._manager, '_setup_network_for_instance',
                       mock.Mock(return_value=fake_network_data))
        self.stubs.Set(self._manager,
                       '_setup_connectivity_with_service_instances',
                       mock.Mock())
        self.stubs.Set(self._manager.compute_api, 'server_create',
                       mock.Mock(return_value=fake_server))
        self.stubs.Set(self._manager.compute_api, 'server_get',
                       mock.Mock(return_value=fake_server))
        self.stubs.Set(service_instance.socket, 'socket', mock.Mock())

        self.assertRaises(exception.ManilaException,
                          self._manager._create_service_instance,
                          self._context, 'fake-inst-name', 'fake-neutron-net',
                          'fake-neutron-subnet')

        self._manager._get_service_image.assert_called_once_with(self._context)
        self._manager._get_key.assert_called_once_with(self._context)
        self._manager._get_or_create_security_group.assert_called_once_with(
            self._context)
        self._manager._setup_network_for_instance.assert_called_once_with(
            'fake-neutron-net', 'fake-neutron-subnet')
        self._manager._setup_connectivity_with_service_instances.\
            assert_called_once_with()
        self._manager.compute_api.server_create.assert_called_once_with(
            self._context,
            name='fake-inst-name',
            image='fake_image_id',
            flavor=100,
            key_name='fake_key_name',
            nics=[{
                'port-id': fake_port['id']
            }])
        self.assertFalse(self._manager.compute_api.server_get.called)
        self.assertFalse(service_instance.socket.socket.called)
Пример #6
0
 def test_security_group_name_from_config_and_sg_exist(self):
     fake_secgroup = fake_compute.FakeSecurityGroup(name="fake_sg_name")
     self.stubs.Set(self._manager, 'get_config_option',
                    mock.Mock(return_value="fake_sg_name"))
     self.stubs.Set(self._manager.compute_api, 'security_group_list',
                    mock.Mock(return_value=[
                        fake_secgroup,
                    ]))
     result = self._manager._get_or_create_security_group(self._context)
     self.assertEqual(result, fake_secgroup)
     self._manager.get_config_option.assert_has_calls([
         mock.call('service_instance_security_group'),
     ])
     self._manager.compute_api.security_group_list.assert_called_once_with(
         self._context)
Пример #7
0
    def test_create_service_instance(self):
        fake_server = fake_compute.FakeServer()
        fake_port = fake_network.FakePort()
        fake_security_group = fake_compute.FakeSecurityGroup()
        fake_instance_name = 'fake_instance_name'

        self.stubs.Set(self._manager, '_get_service_image',
                       mock.Mock(return_value='fake_image_id'))
        self.stubs.Set(
            self._manager, '_get_key',
            mock.Mock(return_value=('fake_key_name', 'fake_key_path')))
        self.stubs.Set(
            self._manager, '_setup_network_for_instance',
            mock.Mock(return_value=('fake-subnet', 'fake-router',
                                    fake_port['id'])))
        self.stubs.Set(self._manager,
                       '_setup_connectivity_with_service_instances',
                       mock.Mock())
        self.stubs.Set(self._manager.compute_api, 'server_create',
                       mock.Mock(return_value=fake_server))
        self.stubs.Set(self._manager, '_get_server_ip',
                       mock.Mock(return_value='fake_ip'))
        self.stubs.Set(self._manager, '_get_or_create_security_group',
                       mock.Mock(return_value=fake_security_group))
        self.stubs.Set(service_instance.socket, 'socket', mock.Mock())
        self.stubs.Set(self._manager, '_get_service_instance_name',
                       mock.Mock(return_value=fake_instance_name))

        result = self._manager._create_service_instance(
            self._context, fake_instance_name, 'fake-net', 'fake-subnet')

        self._manager._get_service_image.assert_called_once()
        self._manager._get_key.assert_called_once()
        self._manager._setup_network_for_instance.assert_called_once()
        self._manager._setup_connectivity_with_service_instances.\
                assert_called_once()
        self._manager.compute_api.server_create.assert_called_once_with(
            self._context,
            name=fake_instance_name,
            image='fake_image_id',
            flavor=CONF.service_instance_flavor_id,
            key_name='fake_key_name',
            nics=[{
                'port-id': fake_port['id']
            }])
        service_instance.socket.socket.assert_called_once()
        self.assertEqual(result, fake_server)
Пример #8
0
 def test_security_group_creation_with_provided_name(self):
     name = "fake_sg_name"
     desc = "fake_sg_description"
     fake_secgroup = fake_compute.FakeSecurityGroup(name=name,
                                                    description=desc)
     self.stubs.Set(self._manager.compute_api, 'security_group_list',
                    mock.Mock(return_value=[]))
     self.stubs.Set(self._manager.compute_api, 'security_group_create',
                    mock.Mock(return_value=fake_secgroup))
     self.stubs.Set(self._manager.compute_api, 'security_group_rule_create',
                    mock.Mock())
     result = self._manager._get_or_create_security_group(
         context=self._context,
         name=name,
         description=desc,
     )
     self._manager.compute_api.security_group_list.assert_called_once_with(
         self._context)
     self._manager.compute_api.security_group_create.\
         assert_called_once_with(self._context, name, desc)
     self.assertEqual(result, fake_secgroup)