vcoworkflows 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,22 @@
1
+ require_relative '../spec_helper.rb'
2
+ require 'vcoworkflows'
3
+
4
+ # rubocop:disable LineLength
5
+
6
+ describe VcoWorkflows::WorkflowExecutionLog, 'WorkflowExecutionLog' do
7
+ before(:each) do
8
+ # Set up some basic starting data
9
+ @workflow_name = 'Request Component'
10
+ @workflow_id = '6e04a460-4a45-4e16-9603-db2922c24462'
11
+
12
+ # The JSON we'd get back from vCenter Orchestrator
13
+ @log_json = '''{"logs":[{"entry":{"severity":"info","time-stamp":1419026124333,"user":"gruiz-ade","short-description":"Workflow \'Request Component\' has completed","long-description":"Workflow \'Request Component\' has completed"}},{"entry":{"severity":"info","time-stamp":1419026123927,"user":"gruiz-ade","short-description":"Workflow \'Request Component\' has resumed","long-description":"Workflow \'Request Component\' has resumed"}},{"entry":{"severity":"info","time-stamp":1419025439183,"user":"gruiz-ade","short-description":"Workflow is paused","long-description":"Workflow \'Request Component\' has paused while waiting on signal"}},{"entry":{"severity":"info","time-stamp":1419025426870,"user":"gruiz-ade","short-description":"Workflow \'Request Component\' has started","long-description":"Workflow \'Request Component\' has started"}}]}'''
14
+ end
15
+
16
+ it 'should initialize and parse the log JSON' do
17
+ wflog = VcoWorkflows::WorkflowExecutionLog.new(@log_json)
18
+ expect(wflog).to_not eq(nil)
19
+ expect(wflog.messages.size).to eq(4)
20
+ end
21
+ end
22
+ # rubocop:enable LineLength
@@ -0,0 +1,67 @@
1
+ require_relative '../spec_helper.rb'
2
+ require 'vcoworkflows'
3
+
4
+ # rubocop:disable LineLength
5
+
6
+ describe VcoWorkflows::WorkflowParameter, 'WorkflowParameter' do
7
+ before(:each) do
8
+ @paramname = 'testparam'
9
+ @paramtype = 'string'
10
+ @paramvalue = 'squirrel!'
11
+ @paramarray = %w( a b c )
12
+ @string_json = '''{"type":"string","name":"testparam","scope":"local","value":{"string":{"value":"squirrel!"}}}'''
13
+ @array_json = '''{"type":"Array","name":"testparam","scope":"local","value":{"array":{"elements":[{"string":{"value":"a"}},{"string":{"value":"b"}},{"string":{"value":"c"}}]}}}'''
14
+ end
15
+
16
+ it 'should not be set' do
17
+ wfp = VcoWorkflows::WorkflowParameter.new(@paramname, @paramtype)
18
+
19
+ expect(wfp.set?).to eq(false)
20
+ end
21
+
22
+ it 'should be set when created with value' do
23
+ wfp = VcoWorkflows::WorkflowParameter.new(@paramname, @paramtype, value: @paramvalue)
24
+
25
+ expect(wfp.set?).to eq(true)
26
+ end
27
+
28
+ it 'should not be required' do
29
+ wfp = VcoWorkflows::WorkflowParameter.new(@paramname, @paramtype)
30
+
31
+ expect(wfp.required?).to eq(false)
32
+ end
33
+
34
+ it 'should be required' do
35
+ wfp = VcoWorkflows::WorkflowParameter.new(@paramname, @paramtype, required: true)
36
+
37
+ expect(wfp.required?).to eq(true)
38
+ end
39
+
40
+ it 'should be an array of strings' do
41
+ wfp = VcoWorkflows::WorkflowParameter.new(@paramname, 'Array/string')
42
+
43
+ expect(wfp.type).to eql('Array')
44
+ expect(wfp.subtype).to eql('string')
45
+ end
46
+
47
+ it "should be an array of strings #{@paramarray}" do
48
+ wfp = VcoWorkflows::WorkflowParameter.new(@paramnam, 'Array/string')
49
+ wfp.set(@paramarray)
50
+
51
+ expect(wfp.value).to eq(@paramarray)
52
+ end
53
+
54
+ it 'should generate a JSON document for single value' do
55
+ wfp = VcoWorkflows::WorkflowParameter.new(@paramname, @paramtype, value: @paramvalue)
56
+
57
+ expect(wfp.to_json).to eql(@string_json)
58
+ end
59
+
60
+ it 'should generate a JSON document for Array value' do
61
+ wfp = VcoWorkflows::WorkflowParameter.new(@paramname, 'Array/string', value: @paramarray)
62
+
63
+ expect(wfp.to_json).to eql(@array_json)
64
+ end
65
+ end
66
+
67
+ # rubocop:enable LineLength
@@ -0,0 +1,34 @@
1
+ require_relative '../spec_helper.rb'
2
+ require 'vcoworkflows'
3
+
4
+ # rubocop:disable LineLength
5
+
6
+ describe VcoWorkflows::WorkflowPresentation, 'WorkflowPresentation' do
7
+ before(:each) do
8
+ # Set up some basic starting data
9
+ @workflow_name = 'Request Component'
10
+ @workflow_id = '6e04a460-4a45-4e16-9603-db2922c24462'
11
+
12
+ # The JSON we'd get back from vCenter Orchestrator
13
+ @presentation_json = '''{"output-parameters":[{"name":"machineCount","type":"string"},{"name":"location","type":"string"},{"name":"image","type":"string","description":"vCenter template name"},{"name":"coreCount","type":"string"},{"name":"ramMB","type":"string"},{"name":"onBehalfOf","type":"string"},{"name":"businessUnit","type":"string"},{"name":"environment","type":"string"},{"name":"component","type":"string"},{"name":"reservation","type":"string"},{"name":"runlist","type":"Array/string","description":"Chef Runlist for first run. Leave empty for no Chef"},{"name":"nodename","type":"string","description":"Chef Nodename"},{"name":"attributesJS","type":"string","description":"JSON object of vCenter Attributes to apply to VM(s)"}],"input-parameters":[{"name":"businessUnit","type":"string","description":"businessUnit"},{"name":"environment","type":"string","description":"environment"},{"name":"component","type":"string","description":"component"},{"name":"onBehalfOf","type":"string","description":"On Behalf of User: (user@domain format)"},{"name":"machineCount","type":"string","description":"machineCount"},{"name":"image","type":"string","description":"image"},{"name":"coreCount","type":"string","description":"coreCount"},{"name":"ramMB","type":"string","description":"ramSizeMB"},{"name":"runlist","type":"Array/string","description":"runlist"},{"name":"reservation","type":"string","description":"reservation"},{"name":"location","type":"string","description":"location"},{"name":"attributesJS","type":"string","description":"JSON object of vCenter Attributes to apply to VM(s)"},{"name":"nodename","type":"string","description":"Chef Nodename"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/presentation/","name":"Request Component","id":"6e04a460-4a45-4e16-9603-db2922c24462","steps":[{"step":{"messages":[],"hidden":false,"elements":[{"fields":[{"display-name":"businessUnit","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"businessUnit","description":"businessUnit","hidden":false,"messages":[],"decorators":[{"array":{"elements":[{"string":{"value":"an"}},{"string":{"value":"aw"}},{"string":{"value":"soi"}}]},"@type":"drop-down"}],"type":"string"},{"display-name":"environment","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"environment","description":"environment","hidden":false,"messages":[],"decorators":[],"type":"string"},{"display-name":"component","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"component","description":"component","hidden":false,"messages":[],"decorators":[],"type":"string"},{"display-name":"On Behalf of User: (user@domain format)","constraints":[],"@type":"field","fields":[],"id":"onBehalfOf","description":"On Behalf of User: (user@domain format)","hidden":false,"messages":[],"decorators":[],"type":"string"},{"display-name":"machineCount","constraints":[],"@type":"field","fields":[],"id":"machineCount","description":"machineCount","hidden":false,"messages":[],"decorators":[{"array":{"elements":[{"string":{"value":"1"}},{"string":{"value":"2"}},{"string":{"value":"3"}},{"string":{"value":"4"}},{"string":{"value":"5"}},{"string":{"value":"6"}},{"string":{"value":"7"}},{"string":{"value":"8"}},{"string":{"value":"9"}},{"string":{"value":"10"}}]},"@type":"drop-down"}],"type":"string"},{"display-name":"image","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"image","description":"image","hidden":false,"messages":[],"decorators":[{"array":{"elements":[{"string":{"value":"vcaccentos65v8-agent"}},{"string":{"value":"win2012std"}},{"string":{"value":"vcac2012std"}},{"string":{"value":"centos-6.6-x86_64-20141203-1"}},{"string":{"value":"v8-centos65-agent"}},{"string":{"value":"vcac2008r2std"}},{"string":{"value":"oracle-6.5-x86_64-20141203-1"}},{"string":{"value":"centos65v8"}},{"string":{"value":"w2012r2std_coreservices"}},{"string":{"value":"2008r2std"}}]},"@type":"drop-down"}],"type":"string"},{"display-name":"coreCount","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"coreCount","description":"coreCount","hidden":false,"messages":[],"decorators":[{"@type":"refresh-on-change"},{"array":{"elements":[{"string":{"value":"1"}},{"string":{"value":"2"}},{"string":{"value":"4"}},{"string":{"value":"8"}}]},"@type":"drop-down"}],"type":"string"},{"display-name":"ramSizeMB","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"ramMB","description":"ramSizeMB","hidden":false,"messages":[],"decorators":[{"array":{"elements":[null]},"@type":"drop-down"}],"type":"string"},{"display-name":"runlist","constraints":[],"@type":"field","fields":[],"id":"runlist","description":"runlist","hidden":false,"messages":[],"decorators":[],"type":"Array/string"},{"display-name":"reservation","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"reservation","description":"reservation","hidden":false,"messages":[],"decorators":[],"type":"string"},{"display-name":"location","constraints":[],"@type":"field","fields":[],"id":"location","description":"location","hidden":false,"messages":[],"decorators":[],"type":"string"},{"display-name":"JSON object of vCenter Attributes to apply to VM(s)","constraints":[],"@type":"field","fields":[],"id":"attributesJS","description":"JSON object of vCenter Attributes to apply to VM(s)","hidden":false,"messages":[],"decorators":[{"@type":"multiline"}],"type":"string"},{"display-name":"Chef Nodename","constraints":[],"@type":"field","fields":[],"id":"nodename","description":"Chef Nodename","hidden":false,"messages":[],"decorators":[],"type":"string"}],"messages":[],"hidden":false,"@type":"group"}]}}],"relations":{"link":[{"rel":"up","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/"},{"rel":"instances","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/presentation/instances/"},{"rel":"add","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/presentation/instances/"}]}}'''
14
+
15
+ # Mock the WorkflowService
16
+ @service = double('service')
17
+ allow(@service).to receive(:get_presentation) { @presentation_json }
18
+ end
19
+
20
+ it 'should create the object without error' do
21
+ pres = VcoWorkflows::WorkflowPresentation.new(@service, @workflow_id)
22
+
23
+ expect(pres).to_not eq(nil)
24
+ expect(pres.presentation_data).to_not eq(nil)
25
+ end
26
+
27
+ it 'should have required parameters' do
28
+ pres = VcoWorkflows::WorkflowPresentation.new(@service, @workflow_id)
29
+
30
+ expect(pres.required).to_not eq([])
31
+ expect(pres.required.size).to eq(7)
32
+ end
33
+ end
34
+ # rubocop:enable LineLength
@@ -0,0 +1,113 @@
1
+ require_relative '../spec_helper.rb'
2
+ require 'vcoworkflows'
3
+ require 'erb'
4
+
5
+ include ERB::Util
6
+
7
+ # rubocop:disable LineLength
8
+
9
+ describe VcoWorkflows::WorkflowService, 'WorkflowService' do
10
+ before(:each) do
11
+ # Set up some basic starting data
12
+ @workflow_name = 'Request Component'
13
+ @workflow_id = '6e04a460-4a45-4e16-9603-db2922c24462'
14
+ @execution_id = 'ff8080814a1cb55c014a6481a9927a78'
15
+ @workflow_json = '''{"output-parameters":[{"name":"result","type":"string","description":"Catalog item request state"},{"name":"requestNumber","type":"number"},{"name":"requestCompletionDetails","type":"string"}],"relations":{"link":[{"rel":"up","href":"https://vco.example.com:8281/vco/api/inventory/System/Workflows/dlinsley%2540vmware.com/vCAC/"},{"rel":"executions","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/"},{"rel":"presentation","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/presentation/"},{"rel":"tasks","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/tasks/"},{"rel":"icon","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/icon/"},{"rel":"schema","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/schema/"},{"rel":"permissions","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/permissions/"},{"rel":"interactions","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/interactions/"}]},"id":"6e04a460-4a45-4e16-9603-db2922c24462","name":"Request Component","version":"0.0.33","description":"","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/","customized-icon":false,"input-parameters":[{"name":"coreCount","type":"string"},{"name":"ramMB","type":"string"},{"name":"onBehalfOf","type":"string"},{"name":"machineCount","type":"string"},{"name":"businessUnit","type":"string"},{"name":"reservation","type":"string"},{"name":"location","type":"string"},{"name":"environment","type":"string"},{"name":"image","type":"string","description":"vCenter template name"},{"name":"runlist","type":"Array/string","description":"Chef Runlist for first run. Leave empty for no Chef"},{"name":"nodename","type":"string","description":"Chef Nodename"},{"name":"component","type":"string"},{"name":"attributesJS","type":"string","description":"JSON object of vCenter Attributes to apply to VM(s)"}]}'''
16
+ @token_json = '''{"relations":{"link":[{"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/","rel":"up"},{"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6481a9927a78/","rel":"remove"},{"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6481a9927a78/logs/","rel":"logs"},{"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6481a9927a78/state/","rel":"state"}]},"id":"ff8080814a1cb55c014a6481a9927a78","state":"completed","name":"Request Component","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6481a9927a78/","start-date":1419025426833,"end-date":1419026124320,"started-by":"someuser@EXAMPLE.COM","input-parameters":[{"value":{"string":{"value":"2"}},"type":"string","name":"coreCount","scope":"local"},{"value":{"string":{"value":"2048"}},"type":"string","name":"ramMB","scope":"local"},{"value":{"string":{"value":"svcacct@example.com"}},"type":"string","name":"onBehalfOf","scope":"local"},{"value":{"string":{"value":"1"}},"type":"string","name":"machineCount","scope":"local"},{"value":{"string":{"value":"aw"}},"type":"string","name":"businessUnit","scope":"local"},{"value":{"string":{"value":"nonprodlinux"}},"type":"string","name":"reservation","scope":"local"},{"value":{"string":{"value":"us_east"}},"type":"string","name":"location","scope":"local"},{"value":{"string":{"value":"dev1"}},"type":"string","name":"environment","scope":"local"},{"value":{"string":{"value":"centos-6.6-x86_64-20141203-1"}},"type":"string","name":"image","scope":"local"},{"value":{"array":{"elements":[{"string":{"value":"role[loc_uswest]"}},{"string":{"value":"role[base]"}},{"string":{"value":"role[api]"}}]}},"type":"Array/string","name":"runlist","scope":"local"},{"value":{"string":{"value":""}},"type":"string","name":"nodename","scope":"local"},{"value":{"string":{"value":"api"}},"type":"string","name":"component","scope":"local"},{"value":{"string":{"value":""}},"type":"string","name":"attributesJS","scope":"local"}],"output-parameters":[{"value":{"string":{"value":"SUCCESSFUL"}},"type":"string","name":"result","scope":"local"},{"value":{"number":{"value":326.0}},"type":"number","name":"requestNumber","scope":"local"},{"value":{"string":{"value":"Request succeeded. Created vm00378."}},"type":"string","name":"requestCompletionDetails","scope":"local"}]}'''
17
+ @presentation_json = '''{"output-parameters":[{"name":"machineCount","type":"string"},{"name":"location","type":"string"},{"name":"image","type":"string","description":"vCenter template name"},{"name":"coreCount","type":"string"},{"name":"ramMB","type":"string"},{"name":"onBehalfOf","type":"string"},{"name":"businessUnit","type":"string"},{"name":"environment","type":"string"},{"name":"component","type":"string"},{"name":"reservation","type":"string"},{"name":"runlist","type":"Array/string","description":"Chef Runlist for first run. Leave empty for no Chef"},{"name":"nodename","type":"string","description":"Chef Nodename"},{"name":"attributesJS","type":"string","description":"JSON object of vCenter Attributes to apply to VM(s)"}],"input-parameters":[{"name":"businessUnit","type":"string","description":"businessUnit"},{"name":"environment","type":"string","description":"environment"},{"name":"component","type":"string","description":"component"},{"name":"onBehalfOf","type":"string","description":"On Behalf of User: (user@domain format)"},{"name":"machineCount","type":"string","description":"machineCount"},{"name":"image","type":"string","description":"image"},{"name":"coreCount","type":"string","description":"coreCount"},{"name":"ramMB","type":"string","description":"ramSizeMB"},{"name":"runlist","type":"Array/string","description":"runlist"},{"name":"reservation","type":"string","description":"reservation"},{"name":"location","type":"string","description":"location"},{"name":"attributesJS","type":"string","description":"JSON object of vCenter Attributes to apply to VM(s)"},{"name":"nodename","type":"string","description":"Chef Nodename"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/presentation/","name":"Request Component","id":"6e04a460-4a45-4e16-9603-db2922c24462","steps":[{"step":{"messages":[],"hidden":false,"elements":[{"fields":[{"display-name":"businessUnit","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"businessUnit","description":"businessUnit","hidden":false,"messages":[],"decorators":[{"array":{"elements":[{"string":{"value":"an"}},{"string":{"value":"aw"}},{"string":{"value":"soi"}}]},"@type":"drop-down"}],"type":"string"},{"display-name":"environment","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"environment","description":"environment","hidden":false,"messages":[],"decorators":[],"type":"string"},{"display-name":"component","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"component","description":"component","hidden":false,"messages":[],"decorators":[],"type":"string"},{"display-name":"On Behalf of User: (user@domain format)","constraints":[],"@type":"field","fields":[],"id":"onBehalfOf","description":"On Behalf of User: (user@domain format)","hidden":false,"messages":[],"decorators":[],"type":"string"},{"display-name":"machineCount","constraints":[],"@type":"field","fields":[],"id":"machineCount","description":"machineCount","hidden":false,"messages":[],"decorators":[{"array":{"elements":[{"string":{"value":"1"}},{"string":{"value":"2"}},{"string":{"value":"3"}},{"string":{"value":"4"}},{"string":{"value":"5"}},{"string":{"value":"6"}},{"string":{"value":"7"}},{"string":{"value":"8"}},{"string":{"value":"9"}},{"string":{"value":"10"}}]},"@type":"drop-down"}],"type":"string"},{"display-name":"image","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"image","description":"image","hidden":false,"messages":[],"decorators":[{"array":{"elements":[{"string":{"value":"vcaccentos65v8-agent"}},{"string":{"value":"win2012std"}},{"string":{"value":"vcac2012std"}},{"string":{"value":"centos-6.6-x86_64-20141203-1"}},{"string":{"value":"v8-centos65-agent"}},{"string":{"value":"vcac2008r2std"}},{"string":{"value":"oracle-6.5-x86_64-20141203-1"}},{"string":{"value":"centos65v8"}},{"string":{"value":"w2012r2std_coreservices"}},{"string":{"value":"2008r2std"}}]},"@type":"drop-down"}],"type":"string"},{"display-name":"coreCount","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"coreCount","description":"coreCount","hidden":false,"messages":[],"decorators":[{"@type":"refresh-on-change"},{"array":{"elements":[{"string":{"value":"1"}},{"string":{"value":"2"}},{"string":{"value":"4"}},{"string":{"value":"8"}}]},"@type":"drop-down"}],"type":"string"},{"display-name":"ramSizeMB","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"ramMB","description":"ramSizeMB","hidden":false,"messages":[],"decorators":[{"array":{"elements":[null]},"@type":"drop-down"}],"type":"string"},{"display-name":"runlist","constraints":[],"@type":"field","fields":[],"id":"runlist","description":"runlist","hidden":false,"messages":[],"decorators":[],"type":"Array/string"},{"display-name":"reservation","constraints":[{"@type":"mandatory"}],"@type":"field","fields":[],"id":"reservation","description":"reservation","hidden":false,"messages":[],"decorators":[],"type":"string"},{"display-name":"location","constraints":[],"@type":"field","fields":[],"id":"location","description":"location","hidden":false,"messages":[],"decorators":[],"type":"string"},{"display-name":"JSON object of vCenter Attributes to apply to VM(s)","constraints":[],"@type":"field","fields":[],"id":"attributesJS","description":"JSON object of vCenter Attributes to apply to VM(s)","hidden":false,"messages":[],"decorators":[{"@type":"multiline"}],"type":"string"},{"display-name":"Chef Nodename","constraints":[],"@type":"field","fields":[],"id":"nodename","description":"Chef Nodename","hidden":false,"messages":[],"decorators":[],"type":"string"}],"messages":[],"hidden":false,"@type":"group"}]}}],"relations":{"link":[{"rel":"up","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/"},{"rel":"instances","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/presentation/instances/"},{"rel":"add","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/presentation/instances/"}]}}'''
18
+ @log_json = '''{"logs":[{"entry":{"severity":"info","time-stamp":1419026124333,"user":"someuser","short-description":"Workflow \'Request Component\' has completed","long-description":"Workflow \'Request Component\' has completed"}},{"entry":{"severity":"info","time-stamp":1419026123927,"user":"someuser","short-description":"Workflow \'Request Component\' has resumed","long-description":"Workflow \'Request Component\' has resumed"}},{"entry":{"severity":"info","time-stamp":1419025439183,"user":"someuser","short-description":"Workflow is paused","long-description":"Workflow \'Request Component\' has paused while waiting on signal"}},{"entry":{"severity":"info","time-stamp":1419025426870,"user":"someuser","short-description":"Workflow \'Request Component\' has started","long-description":"Workflow \'Request Component\' has started"}}]}'''
19
+ @input_param_count = 13
20
+ @output_param_count = 3
21
+ @required_param_count = 7
22
+ @url = 'https://vco.example.com:8281/vco/api'
23
+ @username = 'jdoe'
24
+ @password = 's3cr3t'
25
+
26
+ # Mock VcoSession
27
+ @session = double('session')
28
+ end
29
+
30
+ it 'should initialize correctly' do
31
+ service = VcoWorkflows::WorkflowService.new(@session)
32
+ expect(service).to_not eq(nil)
33
+ expect(service.class).to eq(VcoWorkflows::WorkflowService)
34
+ end
35
+
36
+ it 'should get workflow by id' do
37
+ response = double('response')
38
+ allow(response).to receive(:body) { @workflow_json }
39
+ allow(@session).to receive(:get) { response }
40
+ expect(@session).to receive(:get).with("/workflows/#{@workflow_id}")
41
+ service = VcoWorkflows::WorkflowService.new(@session)
42
+ res = service.get_workflow_for_id(@workflow_id)
43
+ expect(res).to_not eq(nil)
44
+ expect(res.class).to eq(String)
45
+ expect(res).to eql(@workflow_json)
46
+ end
47
+
48
+ it 'should get workflow by name' do
49
+ query_json = '''{"link":[{"attributes":[{"value":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/","name":"itemHref"},{"value":"6e04a460-4a45-4e16-9603-db2922c24462","name":"id"},{"value":"vCAC","name":"categoryName"},{"value":"true","name":"canExecute"},{"value":"https://vco.example.com:8281/vco/api/catalog/System/WorkflowCategory/ff80808148eb04940149d404c1506b3b/","name":"categoryHref"},{"value":"","name":"description"},{"value":"Request Component","name":"name"},{"value":"false","name":"customIcon"},{"value":"Workflow","name":"type"},{"value":"true","name":"canEdit"},{"value":"0.0.33","name":"version"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/","rel":"down"}],"total":1}'''
50
+ response = double('response')
51
+ allow(response).to receive(:body) { query_json }
52
+ allow(@session).to receive(:get) { response }
53
+ expect(@session).to receive(:get).with("/workflows?conditions=name=#{url_encode(@workflow_name)}")
54
+ service = VcoWorkflows::WorkflowService.new(@session)
55
+ allow(service).to receive(:get_workflow_for_id) { @workflow_json }
56
+ expect(service).to receive(:get_workflow_for_id).with(@workflow_id)
57
+ wf_json = service.get_workflow_for_name(@workflow_name)
58
+ expect(wf_json).to_not eq(nil)
59
+ expect(wf_json.class).to eq(String)
60
+ expect(wf_json).to eql(@workflow_json)
61
+ end
62
+
63
+ it 'should provide a list of executions' do
64
+ executions_json = '''{"relations":{"total":100,"link":[{"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/","rel":"up"},{"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/","rel":"add"},{"attributes":[{"value":"ff8080814a1cb55c014a354875ad15be","name":"id"},{"value":"2014-12-10T17:39:08.843Z","name":"startDate"},{"value":"2014-12-10T17:39:13.827Z","name":"endDate"},{"value":"svcacct@example.","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"value":"Compute Inputs","name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a354875ad15be/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a354c6088163a","name":"id"},{"value":"2014-12-10T17:43:25.577Z","name":"startDate"},{"value":"2014-12-10T18:17:00.107Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a354c6088163a/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a354eaa6d1666","name":"id"},{"value":"2014-12-10T17:45:55.567Z","name":"startDate"},{"value":"2014-12-10T17:48:24.880Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"value":"Wait for catalog item request","name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a354eaa6d1666/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a355989dc1701","name":"id"},{"value":"2014-12-10T17:57:48.123Z","name":"startDate"},{"value":"2014-12-10T18:03:28.990Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"value":"Wait for catalog item request","name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a355989dc1701/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a35655e0d177f","name":"id"},{"value":"2014-12-10T18:10:43.340Z","name":"startDate"},{"value":"2014-12-10T18:15:56.477Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a35655e0d177f/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a35c384ec184e","name":"id"},{"value":"2014-12-10T19:53:33.677Z","name":"startDate"},{"value":"2014-12-10T20:27:10.093Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a35c384ec184e/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a35cee07e18c9","name":"id"},{"value":"2014-12-10T20:05:58.013Z","name":"startDate"},{"value":"2014-12-10T20:39:30.107Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a35cee07e18c9/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a35e4e2ae199c","name":"id"},{"value":"2014-12-10T20:30:00.367Z","name":"startDate"},{"value":"2014-12-10T20:36:28.633Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a35e4e2ae199c/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a35e9689f1a2b","name":"id"},{"value":"2014-12-10T20:34:56.797Z","name":"startDate"},{"value":"2014-12-10T20:41:03.760Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a35e9689f1a2b/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a35edc0a91adb","name":"id"},{"value":"2014-12-10T20:39:41.480Z","name":"startDate"},{"value":"2014-12-10T20:45:21.347Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a35edc0a91adb/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a35ef096a1b40","name":"id"},{"value":"2014-12-10T20:41:05.640Z","name":"startDate"},{"value":"2014-12-10T20:47:21.173Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a35ef096a1b40/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a35f81b151c8c","name":"id"},{"value":"2014-12-10T20:50:59.987Z","name":"startDate"},{"value":"2014-12-10T20:56:30.040Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a35f81b151c8c/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a35fc933d1d0a","name":"id"},{"value":"2014-12-10T20:55:52.893Z","name":"startDate"},{"value":"2014-12-10T21:02:27.343Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a35fc933d1d0a/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a3600e5911d77","name":"id"},{"value":"2014-12-10T21:00:36.113Z","name":"startDate"},{"value":"2014-12-10T21:07:02.500Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a3600e5911d77/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a361e2bed1ed1","name":"id"},{"value":"2014-12-10T21:32:34.670Z","name":"startDate"},{"value":"2014-12-10T21:37:36.703Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a361e2bed1ed1/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a362989f51f54","name":"id"},{"value":"2014-12-10T21:44:59.637Z","name":"startDate"},{"value":"2014-12-10T21:50:28.687Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a362989f51f54/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a364a070f1ff7","name":"id"},{"value":"2014-12-10T22:20:28.817Z","name":"startDate"},{"value":"2014-12-10T22:25:48.610Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a364a070f1ff7/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a36a5bd2d2214","name":"id"},{"value":"2014-12-11T00:00:39.213Z","name":"startDate"},{"value":"2014-12-11T00:06:30.540Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a36a5bd2d2214/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a3a627f4b2496","name":"id"},{"value":"2014-12-11T17:25:41.323Z","name":"startDate"},{"value":"2014-12-11T17:31:41.463Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a3a627f4b2496/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a3a6783ea2529","name":"id"},{"value":"2014-12-11T17:31:10.187Z","name":"startDate"},{"value":"2014-12-11T17:36:52.760Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a3a6783ea2529/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a3a6b767c2572","name":"id"},{"value":"2014-12-11T17:35:28.893Z","name":"startDate"},{"value":"2014-12-11T17:45:59.917Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a3a6b767c2572/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a4eadde7d3499","name":"id"},{"value":"2014-12-15T16:00:25.213Z","name":"startDate"},{"value":"2014-12-15T16:06:56.183Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a4eadde7d3499/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a4eb73a1235b0","name":"id"},{"value":"2014-12-15T16:10:38.483Z","name":"startDate"},{"value":"2014-12-15T16:16:13.250Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a4eb73a1235b0/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a4f0c01ab3704","name":"id"},{"value":"2014-12-15T17:43:14.603Z","name":"startDate"},{"value":"2014-12-15T17:49:51.737Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"value":"Wait for catalog item request","name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a4f0c01ab3704/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a4f183b0a37c2","name":"id"},{"value":"2014-12-15T17:56:35.723Z","name":"startDate"},{"value":"2014-12-15T18:03:46.747Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"value":"Wait for catalog item request","name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a4f183b0a37c2/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a4f1aaf4137eb","name":"id"},{"value":"2014-12-15T17:59:16.547Z","name":"startDate"},{"value":"2014-12-15T18:06:22.360Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"value":"Wait for catalog item request","name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a4f1aaf4137eb/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a4f21cdf6396f","name":"id"},{"value":"2014-12-15T18:07:03.157Z","name":"startDate"},{"value":"2014-12-15T18:13:42.400Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"value":"Wait for catalog item request","name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a4f21cdf6396f/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a4f2e587d3a4c","name":"id"},{"value":"2014-12-15T18:20:45.053Z","name":"startDate"},{"value":"2014-12-15T18:26:34.740Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a4f2e587d3a4c/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a4f4d9ebc3af4","name":"id"},{"value":"2014-12-15T18:54:54.653Z","name":"startDate"},{"value":"2014-12-15T19:00:13.737Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a4f4d9ebc3af4/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a4fab3b6a3bbb","name":"id"},{"value":"2014-12-15T20:37:09.610Z","name":"startDate"},{"value":"2014-12-15T20:37:51.910Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"value":"Wait for catalog item request","name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a4fab3b6a3bbb/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a4fb467393bc6","name":"id"},{"value":"2014-12-15T20:47:10.650Z","name":"startDate"},{"value":"2014-12-15T20:47:41.030Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"value":"Wait for catalog item request","name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a4fb467393bc6/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a4ffee4fd3cd6","name":"id"},{"value":"2014-12-15T22:08:32.507Z","name":"startDate"},{"value":"2014-12-15T22:42:20.250Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"value":"Get Details","name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a4ffee4fd3cd6/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5001a1853cff","name":"id"},{"value":"2014-12-15T22:11:31.847Z","name":"startDate"},{"value":"2014-12-15T22:11:54.823Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5001a1853cff/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5004a4693d68","name":"id"},{"value":"2014-12-15T22:14:49.193Z","name":"startDate"},{"value":"2014-12-15T22:15:16.123Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5004a4693d68/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5005c15f3d71","name":"id"},{"value":"2014-12-15T22:16:02.143Z","name":"startDate"},{"value":"2014-12-15T22:16:35.040Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5005c15f3d71/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a500710713d7a","name":"id"},{"value":"2014-12-15T22:17:27.920Z","name":"startDate"},{"value":"2014-12-15T22:20:13.257Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a500710713d7a/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a500980a03dc8","name":"id"},{"value":"2014-12-15T22:20:07.710Z","name":"startDate"},{"value":"2014-12-15T22:20:44.457Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a500980a03dc8/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a500bf6bf3dd6","name":"id"},{"value":"2014-12-15T22:22:49.023Z","name":"startDate"},{"value":"2014-12-15T22:23:20.083Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a500bf6bf3dd6/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a500ebdcf3de3","name":"id"},{"value":"2014-12-15T22:25:51.057Z","name":"startDate"},{"value":"2014-12-15T22:28:31.970Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a500ebdcf3de3/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5011dec23e33","name":"id"},{"value":"2014-12-15T22:29:16.097Z","name":"startDate"},{"value":"2014-12-15T22:29:39.100Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5011dec23e33/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a501877a33e46","name":"id"},{"value":"2014-12-15T22:36:28.450Z","name":"startDate"},{"value":"2014-12-15T22:38:44.137Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a501877a33e46/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5019ec473e81","name":"id"},{"value":"2014-12-15T22:38:03.847Z","name":"startDate"},{"value":"2014-12-15T22:40:28.393Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5019ec473e81/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a502611c33ee2","name":"id"},{"value":"2014-12-15T22:51:19.877Z","name":"startDate"},{"value":"2014-12-15T22:57:54.097Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a502611c33ee2/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5026643b3eeb","name":"id"},{"value":"2014-12-15T22:51:40.987Z","name":"startDate"},{"value":"2014-12-15T22:52:25.070Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5026643b3eeb/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a502c380b4171","name":"id"},{"value":"2014-12-15T22:58:02.890Z","name":"startDate"},{"value":"2014-12-15T23:07:15.767Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a502c380b4171/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5036ad9244da","name":"id"},{"value":"2014-12-15T23:09:28.337Z","name":"startDate"},{"value":"2014-12-15T23:16:16.843Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5036ad9244da/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a504a66ca4620","name":"id"},{"value":"2014-12-15T23:31:00.937Z","name":"startDate"},{"value":"2014-12-15T23:36:27.130Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a504a66ca4620/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a54697aa44bbd","name":"id"},{"value":"2014-12-16T18:43:26.500Z","name":"startDate"},{"value":"2014-12-16T18:51:00.870Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a54697aa44bbd/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a54750ad34c89","name":"id"},{"value":"2014-12-16T18:56:04.307Z","name":"startDate"},{"value":"2014-12-16T19:02:41.587Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a54750ad34c89/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a548abf564d51","name":"id"},{"value":"2014-12-16T19:19:46.773Z","name":"startDate"},{"value":"2014-12-16T19:25:26.757Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a548abf564d51/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5493748d4db9","name":"id"},{"value":"2014-12-16T19:29:17.453Z","name":"startDate"},{"value":"2014-12-16T19:35:48.240Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5493748d4db9/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a549afed94edf","name":"id"},{"value":"2014-12-16T19:37:31.610Z","name":"startDate"},{"value":"2014-12-16T19:43:36.443Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a549afed94edf/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a54bad99d4fa0","name":"id"},{"value":"2014-12-16T20:12:19.230Z","name":"startDate"},{"value":"2014-12-16T20:17:48.910Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a54bad99d4fa0/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a54d130ec523f","name":"id"},{"value":"2014-12-16T20:36:43.370Z","name":"startDate"},{"value":"2014-12-16T20:43:36.920Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a54d130ec523f/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a54de927c5557","name":"id"},{"value":"2014-12-16T20:51:20.317Z","name":"startDate"},{"value":"2014-12-16T21:01:14.217Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a54de927c5557/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a54ee69d55ab1","name":"id"},{"value":"2014-12-16T21:08:38.487Z","name":"startDate"},{"value":"2014-12-16T21:19:55.677Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a54ee69d55ab1/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a54f633fb60ce","name":"id"},{"value":"2014-12-16T21:17:08.987Z","name":"startDate"},{"value":"2014-12-16T21:28:49.913Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a54f633fb60ce/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a54f7067661f9","name":"id"},{"value":"2014-12-16T21:18:02.870Z","name":"startDate"},{"value":"2014-12-16T21:30:23.283Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a54f7067661f9/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a552ac01779c9","name":"id"},{"value":"2014-12-16T22:14:32.727Z","name":"startDate"},{"value":"2014-12-16T22:25:12.700Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a552ac01779c9/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a555261557ba2","name":"id"},{"value":"2014-12-16T22:57:49.910Z","name":"startDate"},{"value":"2014-12-16T23:09:42.100Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a555261557ba2/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5568870e00ea","name":"id"},{"value":"2014-12-16T23:22:01.357Z","name":"startDate"},{"value":"2014-12-16T23:29:52.857Z","name":"endDate"},{"value":"svcacct@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5568870e00ea/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a565db80904b6","name":"id"},{"value":"2014-12-17T03:49:50.217Z","name":"startDate"},{"value":"2014-12-17T04:00:43.247Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a565db80904b6/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a595e2cef090d","name":"id"},{"value":"2014-12-17T17:49:11.790Z","name":"startDate"},{"value":"2014-12-17T18:00:48.813Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a595e2cef090d/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a596bb8420b53","name":"id"},{"value":"2014-12-17T18:03:59.427Z","name":"startDate"},{"value":"2014-12-17T18:14:53.647Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a596bb8420b53/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a598611af0d4c","name":"id"},{"value":"2014-12-17T18:32:46.257Z","name":"startDate"},{"value":"2014-12-17T18:43:47.177Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a598611af0d4c/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5a079a6c132d","name":"id"},{"value":"2014-12-17T20:54:15.403Z","name":"startDate"},{"value":"2014-12-17T20:57:37.420Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5a079a6c132d/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5a36fafc13fd","name":"id"},{"value":"2014-12-17T21:46:00.317Z","name":"startDate"},{"value":"2014-12-17T21:57:45.140Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5a36fafc13fd/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5a3713541403","name":"id"},{"value":"2014-12-17T21:46:06.547Z","name":"startDate"},{"value":"2014-12-17T21:58:16.453Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5a3713541403/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5a3803ee1437","name":"id"},{"value":"2014-12-17T21:47:08.143Z","name":"startDate"},{"value":"2014-12-17T21:53:01.083Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5a3803ee1437/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5a381a5b144c","name":"id"},{"value":"2014-12-17T21:47:13.883Z","name":"startDate"},{"value":"2014-12-17T21:58:47.757Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5a381a5b144c/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5a3a882214e6","name":"id"},{"value":"2014-12-17T21:49:53.057Z","name":"startDate"},{"value":"2014-12-17T21:56:10.847Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5a3a882214e6/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5a3ac3621520","name":"id"},{"value":"2014-12-17T21:50:08.227Z","name":"startDate"},{"value":"2014-12-17T22:01:01.883Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5a3ac3621520/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5a48bbc11d1e","name":"id"},{"value":"2014-12-17T22:05:23.777Z","name":"startDate"},{"value":"2014-12-17T22:11:52.040Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5a48bbc11d1e/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5a48e1d91d24","name":"id"},{"value":"2014-12-17T22:05:33.530Z","name":"startDate"},{"value":"2014-12-17T22:17:29.443Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5a48e1d91d24/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5abd11212073","name":"id"},{"value":"2014-12-18T00:12:27.810Z","name":"startDate"},{"value":"2014-12-18T00:24:49.590Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5abd11212073/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5abd9958207a","name":"id"},{"value":"2014-12-18T00:13:02.680Z","name":"startDate"},{"value":"2014-12-18T00:25:21.307Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5abd9958207a/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5abe42b420a0","name":"id"},{"value":"2014-12-18T00:13:46.037Z","name":"startDate"},{"value":"2014-12-18T00:25:52.400Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5abe42b420a0/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5abed7ea20cc","name":"id"},{"value":"2014-12-18T00:14:24.233Z","name":"startDate"},{"value":"2014-12-18T00:25:52.143Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5abed7ea20cc/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5abf213d20ed","name":"id"},{"value":"2014-12-18T00:14:43.007Z","name":"startDate"},{"value":"2014-12-18T00:28:27.727Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5abf213d20ed/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5b3b39aa300a","name":"id"},{"value":"2014-12-18T02:30:15.723Z","name":"startDate"},{"value":"2014-12-18T02:42:37.863Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5b3b39aa300a/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5b3b58943010","name":"id"},{"value":"2014-12-18T02:30:23.637Z","name":"startDate"},{"value":"2014-12-18T02:42:05.883Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5b3b58943010/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5b3b75693017","name":"id"},{"value":"2014-12-18T02:30:31.017Z","name":"startDate"},{"value":"2014-12-18T02:43:33.527Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5b3b75693017/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5b3b8f6b301d","name":"id"},{"value":"2014-12-18T02:30:37.677Z","name":"startDate"},{"value":"2014-12-18T02:43:33.837Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5b3b8f6b301d/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5b3baa0e3024","name":"id"},{"value":"2014-12-18T02:30:44.493Z","name":"startDate"},{"value":"2014-12-18T02:44:48.687Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5b3baa0e3024/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5f279a764460","name":"id"},{"value":"2014-12-18T20:47:18.647Z","name":"startDate"},{"value":"2014-12-18T20:53:15.683Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5f279a764460/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5f2cdb844510","name":"id"},{"value":"2014-12-18T20:53:02.980Z","name":"startDate"},{"value":"2014-12-18T21:01:06.437Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5f2cdb844510/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5fc13c3f4b0a","name":"id"},{"value":"2014-12-18T23:35:07.070Z","name":"startDate"},{"value":"2014-12-18T23:47:45.160Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5fc13c3f4b0a/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5fc1812b4b11","name":"id"},{"value":"2014-12-18T23:35:24.717Z","name":"startDate"},{"value":"2014-12-18T23:46:45.230Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5fc1812b4b11/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5fc199af4b17","name":"id"},{"value":"2014-12-18T23:35:30.990Z","name":"startDate"},{"value":"2014-12-18T23:48:16.600Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5fc199af4b17/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5fc1b3254b1e","name":"id"},{"value":"2014-12-18T23:35:37.510Z","name":"startDate"},{"value":"2014-12-18T23:47:45.570Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5fc1b3254b1e/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a5fc1e4834b25","name":"id"},{"value":"2014-12-18T23:35:50.147Z","name":"startDate"},{"value":"2014-12-18T23:49:50.090Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a5fc1e4834b25/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a612ba0485b40","name":"id"},{"value":"2014-12-19T06:10:56.713Z","name":"startDate"},{"value":"2014-12-19T06:12:10.410Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"failed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a612ba0485b40/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a630649ba639a","name":"id"},{"value":"2014-12-19T14:49:24.153Z","name":"startDate"},{"value":"2014-12-19T14:55:37.583Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a630649ba639a/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a63a5691d6bf2","name":"id"},{"value":"2014-12-19T17:43:12.413Z","name":"startDate"},{"value":"2014-12-19T17:49:17.013Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a63a5691d6bf2/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a63a5b5bf6bf9","name":"id"},{"value":"2014-12-19T17:43:32.030Z","name":"startDate"},{"value":"2014-12-19T17:52:00.343Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a63a5b5bf6bf9/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a6445b85b7714","name":"id"},{"value":"2014-12-19T20:38:18.457Z","name":"startDate"},{"value":"2014-12-19T20:43:57.713Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6445b85b7714/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a644f925577cf","name":"id"},{"value":"2014-12-19T20:49:04.087Z","name":"startDate"},{"value":"2014-12-19T20:55:20.557Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a644f925577cf/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a6459f87278c0","name":"id"},{"value":"2014-12-19T21:00:25.587Z","name":"startDate"},{"value":"2014-12-19T21:06:19.517Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6459f87278c0/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a64708829797f","name":"id"},{"value":"2014-12-19T21:25:04.170Z","name":"startDate"},{"value":"2014-12-19T21:31:03.810Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a64708829797f/","rel":"down"},{"attributes":[{"value":"ff8080814a1cb55c014a6481a9927a78","name":"id"},{"value":"2014-12-19T21:43:46.833Z","name":"startDate"},{"value":"2014-12-19T21:55:24.320Z","name":"endDate"},{"value":"someuser@example.com","name":"startedBy"},{"value":"completed","name":"state"},{"value":"Request Component","name":"name"},{"name":"currentItemDisplayName"}],"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6481a9927a78/","rel":"down"}]}}'''
65
+ response = double('response')
66
+ allow(response).to receive(:body) { executions_json }
67
+ allow(@session).to receive(:get) { response }
68
+ expect(@session).to receive(:get).with("/workflows/#{@workflow_id}/executions/")
69
+ service = VcoWorkflows::WorkflowService.new(@session)
70
+ executions = service.get_execution_list(@workflow_id)
71
+ expect(executions.class).to eq(Hash)
72
+ expect(executions.size).to eq(100)
73
+ end
74
+
75
+ it 'should get an execution' do
76
+ response = double('response')
77
+ allow(response).to receive(:body) { @token_json }
78
+ allow(@session).to receive(:get) { response }
79
+ expect(@session).to receive(:get).with("/workflows/#{@workflow_id}/executions/#{@execution_id}")
80
+ service = VcoWorkflows::WorkflowService.new(@session)
81
+ execution = service.get_execution(@workflow_id, @execution_id)
82
+ expect(execution.class).to eq(String)
83
+ expect(execution).to eql(@token_json)
84
+ end
85
+
86
+ it 'should get a log' do
87
+ response = double('response')
88
+ allow(response).to receive(:body) { @log_json }
89
+ allow(@session).to receive(:get) { response }
90
+ expect(@session).to receive(:get).with("/workflows/#{@workflow_id}/executions/#{@execution_id}/logs/")
91
+ service = VcoWorkflows::WorkflowService.new(@session)
92
+ log = service.get_log(@workflow_id, @execution_id)
93
+ expect(log).to_not eq(nil)
94
+ expect(log.class).to eq(String)
95
+ end
96
+
97
+ it 'should execute a workflow' do
98
+ res_headers = {
99
+ location: 'https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6481a9927a78/'
100
+ }
101
+ parameter_json = '''{"parameters":[{"type":"string","name":"coreCount","scope":"local","value":{"string":{"value":"2"}}},{"type":"string","name":"ramMB","scope":"local","value":{"string":{"value":"2048"}}},{"type":"string","name":"onBehalfOf","scope":"local","value":{"string":{"value":"svc.soi_vmware@dev.activenetwork.com"}}},{"type":"string","name":"machineCount","scope":"local","value":{"string":{"value":"1"}}},{"type":"string","name":"businessUnit","scope":"local","value":{"string":{"value":"aw"}}},{"type":"string","name":"reservation","scope":"local","value":{"string":{"value":"nonprodlinux"}}},{"type":"string","name":"location","scope":"local","value":{"string":{"value":"us_east"}}},{"type":"string","name":"environment","scope":"local","value":{"string":{"value":"dev1"}}},{"type":"string","name":"image","scope":"local","value":{"string":{"value":"centos-6.6-x86_64-20141203-1"}}},{"type":"Array","name":"runlist","scope":"local","value":{"array":{"elements":[{"string":{"value":"role[loc_uswest]"}},{"string":{"value":"role[base]"}},{"string":{"value":"role[aw-api]"}}]}}},{"type":"string","name":"component","scope":"local","value":{"string":{"value":"api"}}}]}'''
102
+ response = double('response')
103
+ allow(response).to receive(:headers) { res_headers }
104
+ allow(@session).to receive(:post) { response }
105
+ expect(@session).to receive(:post).with("/workflows/#{@workflow_id}/executions/", parameter_json)
106
+ service = VcoWorkflows::WorkflowService.new(@session)
107
+ exec_id = service.execute_workflow(@workflow_id, parameter_json)
108
+ expect(exec_id).to_not eq(nil)
109
+ expect(exec_id.class).to eq(String)
110
+ expect(exec_id).to eql(@execution_id)
111
+ end
112
+ end
113
+ # rubocop:enable LineLength
@@ -0,0 +1,64 @@
1
+ require_relative '../spec_helper.rb'
2
+ require 'vcoworkflows'
3
+
4
+ # rubocop:disable LineLength
5
+
6
+ describe VcoWorkflows::WorkflowToken, 'WorkflowToken' do
7
+ before(:each) do
8
+ # Set up some basic starting data
9
+ @workflow_name = 'Request Component'
10
+ @workflow_id = '6e04a460-4a45-4e16-9603-db2922c24462'
11
+ @execution_id = 'ff8080814a1cb55c014a6481a9927a78'
12
+
13
+ # The JSON we'd get back from vCenter Orchestrator
14
+ @token_json = '''{"relations":{"link":[{"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/","rel":"up"},{"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6481a9927a78/","rel":"remove"},{"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6481a9927a78/logs/","rel":"logs"},{"href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6481a9927a78/state/","rel":"state"}]},"id":"ff8080814a1cb55c014a6481a9927a78","state":"completed","name":"Request Component","href":"https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6481a9927a78/","start-date":1419025426833,"end-date":1419026124320,"started-by":"someuser@EXAMPLE.COM","input-parameters":[{"value":{"string":{"value":"2"}},"type":"string","name":"coreCount","scope":"local"},{"value":{"string":{"value":"2048"}},"type":"string","name":"ramMB","scope":"local"},{"value":{"string":{"value":"svcacct@example.com"}},"type":"string","name":"onBehalfOf","scope":"local"},{"value":{"string":{"value":"1"}},"type":"string","name":"machineCount","scope":"local"},{"value":{"string":{"value":"aw"}},"type":"string","name":"businessUnit","scope":"local"},{"value":{"string":{"value":"nonprodlinux"}},"type":"string","name":"reservation","scope":"local"},{"value":{"string":{"value":"us_east"}},"type":"string","name":"location","scope":"local"},{"value":{"string":{"value":"dev1"}},"type":"string","name":"environment","scope":"local"},{"value":{"string":{"value":"centos-6.6-x86_64-20141203-1"}},"type":"string","name":"image","scope":"local"},{"value":{"array":{"elements":[{"string":{"value":"role[loc_uswest]"}},{"string":{"value":"role[base]"}},{"string":{"value":"role[api]"}}]}},"type":"Array/string","name":"runlist","scope":"local"},{"value":{"string":{"value":""}},"type":"string","name":"nodename","scope":"local"},{"value":{"string":{"value":"api"}},"type":"string","name":"component","scope":"local"},{"value":{"string":{"value":""}},"type":"string","name":"attributesJS","scope":"local"}],"output-parameters":[{"value":{"string":{"value":"SUCCESSFUL"}},"type":"string","name":"result","scope":"local"},{"value":{"number":{"value":326.0}},"type":"number","name":"requestNumber","scope":"local"},{"value":{"string":{"value":"Request succeeded. Created vm00378."}},"type":"string","name":"requestCompletionDetails","scope":"local"}]}'''
15
+
16
+ # Mock the WorkflowService
17
+ @service = double('service')
18
+ allow(@service).to receive(:get_execution) { @token_json }
19
+ end
20
+
21
+ it 'should successfully initialize from token json' do
22
+ token = VcoWorkflows::WorkflowToken.new(@service, @workflow_id, @execution_id)
23
+
24
+ expect(token).to_not eq(nil)
25
+ end
26
+
27
+ it 'should match the workflow id' do
28
+ token = VcoWorkflows::WorkflowToken.new(@service, @workflow_id, @execution_id)
29
+
30
+ expect(token.id).to eql(@execution_id)
31
+ end
32
+
33
+ it 'should match the execution id' do
34
+ token = VcoWorkflows::WorkflowToken.new(@service, @workflow_id, @execution_id)
35
+
36
+ expect(token.workflow_id).to eql(@workflow_id)
37
+ end
38
+
39
+ it 'should match the workflow name' do
40
+ token = VcoWorkflows::WorkflowToken.new(@service, @workflow_id, @execution_id)
41
+
42
+ expect(token.name).to eql(@workflow_name)
43
+ end
44
+
45
+ it 'should be completed' do
46
+ token = VcoWorkflows::WorkflowToken.new(@service, @workflow_id, @execution_id)
47
+
48
+ expect(token.alive?).to eq(false)
49
+ expect(token.state).to eql('completed')
50
+ end
51
+
52
+ it 'should have been successful' do
53
+ token = VcoWorkflows::WorkflowToken.new(@service, @workflow_id, @execution_id)
54
+
55
+ expect(token.output_parameters['result'].value).to eql('SUCCESSFUL')
56
+ end
57
+
58
+ it 'should have an end date' do
59
+ token = VcoWorkflows::WorkflowToken.new(@service, @workflow_id, @execution_id)
60
+
61
+ expect(token.end_date).to_not eq(nil)
62
+ end
63
+ end
64
+ # rubocop:enable LineLength
@@ -0,0 +1,39 @@
1
+ # coding: utf-8
2
+ # rubocop:disable all
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'vcoworkflows/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'vcoworkflows'
9
+ spec.version = VcoWorkflows::VERSION
10
+ spec.authors = %w('Gregory Ruiz-ade')
11
+ spec.email = %w('gregory.ruiz-ade@activenetwork.com')
12
+ spec.summary = 'vCO Workflows REST API Wrapper'
13
+ spec.description = 'Ruby implementation of vCenter Orchestrator REST API'
14
+ spec.homepage = ''
15
+ spec.license = 'Apache 2.0'
16
+
17
+ spec.files = `git ls-files -z`.split("\x0")
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.require_paths = ['lib']
21
+
22
+ spec.add_development_dependency 'bundler', '~> 1.7'
23
+ spec.add_development_dependency 'rake', '~> 10.0'
24
+ spec.add_development_dependency 'rubocop', '>= 0.27.0'
25
+ spec.add_development_dependency 'aruba', '>= 0.6'
26
+ spec.add_development_dependency 'rspec', '>= 3.0'
27
+ spec.add_development_dependency 'coveralls', '= 0.7.1'
28
+ spec.add_development_dependency 'guard', '>= 2.10.0'
29
+ spec.add_development_dependency 'guard-rubocop', '>= 1.1.0'
30
+ # growl functionality in Guardfile depends on growl-notify
31
+ spec.add_development_dependency 'growl', '>= 1.0'
32
+ spec.add_development_dependency 'yard', '>= 0.8'
33
+
34
+ # spec.add_dependency 'thor'
35
+ spec.add_dependency 'thor', '>= 0.18.0'
36
+ spec.add_dependency 'rest-client'
37
+
38
+ end
39
+ # rubocop:enable all
metadata ADDED
@@ -0,0 +1,257 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vcoworkflows
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - "'Gregory"
8
+ - Ruiz-ade'
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-02-02 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.7'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.7'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '10.0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '10.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rubocop
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: 0.27.0
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 0.27.0
56
+ - !ruby/object:Gem::Dependency
57
+ name: aruba
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0.6'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0.6'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rspec
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '3.0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '3.0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: coveralls
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '='
89
+ - !ruby/object:Gem::Version
90
+ version: 0.7.1
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '='
96
+ - !ruby/object:Gem::Version
97
+ version: 0.7.1
98
+ - !ruby/object:Gem::Dependency
99
+ name: guard
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 2.10.0
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: 2.10.0
112
+ - !ruby/object:Gem::Dependency
113
+ name: guard-rubocop
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: 1.1.0
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: 1.1.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: growl
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '1.0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '1.0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: yard
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0.8'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0.8'
154
+ - !ruby/object:Gem::Dependency
155
+ name: thor
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: 0.18.0
161
+ type: :runtime
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: 0.18.0
168
+ - !ruby/object:Gem::Dependency
169
+ name: rest-client
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ type: :runtime
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ description: Ruby implementation of vCenter Orchestrator REST API
183
+ email:
184
+ - "'gregory.ruiz-ade@activenetwork.com'"
185
+ executables:
186
+ - vcoworkflows
187
+ extensions: []
188
+ extra_rdoc_files: []
189
+ files:
190
+ - ".coveralls.yml"
191
+ - ".gitignore"
192
+ - ".rubocop.yml"
193
+ - ".travis.yml"
194
+ - CHANGELOG.md
195
+ - Gemfile
196
+ - LICENSE.txt
197
+ - README.md
198
+ - Rakefile
199
+ - bin/vcoworkflows
200
+ - example.rb
201
+ - lib/vcoworkflows.rb
202
+ - lib/vcoworkflows/cli/auth.rb
203
+ - lib/vcoworkflows/cli/execute.rb
204
+ - lib/vcoworkflows/cli/query.rb
205
+ - lib/vcoworkflows/constants.rb
206
+ - lib/vcoworkflows/runner.rb
207
+ - lib/vcoworkflows/vcosession.rb
208
+ - lib/vcoworkflows/version.rb
209
+ - lib/vcoworkflows/workflow.rb
210
+ - lib/vcoworkflows/workflowexecutionlog.rb
211
+ - lib/vcoworkflows/workflowparameter.rb
212
+ - lib/vcoworkflows/workflowpresentation.rb
213
+ - lib/vcoworkflows/workflowservice.rb
214
+ - lib/vcoworkflows/workflowtoken.rb
215
+ - spec/spec_helper.rb
216
+ - spec/vcoworkflows/vcosession_spec.rb
217
+ - spec/vcoworkflows/workflow_spec.rb
218
+ - spec/vcoworkflows/workflowexecutionlog_spec.rb
219
+ - spec/vcoworkflows/workflowparameter_spec.rb
220
+ - spec/vcoworkflows/workflowpresentation_spec.rb
221
+ - spec/vcoworkflows/workflowservice_spec.rb
222
+ - spec/vcoworkflows/workflowtoken_spec.rb
223
+ - vcoworkflows.gemspec
224
+ homepage: ''
225
+ licenses:
226
+ - Apache 2.0
227
+ metadata: {}
228
+ post_install_message:
229
+ rdoc_options: []
230
+ require_paths:
231
+ - lib
232
+ required_ruby_version: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ required_rubygems_version: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ requirements: []
243
+ rubyforge_project:
244
+ rubygems_version: 2.4.5
245
+ signing_key:
246
+ specification_version: 4
247
+ summary: vCO Workflows REST API Wrapper
248
+ test_files:
249
+ - spec/spec_helper.rb
250
+ - spec/vcoworkflows/vcosession_spec.rb
251
+ - spec/vcoworkflows/workflow_spec.rb
252
+ - spec/vcoworkflows/workflowexecutionlog_spec.rb
253
+ - spec/vcoworkflows/workflowparameter_spec.rb
254
+ - spec/vcoworkflows/workflowpresentation_spec.rb
255
+ - spec/vcoworkflows/workflowservice_spec.rb
256
+ - spec/vcoworkflows/workflowtoken_spec.rb
257
+ has_rdoc: