示例#1
0
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))
	}
}
示例#2
0
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))
	}
}
示例#3
0
文件: client.go 项目: 5Sigma/Conduit
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
}
示例#4
0
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))
	}
}
示例#5
0
文件: client.go 项目: 5Sigma/Conduit
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
}
示例#6
0
文件: client.go 项目: 5Sigma/Conduit
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
}