Mentions légales du service

Skip to content
Snippets Groups Projects
Commit abda2a00 authored by POUILLOUX Laurent's avatar POUILLOUX Laurent
Browse files

Merge branch 'fix_16219' into 'master'

[puppet][webfish] remove check of url and sort entry by site

See merge request !789
parents 0deb1041 24f55a6b
No related branches found
No related tags found
1 merge request!789[puppet][webfish] remove check of url and sort entry by site
Pipeline #1057133 passed with warnings
...@@ -8,13 +8,13 @@ def generate_puppet_webfish(options) ...@@ -8,13 +8,13 @@ def generate_puppet_webfish(options)
if not options[:conf_dir] if not options[:conf_dir]
options[:conf_dir] = "#{options[:output_dir]}/platforms/production/generators/redfish/" options[:conf_dir] = "#{options[:output_dir]}/platforms/production/generators/redfish/"
end end
allBmc = check_redfish_availability(20) allBmc = gen_redfish_configuration()
credentials = YAML::load_file(options[:conf_dir] + 'console-password.yaml') credentials = YAML::load_file(options[:conf_dir] + 'console-password.yaml')
add_credentials(credentials, allBmc) add_credentials(credentials, allBmc)
gen_json_files(allBmc, options) gen_json_files(allBmc, options)
end end
def check_redfish_availability(timeout) def gen_redfish_configuration()
data = load_data_hierarchy data = load_data_hierarchy
allBmc = {} allBmc = {}
# allBmc --> hash de hash de tableau de hash # allBmc --> hash de hash de tableau de hash
...@@ -34,7 +34,11 @@ def check_redfish_availability(timeout) ...@@ -34,7 +34,11 @@ def check_redfish_availability(timeout)
next next
end end
url = 'https://'+d_node['network_adapters'].select{ |na| na['device'] == 'bmc' }.first['network_address'] url = 'https://'+d_node['network_adapters'].select{ |na| na['device'] == 'bmc' }.first['network_address']
check_url(url, n_uid, allBmc, 'node', s_uid, timeout) allBmc[s_uid][n_uid] = {
'url' => url,
'node' => true,
'redfish' => true,
'error' => nil}
end end
end end
d_site['servers'].peach do |srv_uid, d_server| d_site['servers'].peach do |srv_uid, d_server|
...@@ -45,8 +49,12 @@ def check_redfish_availability(timeout) ...@@ -45,8 +49,12 @@ def check_redfish_availability(timeout)
if !d_server['network_adapters'].nil? if !d_server['network_adapters'].nil?
if !d_server['network_adapters']['bmc'].nil? if !d_server['network_adapters']['bmc'].nil?
if !d_server['network_adapters']['bmc']['ip'].nil? if !d_server['network_adapters']['bmc']['ip'].nil?
url = 'https://'+d_server['network_adapters']['bmc']['ip'] url = 'https://' + srv_uid + '-bmc.' + s_uid + '.grid5000.fr'
check_url(url, srv_uid, allBmc, 'infra', s_uid, timeout) allBmc[s_uid][srv_uid] = {
'url' => url,
'node' => false,
'redfish' => true,
'error' => nil}
end end
end end
end end
...@@ -57,32 +65,6 @@ def check_redfish_availability(timeout) ...@@ -57,32 +65,6 @@ def check_redfish_availability(timeout)
return allBmc return allBmc
end end
def check_url(url, uid, allBmc, type, site, timeout)
uri = URI(url+'/redfish/v1/')
begin
req = Net::HTTP::Get.new(uri.path)
res = Net::HTTP.start(
uri.host, uri.port,
:use_ssl => uri.scheme == 'https',
:verify_mode => OpenSSL::SSL::VERIFY_NONE,
:open_timeout => timeout,
:read_timeout => timeout) do |https|
https.request(req)
end
allBmc[site][uid] = {
'url' => url,
'node' => type == 'node',
'redfish' => res.code.to_i() == 200 ? true : false,
'error' => nil}
rescue => error
allBmc[site][uid] = {
'url' => url,
'node' => type == 'node',
'redfish' => false,
'error' => error.class}
end
end
def add_credentials(credentials, allBmc) def add_credentials(credentials, allBmc)
allBmc.peach do |s_site, d_site| allBmc.peach do |s_site, d_site|
d_site.peach do |uid, n| d_site.peach do |uid, n|
...@@ -111,7 +93,8 @@ def gen_json_files(allBmc, options) ...@@ -111,7 +93,8 @@ def gen_json_files(allBmc, options)
Dir.mkdir(dir) Dir.mkdir(dir)
end end
actualFile = dir + "/webfish.json" actualFile = dir + "/webfish.json"
allBmc.each do |s_site, _d_array|
allBmc.sort_by{ |s_site, _d_site| s_site}.each do |s_site, _d_array|
pretty_dict[s_site] = allBmc[s_site].sort_by{|k, _| [k[/(\D+)/, 1], k[/(\d+)/, 1].to_i, k[/-(\d+)/, 1].to_i]}.to_h pretty_dict[s_site] = allBmc[s_site].sort_by{|k, _| [k[/(\D+)/, 1], k[/(\d+)/, 1].to_i, k[/-(\d+)/, 1].to_i]}.to_h
end end
File.open(actualFile, "w") do |f| File.open(actualFile, "w") do |f|
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment