From 9c1f297a765c69506ba8dad0b444ba0c394641bb Mon Sep 17 00:00:00 2001 From: stephan-bury Date: Thu, 16 Mar 2017 14:31:11 +0100 Subject: [PATCH 1/5] Introduced attribute default['fmw']['prod_name'] for product re-branding. Nodemanager service name will start with the prod name. --- .../providers/nodemanager_service_windows.rb | 21 +++++++++++++++---- fmw_domain/recipes/nodemanager.rb | 14 +++++++++++-- .../resources/nodemanager_service_windows.rb | 2 ++ fmw_wls/attributes/default.rb | 1 + 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/fmw_domain/providers/nodemanager_service_windows.rb b/fmw_domain/providers/nodemanager_service_windows.rb index ff3e841..ad9d8f0 100644 --- a/fmw_domain/providers/nodemanager_service_windows.rb +++ b/fmw_domain/providers/nodemanager_service_windows.rb @@ -23,6 +23,7 @@ def load_current_resource @current_resource.version(@new_resource.version) @current_resource.bin_dir(@new_resource.bin_dir) @current_resource.java_home_dir(@new_resource.java_home_dir) + @current_resource.prod_name(@new_resource.prod_name) @current_resource end @@ -37,9 +38,19 @@ def load_current_resource service_name = nil if new_resource.version == '10.3.6' - service_check_name = 'Oracle WebLogic NodeManager' + if new_resource.prod_name.nil? or new_resource.prod_name == '' + local_prod_name = 'Oracle Weblogic' + else + local_prod_name = new_resource.prod_name + end + service_check_name = '#{local_prod_name} NodeManager' else - service_check_name = "Oracle Weblogic #{new_resource.domain_name} NodeManager" + if new_resource.prod_name.nil? or new_resource.prod_name == '' + local_prod_name = 'OracleWeblogic' + else + local_prod_name = new_resource.prod_name + end + service_check_name = "#{local_prod_name} #{new_resource.domain_name} NodeManager" end # check the existence and the service name @@ -63,7 +74,8 @@ def load_current_resource command 'installNodeMgrSvc.cmd' cwd new_resource.bin_dir environment ({ 'CLASSPATH' => "#{new_resource.middleware_home_dir}\\wlserver_10.3\\server\\lib\\weblogic.jar", - 'JAVA_HOME' => new_resource.java_home_dir }) + 'JAVA_HOME' => new_resource.java_home_dir, + 'PROD_NAME' => local_prod_name }) end else execute 'add NodeManager service 12c' do @@ -71,7 +83,8 @@ def load_current_resource cwd new_resource.bin_dir environment ({ 'JAVA_OPTIONS' => "-Dohs.product.home=#{new_resource.middleware_home_dir} -Dweblogic.RootDirectory=#{new_resource.domain_dir}", 'JAVA_HOME' => new_resource.java_home_dir, - 'MW_HOME' => new_resource.middleware_home_dir }) + 'MW_HOME' => new_resource.middleware_home_dir, + 'PROD_NAME' => local_prod_name }) end end # do it in a block so it executed after the adding the nodemanager service diff --git a/fmw_domain/recipes/nodemanager.rb b/fmw_domain/recipes/nodemanager.rb index a9c4c72..7ae2d92 100644 --- a/fmw_domain/recipes/nodemanager.rb +++ b/fmw_domain/recipes/nodemanager.rb @@ -26,13 +26,21 @@ bin_dir = "#{node['fmw']['weblogic_home_dir']}/server/bin" nodemanager_template = 'nodemanager.properties_11g' nodemanager_check = node['fmw']['weblogic_home_dir'] - script_name = "nodemanager_11g" + if node['fmw']['prod_name'].nil? or node['fmw']['prod_name'] == '' + script_name = "nodemanager_11g" + else + script_name = "#{node['fmw']['prod_name']}_nodemanager_11g" + end else nodemanager_home_dir = "#{node['fmw_domain']['domains_dir']}/#{domain_params['domain_name']}/nodemanager" bin_dir = "#{node['fmw_domain']['domains_dir']}/#{domain_params['domain_name']}/bin" nodemanager_template = 'nodemanager.properties_12c' nodemanager_check = "#{node['fmw_domain']['domains_dir']}/#{domain_params['domain_name']}" - script_name = "nodemanager_#{domain_params['domain_name']}" + if node['fmw']['prod_name'].nil? or node['fmw']['prod_name'] == '' + script_name = "nodemanager_11g" + else + script_name = "#{node['fmw']['prod_name']}_nodemanager_#{domain_params['domain_name']}" + end end nodemanager_log_file = "#{nodemanager_home_dir}/nodemanager.log" @@ -141,6 +149,7 @@ res.middleware_home_dir node['fmw']['middleware_home_dir'] res.bin_dir bin_dir res.java_home_dir node['fmw']['java_home_dir'] + res.prod_name node['fmw']['prod_name'] res.run_action :configure end end @@ -152,6 +161,7 @@ middleware_home_dir node['fmw']['middleware_home_dir'] bin_dir bin_dir java_home_dir node['fmw']['java_home_dir'] + prod_name node['fmw']['prod_name'] end end diff --git a/fmw_domain/resources/nodemanager_service_windows.rb b/fmw_domain/resources/nodemanager_service_windows.rb index 4f3afb3..97eb047 100644 --- a/fmw_domain/resources/nodemanager_service_windows.rb +++ b/fmw_domain/resources/nodemanager_service_windows.rb @@ -24,3 +24,5 @@ attribute :bin_dir, kind_of: String, required: true # java home path attribute :java_home_dir, kind_of: String, required: true +# prod name for product re-branding +attribute :prod_name, kind_of: String, required: false, default: nil diff --git a/fmw_wls/attributes/default.rb b/fmw_wls/attributes/default.rb index 457c88e..3a7379d 100644 --- a/fmw_wls/attributes/default.rb +++ b/fmw_wls/attributes/default.rb @@ -1,6 +1,7 @@ default['fmw']['version'] = '12.1.3' # 10.3.6|12.1.1|12.1.2|12.1.3|12.2.1|12.2.1.1|12.2.1.2 default['fmw_wls']['install_type'] = 'wls' # infra or wls +default['fmw']['prod_name'] = nil if platform_family?('windows') default['fmw']['middleware_home_dir'] = 'C:/oracle/middleware' From f05696cc6391b9e8e241e62242f8892e2a545e39 Mon Sep 17 00:00:00 2001 From: stephan-bury Date: Fri, 31 Mar 2017 16:06:11 +0200 Subject: [PATCH 2/5] Added service description to nodemanager resource --- fmw_domain/attributes/default.rb | 1 + fmw_domain/providers/nodemanager_service_windows.rb | 11 +++++++---- fmw_domain/recipes/nodemanager.rb | 2 ++ fmw_domain/resources/nodemanager_service_windows.rb | 2 ++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/fmw_domain/attributes/default.rb b/fmw_domain/attributes/default.rb index 2bbaa8c..e1de998 100644 --- a/fmw_domain/attributes/default.rb +++ b/fmw_domain/attributes/default.rb @@ -1,6 +1,7 @@ include_attribute 'fmw_wls' default['fmw_domain']['nodemanager_port'] = 5556 +default['fmw_domain']['nodemanager_service_description'] = nil if platform_family?('windows') default['fmw_domain']['domains_dir'] = 'C:/oracle/middleware/user_projects/domains' diff --git a/fmw_domain/providers/nodemanager_service_windows.rb b/fmw_domain/providers/nodemanager_service_windows.rb index ad9d8f0..7b38b1f 100644 --- a/fmw_domain/providers/nodemanager_service_windows.rb +++ b/fmw_domain/providers/nodemanager_service_windows.rb @@ -24,6 +24,7 @@ def load_current_resource @current_resource.bin_dir(@new_resource.bin_dir) @current_resource.java_home_dir(@new_resource.java_home_dir) @current_resource.prod_name(@new_resource.prod_name) + @current_resource.service_description(@new_resource.service_description) @current_resource end @@ -46,11 +47,11 @@ def load_current_resource service_check_name = '#{local_prod_name} NodeManager' else if new_resource.prod_name.nil? or new_resource.prod_name == '' - local_prod_name = 'OracleWeblogic' + local_prod_name = 'Oracle Weblogic' else local_prod_name = new_resource.prod_name end - service_check_name = "#{local_prod_name} #{new_resource.domain_name} NodeManager" + service_check_name = "#{local_prod_name} NodeManager" end # check the existence and the service name @@ -75,7 +76,8 @@ def load_current_resource cwd new_resource.bin_dir environment ({ 'CLASSPATH' => "#{new_resource.middleware_home_dir}\\wlserver_10.3\\server\\lib\\weblogic.jar", 'JAVA_HOME' => new_resource.java_home_dir, - 'PROD_NAME' => local_prod_name }) + 'PROD_NAME' => local_prod_name, + 'SERVICE_DESCRIPTION' => new_resource.service_description }) end else execute 'add NodeManager service 12c' do @@ -84,7 +86,8 @@ def load_current_resource environment ({ 'JAVA_OPTIONS' => "-Dohs.product.home=#{new_resource.middleware_home_dir} -Dweblogic.RootDirectory=#{new_resource.domain_dir}", 'JAVA_HOME' => new_resource.java_home_dir, 'MW_HOME' => new_resource.middleware_home_dir, - 'PROD_NAME' => local_prod_name }) + 'PROD_NAME' => local_prod_name, + 'SERVICE_DESCRIPTION' => new_resource.service_description }) end end # do it in a block so it executed after the adding the nodemanager service diff --git a/fmw_domain/recipes/nodemanager.rb b/fmw_domain/recipes/nodemanager.rb index 7ae2d92..99f941e 100644 --- a/fmw_domain/recipes/nodemanager.rb +++ b/fmw_domain/recipes/nodemanager.rb @@ -150,6 +150,7 @@ res.bin_dir bin_dir res.java_home_dir node['fmw']['java_home_dir'] res.prod_name node['fmw']['prod_name'] + res.service_description node['fmw_domain']['nodemanager_service_description'] res.run_action :configure end end @@ -162,6 +163,7 @@ bin_dir bin_dir java_home_dir node['fmw']['java_home_dir'] prod_name node['fmw']['prod_name'] + service_description node['fmw_domain']['nodemanager_service_description'] end end diff --git a/fmw_domain/resources/nodemanager_service_windows.rb b/fmw_domain/resources/nodemanager_service_windows.rb index 97eb047..deb545d 100644 --- a/fmw_domain/resources/nodemanager_service_windows.rb +++ b/fmw_domain/resources/nodemanager_service_windows.rb @@ -26,3 +26,5 @@ attribute :java_home_dir, kind_of: String, required: true # prod name for product re-branding attribute :prod_name, kind_of: String, required: false, default: nil +# service description for product re-branding +attribute :service_description, kind_of: String, required: false, default: nil From 4ce4f56616d64fb6517d1bd66405b553d56737e6 Mon Sep 17 00:00:00 2001 From: stephan-bury Date: Mon, 3 Apr 2017 11:28:59 +0200 Subject: [PATCH 3/5] Fix service creation script in domain folder to support different PROD_NAME than default. --- fmw_domain/providers/nodemanager_service_windows.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fmw_domain/providers/nodemanager_service_windows.rb b/fmw_domain/providers/nodemanager_service_windows.rb index 7b38b1f..b7890b0 100644 --- a/fmw_domain/providers/nodemanager_service_windows.rb +++ b/fmw_domain/providers/nodemanager_service_windows.rb @@ -47,7 +47,7 @@ def load_current_resource service_check_name = '#{local_prod_name} NodeManager' else if new_resource.prod_name.nil? or new_resource.prod_name == '' - local_prod_name = 'Oracle Weblogic' + local_prod_name = 'Oracle Weblogic #{new_resource.domain_name}' else local_prod_name = new_resource.prod_name end @@ -70,6 +70,7 @@ def load_current_resource end if exists == false + Chef::Log.info("PROD_NAME: " + local_prod_name) if new_resource.version == '10.3.6' execute 'add NodeManager service 11g' do command 'installNodeMgrSvc.cmd' @@ -80,6 +81,11 @@ def load_current_resource 'SERVICE_DESCRIPTION' => new_resource.service_description }) end else + cmd_file_name = ::File.join(new_resource.bin_dir, 'installNodeMgrSvc.cmd') + file_content = ::File.read(cmd_file_name) + file_content = file_content.gsub(/^set PROD_NAME=.*$/, "") + ::File.open(cmd_file_name, "w") {|file| file.puts file_content } + execute 'add NodeManager service 12c' do command 'installNodeMgrSvc.cmd' cwd new_resource.bin_dir From eeb7d82cb54ed8ca9bc7d98581b7427cf031c8e5 Mon Sep 17 00:00:00 2001 From: stephan-bury Date: Wed, 12 Apr 2017 09:26:16 +0200 Subject: [PATCH 4/5] Fixed warning after chef run "method access to node attributes (node.foo.bar) is deprecated and will be removed in Chef 13" --- fmw_domain/attributes/default.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fmw_domain/attributes/default.rb b/fmw_domain/attributes/default.rb index e1de998..163bc43 100644 --- a/fmw_domain/attributes/default.rb +++ b/fmw_domain/attributes/default.rb @@ -3,7 +3,7 @@ default['fmw_domain']['nodemanager_port'] = 5556 default['fmw_domain']['nodemanager_service_description'] = nil -if platform_family?('windows') +if node['platform_family']?('windows') default['fmw_domain']['domains_dir'] = 'C:/oracle/middleware/user_projects/domains' default['fmw_domain']['apps_dir'] = 'C:/oracle/middleware/user_projects/applications' @@ -17,7 +17,7 @@ default['fmw_domain']['apps_dir'] = '/opt/oracle/middleware/user_projects/applications' end -case platform_family +case node['platform_family'] when 'debian', 'rhel' default['fmw']['orainst_dir'] = '/etc' default['fmw']['user_home_dir'] = '/home' From 0f7d600fbd50a0801bddceae68faa46771ff818b Mon Sep 17 00:00:00 2001 From: stephan-bury Date: Wed, 12 Apr 2017 10:01:58 +0200 Subject: [PATCH 5/5] Fix for attribute fix :-) --- fmw_domain/attributes/default.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fmw_domain/attributes/default.rb b/fmw_domain/attributes/default.rb index 163bc43..dfaaa14 100644 --- a/fmw_domain/attributes/default.rb +++ b/fmw_domain/attributes/default.rb @@ -3,7 +3,7 @@ default['fmw_domain']['nodemanager_port'] = 5556 default['fmw_domain']['nodemanager_service_description'] = nil -if node['platform_family']?('windows') +if node['platform_family'] =='windows' default['fmw_domain']['domains_dir'] = 'C:/oracle/middleware/user_projects/domains' default['fmw_domain']['apps_dir'] = 'C:/oracle/middleware/user_projects/applications'