Add actions to Simple K8s test

This commit changes the package used for the test
k8s-03. The new package has actions included and
uses local k8s charms.

This required the additon of the upload-package
commands in the robot test libraries and the
K8s Ns Action command.

Additionally the timeout time for the k8scluster
creation has been extended, as it was to short for
some test environments.

Change-Id: I846733982a7874b3467270d1a1d1fa8a330030f8
Signed-off-by: Dominik Fleischmann <dominik.fleischmann@canonical.com>
diff --git a/robot-systest/lib/k8scluster_lib.robot b/robot-systest/lib/k8scluster_lib.robot
index 3896941..b663d52 100644
--- a/robot-systest/lib/k8scluster_lib.robot
+++ b/robot-systest/lib/k8scluster_lib.robot
@@ -14,7 +14,7 @@
 
 *** Variables ***
 ${success_return_code}   0
-${k8scluster_launch_max_wait_time}   2min
+${k8scluster_launch_max_wait_time}   5min
 ${k8scluster_launch_pol_time}   30sec
 ${k8scluster_delete_max_wait_time}   2min
 ${k8scluster_delete_pol_time}   15sec
diff --git a/robot-systest/lib/ns_lib.robot b/robot-systest/lib/ns_lib.robot
index b1db909..b3c912f 100644
--- a/robot-systest/lib/ns_lib.robot
+++ b/robot-systest/lib/ns_lib.robot
@@ -152,6 +152,31 @@
     [Return]  ${stdout}
 
 
+Execute NS K8s Action
+    [Documentation]     Execute an action over the desired K8s NS.
+    ...                 Parameters are given to this function in key=value format (one argument per key/value pair).
+    ...                 Return the ID of the operation associated to the executed action.
+    ...                 Examples of execution:
+    ...                     \${ns_op_id}=  Execute NS Action  \${ns_name}  \${ns_action}  \${vnf_member_index}
+    ...                     \${ns_op_id}=  Execute NS Action  \${ns_name}  \${ns_action}  \${vnf_member_index}  \${param1}=\${value1}  \${param2}=\${value2}
+
+    [Arguments]  ${ns_name}  ${ns_action}  ${vnf_member_index}  ${kdu_name}  @{action_params}
+
+    ${params}=  Set Variable  ${EMPTY}
+    FOR  ${param}  IN  @{action_params}
+        ${match}  ${param_name}  ${param_value} =  Should Match Regexp  ${param}  (.+)=(.+)  msg=Syntax error in parameters
+        ${params}=  Catenate  SEPARATOR=  ${params}  "${param_name}":"${param_value}",
+    END
+    ${osm_ns_action_command}=  Set Variable  osm ns-action --action_name ${ns_action} --vnf_name ${vnf_member_index} --kdu_name ${kdu_name}
+    ${osm_ns_action_command}=  Run Keyword If  '${params}'!='${EMPTY}'  Catenate  ${osm_ns_action_command}  --params '{${params}}'
+    ...  ELSE  Set Variable  ${osm_ns_action_command}
+    ${osm_ns_action_command}=  Catenate  ${osm_ns_action_command}  ${ns_name}
+    ${rc}  ${stdout}=  Run and Return RC and Output  ${osm_ns_action_command}
+    Should Be Equal As Integers  ${rc}  ${success_return_code}  msg=${stdout}  values=False
+    Wait Until Keyword Succeeds  ${ns_action_max_wait_time}  ${ns_action_pol_time}  Check For NS Operation Completed  ${stdout}
+    [Return]  ${stdout}
+
+
 Execute Manual VNF Scale
     [Documentation]     Execute a manual VNF Scale action.
     ...                 The parameter 'scale_type' must be SCALE_IN or SCALE_OUT.
diff --git a/robot-systest/lib/package_lib.robot b/robot-systest/lib/package_lib.robot
new file mode 100644
index 0000000..7b3cad2
--- /dev/null
+++ b/robot-systest/lib/package_lib.robot
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+
+##
+# Copyright 2019 Tech Mahindra Limited
+#
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+##
+
+## Change log:
+# 1. Feature 7829: Jayant Madavi, Mrityunjay Yadav : MY00514913@techmahindra.com : 06-sep-2019
+##
+
+*** Settings ***
+Library   String
+
+
+*** Variables ***
+${success_return_code}   0
+${delete_max_wait_time}   1min
+${delete_pol_time}   15sec
+
+
+*** Keywords ***
+Upload Package
+    [Documentation]   Onboards ("creates") a NF Package into OSM.
+    ...               - Parameters:
+    ...                 - pkg: Name (and location) of the NF Package
+
+    [Arguments]   ${pkg}
+
+    # Proceedes with the onboarding with the appropriate arguments
+    ${rc}   ${stdout}=   Run and Return RC and Output   tar -czf ${pkg}.tar.gz -C ${pkg} .
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm upload-package ${pkg}.tar.gz
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    [Return]  ${stdout}
+
+
+Delete Package
+    [Arguments]   ${pkg}
+
+    # Proceedes with the onboarding with the appropriate arguments
+    ${rc}   ${stdout}=   Run and Return RC and Output   rm ${pkg}.tar.gz