func (client *Client) DeploymentDetail(id string) (*api.DeploymentStatsResponse, error) { request := api.DeploymentStatsRequest{Deployment: id} request.Sign(client.AccessKeyName, client.AccessKey) var response api.DeploymentStatsResponse err := client.request("deploy/list", request, &response) if !response.Validate(client.AccessKey) { return nil, errors.New("Could not validate signature") } return &response, err }
func (client *Client) ListDeploys(namePattern string, limitToken bool, count int) (*api.DeploymentStatsResponse, error) { request := api.DeploymentStatsRequest{ Count: int64(count), NamePattern: namePattern, TokenPattern: ".*", } request.Sign(client.AccessKeyName, client.AccessKey) if limitToken { request.TokenPattern = client.AccessKeyName } var response api.DeploymentStatsResponse err := client.request("deploy/list", request, &response) if err != nil { return nil, err } if !response.Validate(client.AccessKey) { return nil, errors.New("Could not validate signature") } return &response, nil }
func (client *Client) PollDeployment(depId string, f func(*api.DeploymentStats) bool) (*api.DeploymentStats, error) { loop := true var response *api.DeploymentStatsResponse for loop != false { request := api.DeploymentStatsRequest{Deployment: depId} request.Sign(client.AccessKeyName, client.AccessKey) err := client.request("deploy/list", request, &response) if err != nil { return nil, err } if !response.Validate(client.AccessKey) { return nil, errors.New("Could not validate signature") } if len(response.Deployments) == 0 { return nil, errors.New("Could not find deployment") } loop = f(&response.Deployments[0]) time.Sleep(1 * time.Second) } return &response.Deployments[0], nil }