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

Find Instance and Tests for list, get and find Instances

jatin 9 лет назад
Родитель
Сommit
b447430a06

+ 38 - 0
azure_integration_test/test_integration_azure_instance_service.py

@@ -0,0 +1,38 @@
+import azure_integration_test.helpers as helpers
+
+from azure_integration_test.helpers import ProviderTestBase
+
+
+class AzureIntegrationInstanceServiceTestCase(ProviderTestBase):
+    @helpers.skipIfNoService(['compute.images'])
+    def test_azure_instance_service(self):
+        instances_list = self.provider.compute.instances.list()
+        print("List Instances - " + str(instances_list))
+        print("Properties - ")
+        print("Id - " + str(instances_list[0].id))
+        print("name - " + str(instances_list[0].name))
+        print("public_ips - " + str(instances_list[0].public_ips))
+        print("private_ips - " + str(instances_list[0].private_ips))
+        print("instance_type_id - " + str(instances_list[0].instance_type_id))
+        print("instance_type - " + str(instances_list[0].instance_type))
+        print("image_id - " + str(instances_list[0].image_id))
+        print("zone_id - " + str(instances_list[0].zone_id))
+        print("security_groups - " +
+              str(instances_list[0].security_groups))
+        print("security_group_ids - " +
+              str(instances_list[0].security_group_ids))
+        print("key_pair_name - " + str(instances_list[0].key_pair_name))
+        print("state - " + str(instances_list[0].state))
+
+        print("Count - " + str(len(instances_list)))
+        self.assertTrue(len(instances_list) > 0)
+
+        instance_get = self.provider.compute.instances. \
+            get(instances_list[0].id)
+        print("Get Instance - " + str(instance_get))
+        self.assertIsNotNone(instance_get)
+
+        instance_find = self.provider.compute.instances. \
+            find(instances_list[0].name)
+        print("Find Instance - " + str(instance_find))
+        self.assertTrue(len(instance_find) > 0)

+ 35 - 0
azure_test/test_azure_instance_service.py

@@ -0,0 +1,35 @@
+import azure_test.helpers as helpers
+from azure_test.helpers import ProviderTestBase
+
+
+class AzureInstanceServiceTestCase(ProviderTestBase):
+    @helpers.skipIfNoService(['security.security_groups'])
+    def test_azure_instances_list(self):
+        instances_list = self.provider.compute.instances.list()
+        print("List Instances - " + str(instances_list))
+        self.assertTrue(instances_list.total_results > 0)
+
+    @helpers.skipIfNoService(['security.security_groups'])
+    def test_azure_instances_get_exist(self):
+        instance_get = self.provider.compute.instances. \
+            get('/subscriptions/7904d702-e01c-4826-8519-f5a25c866a96/'
+                'resourceGroups/cloudbridge-azure/providers/'
+                'Microsoft.Compute/virtualMachines/VM1')
+        print("Get Instance - " + str(instance_get))
+        self.assertIsNotNone(instance_get)
+
+    @helpers.skipIfNoService(['security.security_groups'])
+    def test_azure_instances_get_Not_exist(self):
+        instance_get = self.provider.compute.instances. \
+            get('/subscriptions/7904d702-e01c-4826-8519-f5a25c866a96/'
+                'resourceGroups/cloudbridge-azure/providers/'
+                'Microsoft.Compute/virtualMachines/VM_dontfindme')
+        print("Get Instance Not Exist - " + str(instance_get))
+        self.assertIsNone(instance_get)
+
+    @helpers.skipIfNoService(['security.security_groups'])
+    def test_azure_instances_find(self):
+        instance_find = self.provider.compute.instances. \
+            find('VM1')
+        print("Find Instance - " + str(instance_find))
+        self.assertIsNotNone(instance_find)

+ 2 - 2
cloudbridge/cloud/providers/azure/mock_azure_client.py

@@ -184,11 +184,11 @@ class MockAzureClient:
     snapshots = [snapshot1, snapshot2]
     snapshots = [snapshot1, snapshot2]
     vm1 = VirtualMachine(location='eastus')
     vm1 = VirtualMachine(location='eastus')
     vm1.name = 'VM1'
     vm1.name = 'VM1'
-
     vm1.id = '/subscriptions/7904d702-e01c-4826-8519-f5a25c866a96'\
     vm1.id = '/subscriptions/7904d702-e01c-4826-8519-f5a25c866a96'\
              '/resourceGroups/CLOUDBRIDGE-AZURE'\
              '/resourceGroups/CLOUDBRIDGE-AZURE'\
              '/providers/Microsoft.Compute/virtualMachines/VM1'
              '/providers/Microsoft.Compute/virtualMachines/VM1'
     vm1.storage_profile = StorageProfile()
     vm1.storage_profile = StorageProfile()
+    vm1.tags = {'Name': 'VM1'}
     data_disk_id = '/subscriptions'\
     data_disk_id = '/subscriptions'\
                    '/7904d702-e01c-4826-8519-f5a25c866a96' \
                    '/7904d702-e01c-4826-8519-f5a25c866a96' \
                    '/resourceGroups/CLOUDBRIDGE-AZURE' \
                    '/resourceGroups/CLOUDBRIDGE-AZURE' \
@@ -200,7 +200,7 @@ class MockAzureClient:
 
 
     vm2 = VirtualMachine(location='eastus')
     vm2 = VirtualMachine(location='eastus')
     vm2.name = 'VM2'
     vm2.name = 'VM2'
-
+    vm2.tags = {'Name': 'VM2'}
     vm2.id = '/subscriptions/7904d702-e01c-4826-8519-f5a25c866a96' \
     vm2.id = '/subscriptions/7904d702-e01c-4826-8519-f5a25c866a96' \
              '/resourceGroups/CLOUDBRIDGE-AZURE' \
              '/resourceGroups/CLOUDBRIDGE-AZURE' \
              '/providers/Microsoft.Compute/virtualMachines/VM2'
              '/providers/Microsoft.Compute/virtualMachines/VM2'

+ 9 - 2
cloudbridge/cloud/providers/azure/services.py

@@ -374,8 +374,15 @@ class AzureInstanceService(BaseInstanceService):
             return None
             return None
 
 
     def find(self, name, limit=None, marker=None):
     def find(self, name, limit=None, marker=None):
-        raise NotImplementedError("AzureInstanceService"
-                                  " not implemented this method")
+        """
+         Searches for a instance by a given list of attributes.
+        """
+        filters = {'Name': name}
+        cb_instances = [AzureInstance(self.provider, instance)
+                        for instance in azure_helpers.filter(
+                self.provider.azure_client.list_instances(), filters)]
+        return ClientPagedResultList(self.provider, cb_instances,
+                                     limit=limit, marker=marker)
 
 
 
 
 class AzureImageService(BaseImageService):
 class AzureImageService(BaseImageService):