summaryrefslogtreecommitdiffstats
path: root/cmso-robot/robot/resources/scheduler_requests/create_schedule.robot
blob: 7264b0511ce1fa7334df1ff8aa2fe8de527870c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
*** Settings ***
Documentation   SCheduler tests

Library   StringTemplater
Library   UUID
Library   String
Library   DateTime
Library   Collections 
Library   OperatingSystem 
Library   JSONUtils

Resource    ../scheduler_common.robot
Resource    ../json_templater.robot

*** Variables ****
${VID_TEMPLATES}    robot/assets/templates/changemanagement
${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    ${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    ${TEMPLATES}/${request_file}   ${map}    
    ${resp}=   Post Change Management   auth   schedules/${uuid}   data=${data}
    [Return]   ${resp}