beaker 1.20.1 → 1.21.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 +8 -8
- data/HISTORY.md +2 -16251
- data/lib/beaker/hypervisor/vcloud_pooled.rb +34 -1
- data/lib/beaker/version.rb +1 -1
- metadata +3 -3
@@ -19,12 +19,37 @@ module Beaker
|
|
19
19
|
@options = options
|
20
20
|
@logger = options[:logger]
|
21
21
|
@hosts = vcloud_hosts
|
22
|
+
@credentials = load_credentials(@options[:dot_fog])
|
22
23
|
|
23
24
|
raise 'You must specify a datastore for vCloud instances!' unless @options['datastore']
|
24
25
|
raise 'You must specify a resource pool for vCloud instances!' unless @options['resourcepool']
|
25
26
|
raise 'You must specify a folder for vCloud instances!' unless @options['folder']
|
26
27
|
end
|
27
28
|
|
29
|
+
def load_credentials(dot_fog = '.fog')
|
30
|
+
creds = {}
|
31
|
+
|
32
|
+
if fog = read_fog_file(dot_fog)
|
33
|
+
if fog[:default] && fog[:default][:vmpooler_token]
|
34
|
+
creds[:vmpooler_token] = fog[:default][:vmpooler_token]
|
35
|
+
else
|
36
|
+
@logger.warn "Credentials file (#{dot_fog}) is missing a :default section with a :vmpooler_token value; proceeding without authentication"
|
37
|
+
end
|
38
|
+
else
|
39
|
+
@logger.warn "Credentials file (#{dot_fog}) is empty; proceeding without authentication"
|
40
|
+
end
|
41
|
+
|
42
|
+
creds
|
43
|
+
|
44
|
+
rescue Errno::ENOENT
|
45
|
+
@logger.warn "Credentials file (#{dot_fog}) not found; proceeding without authentication"
|
46
|
+
creds
|
47
|
+
end
|
48
|
+
|
49
|
+
def read_fog_file(dot_fog = '.fog')
|
50
|
+
YAML.load_file(dot_fog)
|
51
|
+
end
|
52
|
+
|
28
53
|
def check_url url
|
29
54
|
begin
|
30
55
|
URI.parse(url)
|
@@ -70,12 +95,16 @@ module Beaker
|
|
70
95
|
http = Net::HTTP.new( uri.host, uri.port )
|
71
96
|
request = Net::HTTP::Post.new(uri.request_uri)
|
72
97
|
|
98
|
+
if @credentials[:vmpooler_token]
|
99
|
+
request['X-AUTH-TOKEN'] = @credentials[:vmpooler_token]
|
100
|
+
end
|
101
|
+
|
73
102
|
request.set_form_data({'pool' => @options['resourcepool'], 'folder' => 'foo'})
|
74
103
|
|
75
104
|
attempts = @options[:timeout].to_i / 5
|
76
105
|
response = http.request(request)
|
77
106
|
parsed_response = JSON.parse(response.body)
|
78
|
-
if parsed_response[h['template']] && parsed_response[
|
107
|
+
if parsed_response[h['template']] && parsed_response['ok'] && parsed_response[h['template']]['hostname']
|
79
108
|
hostname = parsed_response[h['template']]['hostname']
|
80
109
|
domain = parsed_response['domain']
|
81
110
|
h['vmhostname'] = domain ? "#{hostname}.#{domain}" : hostname
|
@@ -112,6 +141,10 @@ module Beaker
|
|
112
141
|
http = Net::HTTP.new( uri.host, uri.port )
|
113
142
|
request = Net::HTTP::Delete.new(uri.request_uri)
|
114
143
|
|
144
|
+
if @credentials[:vmpooler_token]
|
145
|
+
request['X-AUTH-TOKEN'] = @credentials[:vmpooler_token]
|
146
|
+
end
|
147
|
+
|
115
148
|
begin
|
116
149
|
response = http.request(request)
|
117
150
|
rescue *SSH_EXCEPTIONS => e
|
data/lib/beaker/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppetlabs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -545,7 +545,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
545
545
|
version: '0'
|
546
546
|
requirements: []
|
547
547
|
rubyforge_project:
|
548
|
-
rubygems_version: 2.
|
548
|
+
rubygems_version: 2.4.6
|
549
549
|
signing_key:
|
550
550
|
specification_version: 4
|
551
551
|
summary: Let's test Puppet!
|