func PublishReserveNodeWorkflow(c config.Cpi) (string, error) { tasks, workflow, err := generateReserveNodeWorkflow(c.RequestID) if err != nil { return "", err } for i := range tasks { err = rackhdapi.PublishTask(c, tasks[i]) if err != nil { return "", err } } w := reserveNodeWorkflow{} err = json.Unmarshal(workflow, &w) if err != nil { return "", fmt.Errorf("error umarshalling workflow: %s", err) } err = rackhdapi.PublishWorkflow(c, workflow) if err != nil { return "", err } return w.Name, nil }
func PublishProvisionNodeWorkflow(c config.Cpi) (string, error) { tasks, workflow, err := generateProvisionNodeWorkflow(c.RequestID) if err != nil { return "", err } for i := range tasks { err = rackhdapi.PublishTask(c, tasks[i]) if err != nil { return "", err } } w := provisionNodeWorkflow{} err = json.Unmarshal(workflow, &w) if err != nil { log.Error(fmt.Sprintf("error umarshalling workflow: %s", err)) return "", err } err = rackhdapi.PublishWorkflow(c, workflow) if err != nil { return "", err } return w.Name, nil }
func PublishDeprovisionNodeWorkflow(c config.Cpi, uuid string) (string, error) { tasks, workflow, err := generateDeprovisionNodeWorkflow(uuid) if err != nil { return "", err } for i := range tasks { err = rackhdapi.PublishTask(c, tasks[i]) if err != nil { return "", err } } w := deprovisionNodeWorkflow{} err = json.Unmarshal(workflow, &w) if err != nil { return "", fmt.Errorf("error umarshalling workflow: %s", err) } err = rackhdapi.PublishWorkflow(c, workflow) if err != nil { return "", err } return w.Name, nil }
"fake-take": "succeeded", }, IgnoreFailure: true, }, } fakeWorkflowStub := rackhdapi.WorkflowStub{ Name: fmt.Sprintf("Task.CF.Fake.%s", uuid), UnusedName: rackhdapi.DefaultUnusedName, Tasks: fakeTasks, } fakeWorkflowStubBytes, err := json.Marshal(fakeWorkflowStub) Expect(err).ToNot(HaveOccurred()) err = rackhdapi.PublishWorkflow(cpiConfig, fakeWorkflowStubBytes) Expect(err).ToNot(HaveOccurred()) workflowLibraryBytes, err := rackhdapi.RetrieveWorkflows(cpiConfig) Expect(err).ToNot(HaveOccurred()) workflowLibrary := []rackhdapi.WorkflowStub{} err = json.Unmarshal(workflowLibraryBytes, &workflowLibrary) Expect(err).ToNot(HaveOccurred()) Expect(workflowLibrary).To(ContainElement(fakeWorkflowStub)) }) }) Describe("RunWorkflow", func() { Context("when the workflow completes successfully", func() {