vmfloaty 0.8.2 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/README.md +96 -55
- data/bin/floaty +2 -1
- data/lib/vmfloaty.rb +66 -65
- data/lib/vmfloaty/abs.rb +318 -0
- data/lib/vmfloaty/auth.rb +14 -22
- data/lib/vmfloaty/conf.rb +4 -3
- data/lib/vmfloaty/errors.rb +6 -4
- data/lib/vmfloaty/http.rb +14 -25
- data/lib/vmfloaty/logger.rb +27 -0
- data/lib/vmfloaty/nonstandard_pooler.rb +15 -31
- data/lib/vmfloaty/pooler.rb +64 -55
- data/lib/vmfloaty/service.rb +26 -27
- data/lib/vmfloaty/ssh.rb +25 -25
- data/lib/vmfloaty/utils.rb +94 -84
- data/lib/vmfloaty/version.rb +3 -1
- data/spec/spec_helper.rb +13 -0
- data/spec/vmfloaty/abs/auth_spec.rb +84 -0
- data/spec/vmfloaty/abs_spec.rb +126 -0
- data/spec/vmfloaty/auth_spec.rb +39 -43
- data/spec/vmfloaty/nonstandard_pooler_spec.rb +132 -146
- data/spec/vmfloaty/pooler_spec.rb +121 -101
- data/spec/vmfloaty/service_spec.rb +17 -17
- data/spec/vmfloaty/ssh_spec.rb +49 -0
- data/spec/vmfloaty/utils_spec.rb +114 -113
- data/spec/vmfloaty/vmfloaty_services_spec.rb +39 -0
- metadata +39 -22
data/spec/vmfloaty/utils_spec.rb
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
require 'json'
|
|
3
5
|
require 'commander/command'
|
|
4
6
|
require_relative '../../lib/vmfloaty/utils'
|
|
5
7
|
|
|
6
8
|
describe Utils do
|
|
7
|
-
|
|
8
|
-
describe "#standardize_hostnames" do
|
|
9
|
+
describe '#standardize_hostnames' do
|
|
9
10
|
before :each do
|
|
10
|
-
@vmpooler_response_body ='{
|
|
11
|
+
@vmpooler_response_body = '{
|
|
11
12
|
"ok": true,
|
|
12
13
|
"domain": "delivery.mycompany.net",
|
|
13
14
|
"ubuntu-1610-x86_64": {
|
|
@@ -28,79 +29,79 @@ describe Utils do
|
|
|
28
29
|
}'
|
|
29
30
|
end
|
|
30
31
|
|
|
31
|
-
it
|
|
32
|
+
it 'formats a result from vmpooler into a hash of os to hostnames' do
|
|
32
33
|
result = Utils.standardize_hostnames(JSON.parse(@vmpooler_response_body))
|
|
33
|
-
expect(result).to eq('centos-7-x86_64'
|
|
34
|
-
'ubuntu-1610-x86_64' => [
|
|
34
|
+
expect(result).to eq('centos-7-x86_64' => ['dlgietfmgeegry2.delivery.mycompany.net'],
|
|
35
|
+
'ubuntu-1610-x86_64' => ['gdoy8q3nckuob0i.delivery.mycompany.net', 'ctnktsd0u11p9tm.delivery.mycompany.net'])
|
|
35
36
|
end
|
|
36
37
|
|
|
37
|
-
it
|
|
38
|
+
it 'formats a result from the nonstandard pooler into a hash of os to hostnames' do
|
|
38
39
|
result = Utils.standardize_hostnames(JSON.parse(@nonstandard_response_body))
|
|
39
|
-
expect(result).to eq('solaris-10-sparc'
|
|
40
|
+
expect(result).to eq('solaris-10-sparc' => ['sol10-10.delivery.mycompany.net', 'sol10-11.delivery.mycompany.net'],
|
|
40
41
|
'ubuntu-16.04-power8' => ['power8-ubuntu16.04-6.delivery.mycompany.net'])
|
|
41
42
|
end
|
|
42
43
|
end
|
|
43
44
|
|
|
44
|
-
describe
|
|
45
|
+
describe '#format_host_output' do
|
|
45
46
|
before :each do
|
|
46
47
|
@vmpooler_results = {
|
|
47
|
-
'centos-7-x86_64'
|
|
48
|
-
'ubuntu-1610-x86_64' => [
|
|
48
|
+
'centos-7-x86_64' => ['dlgietfmgeegry2.delivery.mycompany.net'],
|
|
49
|
+
'ubuntu-1610-x86_64' => ['gdoy8q3nckuob0i.delivery.mycompany.net', 'ctnktsd0u11p9tm.delivery.mycompany.net'],
|
|
49
50
|
}
|
|
50
51
|
@nonstandard_results = {
|
|
51
|
-
'solaris-10-sparc'
|
|
52
|
-
'ubuntu-16.04-power8' => ['power8-ubuntu16.04-6.delivery.mycompany.net']
|
|
52
|
+
'solaris-10-sparc' => ['sol10-10.delivery.mycompany.net', 'sol10-11.delivery.mycompany.net'],
|
|
53
|
+
'ubuntu-16.04-power8' => ['power8-ubuntu16.04-6.delivery.mycompany.net'],
|
|
53
54
|
}
|
|
54
|
-
@vmpooler_output =
|
|
55
|
-
- dlgietfmgeegry2.delivery.mycompany.net (centos-7-x86_64)
|
|
56
|
-
- gdoy8q3nckuob0i.delivery.mycompany.net (ubuntu-1610-x86_64)
|
|
57
|
-
- ctnktsd0u11p9tm.delivery.mycompany.net (ubuntu-1610-x86_64)
|
|
55
|
+
@vmpooler_output = <<~OUT.chomp
|
|
56
|
+
- dlgietfmgeegry2.delivery.mycompany.net (centos-7-x86_64)
|
|
57
|
+
- gdoy8q3nckuob0i.delivery.mycompany.net (ubuntu-1610-x86_64)
|
|
58
|
+
- ctnktsd0u11p9tm.delivery.mycompany.net (ubuntu-1610-x86_64)
|
|
58
59
|
OUT
|
|
59
|
-
@nonstandard_output =
|
|
60
|
-
- sol10-10.delivery.mycompany.net (solaris-10-sparc)
|
|
61
|
-
- sol10-11.delivery.mycompany.net (solaris-10-sparc)
|
|
62
|
-
- power8-ubuntu16.04-6.delivery.mycompany.net (ubuntu-16.04-power8)
|
|
60
|
+
@nonstandard_output = <<~OUT.chomp
|
|
61
|
+
- sol10-10.delivery.mycompany.net (solaris-10-sparc)
|
|
62
|
+
- sol10-11.delivery.mycompany.net (solaris-10-sparc)
|
|
63
|
+
- power8-ubuntu16.04-6.delivery.mycompany.net (ubuntu-16.04-power8)
|
|
63
64
|
OUT
|
|
64
65
|
end
|
|
65
|
-
it
|
|
66
|
+
it 'formats a hostname hash from vmpooler into a list that includes the os' do
|
|
66
67
|
expect(Utils.format_host_output(@vmpooler_results)).to eq(@vmpooler_output)
|
|
67
68
|
end
|
|
68
69
|
|
|
69
|
-
it
|
|
70
|
+
it 'formats a hostname hash from the nonstandard pooler into a list that includes the os' do
|
|
70
71
|
expect(Utils.format_host_output(@nonstandard_results)).to eq(@nonstandard_output)
|
|
71
72
|
end
|
|
72
73
|
end
|
|
73
74
|
|
|
74
|
-
describe
|
|
75
|
-
it
|
|
75
|
+
describe '#get_service_object' do
|
|
76
|
+
it 'assumes vmpooler by default' do
|
|
76
77
|
expect(Utils.get_service_object).to be Pooler
|
|
77
78
|
end
|
|
78
79
|
|
|
79
|
-
it
|
|
80
|
-
expect(Utils.get_service_object
|
|
80
|
+
it 'uses nspooler when told explicitly' do
|
|
81
|
+
expect(Utils.get_service_object('nspooler')).to be NonstandardPooler
|
|
81
82
|
end
|
|
82
83
|
end
|
|
83
84
|
|
|
84
|
-
describe
|
|
85
|
+
describe '#get_service_config' do
|
|
85
86
|
before :each do
|
|
86
87
|
@default_config = {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
'url' => 'http://default.url',
|
|
89
|
+
'user' => 'first.last.default',
|
|
90
|
+
'token' => 'default-token',
|
|
90
91
|
}
|
|
91
92
|
@services_config = {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
93
|
+
'services' => {
|
|
94
|
+
'vm' => {
|
|
95
|
+
'url' => 'http://vmpooler.url',
|
|
96
|
+
'user' => 'first.last.vmpooler',
|
|
97
|
+
'token' => 'vmpooler-token',
|
|
98
|
+
},
|
|
99
|
+
'ns' => {
|
|
100
|
+
'url' => 'http://nspooler.url',
|
|
101
|
+
'user' => 'first.last.nspooler',
|
|
102
|
+
'token' => 'nspooler-token',
|
|
103
|
+
},
|
|
104
|
+
},
|
|
104
105
|
}
|
|
105
106
|
end
|
|
106
107
|
|
|
@@ -110,70 +111,70 @@ describe Utils do
|
|
|
110
111
|
expect(Utils.get_service_config(config, options)).to include @services_config['services']['vm']
|
|
111
112
|
end
|
|
112
113
|
|
|
113
|
-
it
|
|
114
|
+
it 'allows selection by configured service key' do
|
|
114
115
|
config = @default_config.merge @services_config
|
|
115
|
-
options = MockOptions.new(
|
|
116
|
+
options = MockOptions.new(:service => 'ns')
|
|
116
117
|
expect(Utils.get_service_config(config, options)).to include @services_config['services']['ns']
|
|
117
118
|
end
|
|
118
119
|
|
|
119
|
-
it
|
|
120
|
+
it 'uses top-level service config values as defaults when configured service values are missing' do
|
|
120
121
|
config = @default_config.merge @services_config
|
|
121
|
-
config[
|
|
122
|
-
options = MockOptions.new(
|
|
122
|
+
config['services']['vm'].delete 'url'
|
|
123
|
+
options = MockOptions.new(:service => 'vm')
|
|
123
124
|
expect(Utils.get_service_config(config, options)['url']).to eq 'http://default.url'
|
|
124
125
|
end
|
|
125
126
|
|
|
126
127
|
it "raises an error if passed a service name that hasn't been configured" do
|
|
127
128
|
config = @default_config.merge @services_config
|
|
128
|
-
options = MockOptions.new(
|
|
129
|
+
options = MockOptions.new(:service => 'none')
|
|
129
130
|
expect { Utils.get_service_config(config, options) }.to raise_error ArgumentError
|
|
130
131
|
end
|
|
131
132
|
|
|
132
|
-
it
|
|
133
|
+
it 'prioritizes values passed as command line options over configuration options' do
|
|
133
134
|
config = @default_config
|
|
134
|
-
options = MockOptions.new(
|
|
135
|
-
expected = config.merge(
|
|
135
|
+
options = MockOptions.new(:url => 'http://alternate.url', :token => 'alternate-token')
|
|
136
|
+
expected = config.merge('url' => 'http://alternate.url', 'token' => 'alternate-token')
|
|
136
137
|
expect(Utils.get_service_config(config, options)).to include expected
|
|
137
138
|
end
|
|
138
139
|
end
|
|
139
140
|
|
|
140
|
-
describe
|
|
141
|
+
describe '#generate_os_hash' do
|
|
141
142
|
before :each do
|
|
142
|
-
@host_hash = {
|
|
143
|
+
@host_hash = { 'centos' => 1, 'debian' => 5, 'windows' => 1 }
|
|
143
144
|
end
|
|
144
145
|
|
|
145
|
-
it
|
|
146
|
-
host_arg = [
|
|
146
|
+
it 'takes an array of os arguments and returns a formatted hash' do
|
|
147
|
+
host_arg = ['centos', 'debian=5', 'windows=1']
|
|
147
148
|
expect(Utils.generate_os_hash(host_arg)).to eq @host_hash
|
|
148
149
|
end
|
|
149
150
|
|
|
150
|
-
it
|
|
151
|
+
it 'returns an empty hash if there are no arguments provided' do
|
|
151
152
|
host_arg = []
|
|
152
153
|
expect(Utils.generate_os_hash(host_arg)).to be_empty
|
|
153
154
|
end
|
|
154
155
|
end
|
|
155
156
|
|
|
156
157
|
describe '#pretty_print_hosts' do
|
|
157
|
-
let(:url)
|
|
158
|
+
let(:url) { 'http://pooler.example.com' }
|
|
158
159
|
|
|
159
160
|
it 'prints a vmpooler output with host fqdn, template and duration info' do
|
|
160
161
|
hostname = 'mcpy42eqjxli9g2'
|
|
161
162
|
response_body = { hostname => {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}}
|
|
169
|
-
output =
|
|
170
|
-
|
|
171
|
-
expect(
|
|
172
|
-
|
|
173
|
-
service = Service.new(MockOptions.new,
|
|
163
|
+
'template' => 'ubuntu-1604-x86_64',
|
|
164
|
+
'lifetime' => 12,
|
|
165
|
+
'running' => 9.66,
|
|
166
|
+
'state' => 'running',
|
|
167
|
+
'ip' => '127.0.0.1',
|
|
168
|
+
'domain' => 'delivery.mycompany.net',
|
|
169
|
+
} }
|
|
170
|
+
output = '- mcpy42eqjxli9g2.delivery.mycompany.net (ubuntu-1604-x86_64, 9.66/12 hours)'
|
|
171
|
+
|
|
172
|
+
expect(STDOUT).to receive(:puts).with(output)
|
|
173
|
+
|
|
174
|
+
service = Service.new(MockOptions.new, 'url' => url)
|
|
174
175
|
allow(service).to receive(:query)
|
|
175
|
-
|
|
176
|
-
|
|
176
|
+
.with(nil, hostname)
|
|
177
|
+
.and_return(response_body)
|
|
177
178
|
|
|
178
179
|
Utils.pretty_print_hosts(nil, service, hostname)
|
|
179
180
|
end
|
|
@@ -181,46 +182,46 @@ describe Utils do
|
|
|
181
182
|
it 'prints a vmpooler output with host fqdn, template, duration info, and tags when supplied' do
|
|
182
183
|
hostname = 'aiydvzpg23r415q'
|
|
183
184
|
response_body = { hostname => {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}}
|
|
195
|
-
output =
|
|
196
|
-
|
|
197
|
-
expect(
|
|
198
|
-
|
|
199
|
-
service = Service.new(MockOptions.new,
|
|
185
|
+
'template' => 'redhat-7-x86_64',
|
|
186
|
+
'lifetime' => 48,
|
|
187
|
+
'running' => 7.67,
|
|
188
|
+
'state' => 'running',
|
|
189
|
+
'tags' => {
|
|
190
|
+
'user' => 'bob',
|
|
191
|
+
'role' => 'agent',
|
|
192
|
+
},
|
|
193
|
+
'ip' => '127.0.0.1',
|
|
194
|
+
'domain' => 'delivery.mycompany.net',
|
|
195
|
+
} }
|
|
196
|
+
output = '- aiydvzpg23r415q.delivery.mycompany.net (redhat-7-x86_64, 7.67/48 hours, user: bob, role: agent)'
|
|
197
|
+
|
|
198
|
+
expect(STDOUT).to receive(:puts).with(output)
|
|
199
|
+
|
|
200
|
+
service = Service.new(MockOptions.new, 'url' => url)
|
|
200
201
|
allow(service).to receive(:query)
|
|
201
|
-
|
|
202
|
-
|
|
202
|
+
.with(nil, hostname)
|
|
203
|
+
.and_return(response_body)
|
|
203
204
|
|
|
204
205
|
Utils.pretty_print_hosts(nil, service, hostname)
|
|
205
206
|
end
|
|
206
207
|
|
|
207
208
|
it 'prints a nonstandard pooler output with host, template, and time remaining' do
|
|
208
|
-
hostname =
|
|
209
|
+
hostname = 'sol11-9.delivery.mycompany.net'
|
|
209
210
|
response_body = { hostname => {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
}}
|
|
216
|
-
output =
|
|
211
|
+
'fqdn' => hostname,
|
|
212
|
+
'os_triple' => 'solaris-11-sparc',
|
|
213
|
+
'reserved_by_user' => 'first.last',
|
|
214
|
+
'reserved_for_reason' => '',
|
|
215
|
+
'hours_left_on_reservation' => 35.89,
|
|
216
|
+
} }
|
|
217
|
+
output = '- sol11-9.delivery.mycompany.net (solaris-11-sparc, 35.89h remaining)'
|
|
217
218
|
|
|
218
|
-
expect(
|
|
219
|
+
expect(STDOUT).to receive(:puts).with(output)
|
|
219
220
|
|
|
220
|
-
service = Service.new(MockOptions.new,
|
|
221
|
+
service = Service.new(MockOptions.new, 'url' => url, 'type' => 'ns')
|
|
221
222
|
allow(service).to receive(:query)
|
|
222
|
-
|
|
223
|
-
|
|
223
|
+
.with(nil, hostname)
|
|
224
|
+
.and_return(response_body)
|
|
224
225
|
|
|
225
226
|
Utils.pretty_print_hosts(nil, service, hostname)
|
|
226
227
|
end
|
|
@@ -228,20 +229,20 @@ describe Utils do
|
|
|
228
229
|
it 'prints a nonstandard pooler output with host, template, time remaining, and reason' do
|
|
229
230
|
hostname = 'sol11-9.delivery.mycompany.net'
|
|
230
231
|
response_body = { hostname => {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
}}
|
|
237
|
-
output =
|
|
232
|
+
'fqdn' => hostname,
|
|
233
|
+
'os_triple' => 'solaris-11-sparc',
|
|
234
|
+
'reserved_by_user' => 'first.last',
|
|
235
|
+
'reserved_for_reason' => 'testing',
|
|
236
|
+
'hours_left_on_reservation' => 35.89,
|
|
237
|
+
} }
|
|
238
|
+
output = '- sol11-9.delivery.mycompany.net (solaris-11-sparc, 35.89h remaining, reason: testing)'
|
|
238
239
|
|
|
239
|
-
expect(
|
|
240
|
+
expect(STDOUT).to receive(:puts).with(output)
|
|
240
241
|
|
|
241
|
-
service = Service.new(MockOptions.new,
|
|
242
|
+
service = Service.new(MockOptions.new, 'url' => url, 'type' => 'ns')
|
|
242
243
|
allow(service).to receive(:query)
|
|
243
|
-
|
|
244
|
-
|
|
244
|
+
.with(nil, hostname)
|
|
245
|
+
.and_return(response_body)
|
|
245
246
|
|
|
246
247
|
Utils.pretty_print_hosts(nil, service, hostname)
|
|
247
248
|
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# All of the interfaces for the different services must be the
|
|
4
|
+
# same, otherwise there will be errors when you change the caller
|
|
5
|
+
# for the services from services.rb.
|
|
6
|
+
#
|
|
7
|
+
|
|
8
|
+
require_relative '../../lib/vmfloaty/pooler'
|
|
9
|
+
require_relative '../../lib/vmfloaty/abs'
|
|
10
|
+
require_relative '../../lib/vmfloaty/nonstandard_pooler'
|
|
11
|
+
|
|
12
|
+
shared_examples 'a vmfloaty service' do
|
|
13
|
+
it { is_expected.to respond_to(:delete).with(5).arguments }
|
|
14
|
+
it { is_expected.to respond_to(:disk).with(5).arguments }
|
|
15
|
+
it { is_expected.to respond_to(:list).with(3).arguments }
|
|
16
|
+
it { is_expected.to respond_to(:list_active).with(4).arguments }
|
|
17
|
+
it { is_expected.to respond_to(:modify).with(5).arguments }
|
|
18
|
+
it { is_expected.to respond_to(:retrieve).with(6).arguments }
|
|
19
|
+
it { is_expected.to respond_to(:revert).with(5).arguments }
|
|
20
|
+
it { is_expected.to respond_to(:query).with(3).arguments }
|
|
21
|
+
it { is_expected.to respond_to(:snapshot).with(4).arguments }
|
|
22
|
+
it { is_expected.to respond_to(:status).with(2).arguments }
|
|
23
|
+
it { is_expected.to respond_to(:summary).with(2).arguments }
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
describe Pooler do
|
|
27
|
+
subject { Pooler }
|
|
28
|
+
it_behaves_like 'a vmfloaty service'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
describe ABS do
|
|
32
|
+
subject { ABS }
|
|
33
|
+
it_behaves_like 'a vmfloaty service'
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe NonstandardPooler do
|
|
37
|
+
subject { NonstandardPooler }
|
|
38
|
+
it_behaves_like 'a vmfloaty service'
|
|
39
|
+
end
|
metadata
CHANGED
|
@@ -1,60 +1,68 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vmfloaty
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.11.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brian Cain
|
|
8
|
-
|
|
8
|
+
- Puppet
|
|
9
|
+
autorequire:
|
|
9
10
|
bindir: bin
|
|
10
11
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
+
date: 2020-08-12 00:00:00.000000000 Z
|
|
12
13
|
dependencies:
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
15
|
+
name: colorize
|
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
|
16
17
|
requirements:
|
|
17
18
|
- - "~>"
|
|
18
19
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
20
|
+
version: 0.8.1
|
|
20
21
|
type: :runtime
|
|
21
22
|
prerelease: false
|
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
24
|
requirements:
|
|
24
25
|
- - "~>"
|
|
25
26
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
27
|
+
version: 0.8.1
|
|
27
28
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
29
|
+
name: commander
|
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
|
30
31
|
requirements:
|
|
31
|
-
- - "
|
|
32
|
+
- - ">="
|
|
32
33
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
34
|
+
version: 4.4.3
|
|
35
|
+
- - "<"
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: 4.6.0
|
|
34
38
|
type: :runtime
|
|
35
39
|
prerelease: false
|
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
41
|
requirements:
|
|
38
|
-
- - "
|
|
42
|
+
- - ">="
|
|
39
43
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
44
|
+
version: 4.4.3
|
|
45
|
+
- - "<"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: 4.6.0
|
|
41
48
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
49
|
+
name: faraday
|
|
43
50
|
requirement: !ruby/object:Gem::Requirement
|
|
44
51
|
requirements:
|
|
45
52
|
- - "~>"
|
|
46
53
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 0.
|
|
54
|
+
version: 0.17.0
|
|
48
55
|
type: :runtime
|
|
49
56
|
prerelease: false
|
|
50
57
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
58
|
requirements:
|
|
52
59
|
- - "~>"
|
|
53
60
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 0.
|
|
61
|
+
version: 0.17.0
|
|
55
62
|
description: A helper tool for vmpooler to help you stay afloat
|
|
56
63
|
email:
|
|
57
64
|
- brianccain@gmail.com
|
|
65
|
+
- dio-gems@puppet.com
|
|
58
66
|
executables:
|
|
59
67
|
- floaty
|
|
60
68
|
extensions: []
|
|
@@ -65,10 +73,12 @@ files:
|
|
|
65
73
|
- bin/floaty
|
|
66
74
|
- extras/completions/floaty.bash
|
|
67
75
|
- lib/vmfloaty.rb
|
|
76
|
+
- lib/vmfloaty/abs.rb
|
|
68
77
|
- lib/vmfloaty/auth.rb
|
|
69
78
|
- lib/vmfloaty/conf.rb
|
|
70
79
|
- lib/vmfloaty/errors.rb
|
|
71
80
|
- lib/vmfloaty/http.rb
|
|
81
|
+
- lib/vmfloaty/logger.rb
|
|
72
82
|
- lib/vmfloaty/nonstandard_pooler.rb
|
|
73
83
|
- lib/vmfloaty/pooler.rb
|
|
74
84
|
- lib/vmfloaty/service.rb
|
|
@@ -76,16 +86,20 @@ files:
|
|
|
76
86
|
- lib/vmfloaty/utils.rb
|
|
77
87
|
- lib/vmfloaty/version.rb
|
|
78
88
|
- spec/spec_helper.rb
|
|
89
|
+
- spec/vmfloaty/abs/auth_spec.rb
|
|
90
|
+
- spec/vmfloaty/abs_spec.rb
|
|
79
91
|
- spec/vmfloaty/auth_spec.rb
|
|
80
92
|
- spec/vmfloaty/nonstandard_pooler_spec.rb
|
|
81
93
|
- spec/vmfloaty/pooler_spec.rb
|
|
82
94
|
- spec/vmfloaty/service_spec.rb
|
|
95
|
+
- spec/vmfloaty/ssh_spec.rb
|
|
83
96
|
- spec/vmfloaty/utils_spec.rb
|
|
84
|
-
|
|
97
|
+
- spec/vmfloaty/vmfloaty_services_spec.rb
|
|
98
|
+
homepage: https://github.com/puppetlabs/vmfloaty
|
|
85
99
|
licenses:
|
|
86
100
|
- Apache-2.0
|
|
87
101
|
metadata: {}
|
|
88
|
-
post_install_message:
|
|
102
|
+
post_install_message:
|
|
89
103
|
rdoc_options: []
|
|
90
104
|
require_paths:
|
|
91
105
|
- lib
|
|
@@ -100,15 +114,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
100
114
|
- !ruby/object:Gem::Version
|
|
101
115
|
version: '0'
|
|
102
116
|
requirements: []
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
signing_key:
|
|
117
|
+
rubygems_version: 3.0.3
|
|
118
|
+
signing_key:
|
|
106
119
|
specification_version: 4
|
|
107
120
|
summary: CLI application to interface with vmpooler
|
|
108
121
|
test_files:
|
|
109
122
|
- spec/spec_helper.rb
|
|
110
|
-
- spec/vmfloaty/
|
|
111
|
-
- spec/vmfloaty/nonstandard_pooler_spec.rb
|
|
112
|
-
- spec/vmfloaty/pooler_spec.rb
|
|
123
|
+
- spec/vmfloaty/vmfloaty_services_spec.rb
|
|
113
124
|
- spec/vmfloaty/service_spec.rb
|
|
125
|
+
- spec/vmfloaty/abs/auth_spec.rb
|
|
126
|
+
- spec/vmfloaty/nonstandard_pooler_spec.rb
|
|
127
|
+
- spec/vmfloaty/ssh_spec.rb
|
|
114
128
|
- spec/vmfloaty/utils_spec.rb
|
|
129
|
+
- spec/vmfloaty/abs_spec.rb
|
|
130
|
+
- spec/vmfloaty/auth_spec.rb
|
|
131
|
+
- spec/vmfloaty/pooler_spec.rb
|