Rename structs.Task's Service attribute to ConsulService

This commit is contained in:
Sean Chittenden
2016-06-08 02:20:10 -04:00
parent b6a2ec2db8
commit 54838b9eba
14 changed files with 46 additions and 47 deletions

View File

@@ -1299,7 +1299,7 @@ func (c *Client) setupConsulSyncer() error {
for taskName, taskState := range taskStates {
if taskState.State == structs.TaskStateRunning {
if tr, ok := ar.tasks[taskName]; ok {
for _, service := range tr.task.Services {
for _, service := range tr.task.ConsulServices {
svcIdentifier := fmt.Sprintf("%s-%s", allocId, tr.task.Name)
services[service.ID(svcIdentifier)] = struct{}{}
}

View File

@@ -12,7 +12,6 @@ import (
"time"
"github.com/hashicorp/nomad/client/config"
"github.com/hashicorp/nomad/client/consul"
"github.com/hashicorp/nomad/command/agent/consul"
"github.com/hashicorp/nomad/nomad"
"github.com/hashicorp/nomad/nomad/mock"

View File

@@ -359,7 +359,7 @@ func (e *UniversalExecutor) UpdateTask(task *structs.Task) error {
// Re-syncing task with Consul agent
if e.consulSyncer != nil {
e.consulSyncer.SetServices(servicesGroupName, task.Services)
e.consulSyncer.SetServices(servicesGroupName, task.ConsulServices)
}
return nil
}
@@ -487,7 +487,7 @@ func (e *UniversalExecutor) SyncServices(ctx *ConsulContext) error {
if e.ctx != nil {
syncerFn := func() error {
e.interpolateServices(e.ctx.Task)
e.consulSyncer.SetServices(e.ctx.AllocID, e.ctx.Task.Services)
e.consulSyncer.SetServices(e.ctx.AllocID, e.ctx.Task.ConsulServices)
return nil
}
e.consulSyncer.AddPeriodicHandler(e.ctx.AllocID, syncerFn)
@@ -690,7 +690,7 @@ func (e *UniversalExecutor) createCheck(check *structs.ServiceCheck, checkID str
// task's environment.
func (e *UniversalExecutor) interpolateServices(task *structs.Task) {
e.ctx.TaskEnv.Build()
for _, service := range task.Services {
for _, service := range task.ConsulServices {
for _, check := range service.Checks {
if check.Type == structs.ServiceCheckScript {
check.Name = e.ctx.TaskEnv.ReplaceEnv(check.Name)

View File

@@ -338,18 +338,18 @@ func TestExecutorInterpolateServices(t *testing.T) {
executor.(*UniversalExecutor).ctx = ctx
executor.(*UniversalExecutor).interpolateServices(task)
expectedTags := []string{"pci:true", "datacenter:dc1"}
if !reflect.DeepEqual(task.Services[0].Tags, expectedTags) {
t.Fatalf("expected: %v, actual: %v", expectedTags, task.Services[0].Tags)
if !reflect.DeepEqual(task.ConsulServices[0].Tags, expectedTags) {
t.Fatalf("expected: %v, actual: %v", expectedTags, task.ConsulServices[0].Tags)
}
expectedCheckCmd := "/usr/local/check-table-mysql"
expectedCheckArgs := []string{"5.6"}
if !reflect.DeepEqual(task.Services[0].Checks[0].Command, expectedCheckCmd) {
t.Fatalf("expected: %v, actual: %v", expectedCheckCmd, task.Services[0].Checks[0].Command)
if !reflect.DeepEqual(task.ConsulServices[0].Checks[0].Command, expectedCheckCmd) {
t.Fatalf("expected: %v, actual: %v", expectedCheckCmd, task.ConsulServices[0].Checks[0].Command)
}
if !reflect.DeepEqual(task.Services[0].Checks[0].Args, expectedCheckArgs) {
t.Fatalf("expected: %v, actual: %v", expectedCheckArgs, task.Services[0].Checks[0].Args)
if !reflect.DeepEqual(task.ConsulServices[0].Checks[0].Args, expectedCheckArgs) {
t.Fatalf("expected: %v, actual: %v", expectedCheckArgs, task.ConsulServices[0].Checks[0].Args)
}
}

View File

@@ -90,7 +90,7 @@ func TestConsulServiceUpdateService(t *testing.T) {
//Update Service defn 1
newTags := []string{"tag3"}
task.Services[0].Tags = newTags
task.ConsulServices[0].Tags = newTags
if err := cs.SyncServices(); err != nil {
t.Fatalf("err: %v", err)
}
@@ -147,8 +147,8 @@ func checksPresent(t *testing.T, checkIDs []string, syncer *Syncer) error {
func mockTask() *structs.Task {
task := structs.Task{
Name: "foo",
Services: []*structs.ConsulService{&service1, &service2},
Name: "foo",
ConsulServices: []*structs.ConsulService{&service1, &service2},
Resources: &structs.Resources{
Networks: []*structs.NetworkResource{
&structs.NetworkResource{

View File

@@ -701,7 +701,7 @@ func parseArtifactOption(result map[string]string, list *ast.ObjectList) error {
}
func parseServices(jobName string, taskGroupName string, task *structs.Task, serviceObjs *ast.ObjectList) error {
task.Services = make([]*structs.ConsulService, len(serviceObjs.Items))
task.ConsulServices = make([]*structs.ConsulService, len(serviceObjs.Items))
var defaultServiceName bool
for idx, o := range serviceObjs.Items {
// Check for invalid keys
@@ -750,7 +750,7 @@ func parseServices(jobName string, taskGroupName string, task *structs.Task, ser
}
}
task.Services[idx] = &service
task.ConsulServices[idx] = &service
}
return nil

View File

@@ -97,7 +97,7 @@ func TestParse(t *testing.T) {
},
},
},
Services: []*structs.ConsulService{
ConsulServices: []*structs.ConsulService{
{
Name: "binstore-storagelocker-binsl-binstore",
Tags: []string{"foo", "bar"},

View File

@@ -48,7 +48,7 @@ func TestJobEndpoint_Register(t *testing.T) {
if out.CreateIndex != resp.JobModifyIndex {
t.Fatalf("index mis-match")
}
serviceName := out.TaskGroups[0].Tasks[0].Services[0].Name
serviceName := out.TaskGroups[0].Tasks[0].ConsulServices[0].Name
expectedServiceName := "web-frontend"
if serviceName != expectedServiceName {
t.Fatalf("Expected Service Name: %s, Actual: %s", expectedServiceName, serviceName)
@@ -237,7 +237,7 @@ func TestJobEndpoint_Register_Periodic(t *testing.T) {
if out.CreateIndex != resp.JobModifyIndex {
t.Fatalf("index mis-match")
}
serviceName := out.TaskGroups[0].Tasks[0].Services[0].Name
serviceName := out.TaskGroups[0].Tasks[0].ConsulServices[0].Name
expectedServiceName := "web-frontend"
if serviceName != expectedServiceName {
t.Fatalf("Expected Service Name: %s, Actual: %s", expectedServiceName, serviceName)
@@ -573,12 +573,12 @@ func TestJobEndpoint_GetJob(t *testing.T) {
// Make a copy of the origin job and change the service name so that we can
// do a deep equal with the response from the GET JOB Api
j := job
j.TaskGroups[0].Tasks[0].Services[0].Name = "web-frontend"
j.TaskGroups[0].Tasks[0].ConsulServices[0].Name = "web-frontend"
for tgix, tg := range j.TaskGroups {
for tidx, t := range tg.Tasks {
for sidx, service := range t.Services {
for sidx, service := range t.ConsulServices {
for cidx, check := range service.Checks {
check.Name = resp2.Job.TaskGroups[tgix].Tasks[tidx].Services[sidx].Checks[cidx].Name
check.Name = resp2.Job.TaskGroups[tgix].Tasks[tidx].ConsulServices[sidx].Checks[cidx].Name
}
}
}

View File

@@ -94,7 +94,7 @@ func Job() *structs.Job {
Env: map[string]string{
"FOO": "bar",
},
Services: []*structs.ConsulService{
ConsulServices: []*structs.ConsulService{
{
Name: "${TASK}-frontend",
PortLabel: "http",

View File

@@ -386,7 +386,7 @@ func (t *Task) Diff(other *Task, contextual bool) (*TaskDiff, error) {
}
// Services diff
if sDiffs := serviceDiffs(t.Services, other.Services, contextual); sDiffs != nil {
if sDiffs := serviceDiffs(t.ConsulServices, other.ConsulServices, contextual); sDiffs != nil {
diff.Objects = append(diff.Objects, sDiffs...)
}

View File

@@ -2363,7 +2363,7 @@ func TestTaskDiff(t *testing.T) {
{
// Services edited (no checks)
Old: &Task{
Services: []*ConsulService{
ConsulServices: []*ConsulService{
{
Name: "foo",
PortLabel: "foo",
@@ -2379,7 +2379,7 @@ func TestTaskDiff(t *testing.T) {
},
},
New: &Task{
Services: []*ConsulService{
ConsulServices: []*ConsulService{
{
Name: "bar",
PortLabel: "bar",
@@ -2452,7 +2452,7 @@ func TestTaskDiff(t *testing.T) {
// Services edited (no checks) with context
Contextual: true,
Old: &Task{
Services: []*ConsulService{
ConsulServices: []*ConsulService{
{
Name: "foo",
PortLabel: "foo",
@@ -2460,7 +2460,7 @@ func TestTaskDiff(t *testing.T) {
},
},
New: &Task{
Services: []*ConsulService{
ConsulServices: []*ConsulService{
{
Name: "foo",
PortLabel: "bar",
@@ -2494,7 +2494,7 @@ func TestTaskDiff(t *testing.T) {
{
// Service Checks edited
Old: &Task{
Services: []*ConsulService{
ConsulServices: []*ConsulService{
{
Name: "foo",
Checks: []*ServiceCheck{
@@ -2533,7 +2533,7 @@ func TestTaskDiff(t *testing.T) {
},
},
New: &Task{
Services: []*ConsulService{
ConsulServices: []*ConsulService{
{
Name: "foo",
Checks: []*ServiceCheck{
@@ -2695,7 +2695,7 @@ func TestTaskDiff(t *testing.T) {
// Service Checks edited with context
Contextual: true,
Old: &Task{
Services: []*ConsulService{
ConsulServices: []*ConsulService{
{
Name: "foo",
Checks: []*ServiceCheck{
@@ -2714,7 +2714,7 @@ func TestTaskDiff(t *testing.T) {
},
},
New: &Task{
Services: []*ConsulService{
ConsulServices: []*ConsulService{
{
Name: "foo",
Checks: []*ServiceCheck{

View File

@@ -1688,7 +1688,7 @@ type Task struct {
Env map[string]string
// List of service definitions exposed by the Task
Services []*ConsulService
ConsulServices []*ConsulService
// Constraints can be specified at a task level and apply only to
// the particular task.
@@ -1721,12 +1721,12 @@ func (t *Task) Copy() *Task {
*nt = *t
nt.Env = CopyMapStringString(nt.Env)
if t.Services != nil {
services := make([]*ConsulService, len(nt.Services))
for i, s := range nt.Services {
if t.ConsulServices != nil {
services := make([]*ConsulService, len(nt.ConsulServices))
for i, s := range nt.ConsulServices {
services[i] = s.Copy()
}
nt.Services = services
nt.ConsulServices = services
}
nt.Constraints = CopySliceConstraints(nt.Constraints)
@@ -1763,7 +1763,7 @@ func (t *Task) InitFields(job *Job, tg *TaskGroup) {
// and Tasks in all the service Names of a Task. This also generates the service
// id, check id and check names.
func (t *Task) InitServiceFields(job string, taskGroup string) {
for _, service := range t.Services {
for _, service := range t.ConsulServices {
service.InitFields(job, taskGroup, t.Name)
}
}
@@ -1860,7 +1860,7 @@ func validateServices(t *Task) error {
// unique.
servicePorts := make(map[string][]string)
knownServices := make(map[string]struct{})
for i, service := range t.Services {
for i, service := range t.ConsulServices {
if err := service.Validate(); err != nil {
outer := fmt.Errorf("service %d validation failed: %s", i, err)
mErr.Errors = append(mErr.Errors, outer)
@@ -2448,7 +2448,7 @@ func (a *Allocation) PopulateServiceIDs(tg *TaskGroup) {
a.Services = make(map[string]string)
for _, task := range tg.Tasks {
for _, service := range task.Services {
for _, service := range task.ConsulServices {
// Retain the service if an ID is already generated
if id, ok := previous[service.Name]; ok {
a.Services[service.Name] = id

View File

@@ -136,7 +136,7 @@ func testJob() *Job {
GetterSource: "http://foo.com",
},
},
Services: []*ConsulService{
ConsulServices: []*ConsulService{
{
Name: "${TASK}-frontend",
PortLabel: "http",
@@ -311,7 +311,7 @@ func TestTask_Validate_Services(t *testing.T) {
MemoryMB: 100,
IOPS: 10,
},
Services: []*ConsulService{s1, s2},
ConsulServices: []*ConsulService{s1, s2},
}
err := task.Validate()
if err == nil {
@@ -722,7 +722,7 @@ func TestJob_ExpandServiceNames(t *testing.T) {
Tasks: []*Task{
{
Name: "frontend",
Services: []*ConsulService{
ConsulServices: []*ConsulService{
{
Name: "${BASE}-default",
},
@@ -746,12 +746,12 @@ func TestJob_ExpandServiceNames(t *testing.T) {
j.InitFields()
service1Name := j.TaskGroups[0].Tasks[0].Services[0].Name
service1Name := j.TaskGroups[0].Tasks[0].ConsulServices[0].Name
if service1Name != "my-job-web-frontend-default" {
t.Fatalf("Expected Service Name: %s, Actual: %s", "my-job-web-frontend-default", service1Name)
}
service2Name := j.TaskGroups[0].Tasks[0].Services[1].Name
service2Name := j.TaskGroups[0].Tasks[0].ConsulServices[1].Name
if service2Name != "jmx" {
t.Fatalf("Expected Service Name: %s, Actual: %s", "jmx", service2Name)
}

View File

@@ -691,10 +691,10 @@ func TestInplaceUpdate_Success(t *testing.T) {
}
// Delete service 2
tg.Tasks[0].Services = tg.Tasks[0].Services[:1]
tg.Tasks[0].ConsulServices = tg.Tasks[0].ConsulServices[:1]
// Add the new services
tg.Tasks[0].Services = append(tg.Tasks[0].Services, newServices...)
tg.Tasks[0].ConsulServices = append(tg.Tasks[0].ConsulServices, newServices...)
updates := []allocTuple{{Alloc: alloc, TaskGroup: tg}}
stack := NewGenericStack(false, ctx)