181 lines
2.8 KiB
Plaintext
181 lines
2.8 KiB
Plaintext
@startuml oclib
|
|
|
|
|
|
abstract Resource{
|
|
+UUID: int
|
|
+name: string
|
|
+icon: string
|
|
+description: string
|
|
+graphic: GraphicElement
|
|
+element: DataResource/ProcessingResource/StorageResource/Workflow/ComputeResource
|
|
}
|
|
|
|
class DataResource {
|
|
+UUID: int
|
|
+name: string
|
|
}
|
|
|
|
class ProcessingResource {
|
|
+UUID: int
|
|
+name: string
|
|
+container: string
|
|
+command: int
|
|
+environment: int
|
|
|
|
}
|
|
|
|
class StorageResource {
|
|
+UUID: int
|
|
+name: string
|
|
+url: string
|
|
+capacity: int
|
|
}
|
|
|
|
class ComputeResource {
|
|
+UUID: int
|
|
+name: string
|
|
|
|
}
|
|
|
|
class Workflow {
|
|
+UUID: int
|
|
+name: string
|
|
}
|
|
|
|
class ResourceSet {
|
|
+UUID: int
|
|
+name: string
|
|
+ressources: Ressource[]
|
|
}
|
|
|
|
class WorkflowSchedule {
|
|
+UUID: int
|
|
+start: date
|
|
+end: date
|
|
+cron : string
|
|
}
|
|
|
|
class Graph {
|
|
+UUID: int
|
|
+ressources: map[GraphicElement.UUID]Resource
|
|
+links: Link[]
|
|
}
|
|
|
|
class Link {
|
|
+UUID: int
|
|
+source: GraphicElement.UUID
|
|
+target: GraphicElement.UUID
|
|
+graphic: GraphicLink
|
|
}
|
|
|
|
class GraphicLink {
|
|
+UUID: int
|
|
+startXY: coord
|
|
+endXY: coord
|
|
+style: string
|
|
}
|
|
|
|
class GraphicElement {
|
|
+UUID: int
|
|
+style: string
|
|
+xy: coord
|
|
}
|
|
|
|
class Calendar {
|
|
+UUID: int
|
|
+name: string
|
|
+workflows: Workflow[]
|
|
+owner: string
|
|
}
|
|
|
|
class UserWorkflows {
|
|
+UUID: int
|
|
+user: string
|
|
+workflows: Workflow[]
|
|
}
|
|
|
|
class DatacenterWorkflows {
|
|
+UUID: int
|
|
+compute: ComputeResource
|
|
+workflows: Workflow[]
|
|
}
|
|
|
|
class Graph {
|
|
+UUID: int
|
|
+graph: Graph
|
|
+workflows: Workflow[]
|
|
}
|
|
|
|
|
|
class Workspace {
|
|
+UUID: int
|
|
+name: string
|
|
+resources: ResourceSet[]
|
|
+peers: Peer[]
|
|
}
|
|
|
|
class Peer {
|
|
+UUID: int
|
|
+name: string
|
|
+url: string
|
|
}
|
|
|
|
class SharedWorkspace {
|
|
+UUID: int
|
|
+name: string
|
|
+version: string
|
|
+description: string
|
|
+attributes: map[string]string
|
|
+workspaces: Workspace[]
|
|
+workflows: Workflow[]
|
|
+peers: Peer[]
|
|
}
|
|
|
|
class RuleSet {
|
|
+UUID: int
|
|
+name: string
|
|
+description: string
|
|
+rules: Rule[]
|
|
}
|
|
class Rule {
|
|
+UUID: int
|
|
+name: string
|
|
+description: string
|
|
+condition: string
|
|
+action: string
|
|
}
|
|
|
|
SharedWorkspace "1" o-- "0..*" Workspace
|
|
SharedWorkspace "1" o-- "0..*" Peer
|
|
Workspace "1" o-- "0..*" ResourceSet
|
|
Peer -- Resource
|
|
RuleSet "1" o-- "0..*" Rule
|
|
SharedWorkspace -- RuleSet
|
|
|
|
UserWorkflows "1" o-- "0..*" Workflow
|
|
|
|
DatacenterWorkflows "1" o-- "0..*" Workflow
|
|
|
|
Resource<|-- DataResource
|
|
Resource<|-- ProcessingResource
|
|
Resource<|-- StorageResource
|
|
Resource<|-- ComputeResource
|
|
Resource<|-- Workflow
|
|
|
|
ResourceSet "1" o-- "0..*" Ressource
|
|
|
|
Workflow "1" o-- "0..*" ResourceSet
|
|
Workflow "1" o-- "0..1" WorkflowSchedule
|
|
Workflow "1" o-- "0..*" Graph
|
|
|
|
Graph "1" o-- "0..*" Resources
|
|
Graph "1" o-- "0..*" Link
|
|
|
|
Resource--o GraphicElement
|
|
Link -- GraphicLink
|
|
|
|
|
|
Calendar "1" o-- "0..*" Workflow
|
|
|
|
|
|
@enduml |