diff options
author | Takashi Kajinami <tkajinam@redhat.com> | 2021-04-23 22:17:55 +0900 |
---|---|---|
committer | Takashi Kajinami <tkajinam@redhat.com> | 2021-05-05 09:18:31 +0000 |
commit | 99bdd78d950977b11effba08cf3a76e5b87bf9b4 (patch) | |
tree | 5a48d4acc75f15a726f89f288c1cf243bf9f1769 /ceilometer/compute | |
parent | 122c55591fa90989e66fb803d9a5aac2db8a7211 (diff) | |
download | ceilometer-99bdd78d950977b11effba08cf3a76e5b87bf9b4.tar.gz |
Remove Xen support
This change removes the Xen support which was deprecared during
the previous cycle[1].
[1] fd0a561bea956f1b62f6ca5a27e762cb76ad9a90
Change-Id: If1675468095cbc1b9c065edb6b086e7f4afa2f3e
Diffstat (limited to 'ceilometer/compute')
-rw-r--r-- | ceilometer/compute/virt/inspector.py | 6 | ||||
-rw-r--r-- | ceilometer/compute/virt/libvirt/utils.py | 4 | ||||
-rw-r--r-- | ceilometer/compute/virt/xenapi/__init__.py | 0 | ||||
-rw-r--r-- | ceilometer/compute/virt/xenapi/inspector.py | 192 |
4 files changed, 3 insertions, 199 deletions
diff --git a/ceilometer/compute/virt/inspector.py b/ceilometer/compute/virt/inspector.py index dbbc7281..921bc944 100644 --- a/ceilometer/compute/virt/inspector.py +++ b/ceilometer/compute/virt/inspector.py @@ -27,8 +27,7 @@ OPTS = [ cfg.StrOpt('hypervisor_inspector', default='libvirt', help='Inspector to use for inspecting the hypervisor layer. ' - 'Known inspectors are libvirt, hyperv, vsphere ' - 'and xenapi. Note that xenapi has been deprecated.'), + 'Known inspectors are libvirt, hyperv, and vsphere.'), ] @@ -270,9 +269,6 @@ class Inspector(object): def get_hypervisor_inspector(conf): - if conf.hypervisor_inspector == 'xenapi': - LOG.warning('Support for XenServer/Xen Cloud Platform has been ' - 'deprecated and will be removed in a future release') try: namespace = 'ceilometer.compute.virt' mgr = driver.DriverManager(namespace, diff --git a/ceilometer/compute/virt/libvirt/utils.py b/ceilometer/compute/virt/libvirt/utils.py index 79684ea3..e3aa4b6a 100644 --- a/ceilometer/compute/virt/libvirt/utils.py +++ b/ceilometer/compute/virt/libvirt/utils.py @@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__) OPTS = [ cfg.StrOpt('libvirt_type', default='kvm', - choices=['kvm', 'lxc', 'qemu', 'uml', 'xen'], + choices=['kvm', 'lxc', 'qemu', 'uml'], help='Libvirt domain type.'), cfg.StrOpt('libvirt_uri', default='', @@ -38,7 +38,7 @@ OPTS = [ '(which is dependent on libvirt_type).'), ] -LIBVIRT_PER_TYPE_URIS = dict(uml='uml:///system', xen='xen:///', lxc='lxc:///') +LIBVIRT_PER_TYPE_URIS = dict(uml='uml:///system', lxc='lxc:///') # We don't use the libvirt constants in case of libvirt is not available diff --git a/ceilometer/compute/virt/xenapi/__init__.py b/ceilometer/compute/virt/xenapi/__init__.py deleted file mode 100644 index e69de29b..00000000 --- a/ceilometer/compute/virt/xenapi/__init__.py +++ /dev/null diff --git a/ceilometer/compute/virt/xenapi/inspector.py b/ceilometer/compute/virt/xenapi/inspector.py deleted file mode 100644 index bcb8bdb8..00000000 --- a/ceilometer/compute/virt/xenapi/inspector.py +++ /dev/null @@ -1,192 +0,0 @@ -# Copyright 2014 Intel -# -# 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. -"""Implementation of Inspector abstraction for XenAPI.""" - -from os_xenapi.client import session as xenapi_session -from os_xenapi.client import XenAPI -from oslo_config import cfg -from oslo_log import log as logging -from oslo_utils import units - -from ceilometer.compute.pollsters import util -from ceilometer.compute.virt import inspector as virt_inspector -from ceilometer.i18n import _ - -LOG = logging.getLogger(__name__) - -opt_group = cfg.OptGroup(name='xenapi', - title='Options for XenAPI') - -OPTS = [ - cfg.StrOpt('connection_url', - deprecated_for_removal=True, - deprecated_reason='Support for XenServer/Xen Cloud Platform ' - 'has been deprecated', - help='URL for connection to XenServer/Xen Cloud Platform.'), - cfg.StrOpt('connection_username', - default='root', - deprecated_for_removal=True, - deprecated_reason='Support for XenServer/Xen Cloud Platform ' - 'has been deprecated', - help='Username for connection to XenServer/Xen Cloud ' - 'Platform.'), - cfg.StrOpt('connection_password', - deprecated_for_removal=True, - deprecated_reason='Support for XenServer/Xen Cloud Platform ' - 'has been deprecated', - help='Password for connection to XenServer/Xen Cloud Platform.', - secret=True), -] - - -class XenapiException(virt_inspector.InspectorException): - pass - - -def get_api_session(conf): - url = conf.xenapi.connection_url - username = conf.xenapi.connection_username - password = conf.xenapi.connection_password - if not url or password is None: - raise XenapiException(_('Must specify connection_url, and ' - 'connection_password to use')) - - try: - session = xenapi_session.XenAPISession(url, username, password, - originator="ceilometer") - LOG.debug("XenAPI session is created successfully, %s", session) - except XenAPI.Failure as e: - msg = _("Could not connect to XenAPI: %s") % e.details[0] - raise XenapiException(msg) - return session - - -class XenapiInspector(virt_inspector.Inspector): - - def __init__(self, conf): - super(XenapiInspector, self).__init__(conf) - self.session = get_api_session(self.conf) - - def _lookup_by_name(self, instance_name): - vm_refs = self.session.VM.get_by_name_label(instance_name) - n = len(vm_refs) - if n == 0: - raise virt_inspector.InstanceNotFoundException( - _('VM %s not found in XenServer') % instance_name) - elif n > 1: - raise XenapiException( - _('Multiple VM %s found in XenServer') % instance_name) - else: - return vm_refs[0] - - def inspect_instance(self, instance, duration): - instance_name = util.instance_name(instance) - vm_ref = self._lookup_by_name(instance_name) - cpu_util = self._get_cpu_usage(vm_ref, instance_name) - memory_usage = self._get_memory_usage(vm_ref) - LOG.debug("inspect_instance, cpu_util: %(cpu)s, memory_usage: %(mem)s", - {'cpu': cpu_util, 'mem': memory_usage}, instance=instance) - return virt_inspector.InstanceStats(cpu_util=cpu_util, - memory_usage=memory_usage) - - def _get_cpu_usage(self, vm_ref, instance_name): - vcpus_number = int(self.session.VM.get_VCPUs_max(vm_ref)) - if vcpus_number <= 0: - msg = _("Could not get VM %s CPU number") % instance_name - raise XenapiException(msg) - cpu_util = 0.0 - for index in range(vcpus_number): - cpu_util += float(self.session.VM.query_data_source( - vm_ref, "cpu%d" % index)) - return cpu_util / int(vcpus_number) * 100 - - def _get_memory_usage(self, vm_ref): - total_mem = float(self.session.VM.query_data_source(vm_ref, "memory")) - try: - free_mem = float(self.session.VM.query_data_source( - vm_ref, "memory_internal_free")) - except XenAPI.Failure: - # If PV tools is not installed in the guest instance, it's - # impossible to get free memory. So give it a default value - # as 0. - free_mem = 0 - # memory provided from XenServer is in Bytes; - # memory_internal_free provided from XenServer is in KB, - # converting it to MB. - return (total_mem - free_mem * units.Ki) / units.Mi - - def inspect_vnics(self, instance, duration): - instance_name = util.instance_name(instance) - vm_ref = self._lookup_by_name(instance_name) - dom_id = self.session.VM.get_domid(vm_ref) - vif_refs = self.session.VM.get_VIFs(vm_ref) - bw_all = self.session.call_plugin_serialized('bandwidth', - 'fetch_all_bandwidth') - LOG.debug("inspect_vnics, all bandwidth: %s", bw_all, - instance=instance) - - for vif_ref in vif_refs: - vif_rec = self.session.VIF.get_record(vif_ref) - - bw_vif = bw_all[dom_id][vif_rec['device']] - - # TODO(jianghuaw): Currently the plugin can only support - # rx_bytes and tx_bytes, so temporarily set others as -1. - yield virt_inspector.InterfaceStats( - name=vif_rec['uuid'], - mac=vif_rec['MAC'], - fref=None, - parameters=None, - rx_bytes=bw_vif['bw_in'], rx_packets=-1, rx_drop=-1, - rx_errors=-1, tx_bytes=bw_vif['bw_out'], tx_packets=-1, - tx_drop=-1, tx_errors=-1, rx_bytes_delta=-1, - tx_bytes_delta=-1) - - def inspect_vnic_rates(self, instance, duration): - instance_name = util.instance_name(instance) - vm_ref = self._lookup_by_name(instance_name) - vif_refs = self.session.VM.get_VIFs(vm_ref) - for vif_ref in vif_refs: - vif_rec = self.session.VIF.get_record(vif_ref) - - rx_rate = float(self.session.VM.query_data_source( - vm_ref, "vif_%s_rx" % vif_rec['device'])) - tx_rate = float(self.session.VM.query_data_source( - vm_ref, "vif_%s_tx" % vif_rec['device'])) - - yield virt_inspector.InterfaceRateStats( - name=vif_rec['uuid'], - mac=vif_rec['MAC'], - fref=None, - parameters=None, - rx_bytes_rate=rx_rate, - tx_bytes_rate=tx_rate) - - def inspect_disk_rates(self, instance, duration): - instance_name = util.instance_name(instance) - vm_ref = self._lookup_by_name(instance_name) - vbd_refs = self.session.VM.get_VBDs(vm_ref) - for vbd_ref in vbd_refs: - vbd_rec = self.session.VBD.get_record(vbd_ref) - - read_rate = float(self.session.VM.query_data_source( - vm_ref, "vbd_%s_read" % vbd_rec['device'])) - write_rate = float(self.session.VM.query_data_source( - vm_ref, "vbd_%s_write" % vbd_rec['device'])) - yield virt_inspector.DiskRateStats( - device=vbd_rec['device'], - read_bytes_rate=read_rate, - read_requests_rate=0, - write_bytes_rate=write_rate, - write_requests_rate=0) |