Просмотр исходного кода

Tests for SG Create and SG rules create and delete added

jatin 9 лет назад
Родитель
Сommit
01e59b68d6
2 измененных файлов с 79 добавлено и 3 удалено
  1. 45 1
      cloudbridge/cloud/providers/azure/mock_azure_client.py
  2. 34 2
      test/test_azure_security_service.py

+ 45 - 1
cloudbridge/cloud/providers/azure/mock_azure_client.py

@@ -1,18 +1,41 @@
 from azure.mgmt.network.models import NetworkSecurityGroup
 from azure.mgmt.network.models import NetworkSecurityGroup
 from azure.storage.blob.models import Container
 from azure.storage.blob.models import Container
 from azure.mgmt.resource.resources.models import ResourceGroup
 from azure.mgmt.resource.resources.models import ResourceGroup
-
+from azure.mgmt.network.models import SecurityRule
 
 
 class MockAzureClient:
 class MockAzureClient:
+    sg_rule1 = SecurityRule(protocol='*', source_address_prefix='100', destination_address_prefix="*", access="Allow",
+                            direction="Inbound")
+    sg_rule1.name = "rule1"
+    sg_rule1.id = "r1"
+    sg_rule1.destination_port_range = "*"
+    sg_rule1.source_port_range = "25-1"
+
+    sg_rule2 = SecurityRule(protocol='*', source_address_prefix='100', destination_address_prefix="*", access="Allow",
+                            direction="Inbound")
+    sg_rule2.name = "rule2"
+    sg_rule2.id = "r2"
+    sg_rule2.destination_port_range = "*"
+    sg_rule2.source_port_range = "25-2"
+
     sec_gr1 = NetworkSecurityGroup()
     sec_gr1 = NetworkSecurityGroup()
     sec_gr1.name = "sec_group1"
     sec_gr1.name = "sec_group1"
     sec_gr1.id = "sg1"
     sec_gr1.id = "sg1"
+    sec_gr1.default_security_rules = [sg_rule1]
+    sec_gr1.security_rules = [sg_rule2]
+
     sec_gr2 = NetworkSecurityGroup()
     sec_gr2 = NetworkSecurityGroup()
     sec_gr2.name = "sec_group2"
     sec_gr2.name = "sec_group2"
     sec_gr2.id = "sg2"
     sec_gr2.id = "sg2"
+    sec_gr2.default_security_rules = [sg_rule1]
+    sec_gr2.security_rules = [sg_rule2]
+
     sec_gr3 = NetworkSecurityGroup()
     sec_gr3 = NetworkSecurityGroup()
     sec_gr3.name = "sec_group3"
     sec_gr3.name = "sec_group3"
     sec_gr3.id = "sg3"
     sec_gr3.id = "sg3"
+    sec_gr3.default_security_rules = [sg_rule1]
+    sec_gr3.security_rules = [sg_rule2]
+
     security_groups = [sec_gr1, sec_gr2, sec_gr3]
     security_groups = [sec_gr1, sec_gr2, sec_gr3]
 
 
     container1 = Container()
     container1 = Container()
@@ -27,6 +50,16 @@ class MockAzureClient:
     def __init__(self, provider):
     def __init__(self, provider):
         self._provider = provider
         self._provider = provider
 
 
+
+    def create_security_group(self, name, parameters):
+        sg_create = NetworkSecurityGroup()
+        sg_create.name = name
+        sg_create.id = name
+        sg_create.default_security_rules = [self.sg_rule1]
+        sg_create.security_rules = [self.sg_rule2]
+        self.security_groups.append(sg_create)
+        return sg_create
+
     def list_security_group(self):
     def list_security_group(self):
         return self.security_groups
         return self.security_groups
 
 
@@ -37,6 +70,17 @@ class MockAzureClient:
                 return True
                 return True
         return False
         return False
 
 
+    def create_security_group_rule(self, security_group, rule_name, parameters):
+        new_sg_rule = SecurityRule(protocol='*',source_address_prefix='100',destination_address_prefix="*",access="Allow",direction = "Inbound")
+        new_sg_rule.name = "rule1"
+        new_sg_rule.id = "r1"
+        new_sg_rule.destination_port_range = "*"
+        new_sg_rule.source_port_range = "25-1"
+        return new_sg_rule
+
+    def delete_security_group_rule(self, name, security_group):
+        pass
+
     def get_resource_group(self, resource_group_name):
     def get_resource_group(self, resource_group_name):
         return self.rg
         return self.rg
 
 

+ 34 - 2
test/test_azure_security_service.py

@@ -13,6 +13,14 @@ class AzureSecurityServiceTestCase(ProviderTestBase):
         super(AzureSecurityServiceTestCase, self).__init__(
         super(AzureSecurityServiceTestCase, self).__init__(
             methodName=methodName, provider=provider)
             methodName=methodName, provider=provider)
 
 
+    @helpers.skipIfNoService(['security.security_groups'])
+    def test_azure_security_group_create(self):
+        name = "testCreateSecGroup3"
+        sg = self.provider.security.security_groups.create(
+            name=name, description=name, network_id="")
+        print("Create( " + "Name-" + sg.name + "  Id-" + sg.id + " Rules - " + str(sg.rules) + " )")
+        self.assertEqual(name, sg.name)
+
     @helpers.skipIfNoService(['security.security_groups'])
     @helpers.skipIfNoService(['security.security_groups'])
     def test_azure_security_group_list(self):
     def test_azure_security_group_list(self):
         sgl = self.provider.security.security_groups.list()
         sgl = self.provider.security.security_groups.list()
@@ -20,7 +28,7 @@ class AzureSecurityServiceTestCase(ProviderTestBase):
         for group in sgl:
         for group in sgl:
             print("List( " + "Name-" + group.name + "  Id-" + group.id + " Rules - " + " )")
             print("List( " + "Name-" + group.name + "  Id-" + group.id + " Rules - " + " )")
         self.assertTrue(
         self.assertTrue(
-            len(sgl) == 2,
+            len(sgl) == 3,
             "Count should be 3")
             "Count should be 3")
 
 
     @helpers.skipIfNoService(['security.security_groups'])
     @helpers.skipIfNoService(['security.security_groups'])
@@ -48,4 +56,28 @@ class AzureSecurityServiceTestCase(ProviderTestBase):
     @helpers.skipIfNoService(['security.security_groups'])
     @helpers.skipIfNoService(['security.security_groups'])
     def test_azure_security_group_delete_IdNotExist(self):
     def test_azure_security_group_delete_IdNotExist(self):
         sg = self.provider.security.security_groups.delete("sg5")
         sg = self.provider.security.security_groups.delete("sg5")
-        self.assertEqual(sg, False)
+        self.assertEqual(sg, False)
+
+    @helpers.skipIfNoService(['security.security_groups'])
+    def test_azure_security_group_rule_create(self):
+        list = self.provider.security.security_groups.list()
+        cb = list.data[0]
+        rules = cb.rules
+        for rule in rules:
+            print(str(rule))
+        print("Before creating Rule -  " + str(rules[0]) + " length - " + str(len(rules)))
+        cb.add_rule('*', '25', '100', '*')
+        rules = cb.rules
+        print("After creating Rule -  " + str(rules[0]) + " length - " + str(len(rules)))
+        self.assertEqual(len(rules), 3)
+
+    @helpers.skipIfNoService(['security.security_groups'])
+    def test_azure_security_group_rule_delete(self):
+        list = self.provider.security.security_groups.list()
+        cb = list.data[0]
+        rules = cb.rules
+        print("Before deleting Rule -  " + str(rules[0]) + " length - " + str(len(rules)))
+        rules[1].delete()
+        rules = cb.rules
+        print("After deleting Rule -  " + str(rules[0]) + " length - " + str(len(rules)))
+        self.assertEqual(len(rules), 2)