""" General interface for using the CIRCLE portal API It should be implemented for using other providers e. g. OpenStack """ class InstanceInterface: def create_base_vm(self, name, flavor, networks, block_device_mapping): raise NotImplementedError def create_vm_from_template(self, name, image, flavor, networks): raise NotImplementedError def create_multiple_vm_from_template(self, image, flavor, networks, number): raise NotImplementedError def get_vm(self, name_or_id): raise NotImplementedError def start_vm(self, name_or_id): raise NotImplementedError def stop_vm(self, name_or_id): raise NotImplementedError def suspend_vm(self, name_or_id): raise NotImplementedError def wake_up_vm(self, name_or_id): raise NotImplementedError def shut_off_vm(self, name_or_id): raise NotImplementedError def reboot_vm(self, name_or_id): raise NotImplementedError def reset_vm(self, name_or_id): raise NotImplementedError def destroy_vm(self, name_or_id): raise NotImplementedError def get_status(self, name_or_id): raise NotImplementedError def list_all_vm(self): raise NotImplementedError def install_ssh_key(self, name_or_id, key): raise NotImplementedError def get_vnc_console(self, name_or_id): raise NotImplementedError def change_password(self, name_or_id): raise NotImplementedError def get_password(self, name_or_id): raise NotImplementedError def resize_vm(self, name_or_id): raise NotImplementedError def create_template(self, name_or_id, template_name): raise NotImplementedError def attach_volume(self, name_or_id, amount): raise NotImplementedError