summaryrefslogtreecommitdiff
path: root/lib/chef/win32
diff options
context:
space:
mode:
authorLamont Granquist <lamont@opscode.com>2012-11-19 15:55:57 -0800
committerLamont Granquist <lamont@opscode.com>2012-12-19 15:53:53 -0800
commit129869107e5b293e3dd7c18de161e3e7584aa3bd (patch)
treee4be3407aa6b08b571c13d2d9f445b67a9484da6 /lib/chef/win32
parent3660fde303e23eb5c5b68403826d6f5bb7142e4c (diff)
downloadchef-129869107e5b293e3dd7c18de161e3e7584aa3bd.tar.gz
fixes to architecture code
Diffstat (limited to 'lib/chef/win32')
-rw-r--r--lib/chef/win32/registry.rb37
1 files changed, 10 insertions, 27 deletions
diff --git a/lib/chef/win32/registry.rb b/lib/chef/win32/registry.rb
index 14be2a64b5..9e50716e46 100644
--- a/lib/chef/win32/registry.rb
+++ b/lib/chef/win32/registry.rb
@@ -34,46 +34,29 @@ class Chef
attr_accessor :run_context
attr_accessor :architecture, :machine
- #@@native_architecture = ENV['PROCESSOR_ARCHITEW6432'] == 'AMD64' ? 0x0100 : 0x0200
-
- def initialize(run_context=nil, requested_architecture=:machine)
+ def initialize(run_context=nil, user_architecture=:machine)
@run_context = run_context
- assert_architecture!(requested_architecture)
- @architecture = architecture_for_request(requested_architecture)
+ self.architecture = user_architecture
end
def node
run_context && run_context.node
end
- def assert_architecture!(requested_architecture)
- if native_architecture_32bit? && requested_architecture_64bit?(requested_architecture)
- raise Chef::Exceptions::Win32RegArchitectureIncorrect, "message"
+ def assert_architecture!
+ if node[:kernel][:machine] == "i386" && architecture == "x86_64"
+ raise Chef::Exceptions::Win32RegArchitectureIncorrect, "cannot access 64-bit registry on a 32-bit windows instance"
end
end
- def native_architecture_32bit?
- native_architecture == "i386"
- end
-
- def requested_architecture_64bit?(requested_architecture)
- requested_architecture == "x86_64"
- end
-
- def native_architecture
- node[:kernel][:machine]
- end
-
- def architecture_for_request(requested_architecture)
- if requested_architecture == :machine
- native_architecture
- else
- requested_architecture
- end
+ def architecture=(user_architecture)
+ @architecture = user_architecture
+ assert_architecture!
end
def registry_system_architecture
- @architecture == 'x86_64' ? 0x0100 : 0x0200
+ applied_arch = ( architecture == :machine ) ? node[:kernel][:machine] : architecture
+ ( applied_arch == 'x86_64' ) ? 0x0100 : 0x0200
end
def get_values(key_path)