Files
opentf/vendor/github.com/arukasio/cli/run.go
Kazumichi Yamamoto 9176bd4861 New provider arukas (#10862)
* Add a Arukas provider

* Add dependencies for the Arukas provider

* Add documents for the Arukas
2017-01-09 17:14:33 +00:00

60 lines
1.3 KiB
Go

package arukas
func createAndRunContainer(name string, image string, instances int, mem int, envs []string, ports []string, cmd string, appName string) {
client := NewClientWithOsExitOnErr()
var appSet AppSet
// create an app
newApp := App{Name: appName}
var parsedEnvs Envs
var parsedPorts Ports
if len(envs) > 0 {
var err error
parsedEnvs, err = ParseEnv(envs)
if err != nil {
client.Println(nil, err)
ExitCode = 1
return
}
}
if len(ports) > 0 {
var err error
parsedPorts, err = ParsePort(ports)
if err != nil {
client.Println(nil, err)
ExitCode = 1
return
}
}
newContainer := Container{
Envs: parsedEnvs,
Ports: parsedPorts,
ImageName: image,
Mem: mem,
Instances: instances,
Cmd: cmd,
Name: name,
}
newAppSet := AppSet{
App: newApp,
Container: newContainer,
}
if err := client.Post(&appSet, "/app-sets", newAppSet); err != nil {
client.Println(nil, err)
ExitCode = 1
return
}
startContainer(appSet.Container.ID, true)
client.Println(nil, "ID", "IMAGE", "CREATED", "STATUS", "NAME", "ENDPOINT")
client.Println(nil, appSet.Container.ID, appSet.Container.ImageName, appSet.Container.CreatedAt.String(),
appSet.Container.StatusText, appSet.Container.Name, appSet.Container.Endpoint)
}