summaryrefslogtreecommitdiff
path: root/trove/extensions/mgmt/host/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'trove/extensions/mgmt/host/models.py')
-rw-r--r--trove/extensions/mgmt/host/models.py102
1 files changed, 0 insertions, 102 deletions
diff --git a/trove/extensions/mgmt/host/models.py b/trove/extensions/mgmt/host/models.py
deleted file mode 100644
index e26ac4fe..00000000
--- a/trove/extensions/mgmt/host/models.py
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright 2012 OpenStack Foundation
-# All Rights Reserved.
-#
-# 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.
-
-"""
-Model classes that extend the instances functionality for MySQL instances.
-"""
-
-from novaclient import exceptions as nova_exceptions
-from oslo_log import log as logging
-
-from trove.common import exception
-from trove.common.i18n import _
-from trove.common.remote import create_guest_client
-from trove.common.remote import create_nova_client
-from trove.instance.models import DBInstance
-from trove.instance.models import InstanceServiceStatus
-from trove.instance.models import SimpleInstance
-
-
-LOG = logging.getLogger(__name__)
-
-
-class SimpleHost(object):
-
- def __init__(self, name, instance_count):
- self.name = name
- self.instance_count = instance_count
-
- @staticmethod
- def load_all(context):
- client = create_nova_client(context)
- LOG.debug("Client.rdhosts=" + str(client.rdhosts))
- rdhosts = client.rdhosts.list()
- LOG.debug("RDHOSTS=" + str(rdhosts))
- for rdhost in rdhosts:
- LOG.debug("rdhost=" + str(rdhost))
- return [SimpleHost(rdhost.name, rdhost.instanceCount)
- for rdhost in rdhosts]
-
-
-class DetailedHost(object):
-
- def __init__(self, host_info):
- self.name = host_info.name
- self.percent_used = host_info.percentUsed
- self.total_ram = host_info.totalRAM
- self.used_ram = host_info.usedRAM
- self.instances = host_info.instances
- for instance in self.instances:
- instance['server_id'] = instance['uuid']
- del instance['uuid']
- try:
- db_info = DBInstance.find_by(
- compute_instance_id=instance['server_id'])
- instance['id'] = db_info.id
- instance['tenant_id'] = db_info.tenant_id
- status = InstanceServiceStatus.find_by(
- instance_id=db_info.id)
- instance_info = SimpleInstance(None, db_info, status)
- instance['status'] = instance_info.status
- except exception.TroveError as re:
- LOG.error(re)
- LOG.error("Compute Instance ID found with no associated RD "
- "instance: %s.", instance['server_id'])
- instance['id'] = None
-
- def update_all(self, context):
- num_i = len(self.instances)
- LOG.debug("Host %(name)s has %(num)s instances to update.",
- {'name': self.name, 'num': num_i})
- failed_instances = []
- for instance in self.instances:
- client = create_guest_client(context, instance['id'])
- try:
- client.update_guest()
- except exception.TroveError as re:
- LOG.error(re)
- LOG.error("Unable to update instance: %s.", instance['id'])
- failed_instances.append(instance['id'])
- if len(failed_instances) > 0:
- msg = _("Failed to update instances: %s.") % failed_instances
- raise exception.UpdateGuestError(msg)
-
- @staticmethod
- def load(context, name):
- client = create_nova_client(context)
- try:
- return DetailedHost(client.rdhosts.get(name))
- except nova_exceptions.NotFound:
- raise exception.NotFound(uuid=name)