[PATCH conductor] BZ 790516 - Only accept ipv4, hostname addresses for instances
Matt Wagner
matt.wagner at redhat.com
Wed Feb 15 00:29:49 UTC 2012
Deltacloud labels 'vnc' and 'mac' addresses; don't set them as
instance addresses! (There is no 'ipv6' type currently.)
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=790516
---
src/dbomatic/dbomatic | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/dbomatic/dbomatic b/src/dbomatic/dbomatic
index 1719d06..1c6c6ee 100755
--- a/src/dbomatic/dbomatic
+++ b/src/dbomatic/dbomatic
@@ -177,6 +177,15 @@ def collect_accounts
accounts
end
+# Extract 'ipv4' and 'hostname' addresses from Deltacloud
+def extract_addresses(address_list)
+ addresses = []
+ address_list.each do |address|
+ addresses << address[:address] if ['ipv4', 'hostname'].include?(address[:type])
+ end
+ addresses
+end
+
def check_one_account(account)
connection = account.connect
@@ -191,11 +200,11 @@ def check_one_account(account)
# only update the public and private addresses if they are not nil.
# this prevents us from deleting known information about instances
- if not api_instance.public_addresses.empty?
- instance.public_addresses = api_instance.public_addresses.map {|i| i[:address]}.join(',')
+ if (addresses = extract_addresses(api_instance.public_addresses)).present?
+ instance.public_addresses = addresses.join(',')
end
- if not api_instance.private_addresses.empty?
- instance.private_addresses = api_instance.private_addresses.map {|i| i[:address]}.join(',')
+ if (addresses = extract_addresses(api_instance.private_addresses)).present?
+ instance.private_addresses = addresses.join(',')
end
# Only update the instance / create an event if anything has changed!
instance.save! if instance.changed?
--
1.7.6.5
More information about the aeolus-devel
mailing list