test_integration_azure_security_group.py 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import json
  2. import unittest
  3. import uuid
  4. from cloudbridge.cloud.interfaces import TestMockHelperMixin
  5. from azure_integration_test.helpers import ProviderTestBase
  6. import azure_integration_test.helpers as helpers
  7. class AzureIntegrationSecurityServiceTestCase(ProviderTestBase):
  8. @helpers.skipIfNoService(['security.security_groups'])
  9. def test_azure_security_group(self):
  10. sg_name = '{0}'.format(uuid.uuid4())
  11. print("SG guid - " + sg_name)
  12. listBeforeCreate = self.provider.security.security_groups.list()
  13. print("Length Before create - " + str(len(listBeforeCreate)))
  14. netId = "/subscriptions/7904d702-e01c-4826-8519-f5a25c866a96/resourceGroups/CloudBridge-Azure'\
  15. '/providers/Microsoft.Network/virtualNetworks/SampleNetwork"
  16. sg = self.provider.security.security_groups.create(name=sg_name, description="testCreateSecGroup",
  17. network_id=netId)
  18. self.assertEqual(sg_name, sg.name)
  19. listAfterCreate = self.provider.security.security_groups.list()
  20. print("Length After create - " + str(len(listAfterCreate)))
  21. self.assertEqual(len(listAfterCreate), len(listBeforeCreate) + 1)
  22. get = self.provider.security.security_groups.get(
  23. "/subscriptions/7904d702-e01c-4826-8519-f5a25c866a96/resourceGroups/CloudBridge-Azure/providers'\
  24. '/Microsoft.Network/networkSecurityGroups/sampleSG")
  25. print("Get SG - " + str(get))
  26. print(str(get.rules))
  27. self.assertEqual(get.name, "sampleSG")
  28. get_notfound = self.provider.security.security_groups.get(
  29. "/subscriptions/7904d702-e01c-4826-8519-f5a25c866a96/resourceGroups/cloudbridge-azure'\
  30. '/providers/Microsoft.Network/networkSecurityGroups/SecgrupDontFindMe")
  31. self.assertEqual(get_notfound, None)
  32. find_exists_list = self.provider.security.security_groups.find(sg_name)
  33. for sg in find_exists_list:
  34. self.assertTrue(sg_name in sg.name)
  35. print("Find - " + str(find_exists_list))
  36. print("Find Total Results- " + str(find_exists_list.total_results))
  37. self.assertTrue(find_exists_list.total_results > 0)
  38. find_not_exists_list = self.provider.security.security_groups.find('dontfindme')
  39. self.assertTrue(find_not_exists_list.total_results == 0)
  40. cb = listAfterCreate.data[0]
  41. lenBeforeCreateRule = len(cb.rules)
  42. cb.add_rule('tcp', '1111', '2222', '0.0.0.0/0')
  43. lenAfterCreateRule = len(cb.rules)
  44. self.assertEqual(lenAfterCreateRule, lenBeforeCreateRule + 1)
  45. print(str(cb.rules))
  46. get_rule = cb.get_rule('tcp', '1111', '2222', '0.0.0.0/0')
  47. print("Get Rule - " + str(get_rule))
  48. self.assertEqual(str(get_rule), "<CBSecurityGroupRule: IP: tcp; from: 1111; to: 2222; grp: None>")
  49. get_rule_notfound = cb.get_rule('*', '25', '1', '1')
  50. self.assertEqual(str(get_rule_notfound), 'None')
  51. rule_json = cb.rules[1].to_json()
  52. print("Rule json - " + str(rule_json))
  53. self.assertEqual(rule_json[2:9], "cidr_ip")
  54. sg_json = cb.to_json()
  55. print("SG json - " + str(sg_json))
  56. self.assertEqual(sg_json[2:4], "id")
  57. with self.assertRaises(Exception):
  58. cb.rules[1].delete()
  59. listBeforeDeleteFound = self.provider.security.security_groups.list()
  60. sg_id = "/subscriptions/7904d702-e01c-4826-8519-f5a25c866a96/resourceGroups/cloudbridge-azure/providers'\
  61. '/Microsoft.Network/networkSecurityGroups/" + sg_name
  62. sg_del = self.provider.security.security_groups.delete(sg_id)
  63. listAfterDeleteFound = self.provider.security.security_groups.list()
  64. print("Length before delete - " + str(len(listBeforeDeleteFound)))
  65. print("Length after delete - " + str(len(listAfterDeleteFound)))
  66. self.assertEqual(len(listAfterDeleteFound), len(listBeforeDeleteFound) - 1)
  67. sg_id = "/subscriptions/7904d702-e01c-4826-8519-f5a25c866a96/resourceGroups/cloudbridge-azure/providers'\
  68. '/Microsoft.Network/networkSecurityGroups/sg5"
  69. sg_del_notfound = self.provider.security.security_groups.delete(sg_id)
  70. listAfterDeleteNotFound = self.provider.security.security_groups.list()
  71. self.assertEqual(len(listAfterDeleteNotFound), len(listAfterDeleteFound))