improved UML documentation
This commit is contained in:
		
							
								
								
									
										77
									
								
								docs/UML/plantuml/diagram_object_controllers.puml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								docs/UML/plantuml/diagram_object_controllers.puml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
@startuml
 | 
			
		||||
namespace controllers {
 | 
			
		||||
    class ComputingController << (S,Aquamarine) >> {
 | 
			
		||||
        + GetOneComputing(ID string) 
 | 
			
		||||
        + PostComputing(body models.ComputingNEWModel) 
 | 
			
		||||
        + GetMultipleComputing(IDs []string) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DataController << (S,Aquamarine) >> {
 | 
			
		||||
        + GetOneData(ID string) 
 | 
			
		||||
        + GetMultipleData(IDs []string) 
 | 
			
		||||
        + PostData(body models.DataNEWModel) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DatacenterController << (S,Aquamarine) >> {
 | 
			
		||||
        + GetMultipleDatacenter(IDs []string) 
 | 
			
		||||
        + GetOneDatacenter(ID string) 
 | 
			
		||||
        + PostDatacenter(body models.DatacenterNEWModel) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class ScheduleController << (S,Aquamarine) >> {
 | 
			
		||||
        + CreateSchedule(dcName string, workflowName string, cron string, duration uint, startDate time.Time, stopDate time.Time, requirements models.ExecutionRequirementsModel) 
 | 
			
		||||
        + CheckSchedule(cron string, duration uint, startDate time.Time, stopDate time.Time, requirements models.ExecutionRequirementsModel) 
 | 
			
		||||
        + GetSchedules(startDate time.Time, stopDate time.Time) 
 | 
			
		||||
        + GetNextSchedules(baseDate time.Time) 
 | 
			
		||||
        + GetPreviousSchedules(baseDate time.Time) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class SearchController << (S,Aquamarine) >> {
 | 
			
		||||
        + FindByWord(word string) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class StorageController << (S,Aquamarine) >> {
 | 
			
		||||
        + GetOneStorage(ID string) 
 | 
			
		||||
        + GetMultipleStorage(IDs []string) 
 | 
			
		||||
        + PostStorage(body models.StorageNEWModel) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class UserController << (S,Aquamarine) >> {
 | 
			
		||||
        + Login() 
 | 
			
		||||
        + Logout() 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class WorkflowController << (S,Aquamarine) >> {
 | 
			
		||||
        + CreateWorkflow(workflowName string) 
 | 
			
		||||
        + ListWorkflows() 
 | 
			
		||||
        + GetWorkflow(workflowName string) 
 | 
			
		||||
        + AddElementWorkflow(workflowName string, rID string) 
 | 
			
		||||
        + MxGraphParser(workflowName string, xmlData string) 
 | 
			
		||||
        + MxGraphParserConsume(workflowName string) 
 | 
			
		||||
        + LinkElementsWorkflow(workflowName string, rObjIDsource string, rObjIDtarger string, isInput bool) 
 | 
			
		||||
        + GetWorkflowSchedule(workflowName string) 
 | 
			
		||||
        + SetWorkflowSchedule(workflowName string, cronString string, events string, isService bool, startDate time.Time, stopDate time.Time, duration uint) 
 | 
			
		||||
        + CheckWorkflowSchedule(workflowName string) 
 | 
			
		||||
        + BookWorkflowSchedule(workflowName string) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class WorkspaceController << (S,Aquamarine) >> {
 | 
			
		||||
        + AddModel(id string, rtype string) 
 | 
			
		||||
        + ListWorkspace() 
 | 
			
		||||
        + ListWorkspaceModel() 
 | 
			
		||||
        + DeleteElement(id string, rtype string) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
"web.Controller" *-- "controllers.ComputingController"
 | 
			
		||||
"web.Controller" *-- "controllers.DataController"
 | 
			
		||||
"web.Controller" *-- "controllers.DatacenterController"
 | 
			
		||||
"web.Controller" *-- "controllers.ScheduleController"
 | 
			
		||||
"web.Controller" *-- "controllers.SearchController"
 | 
			
		||||
"web.Controller" *-- "controllers.StorageController"
 | 
			
		||||
"web.Controller" *-- "controllers.UserController"
 | 
			
		||||
"web.Controller" *-- "controllers.WorkflowController"
 | 
			
		||||
"web.Controller" *-- "controllers.WorkspaceController"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@enduml
 | 
			
		||||
							
								
								
									
										347
									
								
								docs/UML/plantuml/diagram_object_models.puml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										347
									
								
								docs/UML/plantuml/diagram_object_models.puml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,347 @@
 | 
			
		||||
@startuml
 | 
			
		||||
namespace models {
 | 
			
		||||
    class ComputingModel << (S,Aquamarine) >> {
 | 
			
		||||
        + ID string
 | 
			
		||||
 | 
			
		||||
        - getRtype() rtype.Rtype
 | 
			
		||||
        - getName() string
 | 
			
		||||
 | 
			
		||||
        + AddUserInput(inputs <font color=blue>map</font>[string]<font color=blue>interface</font>{}) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class ComputingNEWModel << (S,Aquamarine) >> {
 | 
			
		||||
        + Name string
 | 
			
		||||
        + Description string
 | 
			
		||||
        + ShortDescription string
 | 
			
		||||
        + Logo string
 | 
			
		||||
        + Type string
 | 
			
		||||
        + Owner string
 | 
			
		||||
        + License string
 | 
			
		||||
        + Price uint
 | 
			
		||||
        + ExecutionRequirements ExecutionRequirementsModel
 | 
			
		||||
        + Dinputs []string
 | 
			
		||||
        + Doutputs []string
 | 
			
		||||
        + Image string
 | 
			
		||||
        + Command string
 | 
			
		||||
        + Arguments []string
 | 
			
		||||
        + Environment []string
 | 
			
		||||
        + Ports []string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class ComputingObject << (S,Aquamarine) >> {
 | 
			
		||||
        + ReferenceID primitive.ObjectID
 | 
			
		||||
        + Inputs []string
 | 
			
		||||
        + Outputs []string
 | 
			
		||||
        + DataCenterID string
 | 
			
		||||
 | 
			
		||||
        - getHost() *string
 | 
			
		||||
        - setReference(rID primitive.ObjectID) 
 | 
			
		||||
        - getReference() primitive.ObjectID
 | 
			
		||||
        - getRtype() rtype.Rtype
 | 
			
		||||
        - getModel() (ResourceModel, error)
 | 
			
		||||
        - getName() *string
 | 
			
		||||
        - isLinked(rObjID string) LinkingState
 | 
			
		||||
        - addLink(direction LinkingState, rID string) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DCstatus << (S,Aquamarine) >> {
 | 
			
		||||
        + DCname string
 | 
			
		||||
        + DCobjID string
 | 
			
		||||
        + IsReachable bool
 | 
			
		||||
        + IsAvailable bool
 | 
			
		||||
        + Booked *ScheduleInfo
 | 
			
		||||
        + ErrorMessage string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DataIO << (S,Aquamarine) >> {
 | 
			
		||||
        + Counter uint
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DataModel << (S,Aquamarine) >> {
 | 
			
		||||
        + ID string
 | 
			
		||||
 | 
			
		||||
        - getRtype() rtype.Rtype
 | 
			
		||||
        - getName() string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DataNEWModel << (S,Aquamarine) >> {
 | 
			
		||||
        + Name string
 | 
			
		||||
        + Description string
 | 
			
		||||
        + ShortDescription string
 | 
			
		||||
        + Logo string
 | 
			
		||||
        + Dtype string
 | 
			
		||||
        + Type string
 | 
			
		||||
        + Example string
 | 
			
		||||
        + Protocol []string
 | 
			
		||||
        + Location string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DataObject << (S,Aquamarine) >> {
 | 
			
		||||
        + ReferenceID primitive.ObjectID
 | 
			
		||||
 | 
			
		||||
        - getHost() *string
 | 
			
		||||
        - getModel() (ResourceModel, error)
 | 
			
		||||
        - setReference(rID primitive.ObjectID) 
 | 
			
		||||
        - getReference() primitive.ObjectID
 | 
			
		||||
        - getRtype() rtype.Rtype
 | 
			
		||||
        - getName() *string
 | 
			
		||||
        - isLinked(rID string) LinkingState
 | 
			
		||||
        - addLink(direction LinkingState, rObjID string) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DatacenterCpuModel << (S,Aquamarine) >> {
 | 
			
		||||
        + Cores uint
 | 
			
		||||
        + Architecture string
 | 
			
		||||
        + Shared bool
 | 
			
		||||
        + MinimumMemory uint
 | 
			
		||||
        + Platform string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DatacenterGpuModel << (S,Aquamarine) >> {
 | 
			
		||||
        + CudaCores uint
 | 
			
		||||
        + Model string
 | 
			
		||||
        + Memory uint
 | 
			
		||||
        + TensorCores uint
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DatacenterMemoryModel << (S,Aquamarine) >> {
 | 
			
		||||
        + Size uint
 | 
			
		||||
        + Ecc bool
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DatacenterModel << (S,Aquamarine) >> {
 | 
			
		||||
        + ID string
 | 
			
		||||
 | 
			
		||||
        - getRtype() rtype.Rtype
 | 
			
		||||
        - getName() string
 | 
			
		||||
 | 
			
		||||
        + GetTotalCPUs() uint
 | 
			
		||||
        + GetTotalGPUs() uint
 | 
			
		||||
        + GetTotalRAM() uint
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DatacenterNEWModel << (S,Aquamarine) >> {
 | 
			
		||||
        + Name string
 | 
			
		||||
        + Type string
 | 
			
		||||
        + Acronym string
 | 
			
		||||
        + Hosts []string
 | 
			
		||||
        + Description string
 | 
			
		||||
        + ShortDescription string
 | 
			
		||||
        + Logo string
 | 
			
		||||
        + CPU DatacenterCpuModel
 | 
			
		||||
        + RAM DatacenterMemoryModel
 | 
			
		||||
        + GPU []DatacenterGpuModel
 | 
			
		||||
        + Owner string
 | 
			
		||||
        + BookingPrice int
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class DatacenterObject << (S,Aquamarine) >> {
 | 
			
		||||
        + ReferenceID primitive.ObjectID
 | 
			
		||||
 | 
			
		||||
        - setReference(rID primitive.ObjectID) 
 | 
			
		||||
        - getModel() (ResourceModel, error)
 | 
			
		||||
        - getReference() primitive.ObjectID
 | 
			
		||||
        - getHost() *string
 | 
			
		||||
        - getRtype() rtype.Rtype
 | 
			
		||||
        - getName() *string
 | 
			
		||||
        - isLinked(rID string) LinkingState
 | 
			
		||||
        - addLink(direction LinkingState, rObjID string) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class ExecutionRequirementsModel << (S,Aquamarine) >> {
 | 
			
		||||
        + CPUs uint
 | 
			
		||||
        + GPUs uint
 | 
			
		||||
        + RAM uint
 | 
			
		||||
        + Parallel bool
 | 
			
		||||
        + ScalingModel uint
 | 
			
		||||
        + DiskIO string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class MxCell << (S,Aquamarine) >> {
 | 
			
		||||
        + XMLName xml.Name
 | 
			
		||||
        + ID string
 | 
			
		||||
        + Parent *string
 | 
			
		||||
        + RID *string
 | 
			
		||||
        + Source *string
 | 
			
		||||
        + Target *string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class MxGraphModel << (S,Aquamarine) >> {
 | 
			
		||||
        + XMLName xml.Name
 | 
			
		||||
        + Root <font color=blue>struct</font>{xml.Name, []MxCell, *[]Object}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class Object << (S,Aquamarine) >> {
 | 
			
		||||
        + XMLName xml.Name
 | 
			
		||||
        + ID string
 | 
			
		||||
        + Command *string
 | 
			
		||||
        + Args *string
 | 
			
		||||
        + Env *string
 | 
			
		||||
        + MxCell MxCell
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class RepositoryModel << (S,Aquamarine) >> {
 | 
			
		||||
        + Credentials string
 | 
			
		||||
        + Url string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    interface ResourceModel  {
 | 
			
		||||
        - getRtype() rtype.Rtype
 | 
			
		||||
        - getName() string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    interface ResourceObject  {
 | 
			
		||||
        - getHost() *string
 | 
			
		||||
        - getName() *string
 | 
			
		||||
        - getModel() (ResourceModel, error)
 | 
			
		||||
        - getRtype() rtype.Rtype
 | 
			
		||||
        - setReference(rObjID primitive.ObjectID) 
 | 
			
		||||
        - getReference() primitive.ObjectID
 | 
			
		||||
        - isLinked(rObjID string) LinkingState
 | 
			
		||||
        - addLink(direction LinkingState, rObjID string) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class ScheduleDB << (S,Aquamarine) >> {
 | 
			
		||||
        + StartDate time.Time
 | 
			
		||||
        + StopDate time.Time
 | 
			
		||||
        + Workflow string
 | 
			
		||||
        + ResourceQty ExecutionRequirementsModel
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class ScheduleInfo << (S,Aquamarine) >> {
 | 
			
		||||
        + Total int
 | 
			
		||||
        + NextExecutions []string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class SearchResult << (S,Aquamarine) >> {
 | 
			
		||||
        + Computing []ComputingModel
 | 
			
		||||
        + Datacenter []DatacenterModel
 | 
			
		||||
        + Storage []StorageModel
 | 
			
		||||
        + Data []DataModel
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class StorageModel << (S,Aquamarine) >> {
 | 
			
		||||
        + ID string
 | 
			
		||||
 | 
			
		||||
        - getRtype() rtype.Rtype
 | 
			
		||||
        - getName() string
 | 
			
		||||
 | 
			
		||||
        + AddUserInput(inputs <font color=blue>map</font>[string]<font color=blue>interface</font>{}) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class StorageNEWModel << (S,Aquamarine) >> {
 | 
			
		||||
        + Name string
 | 
			
		||||
        + Description string
 | 
			
		||||
        + ShortDescription string
 | 
			
		||||
        + Logo string
 | 
			
		||||
        + Type string
 | 
			
		||||
        + DCacronym string
 | 
			
		||||
        + URL string
 | 
			
		||||
        + Size uint
 | 
			
		||||
        + Encryption bool
 | 
			
		||||
        + Redundancy string
 | 
			
		||||
        + Throughput string
 | 
			
		||||
        + BookingPrice uint
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class StorageObject << (S,Aquamarine) >> {
 | 
			
		||||
        + ReferenceID primitive.ObjectID
 | 
			
		||||
        + Inputs []string
 | 
			
		||||
        + Outputs []string
 | 
			
		||||
 | 
			
		||||
        - getHost() *string
 | 
			
		||||
        - getModel() (ResourceModel, error)
 | 
			
		||||
        - setReference(rID primitive.ObjectID) 
 | 
			
		||||
        - getReference() primitive.ObjectID
 | 
			
		||||
        - getRtype() rtype.Rtype
 | 
			
		||||
        - getName() *string
 | 
			
		||||
        - isLinked(rObjID string) LinkingState
 | 
			
		||||
        - addLink(direction LinkingState, rObjID string) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class UserModel << (S,Aquamarine) >> {
 | 
			
		||||
        + ID string
 | 
			
		||||
        + Username string
 | 
			
		||||
        + Password string
 | 
			
		||||
        + Email string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class Workflow << (S,Aquamarine) >> {
 | 
			
		||||
        + Data <font color=blue>map</font>[string]DataObject
 | 
			
		||||
        + Computing <font color=blue>map</font>[string]ComputingObject
 | 
			
		||||
        + Storage <font color=blue>map</font>[string]StorageObject
 | 
			
		||||
        + Datacenter <font color=blue>map</font>[string]DatacenterObject
 | 
			
		||||
        + Schedules WorkflowSchedule
 | 
			
		||||
        + MxgraphXML string
 | 
			
		||||
 | 
			
		||||
        + GetExecutionRequirements(dcIDobj string) (ExecutionRequirementsModel, error)
 | 
			
		||||
        + GetResource(rObjID *string) ResourceObject
 | 
			
		||||
        + GetResourceMapByRtype(rt rtype.Rtype) <font color=blue>interface</font>{}
 | 
			
		||||
        + CreateResourceObject(rt rtype.Rtype) ResourceObject
 | 
			
		||||
        + AddObj(robj ResourceObject) *primitive.ObjectID
 | 
			
		||||
        + UpdateDB(userID string, workflowName string) error
 | 
			
		||||
        + UpdateObj(robj ResourceObject, objID string) 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class WorkflowSchedule << (S,Aquamarine) >> {
 | 
			
		||||
        + IsService bool
 | 
			
		||||
        + StartDate time.Time
 | 
			
		||||
        + StopDate time.Time
 | 
			
		||||
        + Cron string
 | 
			
		||||
        + Duration uint
 | 
			
		||||
        + Events string
 | 
			
		||||
        + IsBooked bool
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class Workspace << (S,Aquamarine) >> {
 | 
			
		||||
        + UserID string
 | 
			
		||||
        + Workflows <font color=blue>map</font>[string]Workflow
 | 
			
		||||
        + Data []string
 | 
			
		||||
        + Computing []string
 | 
			
		||||
        + Datacenter []string
 | 
			
		||||
        + Storage []string
 | 
			
		||||
 | 
			
		||||
        - getRtype(rID string) rtype.Rtype
 | 
			
		||||
        - updateDB() error
 | 
			
		||||
 | 
			
		||||
        + ConsumeMxGraphModel(xmlmodel MxGraphModel) (*Workflow, error, []error)
 | 
			
		||||
        + GetResources() <font color=blue>map</font>[rtype.Rtype][]string
 | 
			
		||||
        + GetWorkflow(workflowName string) *Workflow
 | 
			
		||||
        + GetWorkflows() []string
 | 
			
		||||
        + NewResource(rID string, rType string) error
 | 
			
		||||
        + GetAllWorkspacesProjects() <font color=blue>chan</font> *Workflow
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class WorkspaceModel << (S,Aquamarine) >> {
 | 
			
		||||
        + UserID string
 | 
			
		||||
        + Data []DataModel
 | 
			
		||||
        + Computing []ComputingModel
 | 
			
		||||
        + Datacenter []DatacenterModel
 | 
			
		||||
        + Storage []StorageModel
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    class models.LinkingState << (T, #FF7700) >>  {
 | 
			
		||||
    }
 | 
			
		||||
    class mxissue << (S,Aquamarine) >> {
 | 
			
		||||
        - msg string
 | 
			
		||||
 | 
			
		||||
        + Error() string
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
"models.ComputingNEWModel" *-- "models.ComputingModel"
 | 
			
		||||
"models.DataNEWModel" *-- "models.DataModel"
 | 
			
		||||
"models.DatacenterNEWModel" *-- "models.DatacenterModel"
 | 
			
		||||
"models.StorageNEWModel" *-- "models.StorageModel"
 | 
			
		||||
 | 
			
		||||
"models.ResourceModel" <|-- "models.ComputingModel"
 | 
			
		||||
"models.ResourceObject" <|-- "models.ComputingObject"
 | 
			
		||||
"models.ResourceModel" <|-- "models.DataModel"
 | 
			
		||||
"models.ResourceObject" <|-- "models.DataObject"
 | 
			
		||||
"models.ResourceModel" <|-- "models.DatacenterModel"
 | 
			
		||||
"models.ResourceObject" <|-- "models.DatacenterObject"
 | 
			
		||||
"models.ResourceModel" <|-- "models.StorageModel"
 | 
			
		||||
"models.ResourceObject" <|-- "models.StorageObject"
 | 
			
		||||
 | 
			
		||||
"__builtin__.uint" #.. "models.LinkingState"
 | 
			
		||||
@enduml
 | 
			
		||||
		Reference in New Issue
	
	Block a user