You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.6 KiB

6 years ago
  1. import getpass
  2. import libcloud.security
  3. from libcloud.compute.providers import get_driver
  4. from libcloud.compute.types import Provider
  5. auth_username = 'fdai109'
  6. auth_url = 'https://192.168.72.40:5000'
  7. project_name = 'ai-netlab-pro'
  8. region_name = 'RegionOne'
  9. domain_name = "hsfulda"
  10. def main():
  11. print(auth_username)
  12. auth_password = getpass.getpass("Enter your OpenStack password:")
  13. libcloud.security.VERIFY_SSL_CERT = False
  14. provider = get_driver(Provider.OPENSTACK)
  15. conn = provider(auth_username,
  16. auth_password,
  17. ex_force_auth_url=auth_url,
  18. ex_force_auth_version='3.x_password',
  19. ex_tenant_name=project_name,
  20. ex_force_service_region=region_name,
  21. ex_domain_name=domain_name)
  22. images = conn.list_images()
  23. for image in images:
  24. print(image)
  25. flavors = conn.list_sizes()
  26. for flavor in flavors:
  27. print(flavor)
  28. image_id = '95718fad-2b33-469c-a256-15888f461f66'
  29. image = conn.get_image(image_id)
  30. print(image)
  31. flavor_id = '2'
  32. flavor = conn.ex_get_size(flavor_id)
  33. print(flavor)
  34. networks = conn.ex_list_networks()
  35. network = ''
  36. for net in networks:
  37. if net.name == "ai-netlab-pro-net":
  38. network = net
  39. instance_name = 'testing'
  40. testing_instance = conn.create_node(name=instance_name, image=image, size=flavor, networks={network})
  41. print(testing_instance)
  42. instances = conn.list_nodes()
  43. for instance in instances:
  44. print(instance)
  45. conn.destroy_node(testing_instance)
  46. if __name__ == '__main__':
  47. main()