本文整理汇总了Golang中github.com/coreos/fleet/job.NewJob函数的典型用法代码示例。如果您正苦于以下问题:Golang NewJob函数的具体用法?Golang NewJob怎么用?Golang NewJob使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewJob函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: newFakeRegistryForSsh
func newFakeRegistryForSsh() registry.Registry {
machines := []machine.MachineState{
{"c31e44e1-f858-436e-933e-59c642517860", "1.2.3.4", map[string]string{"ping": "pong"}, "", resource.ResourceTuple{}},
{"595989bb-cbb7-49ce-8726-722d6e157b4e", "5.6.7.8", map[string]string{"foo": "bar"}, "", resource.ResourceTuple{}},
{"hello.service", "8.7.6.5", map[string]string{"foo": "bar"}, "", resource.ResourceTuple{}},
}
jobs := []job.Job{
*job.NewJob("j1.service", unit.Unit{}),
*job.NewJob("j2.service", unit.Unit{}),
*job.NewJob("hello.service", unit.Unit{}),
}
states := map[string]*unit.UnitState{
"j1.service": unit.NewUnitState("loaded", "active", "listening", &machines[0]),
"j2.service": unit.NewUnitState("loaded", "inactive", "dead", &machines[1]),
"hello.service": unit.NewUnitState("loaded", "inactive", "dead", &machines[2]),
}
reg := registry.NewFakeRegistry()
reg.SetMachines(machines)
reg.SetUnitStates(states)
reg.SetJobs(jobs)
return reg
}
开发者ID:Jitendrakry,项目名称:fleet,代码行数:26,代码来源:ssh_test.go
示例2: newFakeRegistryForSsh
func newFakeRegistryForSsh() registry.Registry {
// clear machineStates for every invocation
machineStates = nil
machines := []machine.MachineState{
newMachineState("c31e44e1-f858-436e-933e-59c642517860", "1.2.3.4", map[string]string{"ping": "pong"}),
newMachineState("595989bb-cbb7-49ce-8726-722d6e157b4e", "5.6.7.8", map[string]string{"foo": "bar"}),
newMachineState("hello.service", "8.7.6.5", map[string]string{"foo": "bar"}),
}
jobs := []job.Job{
*job.NewJob("j1.service", unit.Unit{}),
*job.NewJob("j2.service", unit.Unit{}),
*job.NewJob("hello.service", unit.Unit{}),
}
states := map[string]*unit.UnitState{
"j1.service": unit.NewUnitState("loaded", "active", "listening", machines[0].ID),
"j2.service": unit.NewUnitState("loaded", "inactive", "dead", machines[1].ID),
"hello.service": unit.NewUnitState("loaded", "inactive", "dead", machines[2].ID),
}
reg := registry.NewFakeRegistry()
reg.SetMachines(machines)
reg.SetUnitStates(states)
reg.SetJobs(jobs)
return reg
}
开发者ID:JuanCarlosM,项目名称:fleet,代码行数:28,代码来源:ssh_test.go
示例3: TestGetJobsByPeer
// Assert that jobs and their peers are properly indexed
func TestGetJobsByPeer(t *testing.T) {
state := NewState()
u1 := unit.NewUnit(`[X-Fleet]
X-ConditionMachineOf=b
X-ConditionMachineOf=c
`)
j1 := job.NewJob("a", *u1)
state.TrackJob(j1)
u2 := unit.NewUnit(`[X-Fleet]
X-ConditionMachineOf=c
`)
j2 := job.NewJob("d", *u2)
state.TrackJob(j2)
peers := state.GetJobsByPeer("b")
if len(peers) != 1 || peers[0] != "a" {
t.Fatalf("Unexpected index of job peers %v", peers)
}
peers = state.GetJobsByPeer("c")
if len(peers) != 2 || peers[0] != "a" || peers[1] != "d" {
t.Fatalf("Unexpected index of job peers %v", peers)
}
}
开发者ID:rayleyva,项目名称:fleet,代码行数:27,代码来源:state_test.go
示例4: getJobFromModel
func (r *EtcdRegistry) getJobFromModel(jm jobModel) *job.Job {
var err error
var unit *unit.Unit
// New-style Jobs should have a populated UnitHash, and the contents of the Unit are stored separately in the Registry
if !jm.UnitHash.Empty() {
unit = r.getUnitByHash(jm.UnitHash)
if unit == nil {
log.Warningf("No Unit found in Registry for Job(%s)", jm.Name)
return nil
}
if unit.Hash() != jm.UnitHash {
log.Errorf("Unit Hash %s does not match expected %s for Job(%s)!", unit.Hash(), jm.UnitHash, jm.Name)
return nil
}
} else {
// Old-style Jobs had "Payloads" instead of Units, also stored separately in the Registry
unit, err = r.getUnitFromLegacyPayload(jm.Name)
if err != nil {
log.Errorf("Error retrieving legacy payload for Job(%s)", jm.Name)
return nil
} else if unit == nil {
log.Warningf("No Payload found in Registry for Job(%s)", jm.Name)
return nil
}
log.Infof("Migrating legacy Payload(%s)", jm.Name)
if err := r.storeOrGetUnit(*unit); err != nil {
log.Warningf("Unable to migrate legacy Payload: %v", err)
}
}
return job.NewJob(jm.Name, *unit)
}
开发者ID:JuanCarlosM,项目名称:fleet,代码行数:34,代码来源:job.go
示例5: TestSignJob
func TestSignJob(t *testing.T) {
c, _ := initSign(t)
u := unit.NewUnit("Echo")
j := job.NewJob("echo.service", *u)
data, err := marshal(u)
if err != nil {
t.Fatal("marshal error:", err)
}
expectedSig, err := c.keyring.Sign(testPublicKeys["rsa"], data)
if err != nil {
t.Fatal("sign error:", err)
}
s, err := c.SignJob(j)
if err != nil {
t.Fatal("sign payload error:", err)
}
if s.Tag != TagForJob("echo.service") {
t.Fatal("sign tag error:", err)
}
if len(s.Signatures) != 1 {
t.Fatal("expect 1 signature instead of", len(s.Signatures))
}
if bytes.Compare(s.Signatures[0].Blob, expectedSig.Blob) != 0 {
t.Fatal("wrong signature")
}
}
开发者ID:johnmontero,项目名称:fleet,代码行数:31,代码来源:job_test.go
示例6: newTestJobWithMachineMetadata
func newTestJobWithMachineMetadata(metadata string) *job.Job {
contents := fmt.Sprintf(`
[X-Fleet]
%s
`, metadata)
return job.NewJob("pong.service", *unit.NewUnit(contents))
}
开发者ID:rswart,项目名称:fleet,代码行数:8,代码来源:agent_test.go
示例7: TestFakeRegistryJobLifecycle
func TestFakeRegistryJobLifecycle(t *testing.T) {
reg := NewFakeRegistry()
jobs, err := reg.Jobs()
if err != nil {
t.Fatalf("Received error while calling Jobs: %v", err)
}
if !reflect.DeepEqual([]job.Job{}, jobs) {
t.Fatalf("Expected no jobs, got %v", jobs)
}
u, _ := unit.NewUnit("")
j1 := job.NewJob("job1.service", *u)
err = reg.CreateJob(j1)
if err != nil {
t.Fatalf("Received error while calling CreateJob: %v", err)
}
jobs, err = reg.Jobs()
if err != nil {
t.Fatalf("Received error while calling Jobs: %v", err)
}
if len(jobs) != 1 {
t.Fatalf("Expected 1 Job, got %v", jobs)
}
if jobs[0].Name != "job1.service" {
t.Fatalf("Expected Job with name \"job1.service\", got %q", jobs[0].Name)
}
err = reg.ScheduleJob("job1.service", "XXX")
if err != nil {
t.Fatalf("Received error while calling ScheduleJob: %v", err)
}
j, err := reg.Job("job1.service")
if err != nil {
t.Fatalf("Received error while calling JobTarget: %v", err)
}
if j.TargetMachineID != "XXX" {
t.Fatalf("Job should be scheduled to XXX, got %v", j.TargetMachineID)
}
err = reg.DestroyJob("job1.service")
if err != nil {
t.Fatalf("Received error while calling DestroyJob: %v", err)
}
jobs, err = reg.Jobs()
if err != nil {
t.Fatalf("Received error while calling Jobs: %v", err)
}
if !reflect.DeepEqual([]job.Job{}, jobs) {
t.Fatalf("Expected no jobs, got %v", jobs)
}
}
开发者ID:Jitendrakry,项目名称:fleet,代码行数:55,代码来源:fake_test.go
示例8: TestListUnitsFieldsToStrings
func TestListUnitsFieldsToStrings(t *testing.T) {
j := job.NewJob("test", *unit.NewUnit(""))
for _, tt := range []string{"state", "load", "active", "sub", "desc", "machine"} {
f := listUnitsFields[tt](j, false)
assertEqual(t, tt, "-", f)
}
f := listUnitsFields["unit"](j, false)
assertEqual(t, "unit", "test", f)
j = job.NewJob("test", *unit.NewUnit(`[Unit]
Description=some description`))
d := listUnitsFields["desc"](j, false)
assertEqual(t, "desc", "some description", d)
for _, state := range []job.JobState{job.JobStateLoaded, job.JobStateInactive, job.JobStateLaunched} {
j.State = &state
f := listUnitsFields["state"](j, false)
assertEqual(t, "state", string(state), f)
}
j.UnitState = unit.NewUnitState("foo", "bar", "baz", nil)
for k, want := range map[string]string{
"load": "foo",
"active": "bar",
"sub": "baz",
"machine": "-",
} {
got := listUnitsFields[k](j, false)
assertEqual(t, k, want, got)
}
j.UnitState.MachineState = &machine.MachineState{"some-id", "1.2.3.4", nil, "", resource.ResourceTuple{}}
ms := listUnitsFields["machine"](j, true)
assertEqual(t, "machine", "some-id/1.2.3.4", ms)
uh := "f035b2f14edc4d23572e5f3d3d4cb4f78d0e53c3"
fuh := listUnitsFields["hash"](j, true)
suh := listUnitsFields["hash"](j, false)
assertEqual(t, "hash", uh, fuh)
assertEqual(t, "hash", uh[:7], suh)
}
开发者ID:johnmontero,项目名称:fleet,代码行数:42,代码来源:list_units_test.go
示例9: createJob
func createJob(jobName string, unit *unit.Unit) (*job.Job, error) {
j := job.NewJob(jobName, *unit)
if err := registryCtl.CreateJob(j); err != nil {
return nil, fmt.Errorf("failed creating job %s: %v", j.Name, err)
}
log.V(1).Infof("Created Job(%s) in Registry", j.Name)
return j, nil
}
开发者ID:paulczar,项目名称:fleet,代码行数:11,代码来源:fleetctl.go
示例10: newTestJobFromUnitContents
func newTestJobFromUnitContents(t *testing.T, name, contents string) *job.Job {
u, err := unit.NewUnitFile(contents)
if err != nil {
t.Fatalf("error creating Unit from %q: %v", contents, err)
}
j := job.NewJob(name, *u)
if j == nil {
t.Fatalf("error creating Job %q from %q", name, u)
}
return j
}
开发者ID:ericcapricorn,项目名称:fleet,代码行数:11,代码来源:agent_test.go
示例11: newTestRegistryForListUnits
func newTestRegistryForListUnits(jobs []job.Job) registry.Registry {
j := []job.Job{*job.NewJob("pong.service", *unit.NewUnit("Echo"))}
if jobs != nil {
for _, job := range jobs {
j = append(j, job)
}
}
return TestRegistry{jobs: j}
}
开发者ID:rswart,项目名称:fleet,代码行数:11,代码来源:list_units_test.go
示例12: newTestRegistryForSsh
func newTestRegistryForSsh() registry.Registry {
machines := []machine.MachineState{
machine.MachineState{"c31e44e1-f858-436e-933e-59c642517860", "1.2.3.4", map[string]string{"ping": "pong"}, ""},
machine.MachineState{"595989bb-cbb7-49ce-8726-722d6e157b4e", "5.6.7.8", map[string]string{"foo": "bar"}, ""},
machine.MachineState{"hello.service", "8.7.6.5", map[string]string{"foo": "bar"}, ""},
}
jobs := []job.Job{
*job.NewJob("j1.service", unit.Unit{}),
*job.NewJob("j2.service", unit.Unit{}),
*job.NewJob("hello.service", unit.Unit{}),
}
states := map[string]*unit.UnitState{
"j1.service": unit.NewUnitState("loaded", "active", "listening", &machines[0]),
"j2.service": unit.NewUnitState("loaded", "inactive", "dead", &machines[1]),
"hello.service": unit.NewUnitState("loaded", "inactive", "dead", &machines[2]),
}
return TestRegistry{machines: machines, jobStates: states, jobs: jobs}
}
开发者ID:rswart,项目名称:fleet,代码行数:21,代码来源:ssh_test.go
示例13: TestAbleToRunConditionMachineIDMatch
func TestAbleToRunConditionMachineIDMatch(t *testing.T) {
u := unit.NewUnit(`[X-Fleet]
X-ConditionMachineID=XYZ
`)
job := job.NewJob("example.service", *u)
mach := &machine.FakeMachine{machine.MachineState{ID: "XYZ"}}
agent := Agent{Machine: mach, state: NewState()}
if !agent.ableToRun(job) {
t.Fatalf("Agent should be able to run job")
}
}
开发者ID:paulczar,项目名称:fleet,代码行数:12,代码来源:agent_test.go
示例14: TestAbleToRunConditionMachineIDMismatch
func TestAbleToRunConditionMachineIDMismatch(t *testing.T) {
u := unit.NewUnit(`[X-Fleet]
X-ConditionMachineID=XYZ
`)
job := job.NewJob("example.service", *u)
mach := machine.New(machine.MachineState{ID: "123"})
agent := Agent{machine: mach, state: NewState()}
if agent.AbleToRun(job) {
t.Fatalf("Agent should not be able to run job")
}
}
开发者ID:rswart,项目名称:fleet,代码行数:12,代码来源:agent_test.go
示例15: TestAbleToRunConditionMachineBootIDMismatch
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")
}
}
开发者ID:nullstyle,项目名称:fleet,代码行数:13,代码来源:agent_test.go
示例16: TestGetJobsByPeerUnknown
// Assert that no jobs are returned for unknown peers
func TestGetJobsByPeerUnknown(t *testing.T) {
u := unit.NewUnit(`[X-Fleet]
X-ConditionMachineOf=b
`)
j := job.NewJob("a", *u)
state := NewState()
state.TrackJob(j)
peers := state.GetJobsByPeer("c")
if len(peers) != 0 {
t.Fatalf("Unexpected index of job peers %v", peers)
}
}
开发者ID:rayleyva,项目名称:fleet,代码行数:15,代码来源:state_test.go
示例17: newFakeRegistryForListUnits
func newFakeRegistryForListUnits(jobs []job.Job) registry.Registry {
j := []job.Job{*job.NewJob("pong.service", *unit.NewUnit("Echo"))}
if jobs != nil {
for _, job := range jobs {
j = append(j, job)
}
}
reg := registry.NewFakeRegistry()
reg.SetJobs(j)
return reg
}
开发者ID:johnmontero,项目名称:fleet,代码行数:14,代码来源:list_units_test.go
示例18: TestHasConflictNoMatch
// Assert that existing jobs and potential jobs that do not conflict do not
// trigger a match
func TestHasConflictNoMatch(t *testing.T) {
state := NewState()
u := unit.NewUnit(`[X-Fleet]`)
j := job.NewJob("example.service", *u)
state.TrackJob(j)
state.SetTargetState(j.Name, job.JobStateLoaded)
agent := Agent{state: state}
matched, name := agent.HasConflict("other.service", []string{})
if matched {
t.Errorf("Expected no match, but got conflict with %s", name)
}
}
开发者ID:rswart,项目名称:fleet,代码行数:17,代码来源:agent_test.go
示例19: create
func (ur *unitsResource) create(rw http.ResponseWriter, item string, ds job.JobState, u *unit.Unit) {
j := job.NewJob(item, *u)
if err := ur.reg.CreateJob(j); err != nil {
log.Errorf("Failed creating Job(%s) in Registry: %v", j.Name, err)
sendError(rw, http.StatusInternalServerError, nil)
return
}
if err := ur.reg.SetJobTargetState(j.Name, ds); err != nil {
log.Errorf("Failed setting target state of Job(%s): %v", j.Name, err)
sendError(rw, http.StatusInternalServerError, nil)
return
}
rw.WriteHeader(http.StatusNoContent)
}
开发者ID:JuanCarlosM,项目名称:fleet,代码行数:17,代码来源:units.go
示例20: TestJobDescription
func TestJobDescription(t *testing.T) {
contents := `[Unit]
Description=PING
`
jp := job.NewJobPayload("ping.service", *unit.NewSystemdUnitFile(contents))
j := []job.Job{*job.NewJob("ping.service", map[string][]string{}, jp, nil)}
registryCtl = newTestRegistryForListUnits(nil, j)
names, _ := findAllUnits()
if len(names) != 3 {
t.Errorf("Expected to find three units: %v\n", names)
}
if names["ping.service"] != "PING" {
t.Errorf("Expected to have `PING` as a description, but it was %s\n", names["ping.service"])
}
}
开发者ID:jsdir,项目名称:fleet,代码行数:17,代码来源:list_units_test.go
注:本文中的github.com/coreos/fleet/job.NewJob函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论