Create REST URL file with BMC firmware version.

Filename contains BMC firmware version before and after
code update.

Resolves openbmc/openbmc-test-automation#709

Change-Id: Iefb5113843cd8d733e626ae7de6d559b7905d7cc
Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
diff --git a/extended/code_update/update_bmc.robot b/extended/code_update/update_bmc.robot
index a1e0f01..d8a9b69 100644
--- a/extended/code_update/update_bmc.robot
+++ b/extended/code_update/update_bmc.robot
@@ -68,9 +68,13 @@
 Check URLs Before Code Update
     [Documentation]  Check available URLs before code update.
     [Tags]  Check_URLs_Before_Code_Update
+
     ${url_list}=  Get URL List  ${OPENBMC_BASE_URI}
     Set Global Variable  ${URL_BEFORE_CU}  ${url_list}
 
+    ${bmc_version}=  Get BMC Version
+    Set Suite Variable  ${bmc_version_before}  ${bmc_version}
+
 Initiate Code Update BMC
     [Documentation]  Initiate a code update on the BMC.
     [Tags]  Initiate_Code_Update_BMC
@@ -105,6 +109,13 @@
     [Documentation]  Compare URLs before and after code update.
     [Tags]  Compare_URLs_Before_And_After_Code_Update
 
+    ${bmc_version}=  Get BMC Version
+    Set Suite Variable  ${bmc_version_after}  ${bmc_version}
+
+    # Exit test for same firmware version.
+    Pass Execution If  '${bmc_version_before}' == '${bmc_version_after}'
+    ...  Same BMC firmware version found
+
     ${url_after_cu}=  Get URL List  ${OPENBMC_BASE_URI}
     Compare URL List After Code Update  ${URL_BEFORE_CU}  ${url_after_cu}
 
@@ -188,10 +199,19 @@
 
     Return From Keyword If  '${REST_URL_FILE_PATH}' == '${EMPTY}'
 
+    # Create file with BMC firmware version before and after code update.
+    # i.e. <Before_Version>--<After_Version>
+    # Example v1.99.6-141-ge662190--v1.99.6-141-ge664242
+
+    ${file_name}=  Catenate  SEPARATOR=--
+    ...  ${bmc_version_before}  ${bmc_version_after}
+    ${REST_URL_FILE}=  Catenate  ${REST_URL_FILE_PATH}/${file_name}
+    Create File  ${REST_URL_FILE}  URL Removed${\n}
+
     Return From Keyword If
     ...  ${url_removed_list} == [] and ${url_added_list} == []
 
-    Create File  ${REST_URL_FILE_PATH}  URL Removed${\n}
-    Append To File  ${REST_URL_FILE_PATH}  [${url_removed_list}]
-    Append To File  ${REST_URL_FILE_PATH}  ${\n}URL Added${\n}
-    Append To File  ${REST_URL_FILE_PATH}  [${url_added_list}]
+    Create File  ${REST_URL_FILE}  URL Removed${\n}
+    Append To File  ${REST_URL_FILE}  [${url_removed_list}]
+    Append To File  ${REST_URL_FILE}  ${\n}URL Added${\n}
+    Append To File  ${REST_URL_FILE}  [${url_added_list}]
diff --git a/lib/utils.robot b/lib/utils.robot
index 9e5b5ce..a88879b 100755
--- a/lib/utils.robot
+++ b/lib/utils.robot
@@ -962,3 +962,14 @@
 
     ${state}=  Read Attribute  ${LED_GROUPS_URI}${led_name}  Asserted
     [Return]  ${state}
+
+
+Get BMC Version
+    [Documentation]  Returns BMC version from /etc/os-release.
+    ...              e.g. "v1.99.6-141-ge662190"
+
+    Open Connection And Log In
+    ${cmd}=  Set Variable  grep ^VERSION_ID= /etc/os-release | cut -f 2 -d '='
+    ${output}=  Execute Command On BMC  ${cmd}
+    [Return]  ${output}
+