test_integration_azure_instance_service.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. import uuid
  2. import azure_integration_test.helpers as helpers
  3. from azure_integration_test.helpers import ProviderTestBase
  4. class AzureIntegrationInstanceServiceTestCase(ProviderTestBase):
  5. @helpers.skipIfNoService(['compute.instances'])
  6. def test_azure_instance_service(self):
  7. instance_name = 'CbAzure-test6-{0}'.format(uuid.uuid4().hex[:6])
  8. image_name = 'CbAzure-img-{0}'.format(uuid.uuid4().hex[:6])
  9. security_group_name = 'CbAzure-sg-{0}'.format(uuid.uuid4().hex[:6])
  10. network_name = 'CbAzure-net-{0}'.format(uuid.uuid4().hex[:6])
  11. subnet_name = 'CbAzure-subnet-{0}'.format(uuid.uuid4().hex[:6])
  12. key_pair_name = 'CbAzure-keypair-{0}'.format(uuid.uuid4().hex[:6])
  13. image_id = 'CbTest-Img'
  14. img = self.provider.compute.images.get(image_id)
  15. self.assertIsNotNone(img)
  16. key_pair = self.provider.security.\
  17. key_pairs.create(key_pair_name)
  18. self.assertIsNotNone(key_pair)
  19. with open('{0}.pem'.format(key_pair_name), 'w') as f:
  20. f.write(key_pair.material)
  21. inst_type = [t for t in self.provider.compute.instance_types.list()
  22. if t.name == 'Standard_DS2_v2'][0]
  23. net = self.provider.network.create(network_name)
  24. self.assertIsNotNone(net)
  25. subnet = net.create_subnet('10.0.0.0/23', name=subnet_name)
  26. self.assertIsNotNone(subnet)
  27. sg = self.provider.security.security_groups.\
  28. create(security_group_name,
  29. 'A security group used by CloudBridge', '')
  30. self.assertIsNotNone(sg)
  31. sg.add_rule('tcp', 22, 22, '0.0.0.0/0')
  32. new_security_group_name = 'CbAzure-sg-{0}'.format(uuid.uuid4().hex[:6])
  33. new_sg = self.provider.security.security_groups. \
  34. create(new_security_group_name,
  35. 'A security group used by CloudBridge', '')
  36. self.assertIsNotNone(new_sg)
  37. new_sg.add_rule('*', 0, 65535, '*')
  38. # lc = self.provider.compute.instances.create_launch_config()
  39. #
  40. # volume = self.provider.block_store.\
  41. # volumes.create('CbAzure-Vol-{0}'.
  42. # format(uuid.uuid4().hex[:6]), 30)
  43. #
  44. # volume.wait_till_ready()
  45. #
  46. # self.assertIsNotNone(volume)
  47. #
  48. # snapshot = volume.\
  49. # create_snapshot('CbAzure-Snap-{0}'.format(uuid.uuid4().hex[:6]))
  50. #
  51. # snapshot.wait_till_ready()
  52. #
  53. # self.assertIsNotNone(snapshot)
  54. #
  55. # lc.add_volume_device(
  56. # is_root=False,
  57. # source=volume,
  58. # size=volume.size,
  59. # delete_on_terminate=True)
  60. #
  61. # lc.add_volume_device(
  62. # is_root=False,
  63. # source=snapshot,
  64. # size=snapshot.size,
  65. # delete_on_terminate=True)
  66. #
  67. # lc.add_volume_device(
  68. # is_root=False,
  69. # source=None,
  70. # size=40,
  71. # delete_on_terminate=True)
  72. inst = self.provider.compute.instances.create(
  73. name=instance_name, image=img, instance_type=inst_type,
  74. subnet=subnet, zone=None,
  75. key_pair=key_pair, security_groups=[sg, new_sg],
  76. user_data=None,
  77. launch_config=None)
  78. inst.wait_till_ready()
  79. floating_ip = self.provider.network.create_floating_ip()
  80. self.assertIsNotNone(floating_ip)
  81. inst.add_floating_ip(floating_ip.public_ip)
  82. inst.refresh()
  83. self.assertIsNotNone(inst.public_ips[0])
  84. img = inst.create_image(image_name)
  85. self.assertIsNotNone(img)
  86. inst.terminate()
  87. subnet.delete()
  88. net.delete()
  89. sg.delete()
  90. img.delete()