Source code for cloudmesh_client.cloud.workflow

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 Workflow(ListResource): cm = CloudmeshDatabase()
[docs] @classmethod def refresh(cls, cloud): """ This method would refresh the workflow list by first clearing the database, then inserting new data :param cloud: the cloud name """ Console.TODO("this method is not yet implemented. dont implement this yet") return return cls.cm.refresh('workflow', cloud)
[docs] @classmethod def delete(cls,cloud, id): print (id) cls.cm.delete(kind="workflow", category='general' ,cm_id =id) return True
[docs] @classmethod def list(cls, name, live=False, format="table"): """ This method lists all workflows of the cloud :param cloud: the cloud name """ # Console.TODO("this method is not yet implemented") # return try: elements = cls.cm.find(kind="workflow", category='general') # pprint(elements) # (order, header) = CloudProvider(cloud).get_attributes("workflow") order = None header= None # Console.msg(elements) 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"): elements = cls.cm.find(kind="workflow", category='general' ,cm_id =id) Console.msg(elements) order = None header= None # Console.TODO("this method is not yet implemented") return Printer.write(elements, order=order, header=header, output=format)
[docs] @classmethod def save(cls, cloud, name, str): workflow = { "category": "general", "kind": "workflow", "name": name, "workflow_str": str } cls.cm.add(workflow, replace=False) cls.cm.save() return "Workflow saved in database!"
[docs] @classmethod def run(cls,cloud,id): elements = cls.cm.find(kind="workflow", category='general', cm_id = id) Console.msg(elements) order = None Console.msg("Executing") header= None return elements
# Console.TODO("this method is not yet implemented") # return Printer.write(elements, # order=order, # header=header, # output=format)