func TestNodeAvailability(t *testing.T) { store := store.NewMemoryStore(nil) assert.NotNil(t, store) defer store.Close() SetupCluster(t, store) watch, cancel := state.Watch(store.WatchQueue()) defer cancel() skipEvents(t, watch) node1.Status.State = api.NodeStatus_READY node1.Spec.Availability = api.NodeAvailabilityActive // set node1 to drain updateNodeAvailability(t, store, node1, api.NodeAvailabilityDrain) // task should be set to dead observedTask1 := watchShutdownTask(t, watch) assert.Equal(t, observedTask1.ServiceAnnotations.Name, "name1") assert.Equal(t, observedTask1.NodeID, "id1") // set node1 to active updateNodeAvailability(t, store, node1, api.NodeAvailabilityActive) // task should be added back observedTask2 := watchTaskCreate(t, watch) assert.Equal(t, observedTask2.Status.State, api.TaskStateNew) assert.Equal(t, observedTask2.ServiceAnnotations.Name, "name1") assert.Equal(t, observedTask2.NodeID, "id1") }
func TestRemoveTask(t *testing.T) { store := store.NewMemoryStore(nil) assert.NotNil(t, store) defer store.Close() watch, cancel := state.Watch(store.WatchQueue() /*state.EventCreateTask{}, state.EventUpdateTask{}*/) defer cancel() SetupCluster(t, store) // get the task observedTask1 := watchTaskCreate(t, watch) assert.Equal(t, observedTask1.Status.State, api.TaskStateNew) assert.Equal(t, observedTask1.ServiceAnnotations.Name, "name1") assert.Equal(t, observedTask1.NodeID, "id1") // delete the task deleteTask(t, store, observedTask1) // the task should be recreated observedTask2 := watchTaskCreate(t, watch) assert.Equal(t, observedTask2.Status.State, api.TaskStateNew) assert.Equal(t, observedTask2.ServiceAnnotations.Name, "name1") assert.Equal(t, observedTask2.NodeID, "id1") }
func TestSetup(t *testing.T) { store := store.NewMemoryStore(nil) assert.NotNil(t, store) defer store.Close() watch, cancel := state.Watch(store.WatchQueue() /*state.EventCreateTask{}, state.EventUpdateTask{}*/) defer cancel() observedTask1 := SetupCluster(t, store, watch) assert.Equal(t, observedTask1.Status.State, api.TaskStateNew) assert.Equal(t, observedTask1.ServiceAnnotations.Name, "name1") assert.Equal(t, observedTask1.NodeID, "id1") }
func TestAddNode(t *testing.T) { store := store.NewMemoryStore(nil) assert.NotNil(t, store) defer store.Close() watch, cancel := state.Watch(store.WatchQueue()) defer cancel() SetupCluster(t, store, watch) addNode(t, store, node2) observedTask2 := testutils.WatchTaskCreate(t, watch) assert.Equal(t, observedTask2.Status.State, api.TaskStateNew) assert.Equal(t, observedTask2.ServiceAnnotations.Name, "name1") assert.Equal(t, observedTask2.NodeID, "id2") }
func TestDeleteService(t *testing.T) { store := store.NewMemoryStore(nil) assert.NotNil(t, store) defer store.Close() watch, cancel := state.Watch(store.WatchQueue()) defer cancel() SetupCluster(t, store, watch) deleteService(t, store, service1) // task should be deleted observedTask := testutils.WatchTaskDelete(t, watch) assert.Equal(t, observedTask.ServiceAnnotations.Name, "name1") assert.Equal(t, observedTask.NodeID, "id1") }
func TestAddService(t *testing.T) { store := store.NewMemoryStore(nil) assert.NotNil(t, store) SetupCluster(t, store) watch, cancel := state.Watch(store.WatchQueue()) defer cancel() skipEvents(t, watch) addService(t, store, service2) observedTask := watchTaskCreate(t, watch) assert.Equal(t, observedTask.Status.State, api.TaskStateNew) assert.Equal(t, observedTask.ServiceAnnotations.Name, "name2") assert.True(t, observedTask.NodeID == "id1") }
func TestDeleteNode(t *testing.T) { store := store.NewMemoryStore(nil) assert.NotNil(t, store) SetupCluster(t, store) watch, cancel := state.Watch(store.WatchQueue()) defer cancel() skipEvents(t, watch) deleteNode(t, store, node1) // task should be set to dead observedTask := watchShutdownTask(t, watch) assert.Equal(t, observedTask.ServiceAnnotations.Name, "name1") assert.Equal(t, observedTask.NodeID, "id1") }