Merge "Use plain routes list for os-security-group-rules instead of stevedore"
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"security_group_rule": {
|
||||
"parent_group_id": "21111111-1111-1111-1111-111111111112",
|
||||
"ip_protocol": "tcp",
|
||||
"from_port": 22,
|
||||
"to_port": 22,
|
||||
"cidr": "10.0.0.0/24"
|
||||
}
|
||||
}
|
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"security_group_rule": {
|
||||
"from_port": 22,
|
||||
"group": {},
|
||||
"id": "00000000-0000-0000-0000-000000000000",
|
||||
"ip_protocol": "tcp",
|
||||
"ip_range": {
|
||||
"cidr": "10.0.0.0/24"
|
||||
},
|
||||
"parent_group_id": "11111111-1111-1111-1111-111111111111",
|
||||
"to_port": 22
|
||||
}
|
||||
}
|
@@ -253,6 +253,10 @@ security_group_controller = functools.partial(_create_controller,
|
||||
security_groups.SecurityGroupController, [], [])
|
||||
|
||||
|
||||
security_group_rules_controller = functools.partial(_create_controller,
|
||||
security_groups.SecurityGroupRulesController, [], [])
|
||||
|
||||
|
||||
server_controller = functools.partial(_create_controller,
|
||||
servers.ServersController,
|
||||
[
|
||||
@@ -616,6 +620,12 @@ ROUTE_LIST = (
|
||||
('/os-quota-sets/{id}/defaults', {
|
||||
'GET': [quota_set_controller, 'defaults']
|
||||
}),
|
||||
('/os-security-group-rules', {
|
||||
'POST': [security_group_rules_controller, 'create']
|
||||
}),
|
||||
('/os-security-group-rules/{id}', {
|
||||
'DELETE': [security_group_rules_controller, 'delete']
|
||||
}),
|
||||
('/os-security-groups', {
|
||||
'GET': [security_group_controller, 'index'],
|
||||
'POST': [security_group_controller, 'create']
|
||||
|
@@ -35,7 +35,6 @@ from nova.virt import netutils
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
ALIAS = 'os-security-groups'
|
||||
ATTRIBUTE_NAME = 'security_groups'
|
||||
|
||||
|
||||
@@ -497,22 +496,6 @@ class SecurityGroupsOutputController(wsgi.Controller):
|
||||
self._extend_servers(req, list(resp_obj.obj['servers']))
|
||||
|
||||
|
||||
class SecurityGroups(extensions.V21APIExtensionBase):
|
||||
"""Security group support."""
|
||||
name = "SecurityGroups"
|
||||
alias = ALIAS
|
||||
version = 1
|
||||
|
||||
def get_controller_extensions(self):
|
||||
return []
|
||||
|
||||
def get_resources(self):
|
||||
secgrp_rules_ext = extensions.ResourceExtension(
|
||||
'os-security-group-rules',
|
||||
controller=SecurityGroupRulesController())
|
||||
return [secgrp_rules_ext]
|
||||
|
||||
|
||||
# NOTE(gmann): This function is not supposed to use 'body_deprecated_param'
|
||||
# parameter as this is placed to handle scheduler_hint extension for V2.1.
|
||||
def server_create(server_dict, create_kwargs, body_deprecated_param):
|
||||
|
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"security_group_rule": {
|
||||
"parent_group_id": "21111111-1111-1111-1111-111111111112",
|
||||
"ip_protocol": "tcp",
|
||||
"from_port": 22,
|
||||
"to_port": 22,
|
||||
"cidr": "10.0.0.0/24"
|
||||
}
|
||||
}
|
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"security_group_rule": {
|
||||
"from_port": 22,
|
||||
"group": {},
|
||||
"ip_protocol": "tcp",
|
||||
"to_port": 22,
|
||||
"parent_group_id": "11111111-1111-1111-1111-111111111111",
|
||||
"ip_range": {
|
||||
"cidr": "10.0.0.0/24"
|
||||
},
|
||||
"id": "00000000-0000-0000-0000-000000000000"
|
||||
}
|
||||
}
|
@@ -58,6 +58,29 @@ def fake_create_security_group(self, context, name, description):
|
||||
return fake_get()
|
||||
|
||||
|
||||
def fake_create_security_group_rule(self, context, security_group, new_rule):
|
||||
return {
|
||||
'from_port': 22,
|
||||
'to_port': 22,
|
||||
'cidr': '10.0.0.0/24',
|
||||
'id': '00000000-0000-0000-0000-000000000000',
|
||||
'parent_group_id': '11111111-1111-1111-1111-111111111111',
|
||||
'protocol': 'tcp',
|
||||
'group_id': None
|
||||
}
|
||||
|
||||
|
||||
def fake_remove_rules(self, context, security_group, rule_ids):
|
||||
pass
|
||||
|
||||
|
||||
def fake_get_rule(self, context, id):
|
||||
return {
|
||||
'id': id,
|
||||
'parent_group_id': '11111111-1111-1111-1111-111111111111'
|
||||
}
|
||||
|
||||
|
||||
class SecurityGroupsJsonTest(test_servers.ServersSampleBase):
|
||||
sample_dir = 'os-security-groups'
|
||||
USE_NEUTRON = True
|
||||
@@ -77,6 +100,12 @@ class SecurityGroupsJsonTest(test_servers.ServersSampleBase):
|
||||
fake_get_instance_security_groups)
|
||||
self.stub_out(path + 'create_security_group',
|
||||
fake_create_security_group)
|
||||
self.stub_out(path + 'create_security_group_rule',
|
||||
fake_create_security_group_rule)
|
||||
self.stub_out(path + 'remove_rules',
|
||||
fake_remove_rules)
|
||||
self.stub_out(path + 'get_rule',
|
||||
fake_get_rule)
|
||||
|
||||
def _get_create_subs(self):
|
||||
return {
|
||||
@@ -139,3 +168,14 @@ class SecurityGroupsJsonTest(test_servers.ServersSampleBase):
|
||||
'security-group-remove-post-req', subs)
|
||||
self.assertEqual(202, response.status_code)
|
||||
self.assertEqual('', response.text)
|
||||
|
||||
def test_security_group_rules_create(self):
|
||||
response = self._do_post('os-security-group-rules',
|
||||
'security-group-rules-post-req', {})
|
||||
self._verify_response('security-group-rules-post-resp', {}, response,
|
||||
200)
|
||||
|
||||
def test_security_group_rules_remove(self):
|
||||
response = self._do_delete(
|
||||
'os-security-group-rules/00000000-0000-0000-0000-000000000000')
|
||||
self.assertEqual(202, response.status_code)
|
||||
|
@@ -77,7 +77,6 @@ nova.api.v21.extensions =
|
||||
baremetal_nodes = nova.api.openstack.compute.baremetal_nodes:BareMetalNodes
|
||||
extension_info = nova.api.openstack.compute.extension_info:ExtensionInfo
|
||||
security_group_default_rules = nova.api.openstack.compute.security_group_default_rules:SecurityGroupDefaultRules
|
||||
security_groups = nova.api.openstack.compute.security_groups:SecurityGroups
|
||||
versions = nova.api.openstack.compute.versionsV21:Versions
|
||||
volumes = nova.api.openstack.compute.volumes:Volumes
|
||||
|
||||
|
Reference in New Issue
Block a user