示例#1
0
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
}
示例#2
0
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
}
示例#3
0
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
}
示例#4
0
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
}
示例#5
0
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
}
示例#6
0
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
}
示例#7
0
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
}
示例#8
0
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
}
示例#9
0
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
}
示例#10
0
func RegisterAccessToken(etcd *store.Etcd, username, accessToken string) error {
	return etcd.Set("/paus/sessions/"+accessToken, username)
}
示例#11
0
func GetLoginUser(etcd *store.Etcd, accessToken string) string {
	username, _ := etcd.Get("/paus/sessions/" + accessToken)

	return username
}
示例#12
0
func GetAvaterURL(etcd *store.Etcd, username string) string {
	avaterURL, _ := etcd.Get("/paus/users/" + username + "/avater_url")

	return avaterURL
}
示例#13
0
func Exists(etcd *store.Etcd, username string) bool {
	return etcd.HasKey("/paus/users/" + username)
}