test_azure_volume_service.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. import azure_test.helpers as helpers
  2. from azure_test.helpers import ProviderTestBase
  3. from cloudbridge.cloud.interfaces import VolumeState
  4. class AzureVolumeServiceTestCase(ProviderTestBase):
  5. @helpers.skipIfNoService(['block_store.volumes'])
  6. def test_azure_volume_create_and_get(self):
  7. volume = self.provider.block_store.volumes.create(
  8. "MyVolume", 1, description='My volume')
  9. print("Create Volume - " + str(volume))
  10. self.assertTrue(
  11. volume.name == "MyVolume", "Volume name should be MyVolume")
  12. self.assertIsNotNone(volume.description)
  13. self.assertIsNotNone(volume.name)
  14. self.assertIsNotNone(volume.size)
  15. self.assertIsNotNone(volume.zone_id)
  16. self.assertIsNone(volume.source)
  17. self.assertIsNone(volume.attachments)
  18. self.assertIsNotNone(volume.create_time)
  19. volume.name = 'newname'
  20. volume = self.provider.block_store.volumes.get(
  21. volume.id)
  22. volume.description = 'My Volume desc'
  23. print("Get Volume - " + str(volume))
  24. self.assertTrue(
  25. volume.description == "My Volume desc",
  26. "Volume description should be My Volume desc")
  27. volume.delete()
  28. @helpers.skipIfNoService(['block_store.volumes'])
  29. def test_azure_volume_delete(self):
  30. volume = self.provider.block_store.volumes.create("MyTestVolume", 1)
  31. volume.refresh()
  32. print("Create Volume - " + str(volume))
  33. self.assertTrue(volume.name == "MyTestVolume",
  34. "Volume name should be MyVolume")
  35. volume.delete()
  36. volume1_id = "MyVolume"
  37. delete_volume = volume.delete()
  38. self.assertEqual(delete_volume, False)
  39. volume.refresh()
  40. self.assertEqual(volume.state, VolumeState.UNKNOWN)
  41. volume1 = self.provider.block_store.volumes.get(volume1_id)
  42. self.assertTrue(
  43. volume1 is None, "Volume still exists")
  44. @helpers.skipIfNoService(['block_store.volumes'])
  45. def test_azure_volume_attach_and_detach(self):
  46. volume = self.provider.block_store.volumes.create(
  47. "attach", 1, description='My volume')
  48. self.assertTrue(
  49. volume.name == "attach", "Volume name should be MyVolume")
  50. instance_id = 'VM1'
  51. attached = volume.attach(instance_id)
  52. self.assertEqual(attached, True)
  53. self.assertIsNotNone(volume.attachments)
  54. instance_id = instance_id + '1'
  55. attach_volume = volume.attach(instance_id)
  56. self.assertEqual(attach_volume, False)
  57. detached = volume.detach()
  58. self.assertEqual(detached, True)
  59. detached = volume.detach()
  60. self.assertEqual(detached, False)
  61. volume.delete()
  62. @helpers.skipIfNoService(['block_store.volumes'])
  63. def test_azure_volume_create_snapshot(self):
  64. volume = self.provider.block_store.volumes.create(
  65. "MyVolume", 1, description='My volume')
  66. self.assertTrue(
  67. volume.name == "MyVolume", "Volume name should be MyVolume")
  68. snapshot = volume.create_snapshot("MySnap")
  69. self.assertTrue(
  70. snapshot is not None, "Snapshot not created")
  71. volume.delete()
  72. @helpers.skipIfNoService(['block_store.volumes'])
  73. def test_azure_volume_get_ifNotExist(self):
  74. volume_id = "MyVolume123"
  75. volume = self.provider.block_store.volumes.get(volume_id)
  76. self.assertTrue(
  77. volume is None, "Volume should not be available")
  78. @helpers.skipIfNoService(['block_store.volumes'])
  79. def test_azure_volume_find(self):
  80. volumes = self.provider.block_store.volumes.find("Volume1")
  81. print(len(volumes))
  82. print('after find')
  83. self.assertTrue(
  84. len(volumes) == 1, "Volume should not be available")
  85. self.assertIsNotNone(volumes[0].source)
  86. @helpers.skipIfNoService(['block_store.volumes'])
  87. def test_azure_volume_find_ifNotExist(self):
  88. volumes = self.provider.block_store.volumes.find("Volume123")
  89. self.assertTrue(
  90. len(volumes) == 0, "Volume should not be available")
  91. @helpers.skipIfNoService(['block_store.volumes'])
  92. def test_azure_volume_list(self):
  93. volume_list = self.provider.block_store.volumes.list()
  94. print("Volume List - " + str(volume_list))
  95. self.assertEqual(
  96. len(volume_list), 2)