Cameron & Ed | Remove unused arguments from OpenStack and EC2 rules in rule transformers
This commit is contained in:
parent
693c165a73
commit
9ef0e8cb01
@ -9,7 +9,7 @@ class EC2RuleTransformer:
|
||||
|
||||
def to_rule(self, ec2_rule):
|
||||
rule_args = deepcopy(vars(ec2_rule))
|
||||
del rule_args['grants']
|
||||
self._delete_unused_rule_args(rule_args)
|
||||
|
||||
if ec2_rule.grants[0].cidr_ip:
|
||||
rule_args['ip_range'] = ec2_rule.grants[0].cidr_ip
|
||||
@ -17,4 +17,8 @@ class EC2RuleTransformer:
|
||||
group_id = ec2_rule.grants[0].group_id
|
||||
rule_args['group_name'] = self.ec2_connection.get_all_security_groups(group_ids=group_id)[0].name
|
||||
|
||||
return Rule(**rule_args)
|
||||
return Rule(**rule_args)
|
||||
|
||||
def _delete_unused_rule_args(self, rule_args):
|
||||
del rule_args['grants']
|
||||
del rule_args['parent']
|
@ -7,9 +7,16 @@ class OpenstackRuleTransformer:
|
||||
def to_rule(self, openstack_rule):
|
||||
rule_args = deepcopy(openstack_rule)
|
||||
|
||||
self._delete_unused_rule_args(rule_args)
|
||||
|
||||
if 'cidr' in openstack_rule['ip_range']:
|
||||
rule_args['ip_range'] = openstack_rule['ip_range']['cidr']
|
||||
else:
|
||||
rule_args['group_name'] = openstack_rule['group']['name']
|
||||
|
||||
return Rule(**openstack_rule)
|
||||
return Rule(**rule_args)
|
||||
|
||||
def _delete_unused_rule_args(self, rule_args):
|
||||
del rule_args['group']
|
||||
del rule_args['parent_group_id']
|
||||
del rule_args['id']
|
@ -2,7 +2,7 @@ from collections import namedtuple
|
||||
|
||||
class FakeEC2RuleBuilder():
|
||||
|
||||
EC2Rule = namedtuple('EC2Rule', 'ip_protocol from_port to_port grants')
|
||||
EC2Rule = namedtuple('EC2Rule', 'ip_protocol from_port to_port grants parent')
|
||||
GroupOrCIDR = namedtuple('GroupOrCIDR', 'cidr_ip group_id')
|
||||
|
||||
def __init__(self):
|
||||
@ -11,6 +11,7 @@ class FakeEC2RuleBuilder():
|
||||
self.to_port = '3333'
|
||||
self.ip_range = '0.0.0.0/0'
|
||||
self.allowed_security_group_id = None
|
||||
self.parent = None
|
||||
|
||||
@staticmethod
|
||||
def an_ec2_rule():
|
||||
@ -40,4 +41,4 @@ class FakeEC2RuleBuilder():
|
||||
|
||||
def build(self):
|
||||
grants = [self.GroupOrCIDR(self.ip_range, self.allowed_security_group_id)]
|
||||
return self.EC2Rule(self.ip_protocol, self.from_port, self.to_port, grants)
|
||||
return self.EC2Rule(self.ip_protocol, self.from_port, self.to_port, grants, self.parent)
|
||||
|
22
tests/unit/test_openstack_rule_transformer.py
Normal file
22
tests/unit/test_openstack_rule_transformer.py
Normal file
@ -0,0 +1,22 @@
|
||||
import unittest
|
||||
|
||||
from nova.virt.ec2.openstack_rule_transformer import OpenstackRuleTransformer
|
||||
|
||||
|
||||
class TestEC2RuleTransformer(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.openstack_rule_transformer = OpenstackRuleTransformer()
|
||||
|
||||
def test_should_copy_to_port(self):
|
||||
openstack_rule = {
|
||||
'ip_protocol': 'abc',
|
||||
'from_port': 123,
|
||||
'to_port': 456,
|
||||
'group': {},
|
||||
'parent_group_id': 55,
|
||||
'ip_range': {'cidr': '9.8.7.6/55'},
|
||||
'id': 18
|
||||
}
|
||||
rule = self.openstack_rule_transformer.to_rule(openstack_rule)
|
||||
self.assertEqual(rule.to_port, openstack_rule['to_port'])
|
Loading…
x
Reference in New Issue
Block a user