from __future__ import print_function
from cloudmesh_client.shell.console import Console
from cloudmesh_client.common.Printer import Printer
from cloudmesh_client.db import CloudmeshDatabase
from cloudmesh_client.cloud.iaas.CloudProvider import CloudProvider
from cloudmesh_client.cloud.ListResource import ListResource
[docs]class Flavor(ListResource):
cm = CloudmeshDatabase()
[docs] @classmethod
def refresh(cls, cloud):
"""
This method would refresh the flavor list by first clearing
the database, then inserting new data
:param cloud: the cloud name
"""
return cls.cm.refresh('flavor', cloud)
[docs] @classmethod
def list(cls, cloud, live=False, format="table"):
"""
This method lists all flavors of the cloud
:param cloud: the cloud name
"""
try:
if live:
cls.refresh(cloud)
elements = cls.cm.find(kind="flavor", category=cloud)
# pprint(elements)
(order, header) = CloudProvider(cloud).get_attributes("flavor")
return Printer.write(elements,
order=order,
header=header,
output=format)
except Exception as ex:
Console.error(ex.message)
[docs] @classmethod
def details(cls, cloud, id, live=False, format="table"):
if live:
cls.refresh(cloud)
return CloudProvider(cloud).details('flavor', cloud, id, format)