From 9ac5a9d4906cc2a9e9f613b2f40332576826f99e Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Fri, 2 Sep 2011 15:33:17 +0200 Subject: [PATCH] bug: Ozones can not use ":plain:" to not to hash passwords. --- src/oca/ruby/OpenNebula.rb | 9 +++++++-- src/ozones/Client/bin/onezone | 12 ++++++------ src/ozones/Server/lib/OZones/AggregatedPool.rb | 7 ++++--- src/ozones/Server/models/OCAInteraction.rb | 17 ++++++++++------- src/ozones/Server/models/OzonesServer.rb | 5 +++-- src/ozones/test/spec/VDCManagement_spec.rb | 2 +- 6 files changed, 31 insertions(+), 21 deletions(-) diff --git a/src/oca/ruby/OpenNebula.rb b/src/oca/ruby/OpenNebula.rb index 7303999ce9..c780c100ae 100644 --- a/src/oca/ruby/OpenNebula.rb +++ b/src/oca/ruby/OpenNebula.rb @@ -85,7 +85,7 @@ module OpenNebula XMLPARSER=false end - def initialize(secret=nil, endpoint=nil) + def initialize(secret=nil, endpoint=nil, hash=true) if secret one_secret = secret elsif ENV["ONE_AUTH"] and !ENV["ONE_AUTH"].empty? and File.file?(ENV["ONE_AUTH"]) @@ -101,7 +101,12 @@ module OpenNebula if tokens.length > 2 @one_auth = one_secret elsif tokens.length == 2 - @one_auth = "#{tokens[0]}:#{Digest::SHA1.hexdigest(tokens[1])}" + if hash + pass = Digest::SHA1.hexdigest(tokens[1]) + else + pass = tokens[1] + end + @one_auth = "#{tokens[0]}:#{pass}" else raise "Authorization file malformed" end diff --git a/src/ozones/Client/bin/onezone b/src/ozones/Client/bin/onezone index 13a0626460..93c4a3549e 100755 --- a/src/ozones/Client/bin/onezone +++ b/src/ozones/Client/bin/onezone @@ -40,39 +40,39 @@ cmd=CommandParser::CmdParser.new(ARGV) do case args[1] when "host" aux_helper = OneHostHelper.new( - zone['onename'] + ":plain:" + zone['onepass'], + zone['onename'] + ":" + zone['onepass'], zone['endpoint']) aux_helper.list_pool(options) when "vm" aux_helper = OneVMHelper.new( - zone['onename'] + ":plain:" + zone['onepass'], + zone['onename'] + ":" + zone['onepass'], zone['endpoint']) aux_helper.list_pool(options) when "image" aux_helper = OneImageHelper.new( - zone['onename'] + ":plain:" + zone['onepass'], + zone['onename'] + ":" + zone['onepass'], zone['endpoint']) aux_helper.list_pool(options) when "vn" aux_helper = OneVNetHelper.new( - zone['onename'] + ":plain:" + zone['onepass'], + zone['onename'] + ":" + zone['onepass'], zone['endpoint']) aux_helper.list_pool(options) when "template" aux_helper = OneTemplateHelper.new( - zone['onename'] + ":plain:" + zone['onepass'], + zone['onename'] + ":" + zone['onepass'], zone['endpoint']) aux_helper.list_pool(options) when "user" aux_helper = OneUserHelper.new( - zone['onename'] + ":plain:" + zone['onepass'], + zone['onename'] + ":" + zone['onepass'], zone['endpoint']) aux_helper.list_pool(options) diff --git a/src/ozones/Server/lib/OZones/AggregatedPool.rb b/src/ozones/Server/lib/OZones/AggregatedPool.rb index 9fa857158a..0963a92805 100644 --- a/src/ozones/Server/lib/OZones/AggregatedPool.rb +++ b/src/ozones/Server/lib/OZones/AggregatedPool.rb @@ -35,8 +35,9 @@ module OZones zone_pool_hash = zone.to_hash["ZONE"] client = OpenNebula::Client.new( - zone.onename + ":plain:" + zone.onepass, - zone.endpoint) + zone.onename + ":" + zone.onepass, + zone.endpoint, + false) pool = factory(client) @@ -64,4 +65,4 @@ module OZones end end -end \ No newline at end of file +end diff --git a/src/ozones/Server/models/OCAInteraction.rb b/src/ozones/Server/models/OCAInteraction.rb index d06f84422d..69da35a93f 100644 --- a/src/ozones/Server/models/OCAInteraction.rb +++ b/src/ozones/Server/models/OCAInteraction.rb @@ -21,8 +21,9 @@ class OCAInteraction # Creates a VDC (user, group, hosts) def create_vdc_in_zone(zone,vdc,adminname, adminpass) # Create a new client to interact with the zone - client = OpenNebula::Client.new(zone.onename + ":plain:" + zone.onepass, - zone.endpoint) + client = OpenNebula::Client.new(zone.onename + ":" + zone.onepass, + zone.endpoint, + false) # Create a group in the zone with the VDC name group = OpenNebula::Group.new(OpenNebula::Group.build_xml, client) @@ -87,8 +88,9 @@ class OCAInteraction zone= OZones::Zones.get(vdc.zones_id) # Create a new client to interact with the zone - client = OpenNebula::Client.new(zone.onename + ":plain:" + zone.onepass, - zone.endpoint) + client = OpenNebula::Client.new(zone.onename + ":" + zone.onepass, + zone.endpoint, + false) # Get the id of vdcadmin vdcgroupid = OpenNebulaHelper::OneHelper.id_to_name(vdc.name, @@ -126,8 +128,9 @@ class OCAInteraction # Creates a VDC (user, group, hosts) def check_oneadmin(oneadminname, oneadminpass, endpoint) # Create a new client to interact with the zone - client = OpenNebula::Client.new(oneadminname + ":plain:" + oneadminpass, - endpoint) + client = OpenNebula::Client.new(oneadminname + ":" + oneadminpass, + endpoint, + false) hostpool=OpenNebula::HostPool.new(client) result = hostpool.info @@ -200,4 +203,4 @@ class OCAInteraction } end end - \ No newline at end of file + diff --git a/src/ozones/Server/models/OzonesServer.rb b/src/ozones/Server/models/OzonesServer.rb index a1fe754f4e..409ffc32b6 100644 --- a/src/ozones/Server/models/OzonesServer.rb +++ b/src/ozones/Server/models/OzonesServer.rb @@ -77,8 +77,9 @@ class OzonesServer if kind == "zone" client = OpenNebula::Client.new( - resource.onename + ":plain:" + resource.onepass, - resource.endpoint) + resource.onename + ":" + resource.onepass, + resource.endpoint, + false) simple_pool = case aggkind when "host" then OpenNebulaJSON::HostPoolJSON.new(client) diff --git a/src/ozones/test/spec/VDCManagement_spec.rb b/src/ozones/test/spec/VDCManagement_spec.rb index 5db0f39339..15e947e1bd 100644 --- a/src/ozones/test/spec/VDCManagement_spec.rb +++ b/src/ozones/test/spec/VDCManagement_spec.rb @@ -114,4 +114,4 @@ module OZones end end -end \ No newline at end of file +end