ソースを参照

Fixed openstack tests for security group rules and instance types.

nuwan_ag 10 年 前
コミット
885cc347c3

+ 13 - 6
cloudbridge/providers/openstack/resources.py

@@ -146,7 +146,7 @@ class OpenStackInstanceType(BaseInstanceType):
     def family(self):
         # TODO: This may not be standardised accross openstack
         # but NeCTAR is using it this way
-        return self._os_flavor.extras.get('group')
+        return self.extra_data.get('flavor_class:name')
 
     @property
     def vcpus(self):
@@ -162,11 +162,16 @@ class OpenStackInstanceType(BaseInstanceType):
 
     @property
     def ephemeral_disk(self):
-        return self._os_flavor.get('OS-FLV-EXT-DATA:ephemeral', 0)
+        return 0 if self._os_flavor.ephemeral == 'N/A' else \
+            self._os_flavor.ephemeral
 
     @property
     def extra_data(self):
-        return self._os_flavor.extras
+        extras = self._os_flavor.get_keys()
+        extras['rxtx_factor'] = self._os_flavor.rxtx_factor
+        extras['swap'] = self._os_flavor.swap
+        extras['is_public'] = self._os_flavor.is_public
+        return extras
 
 
 class OpenStackInstance(BaseInstance):
@@ -530,7 +535,8 @@ class OpenStackSecurityGroup(BaseSecurityGroup):
     @property
     def rules(self):
         # Update SG object; otherwise, recenlty added rules do now show
-        self._security_group = self._provider.nova.security_groups.get(self._security_group)
+        self._security_group = self._provider.nova.security_groups.get(
+            self._security_group)
         return [OpenStackSecurityGroupRule(self._provider, r, self)
                 for r in self._security_group.rules]
 
@@ -585,7 +591,8 @@ class OpenStackSecurityGroup(BaseSecurityGroup):
 class OpenStackSecurityGroupRule(BaseSecurityGroupRule):
 
     def __init__(self, provider, rule, parent):
-        super(OpenStackSecurityGroupRule, self).__init__(provider, rule, parent)
+        super(OpenStackSecurityGroupRule, self).__init__(
+            provider, rule, parent)
 
     @property
     def ip_protocol(self):
@@ -601,7 +608,7 @@ class OpenStackSecurityGroupRule(BaseSecurityGroupRule):
 
     @property
     def cidr_ip(self):
-        return self._rule.get('cidr_ip', {}).get('cidr')
+        return self._rule.get('ip_range', {}).get('cidr')
 
     @property
     def group(self):

+ 7 - 2
test/test_provider_security_service.py

@@ -94,9 +94,14 @@ class ProviderSecurityServiceTestCase(ProviderTestBase):
                 self.provider.security.security_groups.delete(group_id=sg.id)
         ):
             sg.add_rule('tcp', 1111, 1111, '0.0.0.0/0')
+            found_rules = [rule for rule in sg.rules if
+                           rule.cidr_ip == '0.0.0.0/0' and
+                           rule.ip_protocol == 'tcp' and
+                           rule.from_port == 1111 and
+                           rule.to_port == 1111]
             self.assertTrue(
-                sg.rules[0].cidr_ip == '0.0.0.0/0',
-                "Wrong security group {0} CIDR range.".format(name))
+                len(found_rules) == 1,
+                "Expected rule not found in security group: {0}".format(name))
             self.assertTrue(
                 repr(sg.rules[0]) == ("<CBSecurityGroupRule: IP: {0}; from: "
                                       "{1}; to: {2}>"