first commit
This commit is contained in:
119
internal/space_worker/host.go
Normal file
119
internal/space_worker/host.go
Normal file
@@ -0,0 +1,119 @@
|
||||
package space_worker
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"playbookctl/internal/types"
|
||||
"playbookctl/internal/utils"
|
||||
)
|
||||
|
||||
func (app *SpaceWorker) ListHosts() error {
|
||||
app.log.Debug(fmt.Sprintf("workDir: %s", app.workDir))
|
||||
|
||||
app.log.Trace("try read hosts.yml")
|
||||
hosts, err := types.ReadHosts(app.workDir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
app.log.Trace("try read default.host.txt")
|
||||
defaultHost, err := utils.ReadStringFile(filepath.Join(app.workDir, "default.host.txt"))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Println("Хосты:")
|
||||
for serverName, props := range *hosts {
|
||||
defaultMarker := ""
|
||||
if serverName == defaultHost {
|
||||
defaultMarker = " *"
|
||||
}
|
||||
fmt.Printf(" - %s [%s:%d] (%s)%s\n", serverName, props.Host, props.Port, props.User, defaultMarker)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (app *SpaceWorker) HostsAdd(name string, host string, port uint16, user string) error {
|
||||
app.log.Debug(fmt.Sprintf("workDir: %s", app.workDir))
|
||||
|
||||
app.log.Trace("try read hosts.yml")
|
||||
hosts, err := types.ReadHosts(app.workDir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
app.log.Trace("append new host to hosts.yml")
|
||||
(*hosts)[name] = types.THostProps{
|
||||
Host: host,
|
||||
Port: port,
|
||||
User: user,
|
||||
Interpreter: types.DefaultInterpreter,
|
||||
}
|
||||
|
||||
app.log.Trace("write hosts.yml")
|
||||
if err := types.WriteHosts(app.workDir, hosts); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
app.log.Trace(fmt.Sprintf("create vars/%s.vars.yml", name))
|
||||
err = utils.WriteEmptyYaml(filepath.Join(app.workDir, "vars", fmt.Sprintf("%s.vars.yml", name)))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
app.log.Info("Новый хост добавлен")
|
||||
return nil
|
||||
}
|
||||
|
||||
func (app *SpaceWorker) HostRemove(name string) error {
|
||||
app.log.Debug(fmt.Sprintf("workDir: %s", app.workDir))
|
||||
|
||||
app.log.Trace("try read hosts.yml")
|
||||
hosts, err := types.ReadHosts(app.workDir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
app.log.Trace("remove host from hosts.yml")
|
||||
delete(*hosts, name)
|
||||
|
||||
app.log.Trace("write hosts.yml")
|
||||
if err := types.WriteHosts(app.workDir, hosts); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
app.log.Trace(fmt.Sprintf("remove vars/%s.vars.yml", name))
|
||||
err = utils.RemoveFile(filepath.Join(app.workDir, "vars", fmt.Sprintf("%s.vars.yml", name)))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
app.log.Info("Хост удалён")
|
||||
return nil
|
||||
}
|
||||
|
||||
func (app *SpaceWorker) SetDefaultHost(name string) error {
|
||||
app.log.Debug(fmt.Sprintf("workDir: %s", app.workDir))
|
||||
|
||||
app.log.Trace("try write default.host.txt")
|
||||
err := utils.WriteStringFile(filepath.Join(app.workDir, "default.host.txt"), name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
app.log.Info(fmt.Sprintf("Хост '%s' установлен по-умолчанию", name))
|
||||
return nil
|
||||
}
|
||||
|
||||
func (app *SpaceWorker) GetDefaultHost() (string, error) {
|
||||
app.log.Debug(fmt.Sprintf("workDir: %s", app.workDir))
|
||||
|
||||
app.log.Trace("try read default.host.txt")
|
||||
value, err := utils.ReadStringFile(filepath.Join(app.workDir, "default.host.txt"))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return value, nil
|
||||
}
|
||||
Reference in New Issue
Block a user