DC3bMiddlewareTasks/RefactorOrca: neworcamodel3.txt

File neworcamodel3.txt, 2.9 KB (added by RayPlante, 6 months ago)
Line 
1ProductionRunManager.runProduction():
2   createConfigurator(runid, prodPolicy):  returns a ProductionRunConfigurator
3   ProductionRunConfigurator.configure()
4
5      create a ProvenanceSetup object (provSetup)
6      foreach production policy file to record:
7         ProvenanceSetup.addProductionPolicyFile(filename)
8
9      foreach database in prodPolicy:
10         ProductionRunConfigurator.createDatabaseConfigurator(dbpolicy) :
11            returns DatabaseConfigurator
12         DatabaseConfigurator.setup(provSetup)
13            setup the database
14            if provSetup is not None:
15                may call ProvenanceSetup.addProductionRecorder(ProvenanceRecorder)
16                may call ProvenanceSetup.addWorkflowRecordCmd(string)
17
18      do specialized production level configuration
19
20      foreach workflow node in prodPolicy:
21         ProductionRunConfigurator.createWorkflowManager(runid, wfpolicy, prodPolicy) :
22            returns WorkflowManager
23         WorkflowManager.configure(provSetup):
24            WorkflowManager.createConfigurator(runid, wfpolicy, prodpolicy) :
25                returns WorkFlowConfigurator
26            WorkflowConfigurator.configure(provSetup) : returns WorkflowLauncher
27               foreach database in wfPolicy:
28                  WorkflowConfigurator.createDatabaseConfigurator(dbpolicy) :
29                     returns DatabaseConfigurator
30                  DatabaseConfigurator.setup(provSetup)
31                     may call ProvenanceSetup.addProductionRecorder(ProvenanceRecorder)
32                     may call ProvenanceSetup.addWorkflowRecordCmd(string)
33
34            do specialized workflow level configuration; this may include
35              calling ProvenanceSetup.getWorkflowCommands()
36
37       return list of WorkFlowManager objects
38   
39
40   checkConfiguration(): high-level checks + for each PipelineManager:
41      ensure WorkflowManagers created
42      ProductionRunConfigurator.checkConfiguration()
43         check production level configuration
44         foreach DatabaseConfigurator:
45            DatabaseConfigurator.checkConfirguration()
46      foreach workflowManager in WorkflowManagers:
47         WorkflowManager.checkConfiguration()
48             WorkflowConfigurator.checkConfiguration
49                foreach DatabaseConfigurator:
50                   DatabaseConfigurator.checkConfirguration()
51                do workflow-related configuraiton
52
53   ProvenanceSetup.recordProduction()
54      foreach ProvenanceRecorder:
55         foreach policy filename held by ProvenanceSetup:
56             ProvenanceRecorder.record(filename)
57
58   foreach WorkflowManager:
59      WorkflowManager.runWorkflow(): return WorkflowMonitor
60         WorkflowLauncher.launch(): return WorkflowMonitor
61
62
63---------
64         
65ProductionRunManager.stopProduction(urgency):
66   foreach running workflow:
67      PipelineManager.stopWorkflow():
68         while running and urgency <= NOW:
69            PipelineMonitor.stopWorkflow(urgency)
70            if still running, urgency++