Source code for ecl.dedicated_hypervisor.v1._proxy

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

from ecl.dedicated_hypervisor.v1 import license as _license
from ecl.dedicated_hypervisor.v1 import license_type as _license_type
from ecl.dedicated_hypervisor.v1 import server as _server
from ecl.dedicated_hypervisor.v1 import usage as _usage
from ecl import proxy2


[docs]class Proxy(proxy2.BaseProxy):
[docs] def servers(self, details=True, **query): """ List your Dedicated Hypervisor servers information. :param query: Query parameters to select results :return: list of the servers :rtype: list of :class:`~ecl.dedicated_hypervisor.v1.server.Server` """ server = _server.ServerDetail if details else _server.Server return list(self._list(server, **query))
[docs] def get_server(self, server_id): """ Shows your Dedicated Hypervisor server information. :param string server_id: ID for the server. :return: One :class:`~ecl.dedicated_hypervisor.v1.server.Sever` instance. :rtype: :class:`~ecl.dedicated_hypervisor.v1.server.Server` """ return self._get(_server.Server, server_id)
[docs] def create_server(self, name, networks, image, flavor, admin_pass=None, description=None, availability_zone=None, metadata=None): """ Create additional Dedicated Hypervisor server. :param string name: Name of your Dedicated Hypervisor/Baremetal server as a string. :param string description: Description of your Dedicated Hypervisor server as a string. :param array networks: If it is specified greater than two, default gateway is first network. :param string flavor: The flavor reference for the desired flavor for your Dedicated Hypervisor server. Specify as an UUID or full URL. Parameters of id or links -> href in api_list_flavors page can be used as flavorRef parameter. :param string admin_pass: Password for the administrator. :param string image: The image reference for the desired image for your Dedicated Hypervisor server. Specify as an UUID or full URL. :param string availability_zone: The availability zone name in which to launch the server. If omit this parameter, target availability_zone is random. :param dict metadata: Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each. :return: The results of server createion. :rtype: :class:`~ecl.dedicated_hypervisor.v1.server.Server` """ body = {} body["name"] = name body["networks"] = networks body["imageRef"] = image body["flavorRef"] = flavor if admin_pass: body["adminPass"] = admin_pass if description: body["description"] = description if availability_zone: body["availability_zone"] = availability_zone if metadata: body["metadata"] = metadata return self._create(_server.Server, **body)
[docs] def delete_server(self, server_id, ignore_missing=True): """ Deletes a specified Dedicated Hypervisor server. You can delete server when specified server status is ACTIVE or ERROR status. :param string server_id: ID for the server. :param bool ignore_missing: When set to ``False`` :class:`~ecl.exceptions.ResourceNotFound` will be raised when the server does not exist. When set to ``True``, no exception will be set when attempting to delete a nonexistent server :returns: ``None`` """ return self._delete(_server.Server, server_id, ignore_missing=ignore_missing)
[docs] def license_types(self): """ Lists your Guest Image license on Dedicated Hypervisor servers information. :return: list of the license types. :rtype: list of :class:`~ecl.dedicated_hypervisor.v1.license_type.LicenseType` """ return list(self._list(_license_type.LicenseType, paginated=False))
[docs] def find_license_type(self, name_or_id, ignore_missing=True): """Find a single license type :param name_or_id: The name or ID of a license type. :param bool ignore_missing: When set to ``False`` :class:`~ecl.exceptions.ResourceNotFound` will be raised when the resource does not exist. When set to ``True``, None will be returned when attempting to find a nonexistent resource. :returns: One :class:`~ecl.dedicated_hypervisor.v1.license_type.LicenseType` or None """ return self._find(_license_type.LicenseType, name_or_id, ignore_missing=ignore_missing)
[docs] def licenses(self, license_type=None): """ Lists your Guest Image license key information. :return: list of the licenses. :rtype: list of :class:`~ecl.dedicated_hypervisor.v1.license.License` """ return list(self._list(_license.License, license_type=license_type, paginated=False))
[docs] def create_license(self, license_type): """ Create additional Guest Image license key. You can create additional license key only for the licenses which `has_license_key` property is True. :param string license_type: Name of your Guest Image license type as a string. :return: The results of license createion. :rtype: :class:`~ecl.dedicated_hypervisor.v1.license.License` """ lic = _license.License() return lic.create(self.session, license_type)
[docs] def delete_license(self, license_id, ignore_missing=True): """ Delete a specified Guest Image license key. :param string license_id: ID for the license :param bool ignore_missing: When set to ``False`` :class:`~ecl.exceptions.ResourceNotFound` will be raised when the server does not exist. When set to ``True``, no exception will be set when attempting to delete a nonexistent server :returns: ``None`` """ return self._delete(_license.License, license_id, ignore_missing=ignore_missing)
[docs] def usages(self): """ Lists your Guest Image usage information. :return: list of the usages :rtype: list of :class:`~ecl.dedicated_hypervisor.v1.usage.Usage` """ return list(self._list(_usage.Usage))
[docs] def get_usage_histories(self, history_id, From=None, to=None): """ Shows your Guest Image usage history information. :param string history_id: ID for the history. :param dateTime From: date to list usage from. `YYYY-MM-DD hh:mm:ss` . :param dateTime to: date to list usage to. month of the parameter must be the same as `from` . `YYYY-MM-DD hh:mm:ss` . :return: :class:`~ecl.dedicated_hypervisor.v1.usage.Usage` """ query = {} if From: query["from"] = From if to: query["to"] = to usage = _usage.Usage() return usage.get_usage_histories(session=self.session, history_id=history_id, **query)
[docs] def add_license(self, server_id, license_types, vm_id=None, vm_name=None): """Add license to VM on hyper visor :param string server_id: ID of server that have VM to add license :param array license_types: Array of license type's Name :param string vm_id: VM ID, Specify either vm_id or vm_name :param string vm_name: VM Name, Specify either vm_id or vm_name :returns: dict of job_id """ server = _server.ServerAction() return server.add_license(self.session, server_id, license_types, vm_id=vm_id, vm_name=vm_name)
[docs] def get_add_license_job(self, server_id, job_id): """Get add license job status :param string server_id: Server ID :param string job_id: Job ID :returns: Job object """ server = _server.ServerAction() return server.get_add_license_job(self.session, server_id, job_id)