vcloud-launcher 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -2
- data/CHANGELOG.md +12 -0
- data/CONTRIBUTING.md +2 -6
- data/Jenkinsfile +40 -0
- data/README.md +1 -5
- data/examples/vcloud-launch/complete_vapp_config.yaml +2 -2
- data/examples/vcloud-launch/multiple_vapps_simple.yaml +3 -3
- data/examples/vcloud-launch/yaml_anchors_example.yaml +8 -8
- data/lib/vcloud/launcher/cli.rb +5 -0
- data/lib/vcloud/launcher/launch.rb +11 -6
- data/lib/vcloud/launcher/vapp_orchestrator.rb +8 -5
- data/lib/vcloud/launcher/version.rb +1 -1
- data/rbenv_version.sh +1 -1
- data/spec/vcloud/launcher/cli_spec.rb +25 -0
- data/spec/vcloud/launcher/independent_disk_orchestrator_spec.rb +1 -1
- data/spec/vcloud/launcher/schema/launcher_vapps_spec.rb +4 -4
- data/vcloud-launcher.gemspec +8 -9
- metadata +49 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c09c7b8b2624797fc9c86bf9eac065d11f9d610b
|
4
|
+
data.tar.gz: 152700b82e48f83f4ff78127ac03ddb67b0384e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfb066f8681479d249cf759dc316aaecfe78025fce15057e5ecdebf77e2d9d051aa92a6dfb5b3331a4b97e06aa1a08f1aad36a7ab4ac5d9cae41ce212042dde3
|
7
|
+
data.tar.gz: 4dffd95c00df8f0ea6c72201dd2f29ab2ec65f681c650d5e5f5ede49bf164c54cebc94d4509aa0760f13544056397bd666817e54b26a4f720db0f14a7e89f01e
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## 2.1.0 (2017-06-22)
|
2
|
+
|
3
|
+
- Remove support for older versions of Ruby than 2.2.2
|
4
|
+
- Add support for Ruby 2.3.0 and 2.4.0
|
5
|
+
- Update dependency for vCloud Core and vCloud Tools Tester
|
6
|
+
- Various bug fixes
|
7
|
+
|
8
|
+
## 2.0.1 (2016-03-24)
|
9
|
+
|
10
|
+
- Add dry-run option.
|
11
|
+
- Update dependencies for vCloud Core and vCloud Tools Tester
|
12
|
+
|
1
13
|
## 2.0.0 (2015-10-20)
|
2
14
|
|
3
15
|
- Remove support for Ruby 1.9.3, which is now end-of-life.
|
data/CONTRIBUTING.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Contributing to vCloud Launcher
|
2
2
|
|
3
|
-
We
|
3
|
+
We now consider vCloud Tools feature complete for our purposes. We'd be happy to consider pull requests for new features but please discuss them with us in the issues first so we can let you know if it's something we'd be likely to merge. We will continue to make maintenance and bug fixes.
|
4
4
|
|
5
5
|
## A quick guide on how to contribute
|
6
6
|
|
@@ -36,11 +36,7 @@ We really welcome contributions.
|
|
36
36
|
|
37
37
|
## How soon will we respond?
|
38
38
|
|
39
|
-
We will comment on your
|
40
|
-
|
41
|
-
We may come back to you with comments and suggestions, and if we would like you to make changes, we will close the pull request as well as adding details of the changes we'd like you to make.
|
42
|
-
|
43
|
-
If you feel your pull request has been outstanding too long, please feel free to bump it by making a comment on it.
|
39
|
+
We will comment on your issue as soon as we can. If you feel your issue is important, please feel free to bump it by making a comment on it or raise your issue on the [mailing list](https://groups.google.com/a/digital.cabinet-office.gov.uk/forum/#!forum/vcloud-tools).
|
44
40
|
|
45
41
|
## Guidelines for making a pull request
|
46
42
|
|
data/Jenkinsfile
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env groovy
|
2
|
+
|
3
|
+
repoName = JOB_NAME.split('/')[0]
|
4
|
+
|
5
|
+
node {
|
6
|
+
def govuk = load '/var/lib/jenkins/groovy_scripts/govuk_jenkinslib.groovy'
|
7
|
+
|
8
|
+
try {
|
9
|
+
stage("Checkout") {
|
10
|
+
govuk.checkoutFromGitHubWithSSH(repoName)
|
11
|
+
}
|
12
|
+
|
13
|
+
stage("Clean up workspace") {
|
14
|
+
govuk.cleanupGit()
|
15
|
+
}
|
16
|
+
|
17
|
+
stage("bundle install") {
|
18
|
+
govuk.setEnvar("RBENV_VERSION", "2.2.2")
|
19
|
+
govuk.bundleGem()
|
20
|
+
}
|
21
|
+
|
22
|
+
stage("Run tests") {
|
23
|
+
govuk.runTests()
|
24
|
+
}
|
25
|
+
|
26
|
+
if (env.BRANCH_NAME == "master") {
|
27
|
+
stage("Publish gem") {
|
28
|
+
govuk.publishGem(repoName, env.BRANCH_NAME)
|
29
|
+
}
|
30
|
+
}
|
31
|
+
} catch (e) {
|
32
|
+
currentBuild.result = "FAILED"
|
33
|
+
step([$class: 'Mailer',
|
34
|
+
notifyEveryUnstableBuild: true,
|
35
|
+
recipients: 'govuk-ci-notifications@digital.cabinet-office.gov.uk',
|
36
|
+
sendToIndividuals: true])
|
37
|
+
throw e
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
data/README.md
CHANGED
@@ -53,11 +53,7 @@ Please see the [vcloud-tools usage documentation](http://gds-operations.github.i
|
|
53
53
|
|
54
54
|
## Contributing
|
55
55
|
|
56
|
-
|
57
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
58
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
59
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
60
|
-
5. Create new Pull Request
|
56
|
+
Please see [CONTRIBUTING.md](/CONTRIBUTING.md).
|
61
57
|
|
62
58
|
## Other settings
|
63
59
|
|
@@ -9,7 +9,7 @@
|
|
9
9
|
# * its memory reconfigured to 4096MB
|
10
10
|
# * its cpu count reconfigured to be 2.
|
11
11
|
# * The Primary NIC will be moved to FrontendNetwork, and given a manual ip
|
12
|
-
# of 192.
|
12
|
+
# of 192.168.2.10
|
13
13
|
# * A Secondary NIC will be created on BackendNetwork and given an IP address
|
14
14
|
# via DHCP (the result of not supplying an ip_address parameter)
|
15
15
|
# * a bootstrap 'guest customization script' is provided, which will be
|
@@ -37,7 +37,7 @@ vapps:
|
|
37
37
|
cpu: 2
|
38
38
|
network_connections:
|
39
39
|
- name: 'FrontendNetwork'
|
40
|
-
ip_address: '192.
|
40
|
+
ip_address: '192.168.2.10'
|
41
41
|
- name: 'BackendNetwork'
|
42
42
|
allocation_mode: 'pool'
|
43
43
|
extra_disks:
|
@@ -18,7 +18,7 @@ vapps:
|
|
18
18
|
cpu: '2'
|
19
19
|
network_connections:
|
20
20
|
- name: Default
|
21
|
-
ip_address: 192.
|
21
|
+
ip_address: 192.168.2.11
|
22
22
|
|
23
23
|
- name: vapp-example-2
|
24
24
|
vdc_name: "Our VDC1"
|
@@ -30,7 +30,7 @@ vapps:
|
|
30
30
|
cpu: '2'
|
31
31
|
network_connections:
|
32
32
|
- name: Default
|
33
|
-
ip_address: 192.
|
33
|
+
ip_address: 192.168.2.12
|
34
34
|
|
35
35
|
- name: vapp-example-3
|
36
36
|
vdc_name: "Our VDC1"
|
@@ -42,4 +42,4 @@ vapps:
|
|
42
42
|
cpu: '2'
|
43
43
|
network_connections:
|
44
44
|
- name: Default
|
45
|
-
ip_address: 192.
|
45
|
+
ip_address: 192.168.2.13
|
@@ -55,15 +55,15 @@ vapps:
|
|
55
55
|
<<: *BASE_VM_VARS
|
56
56
|
role: frontend
|
57
57
|
network_connections:
|
58
|
-
- { name: *APP_NETWORK, ip_address: 192.
|
59
|
-
- { name: *MGMT_NETWORK, ip_address:
|
58
|
+
- { name: *APP_NETWORK, ip_address: 192.168.2.11 }
|
59
|
+
- { name: *MGMT_NETWORK, ip_address: 192.168.100.11 }
|
60
60
|
- <<: *frontend_vapp
|
61
61
|
name: frontend-example-2
|
62
62
|
vm:
|
63
63
|
<<: *frontend_vm
|
64
64
|
network_connections:
|
65
|
-
- { name: *APP_NETWORK, ip_address: 192.
|
66
|
-
- { name: *MGMT_NETWORK, ip_address:
|
65
|
+
- { name: *APP_NETWORK, ip_address: 192.168.2.12 }
|
66
|
+
- { name: *MGMT_NETWORK, ip_address: 192.168.100.12 }
|
67
67
|
|
68
68
|
- &backend_vapp
|
69
69
|
<<: *BASE_VAPP
|
@@ -76,12 +76,12 @@ vapps:
|
|
76
76
|
<<: *BASE_VM_VARS
|
77
77
|
role: backend
|
78
78
|
network_connections:
|
79
|
-
- { name: *APP_NETWORK, ip_address: 192.
|
80
|
-
- { name: *MGMT_NETWORK, ip_address:
|
79
|
+
- { name: *APP_NETWORK, ip_address: 192.168.2.51 }
|
80
|
+
- { name: *MGMT_NETWORK, ip_address: 192.168.100.51 }
|
81
81
|
- <<: *backend_vapp
|
82
82
|
name: backend-example-2
|
83
83
|
vm:
|
84
84
|
<<: *backend_vm
|
85
85
|
network_connections:
|
86
|
-
- { name: *APP_NETWORK, ip_address: 192.
|
87
|
-
- { name: *MGMT_NETWORK, ip_address:
|
86
|
+
- { name: *APP_NETWORK, ip_address: 192.168.2.52 }
|
87
|
+
- { name: *MGMT_NETWORK, ip_address: 192.168.100.52 }
|
data/lib/vcloud/launcher/cli.rb
CHANGED
@@ -14,6 +14,7 @@ module Vcloud
|
|
14
14
|
"quiet" => false,
|
15
15
|
"post-launch-cmd" => false,
|
16
16
|
"verbose" => false,
|
17
|
+
"dry-run" => false,
|
17
18
|
}
|
18
19
|
|
19
20
|
parse(argv_array)
|
@@ -95,6 +96,10 @@ Example configuration files can be found in:
|
|
95
96
|
puts Vcloud::Launcher::VERSION
|
96
97
|
exit
|
97
98
|
end
|
99
|
+
|
100
|
+
opts.on("--dry-run", "Don't apply configuration changes") do
|
101
|
+
@options["dry-run"] = true
|
102
|
+
end
|
98
103
|
end
|
99
104
|
|
100
105
|
@usage_text = opt_parser.to_s
|
@@ -23,17 +23,22 @@ module Vcloud
|
|
23
23
|
@config[:vapps].each do |vapp_config|
|
24
24
|
Vcloud::Core.logger.info("Provisioning vApp #{vapp_config[:name]}.")
|
25
25
|
begin
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
if cli_options["dry-run"]
|
27
|
+
# rubocop:disable Style/UselessAssignment
|
28
|
+
vapp = ::Vcloud::Launcher::VappOrchestrator.provision(vapp_config, true)
|
29
|
+
# rubocop:enable Style/UselessAssignment
|
30
|
+
else
|
31
|
+
vapp = ::Vcloud::Launcher::VappOrchestrator.provision(vapp_config)
|
32
|
+
vapp.power_on unless cli_options["dont-power-on"]
|
33
|
+
if cli_options["post-launch-cmd"]
|
34
|
+
run_command(vapp_config, cli_options["post-launch-cmd"])
|
35
|
+
end
|
30
36
|
end
|
31
|
-
|
37
|
+
Vcloud::Core.logger.info("Provisioned vApp #{vapp_config[:name]} successfully.")
|
32
38
|
rescue RuntimeError => e
|
33
39
|
Vcloud::Core.logger.error("Failure: Could not provision vApp: #{e.message}")
|
34
40
|
break unless cli_options["continue-on-error"]
|
35
41
|
end
|
36
|
-
|
37
42
|
end
|
38
43
|
end
|
39
44
|
|
@@ -2,7 +2,7 @@ module Vcloud
|
|
2
2
|
module Launcher
|
3
3
|
class VappOrchestrator
|
4
4
|
|
5
|
-
def self.provision(vapp_config)
|
5
|
+
def self.provision(vapp_config, dry_run = false)
|
6
6
|
name, vdc_name = vapp_config[:name], vapp_config[:vdc_name]
|
7
7
|
|
8
8
|
vapp_existing = Vcloud::Core::Vapp.get_by_name_and_vdc_name(name, vdc_name)
|
@@ -15,12 +15,15 @@ module Vcloud
|
|
15
15
|
catalog_name = vapp_config[:catalog_name] || vapp_config[:catalog]
|
16
16
|
template = Vcloud::Core::VappTemplate.get(template_name, catalog_name)
|
17
17
|
template_id = template.id
|
18
|
-
|
19
18
|
network_names = extract_vm_networks(vapp_config)
|
20
|
-
|
21
|
-
|
19
|
+
if dry_run
|
20
|
+
Vcloud::Core.logger.info("Instantiating new vApp #{name} in vDC '#{vdc_name}'")
|
21
|
+
else
|
22
|
+
vapp = Vcloud::Core::Vapp.instantiate(name, network_names, template_id, vdc_name)
|
23
|
+
Vcloud::Launcher::VmOrchestrator.new(vapp.vms.first, vapp).customize(vapp_config[:vm]) if vapp_config[:vm]
|
22
24
|
|
23
|
-
|
25
|
+
vapp
|
26
|
+
end
|
24
27
|
end
|
25
28
|
|
26
29
|
def self.extract_vm_networks(config)
|
data/rbenv_version.sh
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export RBENV_VERSION="2.
|
1
|
+
export RBENV_VERSION="2.2.2"
|
@@ -54,6 +54,7 @@ describe Vcloud::Launcher::Cli do
|
|
54
54
|
"quiet" => false,
|
55
55
|
"post-launch-cmd" => false,
|
56
56
|
"verbose" => false,
|
57
|
+
"dry-run" => false,
|
57
58
|
}
|
58
59
|
}
|
59
60
|
|
@@ -70,6 +71,7 @@ describe Vcloud::Launcher::Cli do
|
|
70
71
|
"quiet" => false,
|
71
72
|
"post-launch-cmd" => false,
|
72
73
|
"verbose" => false,
|
74
|
+
"dry-run" => false,
|
73
75
|
}
|
74
76
|
}
|
75
77
|
|
@@ -86,6 +88,7 @@ describe Vcloud::Launcher::Cli do
|
|
86
88
|
"quiet" => false,
|
87
89
|
"post-launch-cmd" => false,
|
88
90
|
"verbose" => false,
|
91
|
+
"dry-run" => false,
|
89
92
|
}
|
90
93
|
}
|
91
94
|
|
@@ -102,6 +105,7 @@ describe Vcloud::Launcher::Cli do
|
|
102
105
|
"quiet" => true,
|
103
106
|
"post-launch-cmd" => false,
|
104
107
|
"verbose" => false,
|
108
|
+
"dry-run" => false,
|
105
109
|
}
|
106
110
|
}
|
107
111
|
|
@@ -118,6 +122,7 @@ describe Vcloud::Launcher::Cli do
|
|
118
122
|
"quiet" => false,
|
119
123
|
"post-launch-cmd" => false,
|
120
124
|
"verbose" => true,
|
125
|
+
"dry-run" => false,
|
121
126
|
}
|
122
127
|
}
|
123
128
|
|
@@ -134,6 +139,24 @@ describe Vcloud::Launcher::Cli do
|
|
134
139
|
"quiet" => false,
|
135
140
|
"post-launch-cmd" => false,
|
136
141
|
"verbose" => true,
|
142
|
+
"dry-run" => false,
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
it_behaves_like "a good CLI command"
|
147
|
+
end
|
148
|
+
|
149
|
+
context "when asked to do a dry-run" do
|
150
|
+
let(:args) { [ config_file, "--dry-run" ] }
|
151
|
+
let(:cli_options) {
|
152
|
+
{
|
153
|
+
"vapp-name" => false,
|
154
|
+
"dont-power-on" => false,
|
155
|
+
"continue-on-error" => false,
|
156
|
+
"quiet" => false,
|
157
|
+
"post-launch-cmd" => false,
|
158
|
+
"verbose" => false,
|
159
|
+
"dry-run" => true,
|
137
160
|
}
|
138
161
|
}
|
139
162
|
|
@@ -150,6 +173,7 @@ describe Vcloud::Launcher::Cli do
|
|
150
173
|
"quiet" => false,
|
151
174
|
"post-launch-cmd" => 'GIRAFFE',
|
152
175
|
"verbose" => false,
|
176
|
+
"dry-run" => false,
|
153
177
|
}
|
154
178
|
}
|
155
179
|
|
@@ -166,6 +190,7 @@ describe Vcloud::Launcher::Cli do
|
|
166
190
|
"quiet" => false,
|
167
191
|
"post-launch-cmd" => 'GIRAFFE LION',
|
168
192
|
"verbose" => false,
|
193
|
+
"dry-run" => false,
|
169
194
|
}
|
170
195
|
}
|
171
196
|
it "exits with a error code, because this is not supported" do
|
@@ -88,7 +88,7 @@ describe Vcloud::Launcher::IndependentDiskOrchestrator do
|
|
88
88
|
expect(mock_vm).to receive(:attach_independent_disks).
|
89
89
|
with([mock_disk_1, mock_disk_2]).
|
90
90
|
and_return(true)
|
91
|
-
expect(subject.attach(independent_disk_config)).to
|
91
|
+
expect(subject.attach(independent_disk_config)).to be true
|
92
92
|
end
|
93
93
|
end
|
94
94
|
|
@@ -23,7 +23,7 @@ describe Vcloud::Launcher::Schema::LAUNCHER_VAPPS do
|
|
23
23
|
|
24
24
|
it "validates successfully" do
|
25
25
|
validation = Vcloud::Core::ConfigValidator.new(:base, config, schema)
|
26
|
-
expect(validation.valid?).to
|
26
|
+
expect(validation.valid?).to be true
|
27
27
|
end
|
28
28
|
|
29
29
|
end
|
@@ -47,7 +47,7 @@ describe Vcloud::Launcher::Schema::LAUNCHER_VAPPS do
|
|
47
47
|
|
48
48
|
it "does not validate successfully" do
|
49
49
|
validation = Vcloud::Core::ConfigValidator.new(:base, config, schema)
|
50
|
-
expect(validation.valid?).to
|
50
|
+
expect(validation.valid?).to be false
|
51
51
|
expect(validation.errors).to eq(['independent_disks is not an array'])
|
52
52
|
end
|
53
53
|
|
@@ -72,7 +72,7 @@ describe Vcloud::Launcher::Schema::LAUNCHER_VAPPS do
|
|
72
72
|
|
73
73
|
it "does not validate successfully" do
|
74
74
|
validation = Vcloud::Core::ConfigValidator.new(:base, config, schema)
|
75
|
-
expect(validation.valid?).to
|
75
|
+
expect(validation.valid?).to be false
|
76
76
|
expect(validation.errors).to eq(
|
77
77
|
['independent_disks: is not a hash', 'independent_disks: is not a hash']
|
78
78
|
)
|
@@ -99,7 +99,7 @@ describe Vcloud::Launcher::Schema::LAUNCHER_VAPPS do
|
|
99
99
|
|
100
100
|
it "does not validate successfully" do
|
101
101
|
validation = Vcloud::Core::ConfigValidator.new(:base, config, schema)
|
102
|
-
expect(validation.valid?).to
|
102
|
+
expect(validation.valid?).to be false
|
103
103
|
expect(validation.errors).to eq([
|
104
104
|
"independent_disks: parameter 'nametypo' is invalid",
|
105
105
|
"independent_disks: missing 'name' parameter"
|
data/vcloud-launcher.gemspec
CHANGED
@@ -18,16 +18,15 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
19
19
|
s.require_paths = ['lib']
|
20
20
|
|
21
|
-
s.required_ruby_version = '>= 2.
|
21
|
+
s.required_ruby_version = '>= 2.2.2'
|
22
22
|
|
23
|
-
s.add_runtime_dependency 'vcloud-core', '~> 1.
|
23
|
+
s.add_runtime_dependency 'vcloud-core', '~> 2.1.0'
|
24
|
+
s.add_runtime_dependency 'nokogiri', '~> 1.6.8.1'
|
24
25
|
s.add_development_dependency 'gem_publisher', '1.2.0'
|
25
26
|
s.add_development_dependency 'pry'
|
26
|
-
s.add_development_dependency 'rake'
|
27
|
-
s.add_development_dependency 'rspec', '
|
28
|
-
s.add_development_dependency 'rubocop', '~> 0.
|
29
|
-
|
30
|
-
|
31
|
-
s.add_development_dependency 'simplecov', '~> 0.7.1'
|
32
|
-
s.add_development_dependency 'vcloud-tools-tester', '~> 1.0.0'
|
27
|
+
s.add_development_dependency 'rake', '>= 12'
|
28
|
+
s.add_development_dependency 'rspec', '>= 3.6'
|
29
|
+
s.add_development_dependency 'rubocop', '~> 0.49.1'
|
30
|
+
s.add_development_dependency 'simplecov', '~> 0.14.1'
|
31
|
+
s.add_development_dependency 'vcloud-tools-tester', '~> 2.1.0'
|
33
32
|
end
|
metadata
CHANGED
@@ -1,29 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vcloud-launcher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anna Shipman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: vcloud-core
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.1.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: nokogiri
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.6.8.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.6.8.1
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: gem_publisher
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,86 +56,86 @@ dependencies:
|
|
42
56
|
name: pry
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- -
|
59
|
+
- - ">="
|
46
60
|
- !ruby/object:Gem::Version
|
47
61
|
version: '0'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- -
|
66
|
+
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- -
|
73
|
+
- - ">="
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
75
|
+
version: '12'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- -
|
80
|
+
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
82
|
+
version: '12'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rspec
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- -
|
87
|
+
- - ">="
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
89
|
+
version: '3.6'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- -
|
94
|
+
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
96
|
+
version: '3.6'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: rubocop
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- - ~>
|
101
|
+
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
103
|
+
version: 0.49.1
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- - ~>
|
108
|
+
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
110
|
+
version: 0.49.1
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: simplecov
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
|
-
- - ~>
|
115
|
+
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.
|
117
|
+
version: 0.14.1
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- - ~>
|
122
|
+
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
124
|
+
version: 0.14.1
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: vcloud-tools-tester
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- - ~>
|
129
|
+
- - "~>"
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.0
|
131
|
+
version: 2.1.0
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- - ~>
|
136
|
+
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.0
|
138
|
+
version: 2.1.0
|
125
139
|
description:
|
126
140
|
email:
|
127
141
|
- anna.shipman@digital.cabinet-office.gov.uk
|
@@ -130,11 +144,12 @@ executables:
|
|
130
144
|
extensions: []
|
131
145
|
extra_rdoc_files: []
|
132
146
|
files:
|
133
|
-
- .gitignore
|
134
|
-
- .travis.yml
|
147
|
+
- ".gitignore"
|
148
|
+
- ".travis.yml"
|
135
149
|
- CHANGELOG.md
|
136
150
|
- CONTRIBUTING.md
|
137
151
|
- Gemfile
|
152
|
+
- Jenkinsfile
|
138
153
|
- LICENSE.txt
|
139
154
|
- README.md
|
140
155
|
- Rakefile
|
@@ -189,17 +204,17 @@ require_paths:
|
|
189
204
|
- lib
|
190
205
|
required_ruby_version: !ruby/object:Gem::Requirement
|
191
206
|
requirements:
|
192
|
-
- -
|
207
|
+
- - ">="
|
193
208
|
- !ruby/object:Gem::Version
|
194
|
-
version: 2.
|
209
|
+
version: 2.2.2
|
195
210
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
211
|
requirements:
|
197
|
-
- -
|
212
|
+
- - ">="
|
198
213
|
- !ruby/object:Gem::Version
|
199
214
|
version: '0'
|
200
215
|
requirements: []
|
201
216
|
rubyforge_project:
|
202
|
-
rubygems_version: 2.
|
217
|
+
rubygems_version: 2.4.5
|
203
218
|
signing_key:
|
204
219
|
specification_version: 4
|
205
220
|
summary: Tool to launch and configure vCloud vApps
|