func Delete(etcd *store.Etcd, username, appName, key string) error { if err := etcd.Delete("/paus/users/" + username + "/apps/" + appName + "/build-args/" + key); err != nil { return err } return nil }
func Create(etcd *store.Etcd, username, appName, key, value string) error { if err := etcd.Set("/paus/users/"+username+"/apps/"+appName+"/build-args/"+key, value); err != nil { return err } return nil }
func Update(etcd *store.Etcd, username, appName string, hc *Healthcheck) error { b, err := json.Marshal(*hc) if err != nil { return err } if err := etcd.Set(etcdKey(username, appName), string(b)); err != nil { return err } return nil }
func Get(etcd *store.Etcd, username, appName string) (*Healthcheck, error) { val, err := etcd.Get(etcdKey(username, appName)) if err != nil { return nil, err } var hc Healthcheck if err := json.Unmarshal([]byte(val), &hc); err != nil { return nil, err } return &hc, nil }
func List(etcd *store.Etcd, username, appName string) (*map[string]string, error) { envs, err := etcd.ListWithValues("/paus/users/"+username+"/apps/"+appName+"/build-args/", true) if err != nil { return nil, err } result := map[string]string{} for key, value := range *envs { envKey := strings.Replace(key, "/paus/users/"+username+"/apps/"+appName+"/build-args/", "", 1) result[envKey] = value } return &result, nil }
func List(etcd *store.Etcd, username string) ([]string, error) { apps, err := etcd.List("/paus/users/"+username+"/apps/", true) if err != nil { return nil, err } result := make([]string, 0) for _, app := range apps { appName := strings.Replace(app, "/paus/users/"+username+"/apps/", "", 1) result = append(result, appName) } return result, nil }
func Create(etcd *store.Etcd, username, appName string) error { appKey := "/paus/users/" + username + "/apps/" + appName if err := etcd.Mkdir(appKey); err != nil { return err } for _, resource := range []string{"build-args", "envs", "deployments"} { if err := etcd.Mkdir(appKey + "/" + resource); err != nil { return err } } hc := healthcheck.NewHealthcheck(defaultHealthcheckPath, defaultHealthcheckInterval, defaultHealthcheckMaxTry) if err := healthcheck.Create(etcd, username, appName, hc); err != nil { return err } return nil }
func URLs(etcd *store.Etcd, uriScheme, baseDomain, username, appName string) ([]string, error) { deployments, err := etcd.List("/paus/users/"+username+"/apps/"+appName+"/deployments/", true) if err != nil { return nil, err } result := make([]string, 0) for _, deployment := range deployments { revision, err := etcd.Get(deployment) if err != nil { return nil, err } identifier := username + "-" + appName + "-" + revision[0:8] result = append(result, URL(uriScheme, identifier, baseDomain)) } return result, nil }
func Create(etcd *store.Etcd, user *github.User) error { username := *user.Login if err := etcd.Mkdir("/paus/users/" + username); err != nil { return err } if err := etcd.Set("/paus/users/"+username+"/avater_url", *user.AvatarURL); err != nil { return err } if err := etcd.Mkdir("/paus/users/" + username + "/apps"); err != nil { return err } return nil }
func RegisterAccessToken(etcd *store.Etcd, username, accessToken string) error { return etcd.Set("/paus/sessions/"+accessToken, username) }
func GetLoginUser(etcd *store.Etcd, accessToken string) string { username, _ := etcd.Get("/paus/sessions/" + accessToken) return username }
func GetAvaterURL(etcd *store.Etcd, username string) string { avaterURL, _ := etcd.Get("/paus/users/" + username + "/avater_url") return avaterURL }
func Exists(etcd *store.Etcd, username string) bool { return etcd.HasKey("/paus/users/" + username) }