From 8bfbb5e2586f89de3b44cd1d05182f71a55fb05d Mon Sep 17 00:00:00 2001 From: Mark Gurevich Date: Wed, 13 Sep 2017 15:06:56 -0400 Subject: [PATCH 1/2] Handle more than one node for openbmc rflash --- xCAT-server/lib/xcat/plugins/openbmc.pm | 36 ++++++++++++++----------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/xCAT-server/lib/xcat/plugins/openbmc.pm b/xCAT-server/lib/xcat/plugins/openbmc.pm index a71ce95d1..9b0dadc7d 100644 --- a/xCAT-server/lib/xcat/plugins/openbmc.pm +++ b/xCAT-server/lib/xcat/plugins/openbmc.pm @@ -161,6 +161,7 @@ my %status_info = ( RFLASH_UPDATE_ACTIVATE_REQUEST => { method => "PUT", init_url => "$openbmc_project_url/software", + orig_url => "$openbmc_project_url/software", data => "xyz.openbmc_project.Software.Activation.RequestedActivations.Active", }, RFLASH_UPDATE_ACTIVATE_RESPONSE => { @@ -169,6 +170,7 @@ my %status_info = ( RFLASH_UPDATE_CHECK_STATE_REQUEST => { method => "GET", init_url => "$openbmc_project_url/software", + orig_url => "$openbmc_project_url/software", }, RFLASH_UPDATE_CHECK_STATE_RESPONSE => { process => \&rflash_response, @@ -183,6 +185,7 @@ my %status_info = ( RFLASH_SET_PRIORITY_REQUEST => { method => "PUT", init_url => "$openbmc_project_url/software", + orig_url => "$openbmc_project_url/software", data => "false", # Priority state of 0 sets image to active }, RFLASH_SET_PRIORITY_RESPONSE => { @@ -2082,24 +2085,27 @@ sub rflash_response { $update_id = (split(/\//, $key_url))[ -1 ]; if (defined($content{Version}) and $content{Version}) { $update_version = $content{Version}; - } - if ($update_version eq $::UPLOAD_FILE_VERSION) { - # Found a match of uploaded file version with the image in software/enumerate + if ($update_version eq $::UPLOAD_FILE_VERSION) { + # Found a match of uploaded file version with the image in software/enumerate - # Set the image id for the activation request - $status_info{RFLASH_UPDATE_ACTIVATE_REQUEST}{init_url} .= "/$update_id/attr/RequestedActivation"; - $status_info{RFLASH_UPDATE_CHECK_STATE_REQUEST}{init_url} .= "/$update_id"; - $status_info{RFLASH_SET_PRIORITY_REQUEST}{init_url} .= "/$update_id/attr/Priority"; + # Set the image id for the activation request + $status_info{RFLASH_UPDATE_ACTIVATE_REQUEST}{init_url} = + $status_info{RFLASH_UPDATE_ACTIVATE_REQUEST}{orig_url} . "/$update_id/attr/RequestedActivation"; + $status_info{RFLASH_UPDATE_CHECK_STATE_REQUEST}{init_url} = + $status_info{RFLASH_UPDATE_CHECK_STATE_REQUEST}{orig_url} . "/$update_id"; + $status_info{RFLASH_SET_PRIORITY_REQUEST}{init_url} = + $status_info{RFLASH_SET_PRIORITY_REQUEST}{orig_url} . "/$update_id/attr/Priority"; - # Set next steps to activate the image - $next_status{ $node_info{$node}{cur_status} } = "RFLASH_UPDATE_ACTIVATE_REQUEST"; - $next_status{"RFLASH_UPDATE_ACTIVATE_REQUEST"} = "RFLASH_UPDATE_ACTIVATE_RESPONSE"; - $next_status{"RFLASH_UPDATE_ACTIVATE_RESPONSE"} = "RFLASH_UPDATE_CHECK_STATE_REQUEST"; - $next_status{"RFLASH_UPDATE_CHECK_STATE_REQUEST"} = "RFLASH_UPDATE_CHECK_STATE_RESPONSE"; + # Set next steps to activate the image + $next_status{ $node_info{$node}{cur_status} } = "RFLASH_UPDATE_ACTIVATE_REQUEST"; + $next_status{"RFLASH_UPDATE_ACTIVATE_REQUEST"} = "RFLASH_UPDATE_ACTIVATE_RESPONSE"; + $next_status{"RFLASH_UPDATE_ACTIVATE_RESPONSE"} = "RFLASH_UPDATE_CHECK_STATE_REQUEST"; + $next_status{"RFLASH_UPDATE_CHECK_STATE_REQUEST"} = "RFLASH_UPDATE_CHECK_STATE_RESPONSE"; - $next_status{"RFLASH_SET_PRIORITY_REQUEST"} = "RFLASH_SET_PRIORITY_RESPONSE"; - $next_status{"RFLASH_SET_PRIORITY_RESPONSE"} = "RFLASH_UPDATE_CHECK_STATE_REQUEST"; - last; + $next_status{"RFLASH_SET_PRIORITY_REQUEST"} = "RFLASH_SET_PRIORITY_RESPONSE"; + $next_status{"RFLASH_SET_PRIORITY_RESPONSE"} = "RFLASH_UPDATE_CHECK_STATE_REQUEST"; + last; + } } } } From 5ac1f04791007a6d414b5b16ce3e76a46e99ef74 Mon Sep 17 00:00:00 2001 From: Mark Gurevich Date: Mon, 18 Sep 2017 11:42:36 -0400 Subject: [PATCH 2/2] Simplify code based on review comment --- xCAT-server/lib/xcat/plugins/openbmc.pm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/xCAT-server/lib/xcat/plugins/openbmc.pm b/xCAT-server/lib/xcat/plugins/openbmc.pm index 9b0dadc7d..7f6fb3c8d 100644 --- a/xCAT-server/lib/xcat/plugins/openbmc.pm +++ b/xCAT-server/lib/xcat/plugins/openbmc.pm @@ -96,6 +96,7 @@ my %sensor_units = ( my $http_protocol="https"; my $openbmc_url = "/org/openbmc"; my $openbmc_project_url = "/xyz/openbmc_project"; +$::SOFTWARE_URL = "$openbmc_project_url/software"; #------------------------------------------------------- # The hash table to store method and url for request, @@ -161,7 +162,6 @@ my %status_info = ( RFLASH_UPDATE_ACTIVATE_REQUEST => { method => "PUT", init_url => "$openbmc_project_url/software", - orig_url => "$openbmc_project_url/software", data => "xyz.openbmc_project.Software.Activation.RequestedActivations.Active", }, RFLASH_UPDATE_ACTIVATE_RESPONSE => { @@ -170,7 +170,6 @@ my %status_info = ( RFLASH_UPDATE_CHECK_STATE_REQUEST => { method => "GET", init_url => "$openbmc_project_url/software", - orig_url => "$openbmc_project_url/software", }, RFLASH_UPDATE_CHECK_STATE_RESPONSE => { process => \&rflash_response, @@ -185,7 +184,6 @@ my %status_info = ( RFLASH_SET_PRIORITY_REQUEST => { method => "PUT", init_url => "$openbmc_project_url/software", - orig_url => "$openbmc_project_url/software", data => "false", # Priority state of 0 sets image to active }, RFLASH_SET_PRIORITY_RESPONSE => { @@ -2090,11 +2088,11 @@ sub rflash_response { # Set the image id for the activation request $status_info{RFLASH_UPDATE_ACTIVATE_REQUEST}{init_url} = - $status_info{RFLASH_UPDATE_ACTIVATE_REQUEST}{orig_url} . "/$update_id/attr/RequestedActivation"; + $::SOFTWARE_URL . "/$update_id/attr/RequestedActivation"; $status_info{RFLASH_UPDATE_CHECK_STATE_REQUEST}{init_url} = - $status_info{RFLASH_UPDATE_CHECK_STATE_REQUEST}{orig_url} . "/$update_id"; + $::SOFTWARE_URL . "/$update_id"; $status_info{RFLASH_SET_PRIORITY_REQUEST}{init_url} = - $status_info{RFLASH_SET_PRIORITY_REQUEST}{orig_url} . "/$update_id/attr/Priority"; + $::SOFTWARE_URL . "/$update_id/attr/Priority"; # Set next steps to activate the image $next_status{ $node_info{$node}{cur_status} } = "RFLASH_UPDATE_ACTIVATE_REQUEST";