kytoon 1.3.8 → 1.3.9
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +6 -0
- data/VERSION +1 -1
- data/lib/kytoon/providers/xenserver/server_group.rb +18 -6
- data/lib/kytoon/util.rb +13 -3
- metadata +3 -3
data/CHANGELOG
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
* Wed Jun 12 2013 Dan Prince <dprince@redhat.com> - 1.3.9
|
2
|
+
-XenServer: Extract configure_host_network (matelaket)
|
3
|
+
-XenServer: Fix: Configure host network before configuring nodes (matelaket)
|
4
|
+
-Remote exec fix - abstract connection checking loop (matelaket)
|
5
|
+
-XenServer: check domid before ssh key injection (dprince)
|
6
|
+
|
1
7
|
* Thu May 30 2013 Dan Prince <dprince@redhat.com> - 1.3.8
|
2
8
|
-Re-release 1.3.7 as 1.3.8 to fix bad gem.
|
3
9
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.
|
1
|
+
1.3.9
|
@@ -188,6 +188,7 @@ fi
|
|
188
188
|
create_instance(sg.gateway_ip, server['image_path'], server['hostname'], server['mac'], sg.bridge, host_ssh_public_key)
|
189
189
|
network_type = sg.network_type
|
190
190
|
if network_type == 'static' then
|
191
|
+
configure_host_network(sg)
|
191
192
|
configure_static_networking(sg.gateway_ip, server['hostname'], server['ip_address'], sg.netmask, sg.gateway, sg.broadcast, server['mac'], sg.dns_nameserver)
|
192
193
|
else
|
193
194
|
raise "Unsupported network type '#{sg.network_type}'"
|
@@ -231,21 +232,28 @@ fi
|
|
231
232
|
end
|
232
233
|
end
|
233
234
|
|
234
|
-
def self.
|
235
|
+
def self.configure_host_network(sg)
|
235
236
|
|
236
237
|
cidr = IPAddr.new(sg.netmask).to_i.to_s(2).count("1")
|
237
238
|
|
238
|
-
hosts_file_data = "127.0.0.1\tlocalhost localhost.localdomain\n"
|
239
|
-
sg.servers.each do |server|
|
240
|
-
hosts_file_data += "#{server['ip_address']}\t#{server['hostname']}\t#{server['hostname']}.local\n"
|
241
|
-
end
|
242
|
-
|
243
239
|
Kytoon::Util.remote_exec(%{
|
244
240
|
# Add first IP to bridge
|
245
241
|
if ! ip a | grep #{sg.gateway}/#{cidr} | grep #{sg.bridge}; then
|
246
242
|
ip a add #{sg.gateway}/#{cidr} dev #{sg.bridge}
|
247
243
|
fi
|
244
|
+
}, sg.gateway_ip)
|
245
|
+
end
|
246
|
+
|
247
|
+
def self.init_host(sg)
|
248
248
|
|
249
|
+
hosts_file_data = "127.0.0.1\tlocalhost localhost.localdomain\n"
|
250
|
+
sg.servers.each do |server|
|
251
|
+
hosts_file_data += "#{server['ip_address']}\t#{server['hostname']}\t#{server['hostname']}.local\n"
|
252
|
+
end
|
253
|
+
|
254
|
+
configure_host_network(sg)
|
255
|
+
|
256
|
+
Kytoon::Util.remote_exec(%{
|
249
257
|
cat > /etc/hosts <<-EOF_CAT
|
250
258
|
#{hosts_file_data}
|
251
259
|
EOF_CAT
|
@@ -293,6 +301,10 @@ echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
293
301
|
|
294
302
|
# inject ssh from host
|
295
303
|
DOMID=$(xe vm-param-get uuid=$UUID param-name="dom-id")
|
304
|
+
if [ "$DOMID" == "-1" -o -z "$DOMID" ]; then
|
305
|
+
echo "Unable to find valid domain ID."
|
306
|
+
exit 1
|
307
|
+
fi
|
296
308
|
xenstore-rm -s /local/domain/$DOMID/data/guest/ssh_key 2> /dev/null
|
297
309
|
xenstore-write -s /local/domain/$DOMID/data/host/ssh_key '{"name": "injectfile", "value": "#{file_data}"}'
|
298
310
|
until [ -n "$INJECT_RETVAL" ]; do
|
data/lib/kytoon/util.rb
CHANGED
@@ -77,13 +77,23 @@ module Util
|
|
77
77
|
(retry_attempts+1).times do |count|
|
78
78
|
sleep retry_sleep if count > 1
|
79
79
|
out=%x{
|
80
|
-
ssh #{SSH_OPTS} root@#{gateway_ip}
|
81
|
-
#{script_text}
|
82
|
-
REMOTE_EXEC_EOF
|
80
|
+
ssh #{SSH_OPTS} root@#{gateway_ip} true
|
83
81
|
}
|
84
82
|
retval=$?
|
85
83
|
break if retval.success?
|
86
84
|
end
|
85
|
+
|
86
|
+
if not retval.success?
|
87
|
+
raise KytoonException, "Failed to connect to #{gateway_ip}."
|
88
|
+
end
|
89
|
+
|
90
|
+
out=%x{
|
91
|
+
ssh #{SSH_OPTS} root@#{gateway_ip} bash <<-"REMOTE_EXEC_EOF"
|
92
|
+
#{script_text}
|
93
|
+
REMOTE_EXEC_EOF
|
94
|
+
}
|
95
|
+
retval=$?
|
96
|
+
|
87
97
|
if block_given? then
|
88
98
|
yield retval.success?, out
|
89
99
|
else
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kytoon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdoc
|
@@ -289,7 +289,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
289
289
|
version: '0'
|
290
290
|
segments:
|
291
291
|
- 0
|
292
|
-
hash:
|
292
|
+
hash: 4155049120962533494
|
293
293
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
294
294
|
none: false
|
295
295
|
requirements:
|