vcloud-box-spinner 0.2.4 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +4 -0
- data/README.md +6 -0
- data/lib/provisioner/cli.rb +10 -10
- data/lib/provisioner/provisioner.rb +11 -9
- data/lib/provisioner/version.rb +1 -1
- data/vcloud-box-spinner.gemspec +1 -0
- metadata +15 -4
data/CHANGELOG
CHANGED
data/README.md
CHANGED
@@ -18,6 +18,7 @@ You should be able to do `vcloud-box-spinner --help`
|
|
18
18
|
|
19
19
|
e.g. vcloud-box-spinner -u username orgs/staging.json machines/frontend-1.json
|
20
20
|
|
21
|
+
-c, --credential=GROUP fog credential group
|
21
22
|
-u, --user=USERNAME vCloud username
|
22
23
|
-p, --password=PASSWORD vCloud password
|
23
24
|
-F, --ssh-config=FILENAME SSH config file(s) to use (can be specified multiple times)
|
@@ -57,6 +58,11 @@ follows:
|
|
57
58
|
|
58
59
|
vcloud-box-spinner -u username -p password org_config.json machine_config.json
|
59
60
|
|
61
|
+
## Environment Variables
|
62
|
+
|
63
|
+
- `FOG_RC` specifies the fog credentials file if not `~/.fog`.
|
64
|
+
- `FOG_CREDENTIAL` specifies the credential group if not `default`.
|
65
|
+
|
60
66
|
## Hacking
|
61
67
|
|
62
68
|
refer [here](/docs/hacking.md)
|
data/lib/provisioner/cli.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'multi_json'
|
2
2
|
require 'optparse'
|
3
3
|
require 'provisioner/errors'
|
4
4
|
require 'highline/import'
|
@@ -76,6 +76,10 @@ module Provisioner
|
|
76
76
|
o.separator ""
|
77
77
|
o.separator "[Available options]:"
|
78
78
|
|
79
|
+
o.on("-c", "--credential", "=GROUP", "fog credential group") do |v|
|
80
|
+
options[:credential] = v
|
81
|
+
end
|
82
|
+
|
79
83
|
o.on("-u", "--user", "=USERNAME", "vCloud username") do |v|
|
80
84
|
options[:user] = v
|
81
85
|
end
|
@@ -91,14 +95,14 @@ module Provisioner
|
|
91
95
|
|
92
96
|
options[:org_config] = {}
|
93
97
|
o.on("-o", "--org-config", "=ORG-CONFIG-JSON",
|
94
|
-
"The organisation configuration
|
95
|
-
options[:org_config] =
|
98
|
+
"The organisation configuration JSON file path") do |v|
|
99
|
+
options[:org_config] = MultiJson.load(File.read(v), :symbolize_names => true)
|
96
100
|
end
|
97
101
|
|
98
102
|
options[:machine_metadata] = {}
|
99
103
|
o.on("-m", "--machine-config", "=METADATA",
|
100
|
-
"The machine configuration
|
101
|
-
options[:machine_metadata] =
|
104
|
+
"The machine configuration JSON file path") do |v|
|
105
|
+
options[:machine_metadata] = MultiJson.load(File.read(v), :symbolize_names => true)
|
102
106
|
end
|
103
107
|
|
104
108
|
o.on('-s', '--setup-script', "=SETUP-SCRIPT", "path to setup script that should run after machine is brought up") do |v|
|
@@ -128,11 +132,7 @@ module Provisioner
|
|
128
132
|
|
129
133
|
action = @args[0]
|
130
134
|
|
131
|
-
if options[:user].nil? then
|
132
|
-
options[:user] = ask("vCloud username: ")
|
133
|
-
end
|
134
|
-
|
135
|
-
if options[:password].nil? then
|
135
|
+
if options[:user] && options[:password].nil? then
|
136
136
|
options[:password] = ask("vCloud password: ") { |q| q.echo = false }
|
137
137
|
end
|
138
138
|
|
@@ -6,7 +6,6 @@ module Provisioner
|
|
6
6
|
private :options=, :options
|
7
7
|
|
8
8
|
def initialize options
|
9
|
-
options[:provider] = 'vcloud'
|
10
9
|
options[:created_by] = ENV['USER']
|
11
10
|
self.options = options
|
12
11
|
end
|
@@ -42,17 +41,20 @@ module Provisioner
|
|
42
41
|
private :delete
|
43
42
|
|
44
43
|
def compute
|
45
|
-
|
46
|
-
:provider => options[:provider],
|
47
|
-
:vcloud_username => "#{options[:user]}@#{options[:organisation]}",
|
48
|
-
:vcloud_password => options[:password],
|
49
|
-
:vcloud_host => options[:host],
|
44
|
+
opts = {
|
50
45
|
:vcloud_default_vdc => options[:default_vdc],
|
51
46
|
:connection_options => {
|
52
|
-
:ssl_verify_peer => false,
|
53
47
|
:omit_default_port => true
|
54
48
|
}
|
55
|
-
|
49
|
+
}
|
50
|
+
if options[:user]
|
51
|
+
opts[:vcloud_username] = "#{options[:user]}@#{options[:organisation]}"
|
52
|
+
opts[:vcloud_password] = options[:password]
|
53
|
+
end
|
54
|
+
opts[:vcloud_host] = options[:host] if options[:host]
|
55
|
+
|
56
|
+
Fog.credential = options[:credential] if options[:credential]
|
57
|
+
@compute ||= Fog::Vcloud::Compute.new(opts)
|
56
58
|
end
|
57
59
|
private :compute
|
58
60
|
|
@@ -78,7 +80,7 @@ module Provisioner
|
|
78
80
|
end
|
79
81
|
|
80
82
|
def validate_options
|
81
|
-
unless options[:password] && options[:user] && options[:host]
|
83
|
+
unless (options[:password] && options[:user] && options[:host]) || options[:credential]
|
82
84
|
logger.error "VCloud credentials missing"
|
83
85
|
raise ConfigurationError, "VCloud credentials must be specified"
|
84
86
|
end
|
data/lib/provisioner/version.rb
CHANGED
data/vcloud-box-spinner.gemspec
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: vcloud-box-spinner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.2.
|
5
|
+
version: 0.2.5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Garima Singh
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2013-09-
|
13
|
+
date: 2013-09-16 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
@@ -133,6 +133,17 @@ dependencies:
|
|
133
133
|
type: :runtime
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: *id011
|
136
|
+
- !ruby/object:Gem::Dependency
|
137
|
+
name: multi_json
|
138
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
140
|
+
requirements:
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: "0"
|
144
|
+
type: :runtime
|
145
|
+
prerelease: false
|
146
|
+
version_requirements: *id012
|
136
147
|
description: |-
|
137
148
|
Create new VM and apply an opinionated set of commands to
|
138
149
|
them, using vcloud API. The vcloud-box-spinner is a thin wrapper around fog,
|
@@ -189,7 +200,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
189
200
|
requirements:
|
190
201
|
- - ">="
|
191
202
|
- !ruby/object:Gem::Version
|
192
|
-
hash:
|
203
|
+
hash: 1125532872460758072
|
193
204
|
segments:
|
194
205
|
- 0
|
195
206
|
version: "0"
|
@@ -198,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
209
|
requirements:
|
199
210
|
- - ">="
|
200
211
|
- !ruby/object:Gem::Version
|
201
|
-
hash:
|
212
|
+
hash: 1125532872460758072
|
202
213
|
segments:
|
203
214
|
- 0
|
204
215
|
version: "0"
|