diff options
Diffstat (limited to 'dashboard/src/workflow/workflow_factory.py')
-rw-r--r-- | dashboard/src/workflow/workflow_factory.py | 78 |
1 files changed, 30 insertions, 48 deletions
diff --git a/dashboard/src/workflow/workflow_factory.py b/dashboard/src/workflow/workflow_factory.py index 9a42d86..03c8126 100644 --- a/dashboard/src/workflow/workflow_factory.py +++ b/dashboard/src/workflow/workflow_factory.py @@ -8,10 +8,12 @@ ############################################################################## -from workflow.booking_workflow import Booking_Resource_Select, SWConfig_Select, Booking_Meta +from workflow.booking_workflow import Booking_Resource_Select, SWConfig_Select, Booking_Meta, OPNFV_Select from workflow.resource_bundle_workflow import Define_Hardware, Define_Nets, Resource_Meta_Info from workflow.sw_bundle_workflow import Config_Software, Define_Software, SWConf_Resource_Select from workflow.snapshot_workflow import Select_Host_Step, Image_Meta_Step +from workflow.opnfv_workflow import Pick_Installer, Assign_Network_Roles, Assign_Host_Roles, OPNFV_Resource_Select, MetaInfo +from workflow.models import Confirmation_Step import uuid @@ -19,38 +21,6 @@ import logging logger = logging.getLogger(__name__) -class BookingMetaWorkflow(object): - workflow_type = 0 - color = "#0099ff" - is_child = False - - -class ResourceMetaWorkflow(object): - workflow_type = 1 - color = "#ff6600" - - -class ConfigMetaWorkflow(object): - workflow_type = 2 - color = "#00ffcc" - - -class MetaRelation(object): - def __init__(self, *args, **kwargs): - self.color = "#cccccc" - self.parent = 0 - self.children = [] - self.depth = -1 - - def to_json(self): - return { - 'color': self.color, - 'parent': self.parent, - 'children': self.children, - 'depth': self.depth, - } - - class MetaStep(object): UNTOUCHED = 0 @@ -69,6 +39,7 @@ class MetaStep(object): self.short_title = "error" self.skip_step = 0 self.valid = 0 + self.hidden = False self.message = "" self.id = uuid.uuid4() @@ -93,11 +64,19 @@ class MetaStep(object): return self.id.int != other.id.int +class Workflow(object): + def __init__(self, steps, repository): + self.repository = repository + self.steps = steps + self.active_index = 0 + + class WorkflowFactory(): booking_steps = [ Booking_Resource_Select, SWConfig_Select, - Booking_Meta + Booking_Meta, + OPNFV_Select, ] resource_steps = [ @@ -114,7 +93,15 @@ class WorkflowFactory(): snapshot_steps = [ Select_Host_Step, - Image_Meta_Step + Image_Meta_Step, + ] + + opnfv_steps = [ + OPNFV_Resource_Select, + Pick_Installer, + Assign_Network_Roles, + Assign_Host_Roles, + MetaInfo ] def conjure(self, workflow_type=None, repo=None): @@ -123,14 +110,19 @@ class WorkflowFactory(): self.resource_steps, self.config_steps, self.snapshot_steps, + self.opnfv_steps, ] steps = self.make_steps(workflow_types[workflow_type], repository=repo) - meta_steps = self.metaize(steps=steps, wf_type=workflow_type) - return steps, meta_steps + return steps + + def create_workflow(self, workflow_type=None, repo=None): + steps = self.conjure(workflow_type, repo) + c_step = self.make_step(Confirmation_Step, repo) + steps.append(c_step) + return Workflow(steps, repo) def make_steps(self, step_types, repository): - repository.el['steps'] += len(step_types) steps = [] for step_type in step_types: steps.append(self.make_step(step_type, repository)) @@ -140,13 +132,3 @@ class WorkflowFactory(): def make_step(self, step_type, repository): iden = step_type.description + step_type.title + step_type.template return step_type(iden, repository) - - def metaize(self, steps, wf_type): - meta_dict = [] - for step in steps: - meta_step = MetaStep() - meta_step.short_title = step.short_title - meta_dict.append(meta_step) - step.metastep = meta_step - - return meta_dict |