summaryrefslogtreecommitdiff
path: root/tuskar_ui/api/flavor.py
diff options
context:
space:
mode:
Diffstat (limited to 'tuskar_ui/api/flavor.py')
-rw-r--r--tuskar_ui/api/flavor.py121
1 files changed, 0 insertions, 121 deletions
diff --git a/tuskar_ui/api/flavor.py b/tuskar_ui/api/flavor.py
deleted file mode 100644
index 518400cc..00000000
--- a/tuskar_ui/api/flavor.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# 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.
-
-import logging
-
-from django.utils.translation import ugettext_lazy as _
-from horizon.utils import memoized
-from openstack_dashboard.api import nova
-
-import tuskar_ui
-from tuskar_ui.cached_property import cached_property # noqa
-from tuskar_ui.handle_errors import handle_errors # noqa
-
-
-LOG = logging.getLogger(__name__)
-
-
-class Flavor(object):
-
- def __init__(self, flavor):
- """Construct by wrapping Nova flavor
-
- :param flavor: Nova flavor
- :type flavor: novaclient.v2.flavors.Flavor
- """
- self._flavor = flavor
-
- def __getattr__(self, name):
- return getattr(self._flavor, name)
-
- @property
- def ram_bytes(self):
- """Get RAM size in bytes
-
- Default RAM size is in MB.
- """
- return self.ram * 1024 * 1024
-
- @property
- def disk_bytes(self):
- """Get disk size in bytes
-
- Default disk size is in GB.
- """
- return self.disk * 1024 * 1024 * 1024
-
- @cached_property
- def extras_dict(self):
- """Return extra flavor parameters
-
- :return: Nova flavor keys
- :rtype: dict
- """
- return self._flavor.get_keys()
-
- @property
- def cpu_arch(self):
- return self.extras_dict.get('cpu_arch', '')
-
- @property
- def kernel_image_id(self):
- return self.extras_dict.get('baremetal:deploy_kernel_id', '')
-
- @property
- def ramdisk_image_id(self):
- return self.extras_dict.get('baremetal:deploy_ramdisk_id', '')
-
- @classmethod
- def create(cls, request, name, memory, vcpus, disk, cpu_arch,
- kernel_image_id=None, ramdisk_image_id=None):
- extras_dict = {
- 'cpu_arch': cpu_arch,
- 'capabilities:boot_option': 'local',
- }
- if kernel_image_id is not None:
- extras_dict['baremetal:deploy_kernel_id'] = kernel_image_id
- if ramdisk_image_id is not None:
- extras_dict['baremetal:deploy_ramdisk_id'] = ramdisk_image_id
- return cls(nova.flavor_create(request, name, memory, vcpus, disk,
- metadata=extras_dict))
-
- @classmethod
- @handle_errors(_("Unable to load flavor."))
- def get(cls, request, flavor_id):
- return cls(nova.flavor_get(request, flavor_id))
-
- @classmethod
- @handle_errors(_("Unable to load flavor."))
- def get_by_name(cls, request, name):
- for flavor in cls.list(request):
- if flavor.name == name:
- return flavor
-
- @classmethod
- @handle_errors(_("Unable to retrieve flavor list."), [])
- def list(cls, request):
- return [cls(item) for item in nova.flavor_list(request)]
-
- @classmethod
- @memoized.memoized
- @handle_errors(_("Unable to retrieve existing servers list."), [])
- def list_deployed_ids(cls, request):
- """Get and memoize ID's of deployed flavors."""
- servers = nova.server_list(request)[0]
- deployed_ids = set(server.flavor['id'] for server in servers)
- deployed_names = []
- for plan in tuskar_ui.api.tuskar.Plan.list(request):
- deployed_names.extend(
- [plan.parameter_value(role.flavor_parameter_name)
- for role in plan.role_list])
- return [flavor.id for flavor in cls.list(request)
- if flavor.id in deployed_ids or flavor.name in deployed_names]