PNOR Code Update test implementation
Resolves openbmc/openbmc-test-automation#572
Change-Id: Idc1f31bdc6435e5d36f93b79de5e50a32a524bb3
Signed-off-by: Saqib Khan <khansa@us.ibm.com>
diff --git a/extended/code_update/code_update.py b/extended/code_update/code_update.py
new file mode 100644
index 0000000..5f29936
--- /dev/null
+++ b/extended/code_update/code_update.py
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+
+r"""
+This module is the python counterpart to code_update.robot.
+"""
+
+import os
+import sys
+import re
+import string
+import tarfile
+import time
+
+robot_pgm_dir_path = os.path.dirname(__file__) + os.sep
+repo_lib_path = re.sub('/extended/code_update/', '/lib', robot_pgm_dir_path)
+repo_data_path = re.sub('/extended/code_update/', '/data', robot_pgm_dir_path)
+sys.path.append(repo_lib_path)
+sys.path.append(repo_data_path)
+
+import gen_robot_keyword as keyword
+import gen_print as gp
+import gen_valid as gv
+import variables as var
+from robot.libraries.BuiltIn import BuiltIn
+
+
+###############################################################################
+def wait_for_activation_state_change(version_id, initial_state):
+
+ r"""
+ Wait for the current activation state of ${version_id} to
+ change from the state provided by the calling function.
+
+ Description of argument(s):
+ version_id The version ID whose state change we are waiting for.
+ initial_state The activation state we want to wait for.
+ """
+
+ keyword.run_key_u("Open Connection And Log In")
+ retry = 0
+ while (retry < 20):
+ status, software_state = keyword.run_key("Read Properties " +
+ var.SOFTWARE_VERSION + str(version_id))
+ current_state = (software_state)["Activation"]
+ if (initial_state == current_state):
+ time.sleep(60)
+ retry += 1
+ else:
+ return
+ return
+
+###############################################################################