func TestJobPayloadConflictsNotProvided(t *testing.T) { unitFile := unit.NewSystemdUnitFile("") payload := NewJobPayload("echo.socket", *unitFile) conflicts := payload.Conflicts() if len(conflicts) > 0 { t.Fatalf("Expected no conflicts, received %v", conflicts) } }
func TestJobPayloadServiceDefaultPeers(t *testing.T) { unitFile := unit.NewSystemdUnitFile("") payload := NewJobPayload("echo.service", *unitFile) peers := payload.Peers() if len(peers) != 0 { t.Fatalf("Unexpected number of peers %d, expected 0", len(peers)) } }
func getJobPayloadFromFile(file string) (*job.JobPayload, error) { out, err := ioutil.ReadFile(file) if err != nil { return nil, err } unitFile := unit.NewSystemdUnitFile(string(out)) name := path.Base(file) payload := job.NewJobPayload(name, *unitFile) return payload, nil }
func TestJobPayloadSocketDefaultPeers(t *testing.T) { unitFile := unit.NewSystemdUnitFile("") payload := NewJobPayload("echo.socket", *unitFile) peers := payload.Peers() if len(peers) != 1 { t.Fatalf("Unexpected number of peers %d, expected 1", len(peers)) } if peers[0] != "echo.service" { t.Fatalf("Unexpected peers: %v", peers) } }
func TestAbleToRunConditionMachineBootIDMismatch(t *testing.T) { uf := unit.NewSystemdUnitFile(`[X-Fleet] X-ConditionMachineBootID=XYZ `) payload := job.NewJobPayload("example.service", *uf) job := job.NewJob("example.service", make(map[string][]string, 0), payload, nil) mach := machine.New("123", "", make(map[string]string, 0)) agent := Agent{machine: mach, state: NewState()} if agent.AbleToRun(job) { t.Fatalf("Agent should not be able to run job") } }
func TestJobPayloadConflicts(t *testing.T) { contents := `[Unit] Description=Testing [X-Fleet] X-Conflicts=*bar* ` unitFile := unit.NewSystemdUnitFile(contents) payload := NewJobPayload("echo.service", *unitFile) conflicts := payload.Conflicts() if len(conflicts) != 1 { t.Errorf("Expected 1 conflict, received %v", conflicts) } if conflicts[0] != "*bar*" { t.Errorf("Expected first conflict to be '*bar*', received %s", conflicts[1]) } }