Change Management Schedule Optimization
[integration/csit.git] / tests / optf-cmso / cmso / resources / create_schedule.robot
diff --git a/tests/optf-cmso/cmso/resources/create_schedule.robot b/tests/optf-cmso/cmso/resources/create_schedule.robot
new file mode 100644 (file)
index 0000000..43d5ff1
--- /dev/null
@@ -0,0 +1,54 @@
+*** Settings ***
+Documentation    SCheduler tests
+
+#Library   StringTemplater
+#Library   UUID
+Library                ../attlibs/UID.py
+Library                ../attlibs/StringTemplater.py
+Library                ../attlibs/JSONUtils.py
+Library   String
+Library   DateTime
+Library   Collections 
+Library   OperatingSystem 
+#Library   JSONUtils
+
+Resource       scheduler_common.robot
+Resource       json_templater.robot
+
+*** Variables ****
+${VID_TEMPLATES}    /assets/templates/changemanagement
+${GLOBAL_VID_CALLBACK_URL}             http://127.0.0.1:8080/scheduler/v1/loopbacktest/vid
+${GLOBAL_VID_USERID}           jf9860
+${NODES}       aaiaic25ctsf0002v,dpa2bhsfe0001v,ctsf0008v,nsbg0002v
+${UTC}   %Y-%m-%dT%H:%M:%SZ
+
+*** Keywords ***
+Create Schedule
+    [Arguments]   ${uuid}   ${request_file}    ${TEMPLATES}   ${workflow}=Unknown    ${minutesFromNow}=5
+    ${testid}=   Catenate   ${uuid}
+    ${testid}=   Get Substring   ${testid}   -4
+    ${dict}=   Create Dictionary   serviceInstanceId=${uuid}   parent_service_model_name=${uuid}
+    ${callbackData}=   Fill JSON Template File    ${CURDIR}${VID_TEMPLATES}/VidCallbackData.json.template   ${dict} 
+    ${callbackDataString}=   Json Escape    ${callbackData}   
+       ${map}=   Create Dictionary   uuid=${uuid}   callbackUrl=${GLOBAL_VID_CALLBACK_URL}   callbackData=${callbackDataString}    testid=${testid}   workflow=${workflow}      userId=${GLOBAL_VID_USERID}
+       ${nodelist}=   Split String    ${NODES}   ,
+       ${nn}=    Catenate    1
+    # Support up to 4 ChangeWindows
+    : For   ${i}   in range   1    4    
+    \  ${today}=    Evaluate   ((${i}-1)*1440)+${minutesFromNow}
+    \  ${tomorrow}   Evaluate   ${today}+1440 
+    \  ${last_time}   Evaluate  ${today}+30   
+    \  ${start_time}=    Get Current Date   UTC  + ${today} minutes   result_format=${UTC}
+    \  ${end_time}=    Get Current Date   UTC   + ${tomorrow} minutes   result_format=${UTC}
+    \  Set To Dictionary    ${map}   start_time${i}=${start_time}   end_time${i}=${end_time}      
+
+       : For   ${vnf}   in    @{nodelist}
+       \   Set To Dictionary    ${map}   node${nn}   ${vnf}   
+       \   ${nn}=   Evaluate    ${nn}+1     
+
+    ${data}=   Fill JSON Template File    ${CURDIR}${TEMPLATES}/${request_file}   ${map}    
+    ${resp}=   Post Change Management   auth   schedules/${uuid}   data=${data}
+    [Return]   ${resp}
+    
+       
+