add unit tests to stack package
Signed-off-by: Arash Deshmeh <adeshmeh@ca.ibm.com>
This commit is contained in:
@ -14,6 +14,7 @@ func Service(builders ...func(*swarm.Service)) *swarm.Service {
|
||||
Annotations: swarm.Annotations{
|
||||
Name: "defaultServiceName",
|
||||
},
|
||||
EndpointSpec: &swarm.EndpointSpec{},
|
||||
},
|
||||
}
|
||||
|
||||
@ -24,9 +25,44 @@ func Service(builders ...func(*swarm.Service)) *swarm.Service {
|
||||
return service
|
||||
}
|
||||
|
||||
// ServiceID sets the service ID
|
||||
func ServiceID(ID string) func(*swarm.Service) {
|
||||
return func(service *swarm.Service) {
|
||||
service.ID = ID
|
||||
}
|
||||
}
|
||||
|
||||
// ServiceName sets the service name
|
||||
func ServiceName(name string) func(*swarm.Service) {
|
||||
return func(service *swarm.Service) {
|
||||
service.Spec.Annotations.Name = name
|
||||
}
|
||||
}
|
||||
|
||||
// ServiceLabels sets the service's labels
|
||||
func ServiceLabels(labels map[string]string) func(*swarm.Service) {
|
||||
return func(service *swarm.Service) {
|
||||
service.Spec.Annotations.Labels = labels
|
||||
}
|
||||
}
|
||||
|
||||
// ReplicatedService sets the number of replicas for the service
|
||||
func ReplicatedService(replicas uint64) func(*swarm.Service) {
|
||||
return func(service *swarm.Service) {
|
||||
service.Spec.Mode = swarm.ServiceMode{Replicated: &swarm.ReplicatedService{Replicas: &replicas}}
|
||||
}
|
||||
}
|
||||
|
||||
// ServiceImage sets the service's image
|
||||
func ServiceImage(image string) func(*swarm.Service) {
|
||||
return func(service *swarm.Service) {
|
||||
service.Spec.TaskTemplate = swarm.TaskSpec{ContainerSpec: swarm.ContainerSpec{Image: image}}
|
||||
}
|
||||
}
|
||||
|
||||
// ServicePort sets the service's port
|
||||
func ServicePort(port swarm.PortConfig) func(*swarm.Service) {
|
||||
return func(service *swarm.Service) {
|
||||
service.Spec.EndpointSpec.Ports = append(service.Spec.EndpointSpec.Ports, port)
|
||||
}
|
||||
}
|
||||
|
||||
@ -42,13 +42,34 @@ func TaskID(id string) func(*swarm.Task) {
|
||||
}
|
||||
}
|
||||
|
||||
// ServiceID sets the task service's ID
|
||||
func ServiceID(id string) func(*swarm.Task) {
|
||||
// TaskName sets the task name
|
||||
func TaskName(name string) func(*swarm.Task) {
|
||||
return func(task *swarm.Task) {
|
||||
task.Annotations.Name = name
|
||||
}
|
||||
}
|
||||
|
||||
// TaskServiceID sets the task service's ID
|
||||
func TaskServiceID(id string) func(*swarm.Task) {
|
||||
return func(task *swarm.Task) {
|
||||
task.ServiceID = id
|
||||
}
|
||||
}
|
||||
|
||||
// TaskNodeID sets the task's node id
|
||||
func TaskNodeID(id string) func(*swarm.Task) {
|
||||
return func(task *swarm.Task) {
|
||||
task.NodeID = id
|
||||
}
|
||||
}
|
||||
|
||||
// TaskDesiredState sets the task's desired state
|
||||
func TaskDesiredState(state swarm.TaskState) func(*swarm.Task) {
|
||||
return func(task *swarm.Task) {
|
||||
task.DesiredState = state
|
||||
}
|
||||
}
|
||||
|
||||
// WithStatus sets the task status
|
||||
func WithStatus(statusBuilders ...func(*swarm.TaskStatus)) func(*swarm.Task) {
|
||||
return func(task *swarm.Task) {
|
||||
@ -86,6 +107,13 @@ func StatusErr(err string) func(*swarm.TaskStatus) {
|
||||
}
|
||||
}
|
||||
|
||||
// TaskState sets the task's current state
|
||||
func TaskState(state swarm.TaskState) func(*swarm.TaskStatus) {
|
||||
return func(taskStatus *swarm.TaskStatus) {
|
||||
taskStatus.State = state
|
||||
}
|
||||
}
|
||||
|
||||
// PortStatus sets the tasks port config status
|
||||
// FIXME(vdemeester) should be a sub builder 👼
|
||||
func PortStatus(portConfigs []swarm.PortConfig) func(*swarm.TaskStatus) {
|
||||
@ -94,6 +122,13 @@ func PortStatus(portConfigs []swarm.PortConfig) func(*swarm.TaskStatus) {
|
||||
}
|
||||
}
|
||||
|
||||
// WithTaskSpec sets the task spec
|
||||
func WithTaskSpec(specBuilders ...func(*swarm.TaskSpec)) func(*swarm.Task) {
|
||||
return func(task *swarm.Task) {
|
||||
task.Spec = *TaskSpec(specBuilders...)
|
||||
}
|
||||
}
|
||||
|
||||
// TaskSpec creates a task spec with default values .
|
||||
// Any number of taskSpec function builder can be pass to augment it.
|
||||
func TaskSpec(specBuilders ...func(*swarm.TaskSpec)) *swarm.TaskSpec {
|
||||
@ -109,3 +144,10 @@ func TaskSpec(specBuilders ...func(*swarm.TaskSpec)) *swarm.TaskSpec {
|
||||
|
||||
return taskSpec
|
||||
}
|
||||
|
||||
// TaskImage sets the task's image
|
||||
func TaskImage(image string) func(*swarm.TaskSpec) {
|
||||
return func(taskSpec *swarm.TaskSpec) {
|
||||
taskSpec.ContainerSpec.Image = image
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user