func TestDeployListByName(t *testing.T) { deployment1, err := generateDeployment() if err != nil { t.Fatal(err) } deployment1.Deployment.Name = "test" deployment1.Deployment.Save() generateDeployment() if err != nil { t.Fatal(err) } key := mailbox.AccessKey{FullAccess: true} key.Create() req := api.DeploymentStatsRequest{ Count: 10, NamePattern: "t*t", } req.Sign(key.Name, key.Secret) var resp api.DeploymentStatsResponse code := doRequest(t, req, &resp, "deploy/list") if code != 200 { t.Fatalf("Server repsponded with %d", code) } if len(resp.Deployments) != 1 { t.Fatalf("Deployment length %d != 1", len(resp.Deployments)) } }
func TestDeployInfoListByToken(t *testing.T) { _, err := generateDeployment() key := mailbox.AccessKey{FullAccess: true} key.Create() if err != nil { t.Fatal(err) } dep2, err := generateDeployment() if err != nil { t.Fatal(err) } req := api.DeploymentStatsRequest{ Count: 2, TokenPattern: dep2.AccessKey.Name, } req.Sign(key.Name, key.Secret) var resp api.DeploymentStatsResponse code := doRequest(t, req, &resp, "deploy/list") if code != 200 { t.Fatalf("Server repsponded with %d", code) } if len(resp.Deployments) != 1 { t.Fatalf("Deployment count %d!=1", len(resp.Deployments)) } }
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 TestDeployInfoList(t *testing.T) { mb, _ := mailbox.Create("stats.deployinfo") mb.PutMessage("test") mb.PutMessage("test2") key := mailbox.AccessKey{FullAccess: true} key.Create() req := api.DeploymentStatsRequest{Count: 2} req.Sign(key.Name, key.Secret) var resp api.DeploymentStatsResponse code := doRequest(t, req, &resp, "deploy/list") if code != 200 { t.Fatalf("Server repsponded with %d", code) } if len(resp.Deployments) != 2 { t.Fatalf("Deployment count %d!=2", len(resp.Deployments)) } }
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 }