55 lines
No EOL
1.5 KiB
Markdown
55 lines
No EOL
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
|
|
|
|
``` |