Created
July 1, 2013 08:38
-
-
Save madAndroid/5899292 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/scalefactory.com/modules/sf_nodeless/lib/facter/sf_nodeless.rb b/scalefactory.com/modules/sf_nodeless/lib/facter/sf_nodeless.rb | |
index dbbbe3b..45842de 100644 | |
--- a/scalefactory.com/modules/sf_nodeless/lib/facter/sf_nodeless.rb | |
+++ b/scalefactory.com/modules/sf_nodeless/lib/facter/sf_nodeless.rb | |
@@ -40,7 +40,8 @@ if ec2_userdata | |
end | |
################################################################################# | |
-# Cloudstack fact finding | |
+# JSON http response fact finding | |
+# - used for Cloudstack, as well as generic http ENC, on port 8844 | |
if Facter.value('is_virtual') == 'true' | |
@@ -48,6 +49,8 @@ if Facter.value('is_virtual') == 'true' | |
virtual_router = nil | |
+ ## Cloudstack user-data/meta-data is kept within the virtual_router, | |
+ ## it's the same server that assigns dhcp addresses: | |
Dir.glob("/var/lib/{dhclient,dhcp,dhcp3}/dhclient*.leases").each do |lease| | |
next unless File.size( lease ) | |
File.open( lease ).each do |line| | |
@@ -59,7 +62,19 @@ if Facter.value('is_virtual') == 'true' | |
break unless virtual_router.nil? | |
end | |
- uri = URI.parse( "http://#{virtual_router}/latest/user-data" ) | |
+ ## use cloudstack virtual_router, if found, otherwise fall back to | |
+ ## enc known hostname, at port 8844 | |
+ if ! virtual_router.nil? | |
+ uri = URI.parse( "http://#{virtual_router}/latest/user-data" ) | |
+ else | |
+ if File.exists?( '/usr/lib/sf_nodeless/sf_nodesless_url' ) | |
+ url = File.open('/usr/lib/sf_nodeless/sf_nodesless_url', 'rb') { |f| f.read } | |
+ uri = URI.parse( url ) | |
+ else | |
+ uri = URI.parse( "http://enc:8844/latest/user-data" ) | |
+ end | |
+ end | |
+ | |
http = Net::HTTP::new( uri.host, uri.port ) | |
http.open_timeout = 3 # time out connects after 3s | |
request = Net::HTTP::Get.new( uri.request_uri ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment