def copy_sdi(user, copy_from, new_name): client = Client() post_data = { "user": user, "name": new_name, "desdcription": "this is the description", "remove_persistence": 0, "deep_copy": 0, } api_url = f'https://{client.url}/api/sdis/{copy_from}/copy/' response = requests.post(api_url, headers=client.headers, data=post_data, verify=False) exists = 'An SDI with this name already exists.' copying = 'The source SDI is currently being copied.' while response.status_code == 400: if response.json()[0]['message'] == exists: print("The SDI allready exists") break if (response.json()[0]['message'] == copying): print("The SDI is still Copying") time.sleep(2) response = requests.post(api_url, headers=client.headers, data=post_data, verify=False) return response
def start_machine(sdi_id, machine_id): client = Client() api_url = f'https://{client.url}/api/sdis/{sdi_id}/machines/{machine_id}/start/' response = requests.put(api_url, headers=client.headers, data={}, verify=False) return response
def create_user_single_use_login_token(user_id): client = Client() post_data = { "user": user_id } api_url = f'https://{client.url}/api/accounts/login/token/' response = requests.post(api_url, headers=client.headers, data=post_data, verify=False) return response
def create_user(username, password, tenancy=1): client = Client() post_data = { "username": username, "password": password, "tenancy": tenancy, "is_active": 1 } api_url = f'https://{client.url}/api/accounts/users/' response = requests.post(api_url, headers=client.headers, data=post_data, verify=False) return response
def get_sdi_status(sdi_id): client = Client() api_url = f'https://{client.url}/api/sdis/{sdi_id}' response = requests.get(api_url, headers=client.headers, verify=False).json() state = "" status = response.get('status') if status: state = response['status']['state'] if state == 0: state = "stopped" elif state == 1: state = "starting" elif state == 2: state = "running" elif state == 3: state = "stopping" else: state = "error" return {'state': state}
def create_machine(sdi_id, name, memory, sockets, cores, role): client = Client() api_url = f'https://{client.url}/api/sdis/{sdi_id}/machines/' post_data = { "name": name, "description": "", "memory": memory, "sockets": sockets, "cores": cores, "threads": 1, "role": role, "boot_device": "disk", "boot_menu": 0, "cpu_type": "qemu64", "video_card": "vmware", "bios_manufacturer": "", } response = requests.post(api_url, headers=client.headers, data=post_data, verify=False) return response
def start_sdi(sdi_id): client = Client() api_url = f'https://{client.url}/api/sdis/{sdi_id}/start' response = requests.post(api_url, headers=client.headers, verify=False) return response
def get_sdi_by_user(user_pk): client = Client() api_url = f'https://{client.url}/api/sdis/{user_pk}' response = requests.get(api_url, headers=client.headers, verify=False) return response
def get_sdi_persistent_ports(sdi_id): client = Client() api_url = f'https://{client.url}/api/sdis/{sdi_id}/ports/' response = requests.get(api_url, headers=client.headers, verify=False) return response
def get_sdi_overview(sdi_id): client = Client() api_url = f'https://{client.url}/api/sdis/{sdi_id}/overview' response = requests.get(api_url, headers=client.headers, verify=False) return response
def get_machine_details(sdi_id, machine_id): client = Client() api_url = f'https://{client.url}/api/sdis/{sdi_id}/machines/{machine_id}/' response = requests.get(api_url, headers=client.headers, verify=False) return response
def delete_sdi(sdi_id): client = Client() api_url = f'https://{client.url}/api/sdis/{sdi_id}' response = requests.delete(api_url, headers=client.headers, verify=False) return response
def get_tenancies(): client = Client() api_url = f'https://{client.url}/api/accounts/tenancies/' response = requests.get(api_url, headers=client.headers, verify=False) return response
def get_user_single_use_login_token(): client = Client() api_url = f'https://{client.url}/api/accounts/login/token/' response = requests.get(api_url, headers=client.headers, verify=False) return response
def get_user_disks(user_id): client = Client() api_url = f'https://{client.url}/api/accounts/users/{user_id}/disks/' response = requests.get(api_url, headers=client.headers, verify=False) return response