vcoworkflows-ruby2 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +20 -0
- data/.rubocop.yml +14 -0
- data/.travis.yml +3 -0
- data/CHANGELOG.md +72 -0
- data/Gemfile +4 -0
- data/Guardfile +41 -0
- data/LICENSE.txt +203 -0
- data/README.md +399 -0
- data/Rakefile +21 -0
- data/bin/vcoworkflows +7 -0
- data/example.rb +46 -0
- data/lib/vcoworkflows.rb +33 -0
- data/lib/vcoworkflows/cli/execute.rb +109 -0
- data/lib/vcoworkflows/cli/query.rb +106 -0
- data/lib/vcoworkflows/config.rb +91 -0
- data/lib/vcoworkflows/constants.rb +94 -0
- data/lib/vcoworkflows/runner.rb +44 -0
- data/lib/vcoworkflows/vcosession.rb +71 -0
- data/lib/vcoworkflows/version.rb +5 -0
- data/lib/vcoworkflows/workflow.rb +395 -0
- data/lib/vcoworkflows/workflowexecutionlog.rb +42 -0
- data/lib/vcoworkflows/workflowparameter.rb +150 -0
- data/lib/vcoworkflows/workflowpresentation.rb +62 -0
- data/lib/vcoworkflows/workflowservice.rb +109 -0
- data/lib/vcoworkflows/workflowtoken.rb +154 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/vcoworkflows/config_spec.rb +57 -0
- data/spec/vcoworkflows/vcosession_spec.rb +53 -0
- data/spec/vcoworkflows/workflow_spec.rb +197 -0
- data/spec/vcoworkflows/workflowexecutionlog_spec.rb +22 -0
- data/spec/vcoworkflows/workflowparameter_spec.rb +68 -0
- data/spec/vcoworkflows/workflowpresentation_spec.rb +34 -0
- data/spec/vcoworkflows/workflowservice_spec.rb +114 -0
- data/spec/vcoworkflows/workflowtoken_spec.rb +65 -0
- data/vcoworkflows-ruby2.gemspec +41 -0
- metadata +285 -0
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
require_relative '../spec_helper.rb'
|
2
|
+
require 'vcoworkflows'
|
3
|
+
|
4
|
+
# rubocop:disable Metrics/BlockLength
|
5
|
+
describe VcoWorkflows::Config, 'Config' do
|
6
|
+
before(:each) do
|
7
|
+
@url = 'https://vcoserver.example.com:8281/vco/api'
|
8
|
+
@username = 'johndoe'
|
9
|
+
@password = 's3cr3t'
|
10
|
+
|
11
|
+
@config_file = '/tmp/vcoconfig.json'
|
12
|
+
@config_data = {
|
13
|
+
url: @url,
|
14
|
+
username: @username,
|
15
|
+
password: @password
|
16
|
+
}.to_json
|
17
|
+
|
18
|
+
allow(File).to receive(:read).and_call_original
|
19
|
+
allow(File).to receive(:read).with(@config_file).and_return(@config_data)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should configure the URL from parameters' do
|
23
|
+
config = VcoWorkflows::Config.new(url: @url, username: @username, password: @password)
|
24
|
+
|
25
|
+
expect(config.url).to eql(@url)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should configure the username from parameters' do
|
29
|
+
config = VcoWorkflows::Config.new(url: @url, username: @username, password: @password)
|
30
|
+
|
31
|
+
expect(config.username).to eql(@username)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should configure the password from parameters' do
|
35
|
+
config = VcoWorkflows::Config.new(url: @url, username: @username, password: @password)
|
36
|
+
|
37
|
+
expect(config.password).to eql(@password)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should configure the URL from a configuration file' do
|
41
|
+
config = VcoWorkflows::Config.new(config_file: @config_file)
|
42
|
+
|
43
|
+
expect(config.url).to eql(@url)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should configure the username from a configuration file' do
|
47
|
+
config = VcoWorkflows::Config.new(config_file: @config_file)
|
48
|
+
|
49
|
+
expect(config.username).to eql(@username)
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should configure the password from a configuration file' do
|
53
|
+
config = VcoWorkflows::Config.new(config_file: @config_file)
|
54
|
+
|
55
|
+
expect(config.password).to eql(@password)
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_relative '../spec_helper.rb'
|
2
|
+
require 'vcoworkflows'
|
3
|
+
|
4
|
+
# rubocop:disable Metrics/BlockLength
|
5
|
+
describe VcoWorkflows::VcoSession, 'VcoSession' do
|
6
|
+
before(:each) do
|
7
|
+
@uri = 'https://vcoserver.example.com:8281'
|
8
|
+
@username = 'johndoe'
|
9
|
+
@password = 's3cr3t'
|
10
|
+
|
11
|
+
@config = VcoWorkflows::Config.new(url: @uri, username: @username, password: @password)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should set the URL from parameters' do
|
15
|
+
vs = VcoWorkflows::VcoSession.new(uri: @uri, user: @username, password: @password)
|
16
|
+
api_url = '/vco/api'
|
17
|
+
|
18
|
+
expect(vs.rest_resource.url).to eql(@uri << api_url)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should set the username from parameters' do
|
22
|
+
vs = VcoWorkflows::VcoSession.new(uri: @uri, user: @username, password: @password)
|
23
|
+
|
24
|
+
expect(vs.rest_resource.user).to eql(@username)
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should set the password from parameters' do
|
28
|
+
vs = VcoWorkflows::VcoSession.new(uri: @uri, user: @username, password: @password)
|
29
|
+
|
30
|
+
expect(vs.rest_resource.password).to eql(@password)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should set the URL from configuration' do
|
34
|
+
vs = VcoWorkflows::VcoSession.new(config: @config)
|
35
|
+
api_url = '/vco/api'
|
36
|
+
|
37
|
+
expect(vs.rest_resource.url).to eql(@uri << api_url)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should set the username from configuration' do
|
41
|
+
vs = VcoWorkflows::VcoSession.new(config: @config)
|
42
|
+
|
43
|
+
expect(vs.rest_resource.user).to eql(@username)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should set the password from configuration' do
|
47
|
+
vs = VcoWorkflows::VcoSession.new(config: @config)
|
48
|
+
|
49
|
+
expect(vs.rest_resource.password).to eql(@password)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
# rubocop:enable LineLength
|
@@ -0,0 +1,197 @@
|
|
1
|
+
require_relative '../spec_helper.rb'
|
2
|
+
require 'vcoworkflows'
|
3
|
+
|
4
|
+
# rubocop:disable LineLength
|
5
|
+
# rubocop:disable Metrics/BlockLength
|
6
|
+
|
7
|
+
describe VcoWorkflows::Workflow, 'Workflow' do
|
8
|
+
before(:each) do
|
9
|
+
# Set up some basic starting data
|
10
|
+
@workflow_name = 'Request Component'
|
11
|
+
@workflow_id = '6e04a460-4a45-4e16-9603-db2922c24462'
|
12
|
+
@execution_id = 'ff8080814a1cb55c014a6481a9927a78'
|
13
|
+
@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)"}]}'
|
14
|
+
@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/"}]}}'
|
15
|
+
@param_string_json = '{"type":"string","name":"stringparam","scope":"local","value":{"string":{"value":"squirrel!"}}}'
|
16
|
+
@param_array_json = '{"type":"Array/string","name":"arrayparam","scope":"local","value":{"array":{"elements":[{"string":{"value":"a"}},{"string":{"value":"b"}},{"string":{"value":"c"}}]}}}'
|
17
|
+
|
18
|
+
@target_parameters = {
|
19
|
+
'coreCount' => 2,
|
20
|
+
'ramMB' => 2048,
|
21
|
+
'businessUnit' => 'aw',
|
22
|
+
'reservation' => 'nonprodlinux',
|
23
|
+
'environment' => 'dev1',
|
24
|
+
'image' => 'centos-6.6-x86_64-20141203-1',
|
25
|
+
'component' => 'api',
|
26
|
+
'onBehalfOf' => 'svcacct@example.com',
|
27
|
+
'location' => 'us_east',
|
28
|
+
'runlist' => %w(role[loc_uswest] role[base] role[api]),
|
29
|
+
'machineCount' => 1
|
30
|
+
}
|
31
|
+
|
32
|
+
# Mock the WorkflowService
|
33
|
+
@service = double('service')
|
34
|
+
allow(@service).to receive(:get_workflow_for_id).and_return(@workflow_json)
|
35
|
+
allow(@service).to receive(:get_workflow_for_name).and_return(@workflow_json)
|
36
|
+
allow(@service).to receive(:get_presentation).and_return(@presentation_json)
|
37
|
+
|
38
|
+
# Config object, file, data for constructor testing
|
39
|
+
@config_file = '/tmp/vcoconfig.json'
|
40
|
+
@config_data = {
|
41
|
+
url: @url,
|
42
|
+
username: @username,
|
43
|
+
password: @password
|
44
|
+
}.to_json
|
45
|
+
@config = VcoWorkflows::Config.new(url: 'https://vcoserver.example.com:8281/vco/api',
|
46
|
+
username: 'johndoe',
|
47
|
+
password: 's3cre3t')
|
48
|
+
allow(VcoWorkflows::VcoSession).to receive(:new).and_return(true)
|
49
|
+
allow(VcoWorkflows::WorkflowService).to receive(:new).and_return(@service)
|
50
|
+
allow(File).to receive(:read).and_call_original
|
51
|
+
allow(File).to receive(:read).with(@config_file).and_return(@config_data)
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should not explode when created with service' do
|
55
|
+
wf = VcoWorkflows::Workflow.new(@workflow_name, service: @service)
|
56
|
+
|
57
|
+
expect(wf).to_not eq(nil)
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should not explode when created with config' do
|
61
|
+
wf = VcoWorkflows::Workflow.new(@workflow_name, config: @config)
|
62
|
+
|
63
|
+
expect(wf).to_not eq(nil)
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'should not explode when created with config_file' do
|
67
|
+
wf = VcoWorkflows::Workflow.new(@workflow_name)
|
68
|
+
|
69
|
+
expect(wf).to_not eq(nil)
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should parse a single string parameter' do
|
73
|
+
param_data = []
|
74
|
+
param_data << JSON.parse(@param_string_json)
|
75
|
+
wfparams = VcoWorkflows::Workflow.parse_parameters(param_data)
|
76
|
+
|
77
|
+
expect(wfparams).to_not eq(nil)
|
78
|
+
expect(wfparams.size).to eq(1)
|
79
|
+
expect(wfparams.key?('stringparam')).to eq(true)
|
80
|
+
expect(wfparams['stringparam'].type).to eql('string')
|
81
|
+
expect(wfparams['stringparam'].subtype).to eq(nil)
|
82
|
+
expect(wfparams['stringparam'].value).to eql('squirrel!')
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'should parse a single Array parameter' do
|
86
|
+
param_data = []
|
87
|
+
param_data << JSON.parse(@param_array_json)
|
88
|
+
wfparams = VcoWorkflows::Workflow.parse_parameters(param_data)
|
89
|
+
|
90
|
+
expect(wfparams).to_not eq(nil)
|
91
|
+
expect(wfparams.size).to eq(1)
|
92
|
+
expect(wfparams.key?('arrayparam')).to eq(true)
|
93
|
+
expect(wfparams['arrayparam'].type).to eql('Array')
|
94
|
+
expect(wfparams['arrayparam'].subtype).to eql('string')
|
95
|
+
expect(wfparams['arrayparam'].value).to eql(%w[a b c])
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should parse an array of mixed parameters' do
|
99
|
+
param_data = []
|
100
|
+
param_data << JSON.parse(@param_string_json)
|
101
|
+
param_data << JSON.parse(@param_array_json)
|
102
|
+
wfparams = VcoWorkflows::Workflow.parse_parameters(param_data)
|
103
|
+
|
104
|
+
expect(wfparams).to_not eq(nil)
|
105
|
+
expect(wfparams.size).to eq(2)
|
106
|
+
expect(wfparams.key?('stringparam')).to eq(true)
|
107
|
+
expect(wfparams['stringparam'].type).to eql('string')
|
108
|
+
expect(wfparams['stringparam'].subtype).to eq(nil)
|
109
|
+
expect(wfparams['stringparam'].value).to eql('squirrel!')
|
110
|
+
expect(wfparams.key?('arrayparam')).to eq(true)
|
111
|
+
expect(wfparams['arrayparam'].type).to eql('Array')
|
112
|
+
expect(wfparams['arrayparam'].subtype).to eql('string')
|
113
|
+
expect(wfparams['arrayparam'].value).to eql(%w[a b c])
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'should have input and output parameters' do
|
117
|
+
input_param_count = 13
|
118
|
+
output_param_count = 3
|
119
|
+
wf = VcoWorkflows::Workflow.new(@workflow_name, service: @service)
|
120
|
+
|
121
|
+
expect(wf.input_parameters.size).to eq(input_param_count)
|
122
|
+
expect(wf.output_parameters.size).to eq(output_param_count)
|
123
|
+
end
|
124
|
+
|
125
|
+
it 'should have required parameters' do
|
126
|
+
required_param_count = 7
|
127
|
+
wf = VcoWorkflows::Workflow.new(@workflow_name, service: @service)
|
128
|
+
|
129
|
+
expect(wf.required_parameters.size).to eq(required_param_count)
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'should set a parameter value' do
|
133
|
+
wf = VcoWorkflows::Workflow.new(@workflow_name, service: @service)
|
134
|
+
|
135
|
+
# Set the value and check the returned parameter
|
136
|
+
expect(wf.parameter('coreCount', 4).value).to eq(4)
|
137
|
+
|
138
|
+
# Check the parameter value
|
139
|
+
expect(wf.parameter('coreCount').value).to eq(4)
|
140
|
+
|
141
|
+
# Check the parameter by reaching through input_parameters
|
142
|
+
expect(wf.input_parameters['coreCount'].value).to eq(4)
|
143
|
+
end
|
144
|
+
|
145
|
+
it 'should set all parameters by hash' do
|
146
|
+
wf = VcoWorkflows::Workflow.new(@workflow_name, service: @service)
|
147
|
+
wf.parameters = @target_parameters
|
148
|
+
|
149
|
+
@target_parameters.each_key do |param_name|
|
150
|
+
expect(wf.parameter(param_name).value).to eql(@target_parameters[param_name])
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'should set a parameter by object' do
|
155
|
+
wf = VcoWorkflows::Workflow.new(@workflow_name, service: @service)
|
156
|
+
wfparam = VcoWorkflows::WorkflowParameter.new('coreCount', 'string', value: 2)
|
157
|
+
wf.parameter = wfparam
|
158
|
+
|
159
|
+
expect(wf.parameter('coreCount')).to_not eq(nil)
|
160
|
+
expect(wf.parameter('coreCount').type).to eql('string')
|
161
|
+
expect(wf.parameter('coreCount').value).to eq(2)
|
162
|
+
end
|
163
|
+
|
164
|
+
it 'should execute' do
|
165
|
+
allow(@service).to receive(:execute_workflow) { @execution_id }
|
166
|
+
|
167
|
+
wf = VcoWorkflows::Workflow.new(@workflow_name, service: @service)
|
168
|
+
wf.parameters = @target_parameters
|
169
|
+
|
170
|
+
expect(wf.execute).to eql(@execution_id)
|
171
|
+
end
|
172
|
+
|
173
|
+
it 'should provide a WorkflowToken' do
|
174
|
+
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"}]}'
|
175
|
+
allow(@service).to receive(:get_execution) { token_json }
|
176
|
+
|
177
|
+
wf = VcoWorkflows::Workflow.new(@workflow_name, service: @service)
|
178
|
+
wftoken = wf.token(@execution_id)
|
179
|
+
|
180
|
+
expect(wftoken).to_not eq(nil)
|
181
|
+
expect(wftoken.workflow_id).to eq(wf.id)
|
182
|
+
expect(wftoken.id).to eq(@execution_id)
|
183
|
+
expect(wftoken.alive?).to eq(false)
|
184
|
+
expect(wftoken.state).to eql('completed')
|
185
|
+
end
|
186
|
+
|
187
|
+
it 'should provide a WorkflowExectionLog' do
|
188
|
+
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"}}]}'
|
189
|
+
allow(@service).to receive(:get_log) { log_json }
|
190
|
+
|
191
|
+
wf = VcoWorkflows::Workflow.new(@workflow_name, service: @service)
|
192
|
+
wflog = wf.log(@execution_id)
|
193
|
+
|
194
|
+
expect(wflog).to_not eq(nil)
|
195
|
+
end
|
196
|
+
end
|
197
|
+
# rubocop:enable LineLength
|
@@ -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,68 @@
|
|
1
|
+
require_relative '../spec_helper.rb'
|
2
|
+
require 'vcoworkflows'
|
3
|
+
|
4
|
+
# rubocop:disable LineLength
|
5
|
+
# rubocop:disable Metrics/BlockLength
|
6
|
+
|
7
|
+
describe VcoWorkflows::WorkflowParameter, 'WorkflowParameter' do
|
8
|
+
before(:each) do
|
9
|
+
@paramname = 'testparam'
|
10
|
+
@paramtype = 'string'
|
11
|
+
@paramvalue = 'squirrel!'
|
12
|
+
@paramarray = %w[a b c]
|
13
|
+
@string_json = '{"type":"string","name":"testparam","scope":"local","value":{"string":{"value":"squirrel!"}}}'
|
14
|
+
@array_json = '{"type":"Array","name":"testparam","scope":"local","value":{"array":{"elements":[{"string":{"value":"a"}},{"string":{"value":"b"}},{"string":{"value":"c"}}]}}}'
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should not be set' do
|
18
|
+
wfp = VcoWorkflows::WorkflowParameter.new(@paramname, @paramtype)
|
19
|
+
|
20
|
+
expect(wfp.set?).to eq(false)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should be set when created with value' do
|
24
|
+
wfp = VcoWorkflows::WorkflowParameter.new(@paramname, @paramtype, value: @paramvalue)
|
25
|
+
|
26
|
+
expect(wfp.set?).to eq(true)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should not be required' do
|
30
|
+
wfp = VcoWorkflows::WorkflowParameter.new(@paramname, @paramtype)
|
31
|
+
|
32
|
+
expect(wfp.required?).to eq(false)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should be required' do
|
36
|
+
wfp = VcoWorkflows::WorkflowParameter.new(@paramname, @paramtype, required: true)
|
37
|
+
|
38
|
+
expect(wfp.required?).to eq(true)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should be an array of strings' do
|
42
|
+
wfp = VcoWorkflows::WorkflowParameter.new(@paramname, 'Array/string')
|
43
|
+
|
44
|
+
expect(wfp.type).to eql('Array')
|
45
|
+
expect(wfp.subtype).to eql('string')
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should be an array of strings #{@paramarray}" do
|
49
|
+
wfp = VcoWorkflows::WorkflowParameter.new(@paramnam, 'Array/string')
|
50
|
+
wfp.set(@paramarray)
|
51
|
+
|
52
|
+
expect(wfp.value).to eq(@paramarray)
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should generate a JSON document for single value' do
|
56
|
+
wfp = VcoWorkflows::WorkflowParameter.new(@paramname, @paramtype, value: @paramvalue)
|
57
|
+
|
58
|
+
expect(wfp.to_json).to eql(@string_json)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'should generate a JSON document for Array value' do
|
62
|
+
wfp = VcoWorkflows::WorkflowParameter.new(@paramname, 'Array/string', value: @paramarray)
|
63
|
+
|
64
|
+
expect(wfp.to_json).to eql(@array_json)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# 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,114 @@
|
|
1
|
+
require_relative '../spec_helper.rb'
|
2
|
+
require 'vcoworkflows'
|
3
|
+
require 'erb'
|
4
|
+
|
5
|
+
include ERB::Util
|
6
|
+
|
7
|
+
# rubocop:disable LineLength
|
8
|
+
# rubocop:disable Metrics/BlockLength
|
9
|
+
|
10
|
+
describe VcoWorkflows::WorkflowService, 'WorkflowService' do
|
11
|
+
before(:each) do
|
12
|
+
# Set up some basic starting data
|
13
|
+
@workflow_name = 'Request Component'
|
14
|
+
@workflow_id = '6e04a460-4a45-4e16-9603-db2922c24462'
|
15
|
+
@execution_id = 'ff8080814a1cb55c014a6481a9927a78'
|
16
|
+
@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)"}]}'
|
17
|
+
@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"}]}'
|
18
|
+
@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/"}]}}'
|
19
|
+
@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"}}]}'
|
20
|
+
@input_param_count = 13
|
21
|
+
@output_param_count = 3
|
22
|
+
@required_param_count = 7
|
23
|
+
@url = 'https://vco.example.com:8281/vco/api'
|
24
|
+
@username = 'jdoe'
|
25
|
+
@password = 's3cr3t'
|
26
|
+
|
27
|
+
# Mock VcoSession
|
28
|
+
@session = double('session')
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should initialize correctly' do
|
32
|
+
service = VcoWorkflows::WorkflowService.new(@session)
|
33
|
+
expect(service).to_not eq(nil)
|
34
|
+
expect(service.class).to eq(VcoWorkflows::WorkflowService)
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should get workflow by id' do
|
38
|
+
response = double('response')
|
39
|
+
allow(response).to receive(:body) { @workflow_json }
|
40
|
+
allow(@session).to receive(:get) { response }
|
41
|
+
expect(@session).to receive(:get).with("/workflows/#{@workflow_id}")
|
42
|
+
service = VcoWorkflows::WorkflowService.new(@session)
|
43
|
+
res = service.get_workflow_for_id(@workflow_id)
|
44
|
+
expect(res).to_not eq(nil)
|
45
|
+
expect(res.class).to eq(String)
|
46
|
+
expect(res).to eql(@workflow_json)
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should get workflow by name' do
|
50
|
+
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}'
|
51
|
+
response = double('response')
|
52
|
+
allow(response).to receive(:body) { query_json }
|
53
|
+
allow(@session).to receive(:get) { response }
|
54
|
+
expect(@session).to receive(:get).with("/workflows?conditions=name=#{url_encode(@workflow_name)}")
|
55
|
+
service = VcoWorkflows::WorkflowService.new(@session)
|
56
|
+
allow(service).to receive(:get_workflow_for_id) { @workflow_json }
|
57
|
+
expect(service).to receive(:get_workflow_for_id).with(@workflow_id)
|
58
|
+
wf_json = service.get_workflow_for_name(@workflow_name)
|
59
|
+
expect(wf_json).to_not eq(nil)
|
60
|
+
expect(wf_json.class).to eq(String)
|
61
|
+
expect(wf_json).to eql(@workflow_json)
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should provide a list of executions' do
|
65
|
+
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"}]}}'
|
66
|
+
response = double('response')
|
67
|
+
allow(response).to receive(:body) { executions_json }
|
68
|
+
allow(@session).to receive(:get) { response }
|
69
|
+
expect(@session).to receive(:get).with("/workflows/#{@workflow_id}/executions/")
|
70
|
+
service = VcoWorkflows::WorkflowService.new(@session)
|
71
|
+
executions = service.get_execution_list(@workflow_id)
|
72
|
+
expect(executions.class).to eq(Hash)
|
73
|
+
expect(executions.size).to eq(100)
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'should get an execution' do
|
77
|
+
response = double('response')
|
78
|
+
allow(response).to receive(:body) { @token_json }
|
79
|
+
allow(@session).to receive(:get) { response }
|
80
|
+
expect(@session).to receive(:get).with("/workflows/#{@workflow_id}/executions/#{@execution_id}")
|
81
|
+
service = VcoWorkflows::WorkflowService.new(@session)
|
82
|
+
execution = service.get_execution(@workflow_id, @execution_id)
|
83
|
+
expect(execution.class).to eq(String)
|
84
|
+
expect(execution).to eql(@token_json)
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'should get a log' do
|
88
|
+
response = double('response')
|
89
|
+
allow(response).to receive(:body) { @log_json }
|
90
|
+
allow(@session).to receive(:get) { response }
|
91
|
+
expect(@session).to receive(:get).with("/workflows/#{@workflow_id}/executions/#{@execution_id}/logs/")
|
92
|
+
service = VcoWorkflows::WorkflowService.new(@session)
|
93
|
+
log = service.get_log(@workflow_id, @execution_id)
|
94
|
+
expect(log).to_not eq(nil)
|
95
|
+
expect(log.class).to eq(String)
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should execute a workflow' do
|
99
|
+
res_headers = {
|
100
|
+
location: 'https://vco.example.com:8281/vco/api/workflows/6e04a460-4a45-4e16-9603-db2922c24462/executions/ff8080814a1cb55c014a6481a9927a78/'
|
101
|
+
}
|
102
|
+
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"}}}]}'
|
103
|
+
response = double('response')
|
104
|
+
allow(response).to receive(:headers) { res_headers }
|
105
|
+
allow(@session).to receive(:post) { response }
|
106
|
+
expect(@session).to receive(:post).with("/workflows/#{@workflow_id}/executions/", parameter_json)
|
107
|
+
service = VcoWorkflows::WorkflowService.new(@session)
|
108
|
+
exec_id = service.execute_workflow(@workflow_id, parameter_json)
|
109
|
+
expect(exec_id).to_not eq(nil)
|
110
|
+
expect(exec_id.class).to eq(String)
|
111
|
+
expect(exec_id).to eql(@execution_id)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
# rubocop:enable LineLength
|