예제 #1
0
class VMWareESXConnection(driver.ComputeDriver):
    """The ESX host connection object."""
    def __init__(self,
                 host_ip,
                 host_username,
                 host_password,
                 api_retry_count,
                 scheme="https"):
        super(VMWareESXConnection, self).__init__()
        session = VMWareAPISession(host_ip,
                                   host_username,
                                   host_password,
                                   api_retry_count,
                                   scheme=scheme)
        self._vmops = VMWareVMOps(session)

    def init_host(self, host):
        """Do the initialization that needs to be done."""
        # FIXME(sateesh): implement this
        pass

    def list_instances(self):
        """List VM instances."""
        return self._vmops.list_instances()

    def spawn(self,
              context,
              instance,
              image_meta,
              network_info,
              block_device_mapping=None):
        """Create VM instance."""
        self._vmops.spawn(context, instance, image_meta, network_info)

    def snapshot(self, context, instance, name):
        """Create snapshot from a running VM instance."""
        self._vmops.snapshot(context, instance, name)

    def reboot(self, instance, network_info, reboot_type):
        """Reboot VM instance."""
        self._vmops.reboot(instance, network_info)

    def destroy(self,
                instance,
                network_info,
                block_device_info=None,
                cleanup=True):
        """Destroy VM instance."""
        self._vmops.destroy(instance, network_info)

    def pause(self, instance):
        """Pause VM instance."""
        self._vmops.pause(instance)

    def unpause(self, instance):
        """Unpause paused VM instance."""
        self._vmops.unpause(instance)

    def suspend(self, instance):
        """Suspend the specified instance."""
        self._vmops.suspend(instance)

    def resume(self, instance):
        """Resume the suspended VM instance."""
        self._vmops.resume(instance)

    def get_info(self, instance_name):
        """Return info about the VM instance."""
        return self._vmops.get_info(instance_name)

    def get_diagnostics(self, instance):
        """Return data about VM diagnostics."""
        return self._vmops.get_info(instance)

    def get_console_output(self, instance):
        """Return snapshot of console."""
        return self._vmops.get_console_output(instance)

    def get_ajax_console(self, instance):
        """Return link to instance's ajax console."""
        return self._vmops.get_ajax_console(instance)

    def attach_volume(self, connection_info, instance_name, mountpoint):
        """Attach volume storage to VM instance."""
        pass

    def detach_volume(self, connection_info, instance_name, mountpoint):
        """Detach volume storage to VM instance."""
        pass

    def get_console_pool_info(self, console_type):
        """Get info about the host on which the VM resides."""
        return {
            'address': FLAGS.vmwareapi_host_ip,
            'username': FLAGS.vmwareapi_host_username,
            'password': FLAGS.vmwareapi_host_password
        }

    def update_available_resource(self, ctxt, host):
        """This method is supported only by libvirt."""
        return

    def host_power_action(self, host, action):
        """Reboots, shuts down or powers up the host."""
        pass

    def set_host_enabled(self, host, enabled):
        """Sets the specified host's ability to accept new instances."""
        pass

    def plug_vifs(self, instance, network_info):
        """Plug VIFs into networks."""
        self._vmops.plug_vifs(instance, network_info)

    def unplug_vifs(self, instance, network_info):
        """Unplug VIFs from networks."""
        self._vmops.unplug_vifs(instance, network_info)
예제 #2
0
class VMWareESXConnection(driver.ComputeDriver):
    """The ESX host connection object."""

    def __init__(self, host_ip, host_username, host_password,
                 api_retry_count, scheme="https"):
        super(VMWareESXConnection, self).__init__()
        session = VMWareAPISession(host_ip, host_username, host_password,
                                   api_retry_count, scheme=scheme)
        self._vmops = VMWareVMOps(session)

    def init_host(self, host):
        """Do the initialization that needs to be done."""
        # FIXME(sateesh): implement this
        pass

    def list_instances(self):
        """List VM instances."""
        return self._vmops.list_instances()

    def spawn(self, instance, network_info, block_device_mapping=None):
        """Create VM instance."""
        self._vmops.spawn(instance, network_info)

    def snapshot(self, instance, name):
        """Create snapshot from a running VM instance."""
        self._vmops.snapshot(instance, name)

    def reboot(self, instance, network_info):
        """Reboot VM instance."""
        self._vmops.reboot(instance, network_info)

    def destroy(self, instance, network_info):
        """Destroy VM instance."""
        self._vmops.destroy(instance, network_info)

    def pause(self, instance, callback):
        """Pause VM instance."""
        self._vmops.pause(instance, callback)

    def unpause(self, instance, callback):
        """Unpause paused VM instance."""
        self._vmops.unpause(instance, callback)

    def suspend(self, instance, callback):
        """Suspend the specified instance."""
        self._vmops.suspend(instance, callback)

    def resume(self, instance, callback):
        """Resume the suspended VM instance."""
        self._vmops.resume(instance, callback)

    def get_info(self, instance_id):
        """Return info about the VM instance."""
        return self._vmops.get_info(instance_id)

    def get_diagnostics(self, instance):
        """Return data about VM diagnostics."""
        return self._vmops.get_info(instance)

    def get_console_output(self, instance):
        """Return snapshot of console."""
        return self._vmops.get_console_output(instance)

    def get_ajax_console(self, instance):
        """Return link to instance's ajax console."""
        return self._vmops.get_ajax_console(instance)

    def attach_volume(self, instance_name, device_path, mountpoint):
        """Attach volume storage to VM instance."""
        pass

    def detach_volume(self, instance_name, mountpoint):
        """Detach volume storage to VM instance."""
        pass

    def get_console_pool_info(self, console_type):
        """Get info about the host on which the VM resides."""
        return {'address': FLAGS.vmwareapi_host_ip,
                'username': FLAGS.vmwareapi_host_username,
                'password': FLAGS.vmwareapi_host_password}

    def update_available_resource(self, ctxt, host):
        """This method is supported only by libvirt."""
        return

    def set_host_enabled(self, host, enabled):
        """Sets the specified host's ability to accept new instances."""
        pass

    def plug_vifs(self, instance, network_info):
        """Plugs in VIFs to networks."""
        self._vmops.plug_vifs(instance, network_info)
예제 #3
0
class VMWareESXConnection(driver.ComputeDriver):
    """The ESX host connection object."""

    def __init__(self, host_ip, host_username, host_password,
                 api_retry_count, scheme="https"):
        super(VMWareESXConnection, self).__init__()
        session = VMWareAPISession(host_ip, host_username, host_password,
                                   api_retry_count, scheme=scheme)
        self._vmops = VMWareVMOps(session)

    def init_host(self, host):
        """Do the initialization that needs to be done."""
        # FIXME(sateesh): implement this
        pass

    def list_instances(self):
        """List VM instances."""
        return self._vmops.list_instances()

    def spawn(self, instance):
        """Create VM instance."""
        self._vmops.spawn(instance)

    def snapshot(self, instance, name):
        """Create snapshot from a running VM instance."""
        self._vmops.snapshot(instance, name)

    def reboot(self, instance):
        """Reboot VM instance."""
        self._vmops.reboot(instance)

    def destroy(self, instance):
        """Destroy VM instance."""
        self._vmops.destroy(instance)

    def pause(self, instance, callback):
        """Pause VM instance."""
        self._vmops.pause(instance, callback)

    def unpause(self, instance, callback):
        """Unpause paused VM instance."""
        self._vmops.unpause(instance, callback)

    def suspend(self, instance, callback):
        """Suspend the specified instance."""
        self._vmops.suspend(instance, callback)

    def resume(self, instance, callback):
        """Resume the suspended VM instance."""
        self._vmops.resume(instance, callback)

    def get_info(self, instance_id):
        """Return info about the VM instance."""
        return self._vmops.get_info(instance_id)

    def get_diagnostics(self, instance):
        """Return data about VM diagnostics."""
        return self._vmops.get_info(instance)

    def get_console_output(self, instance):
        """Return snapshot of console."""
        return self._vmops.get_console_output(instance)

    def get_ajax_console(self, instance):
        """Return link to instance's ajax console."""
        return self._vmops.get_ajax_console(instance)

    def attach_volume(self, instance_name, device_path, mountpoint):
        """Attach volume storage to VM instance."""
        pass

    def detach_volume(self, instance_name, mountpoint):
        """Detach volume storage to VM instance."""
        pass

    def get_console_pool_info(self, console_type):
        """Get info about the host on which the VM resides."""
        return {'address': FLAGS.vmwareapi_host_ip,
                'username': FLAGS.vmwareapi_host_username,
                'password': FLAGS.vmwareapi_host_password}

    def update_available_resource(self, ctxt, host):
        """This method is supported only by libvirt."""
        return