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_groups.SecurityGroupController, [], [])
|
||||||
|
|
||||||
|
|
||||||
|
security_group_rules_controller = functools.partial(_create_controller,
|
||||||
|
security_groups.SecurityGroupRulesController, [], [])
|
||||||
|
|
||||||
|
|
||||||
server_controller = functools.partial(_create_controller,
|
server_controller = functools.partial(_create_controller,
|
||||||
servers.ServersController,
|
servers.ServersController,
|
||||||
[
|
[
|
||||||
@@ -616,6 +620,12 @@ ROUTE_LIST = (
|
|||||||
('/os-quota-sets/{id}/defaults', {
|
('/os-quota-sets/{id}/defaults', {
|
||||||
'GET': [quota_set_controller, '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', {
|
('/os-security-groups', {
|
||||||
'GET': [security_group_controller, 'index'],
|
'GET': [security_group_controller, 'index'],
|
||||||
'POST': [security_group_controller, 'create']
|
'POST': [security_group_controller, 'create']
|
||||||
|
@@ -35,7 +35,6 @@ from nova.virt import netutils
|
|||||||
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
ALIAS = 'os-security-groups'
|
|
||||||
ATTRIBUTE_NAME = 'security_groups'
|
ATTRIBUTE_NAME = 'security_groups'
|
||||||
|
|
||||||
|
|
||||||
@@ -497,22 +496,6 @@ class SecurityGroupsOutputController(wsgi.Controller):
|
|||||||
self._extend_servers(req, list(resp_obj.obj['servers']))
|
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'
|
# 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.
|
# parameter as this is placed to handle scheduler_hint extension for V2.1.
|
||||||
def server_create(server_dict, create_kwargs, body_deprecated_param):
|
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()
|
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):
|
class SecurityGroupsJsonTest(test_servers.ServersSampleBase):
|
||||||
sample_dir = 'os-security-groups'
|
sample_dir = 'os-security-groups'
|
||||||
USE_NEUTRON = True
|
USE_NEUTRON = True
|
||||||
@@ -77,6 +100,12 @@ class SecurityGroupsJsonTest(test_servers.ServersSampleBase):
|
|||||||
fake_get_instance_security_groups)
|
fake_get_instance_security_groups)
|
||||||
self.stub_out(path + 'create_security_group',
|
self.stub_out(path + 'create_security_group',
|
||||||
fake_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):
|
def _get_create_subs(self):
|
||||||
return {
|
return {
|
||||||
@@ -139,3 +168,14 @@ class SecurityGroupsJsonTest(test_servers.ServersSampleBase):
|
|||||||
'security-group-remove-post-req', subs)
|
'security-group-remove-post-req', subs)
|
||||||
self.assertEqual(202, response.status_code)
|
self.assertEqual(202, response.status_code)
|
||||||
self.assertEqual('', response.text)
|
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
|
baremetal_nodes = nova.api.openstack.compute.baremetal_nodes:BareMetalNodes
|
||||||
extension_info = nova.api.openstack.compute.extension_info:ExtensionInfo
|
extension_info = nova.api.openstack.compute.extension_info:ExtensionInfo
|
||||||
security_group_default_rules = nova.api.openstack.compute.security_group_default_rules:SecurityGroupDefaultRules
|
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
|
versions = nova.api.openstack.compute.versionsV21:Versions
|
||||||
volumes = nova.api.openstack.compute.volumes:Volumes
|
volumes = nova.api.openstack.compute.volumes:Volumes
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user