Merge "Update compute API.get() stubs for test_*security_groups"
This commit is contained in:
commit
f41e4ff692
|
@ -162,15 +162,13 @@ class TestNeutronSecurityGroupsV21(
|
|||
net = self._create_network()
|
||||
self._create_port(
|
||||
network_id=net['network']['id'], security_groups=[sg['id']],
|
||||
device_id=test_security_groups.FAKE_UUID1)
|
||||
device_id=test_security_groups.UUID_SERVER)
|
||||
expected = [{'rules': [], 'tenant_id': 'fake', 'id': sg['id'],
|
||||
'name': 'test', 'description': 'test-description'}]
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
test_security_groups.return_server_by_uuid)
|
||||
req = fakes.HTTPRequest.blank('/v2/fake/servers/%s/os-security-groups'
|
||||
% test_security_groups.FAKE_UUID1)
|
||||
% test_security_groups.UUID_SERVER)
|
||||
res_dict = self.server_controller.index(
|
||||
req, test_security_groups.FAKE_UUID1)['security_groups']
|
||||
req, test_security_groups.UUID_SERVER)['security_groups']
|
||||
self.assertEqual(expected, res_dict)
|
||||
|
||||
def test_get_security_group_by_id(self):
|
||||
|
@ -232,8 +230,6 @@ class TestNeutronSecurityGroupsV21(
|
|||
network_id=net['network']['id'], security_groups=[sg['id']],
|
||||
device_id=UUID_SERVER)
|
||||
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
test_security_groups.return_server)
|
||||
body = dict(addSecurityGroup=dict(name="test"))
|
||||
|
||||
req = fakes.HTTPRequest.blank('/v2/fake/servers/%s/action' %
|
||||
|
@ -250,8 +246,6 @@ class TestNeutronSecurityGroupsV21(
|
|||
network_id=net['network']['id'], security_groups=[sg1['id']],
|
||||
device_id=UUID_SERVER)
|
||||
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
test_security_groups.return_server)
|
||||
body = dict(addSecurityGroup=dict(name="sg1"))
|
||||
|
||||
req = fakes.HTTPRequest.blank('/v2/fake/servers/%s/action' %
|
||||
|
@ -268,8 +262,6 @@ class TestNeutronSecurityGroupsV21(
|
|||
port_security_enabled=True,
|
||||
device_id=UUID_SERVER)
|
||||
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
test_security_groups.return_server)
|
||||
body = dict(addSecurityGroup=dict(name="test"))
|
||||
|
||||
req = fakes.HTTPRequest.blank('/v2/fake/servers/%s/action' %
|
||||
|
@ -283,8 +275,6 @@ class TestNeutronSecurityGroupsV21(
|
|||
network_id=net['network']['id'], port_security_enabled=False,
|
||||
device_id=UUID_SERVER)
|
||||
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
test_security_groups.return_server)
|
||||
body = dict(addSecurityGroup=dict(name="test"))
|
||||
|
||||
req = fakes.HTTPRequest.blank('/v2/fake/servers/%s/action' %
|
||||
|
@ -301,8 +291,6 @@ class TestNeutronSecurityGroupsV21(
|
|||
port_security_enabled=True, ip_allocation='deferred',
|
||||
device_id=UUID_SERVER)
|
||||
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
test_security_groups.return_server)
|
||||
body = dict(addSecurityGroup=dict(name="test"))
|
||||
|
||||
req = fakes.HTTPRequest.blank('/v2/fake/servers/%s/action' %
|
||||
|
@ -310,8 +298,6 @@ class TestNeutronSecurityGroupsV21(
|
|||
self.manager._addSecurityGroup(req, UUID_SERVER, body)
|
||||
|
||||
def test_disassociate_by_non_existing_security_group_name(self):
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
test_security_groups.return_server)
|
||||
body = dict(removeSecurityGroup=dict(name='non-existing'))
|
||||
|
||||
req = fakes.HTTPRequest.blank('/v2/fake/servers/%s/action' %
|
||||
|
@ -339,8 +325,6 @@ class TestNeutronSecurityGroupsV21(
|
|||
network_id=net['network']['id'], security_groups=[sg['id']],
|
||||
device_id=UUID_SERVER)
|
||||
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
test_security_groups.return_server)
|
||||
body = dict(removeSecurityGroup=dict(name="test"))
|
||||
|
||||
req = fakes.HTTPRequest.blank('/v2/fake/servers/%s/action' %
|
||||
|
|
|
@ -23,14 +23,12 @@ import webob
|
|||
from nova.api.openstack.compute import security_groups as \
|
||||
secgroups_v21
|
||||
from nova import compute
|
||||
from nova.compute import power_state
|
||||
from nova import context as context_maker
|
||||
import nova.db.api
|
||||
from nova import exception
|
||||
from nova import objects
|
||||
from nova import test
|
||||
from nova.tests.unit.api.openstack import fakes
|
||||
from nova.tests.unit import fake_instance
|
||||
|
||||
|
||||
CONF = cfg.CONF
|
||||
|
@ -86,33 +84,6 @@ def security_group_rule_db(rule, id=None):
|
|||
return AttrDict(attrs)
|
||||
|
||||
|
||||
def return_server(context, server_id,
|
||||
columns_to_join=None, use_slave=False):
|
||||
return fake_instance.fake_db_instance(
|
||||
**{'id': 1,
|
||||
'power_state': 0x01,
|
||||
'host': "localhost",
|
||||
'uuid': server_id,
|
||||
'name': 'asdf'})
|
||||
|
||||
|
||||
def return_server_by_uuid(context, server_uuid,
|
||||
columns_to_join=None,
|
||||
use_slave=False):
|
||||
return fake_instance.fake_db_instance(
|
||||
**{'id': 1,
|
||||
'power_state': 0x01,
|
||||
'host': "localhost",
|
||||
'uuid': server_uuid,
|
||||
'name': 'asdf'})
|
||||
|
||||
|
||||
def return_non_running_server(context, server_id, columns_to_join=None):
|
||||
return fake_instance.fake_db_instance(
|
||||
**{'id': 1, 'power_state': power_state.SHUTDOWN,
|
||||
'uuid': server_id, 'host': "localhost", 'name': 'asdf'})
|
||||
|
||||
|
||||
def return_security_group_by_name(context, project_id, group_name,
|
||||
columns_to_join=None):
|
||||
return {'id': 1, 'name': group_name,
|
||||
|
@ -123,10 +94,6 @@ def return_security_group_without_instances(context, project_id, group_name):
|
|||
return {'id': 1, 'name': group_name}
|
||||
|
||||
|
||||
def return_server_nonexistent(context, server_id, columns_to_join=None):
|
||||
raise exception.InstanceNotFound(instance_id=server_id)
|
||||
|
||||
|
||||
class TestSecurityGroupsV21(test.TestCase):
|
||||
secgrp_ctl_cls = secgroups_v21.SecurityGroupController
|
||||
server_secgrp_ctl_cls = secgroups_v21.ServerSecurityGroupController
|
||||
|
@ -153,6 +120,12 @@ class TestSecurityGroupsV21(test.TestCase):
|
|||
|
||||
self.req = fakes.HTTPRequest.blank('')
|
||||
self.admin_req = fakes.HTTPRequest.blank('', use_admin_context=True)
|
||||
self.stub_out('nova.compute.api.API.get',
|
||||
fakes.fake_compute_get(
|
||||
**{'power_state': 0x01,
|
||||
'host': "localhost",
|
||||
'uuid': UUID_SERVER,
|
||||
'name': 'asdf'}))
|
||||
|
||||
def _assert_security_groups_in_use(self, project_id, user_id, in_use):
|
||||
context = context_maker.get_admin_context()
|
||||
|
@ -464,16 +437,8 @@ class TestSecurityGroupsV21(test.TestCase):
|
|||
|
||||
expected = {'security_groups': [expected_group1, expected_group2]}
|
||||
|
||||
def return_instance(context, server_id,
|
||||
columns_to_join=None, use_slave=False):
|
||||
self.assertEqual(server_id, FAKE_UUID1)
|
||||
return return_server_by_uuid(context, server_id)
|
||||
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
return_instance)
|
||||
|
||||
def return_security_groups(context, instance_uuid):
|
||||
self.assertEqual(instance_uuid, FAKE_UUID1)
|
||||
self.assertEqual(instance_uuid, UUID_SERVER)
|
||||
return [security_group_db(sg) for sg in groups]
|
||||
|
||||
self.stub_out('nova.db.api.security_group_get_by_instance',
|
||||
|
@ -498,32 +463,20 @@ class TestSecurityGroupsV21(test.TestCase):
|
|||
|
||||
self.assertEqual(expected, res_dict)
|
||||
|
||||
@mock.patch('nova.db.api.instance_get_by_uuid')
|
||||
@mock.patch('nova.db.api.security_group_get_by_instance', return_value=[])
|
||||
def test_get_security_group_empty_for_instance(self, mock_sec_group,
|
||||
mock_db_get_ins):
|
||||
def test_get_security_group_empty_for_instance(self, mock_sec_group):
|
||||
expected = {'security_groups': []}
|
||||
|
||||
def return_instance(context, server_id,
|
||||
columns_to_join=None, use_slave=False):
|
||||
self.assertEqual(server_id, FAKE_UUID1)
|
||||
return return_server_by_uuid(context, server_id)
|
||||
mock_db_get_ins.side_effect = return_instance
|
||||
res_dict = self.server_controller.index(self.req, FAKE_UUID1)
|
||||
res_dict = self.server_controller.index(self.req, UUID_SERVER)
|
||||
self.assertEqual(expected, res_dict)
|
||||
mock_sec_group.assert_called_once_with(
|
||||
self.req.environ['nova.context'], FAKE_UUID1)
|
||||
self.req.environ['nova.context'], UUID_SERVER)
|
||||
|
||||
def test_get_security_group_by_instance_non_existing(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server_nonexistent)
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
return_server_nonexistent)
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.server_controller.index, self.req, '1')
|
||||
|
||||
def test_get_security_group_by_instance_invalid_id(self):
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.server_controller.index, self.req, 'invalid')
|
||||
with mock.patch('nova.compute.api.API.get',
|
||||
side_effect=exception.InstanceNotFound(
|
||||
instance_id='1')):
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.server_controller.index, self.req, '1')
|
||||
|
||||
def test_get_security_group_by_id(self):
|
||||
sg = security_group_template(id=2, rules=[])
|
||||
|
@ -720,65 +673,39 @@ class TestSecurityGroupsV21(test.TestCase):
|
|||
self.controller.index(req)
|
||||
|
||||
def test_associate_by_non_existing_security_group_name(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
self.assertEqual(return_server(None, '1'),
|
||||
nova.db.api.instance_get(None, '1'))
|
||||
body = dict(addSecurityGroup=dict(name='non-existing'))
|
||||
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.manager._addSecurityGroup, self.req, '1', body)
|
||||
|
||||
def test_associate_by_invalid_server_id(self):
|
||||
body = dict(addSecurityGroup=dict(name='test'))
|
||||
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.manager._addSecurityGroup, self.req,
|
||||
'invalid', body)
|
||||
|
||||
def test_associate_without_body(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
body = dict(addSecurityGroup=None)
|
||||
|
||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||
self.manager._addSecurityGroup, self.req, '1', body)
|
||||
|
||||
def test_associate_no_security_group_name(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
body = dict(addSecurityGroup=dict())
|
||||
|
||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||
self.manager._addSecurityGroup, self.req, '1', body)
|
||||
|
||||
def test_associate_security_group_name_with_whitespaces(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
body = dict(addSecurityGroup=dict(name=" "))
|
||||
|
||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||
self.manager._addSecurityGroup, self.req, '1', body)
|
||||
|
||||
def test_associate_non_existing_instance(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server_nonexistent)
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
return_server_nonexistent)
|
||||
body = dict(addSecurityGroup=dict(name="test"))
|
||||
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.manager._addSecurityGroup, self.req, '1', body)
|
||||
|
||||
def test_associate_non_running_instance(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_non_running_server)
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
return_non_running_server)
|
||||
self.stub_out('nova.db.api.security_group_get_by_name',
|
||||
return_security_group_without_instances)
|
||||
body = dict(addSecurityGroup=dict(name="test"))
|
||||
|
||||
self.manager._addSecurityGroup(self.req, UUID_SERVER, body)
|
||||
with mock.patch('nova.compute.api.API.get',
|
||||
side_effect=exception.InstanceNotFound(
|
||||
instance_id='1')):
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.manager._addSecurityGroup,
|
||||
self.req, '1', body)
|
||||
|
||||
def test_associate_already_associated_security_group_to_instance(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
return_server_by_uuid)
|
||||
self.stub_out('nova.db.api.security_group_get_by_name',
|
||||
return_security_group_by_name)
|
||||
body = dict(addSecurityGroup=dict(name="test"))
|
||||
|
@ -789,10 +716,6 @@ class TestSecurityGroupsV21(test.TestCase):
|
|||
|
||||
@mock.patch.object(nova.db.api, 'instance_add_security_group')
|
||||
def test_associate(self, mock_add_security_group):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
return_server_by_uuid)
|
||||
|
||||
self.stub_out('nova.db.api.security_group_get_by_name',
|
||||
return_security_group_without_instances)
|
||||
|
||||
|
@ -804,26 +727,13 @@ class TestSecurityGroupsV21(test.TestCase):
|
|||
mock.ANY)
|
||||
|
||||
def test_disassociate_by_non_existing_security_group_name(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
self.assertEqual(return_server(None, '1'),
|
||||
nova.db.api.instance_get(None, '1'))
|
||||
body = dict(removeSecurityGroup=dict(name='non-existing'))
|
||||
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.manager._removeSecurityGroup, self.req,
|
||||
UUID_SERVER, body)
|
||||
|
||||
def test_disassociate_by_invalid_server_id(self):
|
||||
self.stub_out('nova.db.api.security_group_get_by_name',
|
||||
return_security_group_by_name)
|
||||
body = dict(removeSecurityGroup=dict(name='test'))
|
||||
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.manager._removeSecurityGroup, self.req,
|
||||
'invalid', body)
|
||||
|
||||
def test_disassociate_without_body(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
body = dict(removeSecurityGroup=None)
|
||||
|
||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||
|
@ -831,7 +741,6 @@ class TestSecurityGroupsV21(test.TestCase):
|
|||
'1', body)
|
||||
|
||||
def test_disassociate_no_security_group_name(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
body = dict(removeSecurityGroup=dict())
|
||||
|
||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||
|
@ -839,7 +748,6 @@ class TestSecurityGroupsV21(test.TestCase):
|
|||
'1', body)
|
||||
|
||||
def test_disassociate_security_group_name_with_whitespaces(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
body = dict(removeSecurityGroup=dict(name=" "))
|
||||
|
||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||
|
@ -847,29 +755,17 @@ class TestSecurityGroupsV21(test.TestCase):
|
|||
'1', body)
|
||||
|
||||
def test_disassociate_non_existing_instance(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server_nonexistent)
|
||||
self.stub_out('nova.db.api.security_group_get_by_name',
|
||||
return_security_group_by_name)
|
||||
body = dict(removeSecurityGroup=dict(name="test"))
|
||||
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.manager._removeSecurityGroup,
|
||||
self.req, '1', body)
|
||||
|
||||
def test_disassociate_non_running_instance(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_non_running_server)
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
return_non_running_server)
|
||||
self.stub_out('nova.db.api.security_group_get_by_name',
|
||||
return_security_group_by_name)
|
||||
body = dict(removeSecurityGroup=dict(name="test"))
|
||||
|
||||
self.manager._removeSecurityGroup(self.req, UUID_SERVER, body)
|
||||
with mock.patch('nova.compute.api.API.get',
|
||||
side_effect=exception.InstanceNotFound(
|
||||
instance_id='1')):
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.manager._removeSecurityGroup,
|
||||
self.req, '1', body)
|
||||
|
||||
def test_disassociate_already_associated_security_group_to_instance(self):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
return_server_by_uuid)
|
||||
self.stub_out('nova.db.api.security_group_get_by_name',
|
||||
return_security_group_without_instances)
|
||||
body = dict(removeSecurityGroup=dict(name="test"))
|
||||
|
@ -880,9 +776,6 @@ class TestSecurityGroupsV21(test.TestCase):
|
|||
|
||||
@mock.patch.object(nova.db.api, 'instance_remove_security_group')
|
||||
def test_disassociate(self, mock_remove_sec_group):
|
||||
self.stub_out('nova.db.api.instance_get', return_server)
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
return_server_by_uuid)
|
||||
self.stub_out('nova.db.api.security_group_get_by_name',
|
||||
return_security_group_by_name)
|
||||
|
||||
|
|
Loading…
Reference in New Issue