# This file is for testing the openstack api access from interface_openstack.implementation.vm.instance import OSVirtualMachineManager from interface_openstack.interface.vm.resources import BlockDeviceMapping, Flavor import openstack import os # from interface_openstack.implementation.network.OpenstackFloatingIPManager import OpenstackFloatingIPManager # from interface_openstack.implementation.network.OpenstackNetworkManager import OpenstackNetworkManager # from interface_openstack.implementation.network.OpenstackPortManager import OpenstackPortManager # from interface_openstack.implementation.network.OpenstackRouterManager import OpenstackRouterManager # from interface_openstack.implementation.network.OpenstackSubnetManager import OpenstackSubnetManager # openstack.enable_logging(debug=True) CONNECTION = { "auth_url": os.getenv("OS_AUTH_URL"), "project_id": os.getenv("OS_PROJECT_ID"), "project_name": os.getenv("OS_PROJECT_NAME"), "user_domain_name": os.getenv("OS_USER_DOMAIN_NAME", "Default"), "user_domain_id": os.getenv("OS_USER_DOMAIN_ID", "default"), "project_domain_id": os.getenv("OS_PROJECT_DOMAIN_ID", "default"), "username": os.getenv("OS_USERNAME"), "password": os.getenv("OS_PASSWORD"), "region_name": os.getenv("OS_REGION_NAME"), "interface": os.getenv("OS_INTERFACE"), "identity_api_version": os.getenv("OS_IDENTITY_API_VERSION"), } block_dev_map = BlockDeviceMapping( boot_index=0, uuid="da51253f-867c-472d-8ce0-81e7b7126d60", source_type="image", volume_size=10, destination_type="volume", delete_on_termination=True, disk_bus="scsi" ) networks = [{"uuid": "c03d0d4b-413e-4cc6-9ebe-c0b5ca0dac3a"}] interface = OSVirtualMachineManager(CONNECTION) print('#'*40) # interface.create_vm_from_template('new_server', resource, "cirros-0.4.0-x86_64-disk") # interface.stop_vm('a6bc504f-a422-4492-b429-e5dad2df12f4') # server = interface.openstack.compute.get_server("8e94c162-f8ed-4872-b9e5-50bf33040b5b") # # print(server) # print(interface.delete_flavor("flavorTest")) for flavor in interface.list_flavors(): print(flavor.JSON()) for vm in interface.list_all_vm(): print(vm.JSON()) print("*" * 50) # print(interface.create_base_vm("BaseTest", "2", networks, block_dev_map).JSON()) print("*********TEST SERVER**********") # print(interface.get_vm("dd529142-9836-4f36-8288-8fc2c62ed185").JSON()) # # print(interface.openstack.get_server("dd529142-9836-4f36-8288-8fc2c62ed185")) print(interface.create_vm_from_template(name="Print test", flavor="84", networks=[{"uuid": "c7f81071-49e3-47af-8235-99d21997e238"}], image="04451eac-7017-4f6c-a2ea-897c6dd3db04", )) # print("*********TEST SUSPEND**********") # interface.suspend_vm("fb91a363-e23b-4fb6-8770-357509b753da") # # interface.detach_volume("8e94c162-f8ed-4872-b9e5-50bf33040b5b", # "83d4f11a-f6a8-4f50-8a95-8f5016604780") # print(interface.convert_server_to_instance(server).JSON()) # print(interface.openstack.compute.get_server("8e94c162-f8ed-4872-b9e5-50bf33040b5b")) # print(server.JSON()) # print(interface.get_vnc_console("8e94c162-f8ed-4872-b9e5-50bf33040b5b")) # print(interface.convert_server_to_instance(server)) # print(interface.get_vnc_console("New test")) # interface.create_template("New test", "test_template") # interface.create_vm_from_template("test_template", resource, [{"uuid": "c03d0d4b-413e-4cc6-9ebe-c0b5ca0dac3a"}]) # interface.resize_vm(server, resource) # interface.reboot_vm(server.id) # interface.reset_vm(server.id) # interface.suspend_vm(server.id) # interface.wake_up_vm(server.id) # interface.destroy_vm(server.id) # ============================================================================== # Network test # ============================================================================== # os = openstack.connect(cloud='openstack') # # router_manager = OpenstackRouterManager(os) # network_manager = OpenstackNetworkManager(os) # subnet_manager = OpenstackSubnetManager(os) # port_manager = OpenstackPortManager(os) # floating_ip_manager = OpenstackFloatingIPManager(os) # # ''' # Network setup steps: # - Create inner network # - Create subnet for inner network # - Create router # - Add public network to router as gateway # - Add inner subnet to router as interface # - Add interface (or port?) to vm # - Get the port of the vm # - Create floating ip to public network # - Associate floating ip and vm port # ''' # # #router = router_manager.create() # router = router_manager.get('3ee87bcd-b1b5-4e14-86a1-ce691bd3e5a2') # # print('Router:') # print('\t%s' % router) # # #network = network_manager.create() # public_network = network_manager.get('3b349c93-8b2c-4abd-b8ce-22b7db4cca98') # inner_network = network_manager.get('8df0d7ab-7d56-4496-aca0-317af66b3ebc') # # print('Network:') # print('\tPublic: %s' % public_network) # print('\tInner: %s' % inner_network) # # #subnet = subnet_manager.create(network.id, 4, '10.34.0.0/16') # public_subnet = subnet_manager.get('8a7e05f8-6358-48f7-9104-990d350425a0') # # create(inner_network.id, 4, '10.0.0.0/24') # inner_subnet = subnet_manager.get('34911571-c929-4433-b4e6-305fcb585a91') # # print('Subnet:') # print('\tPublic: %s' % public_subnet) # print('\tInner: %s' % inner_subnet) # # vm_port = port_manager.get('85202d6d-7aa0-44bc-a5eb-78b0519066c5') # inner # # print('Port:') # print('\tVM: %s' % vm_port) # # #floating_ip = floating_ip_manager.create(public_network.id) # floating_ip = floating_ip_manager.get('fe1e329f-aedb-4b3e-a649-9fec8eb3ece5') # # print('Floating IP:') # print('\tFloating IP: %s' % floating_ip) # # # print(router_manager.add_interface(router.id, inner_subnet.id)) # TODO: fix error msg # print(router_manager.add_gateway(router.id, public_network.id)) # TODO: fix it! # # print(floating_ip_manager.update(floating_ip.id, { # 'port_id': vm_port.id # }))