55 lines
1.5 KiB
Markdown
55 lines
1.5 KiB
Markdown
|
```plantuml
|
||
|
@startuml
|
||
|
|
||
|
autonumber
|
||
|
|
||
|
skinparam sequenceBox {
|
||
|
borderColor White
|
||
|
}
|
||
|
|
||
|
participant Cli
|
||
|
participant Application
|
||
|
participant CliArgumentsParser
|
||
|
participant CliTargetCommand
|
||
|
participant CliUtils
|
||
|
participant "CliUtils\ncreateLocalProv" as CliUtilsL
|
||
|
participant "CliUtils\ncreateRemoteProv" as CliUtilsR
|
||
|
participant Prov
|
||
|
participant PromptSecretSource
|
||
|
participant User
|
||
|
|
||
|
Cli -> Application ++ : main(args...)
|
||
|
Application -> CliArgumentsParser : parseCommand
|
||
|
|
||
|
CliArgumentsParser -> CliTargetCommand : create()
|
||
|
Application -> CliUtils : createProvInstance( targetCliCommand )
|
||
|
alt target.isValidLocal
|
||
|
CliUtils -> CliUtilsL : createLocalProv
|
||
|
CliUtilsL -> Prov : createLocalInstance
|
||
|
alt userCannotSudoWithoutPw
|
||
|
CliUtilsL -> PromptSecretSource : getPassword
|
||
|
CliUtilsL -> User : makeUserSudoWithoutPw
|
||
|
CliUtilsL --> CliUtils : provInstance
|
||
|
CliUtils --> Application : provInstance
|
||
|
end
|
||
|
else target.isValidRemote
|
||
|
CliUtils -> CliUtilsR : createRemoteProv
|
||
|
CliUtilsR -> Prov : createRemoteInstance
|
||
|
alt userCannotSudoWithoutPw
|
||
|
CliUtilsR -> PromptSecretSource : getPassword
|
||
|
CliUtilsR -> User : makeUserSudoWithoutPw
|
||
|
CliUtilsR -> Prov : createRemoteInstance\n[new ssh-client is required]
|
||
|
CliUtilsR --> CliUtils : provInstance
|
||
|
CliUtils --> Application : provInstance
|
||
|
end
|
||
|
end
|
||
|
|
||
|
Application -> DesktopService1 : provisionDesktopCommand ( provInstance, desktopCliCommand )
|
||
|
|
||
|
|
||
|
'DesktopService1 -> DesktopService2 : provisionDesktop( config )
|
||
|
'DesktopService1 -> ConfigRepository : getConfig
|
||
|
|
||
|
@enduml
|
||
|
|
||
|
```
|