1*** Settings *** 2 3Documentation VMI static/dynamic IP config tests. 4 5Resource ../../lib/external_intf/vmi_utils.robot 6 7Suite Setup Suite Setup Execution 8Test Teardown FFDC On Test Case Fail 9Suite Teardown Run Keyword And Ignore Error Suite Teardown Execution 10 11Force Tags vmi_interface_test 12 13*** Variables *** 14 15# users User Name password 16@{ADMIN} admin_user TestPwd123 17@{OPERATOR} operator_user TestPwd123 18@{ReadOnly} readonly_user TestPwd123 19&{USERS} Administrator=${ADMIN} ReadOnly=${ReadOnly} 20 21${test_ipv4} 10.6.6.6 22${test_gateway} 10.6.6.1 23${test_netmask} 255.255.252.0 24 25&{DHCP_ENABLED} DHCPEnabled=${${True}} 26&{DHCP_DISABLED} DHCPEnabled=${${False}} 27 28&{ENABLE_DHCP} DHCPv4=&{DHCP_ENABLED} 29&{DISABLE_DHCP} DHCPv4=&{DHCP_DISABLED} 30${wait_time} 10s 31 32${default} 0.0.0.0 33 34 35*** Test Cases *** 36 37Verify All VMI EthernetInterfaces 38 [Documentation] Verify all VMI ethernet interfaces. 39 [Tags] Verify_All_VMI_EthernetInterfaces 40 41 Verify VMI EthernetInterfaces 42 43 44Verify Existing VMI Network Interface Details 45 [Documentation] Verify existing VMI network interface details. 46 [Tags] Verify_Existing_VMI_Network_Interface_Details 47 48 ${vmi_ip}= Get VMI Network Interface Details 49 ${origin}= Set Variable If ${vmi_ip["DHCPv4"]} == ${False} Static DHCP 50 Should Not Be Equal ${vmi_ip["DHCPv4"]} ${vmi_ip["IPv4StaticAddresses"]} 51 Should Be Equal As Strings ${vmi_ip["Id"]} ${ethernet_interface} 52 Should Be Equal As Strings ${vmi_ip["Description"]} 53 ... Hypervisor's Virtual Management Ethernet Interface 54 Should Be Equal As Strings ${vmi_ip["Name"]} Hypervisor Ethernet Interface 55 Run Keyword If '${vmi_ip["IPv4_Address"]}' != '${default}' 56 ... Should Be True ${vmi_ip["InterfaceEnabled"]} 57 Run Keyword If ${vmi_ip["IPv4StaticAddresses"]} != @{empty} 58 ... Verify VMI Network Interface Details ${vmi_ip["IPv4_Address"]} 59 ... ${origin} ${vmi_ip["IPv4_Gateway"]} ${vmi_ip["IPv4_SubnetMask"]} 60 61 62Delete Existing Static VMI IP Address 63 [Documentation] Delete existing static VMI IP address. 64 [Tags] Delete_Existing_Static_VMI_IP_Address 65 66 ${curr_origin}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 67 Run Keyword If ${curr_origin} == ${True} Set VMI IPv4 Origin ${False} ${HTTP_ACCEPTED} 68 69 Delete VMI IPv4 Address 70 71 72Verify User Cannot Delete ReadOnly Property IPv4Addresses 73 [Documentation] Verify user cannot delete readonly property IPv4Addresses. 74 [Tags] Verify_User_Cannot_Delete_ReadOnly_Property_IPv4Addresses 75 76 ${curr_origin}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 77 Run Keyword If ${curr_origin} == ${True} Set VMI IPv4 Origin ${False} ${HTTP_ACCEPTED} 78 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 79 Delete VMI IPv4 Address IPv4Addresses valid_status_code=${HTTP_FORBIDDEN} 80 81 82Assign Valid And Invalid Static IPv4 Address To VMI 83 [Documentation] Assign static IPv4 address to VMI. 84 [Tags] Assign_Valid_And_Invalid_Static_IPv4_Address_To_VMI 85 [Template] Set Static IPv4 Address To VMI And Verify 86 [Teardown] Run keywords Delete VMI IPv4 Address AND Test Teardown Execution 87 88 # ip gateway netmask valid_status_code 89 10.5.20.30 10.5.20.1 255.255.252.0 ${HTTP_ACCEPTED} 90 a.3.118.94 10.5.20.1 255.255.252.0 ${HTTP_BAD_REQUEST} 91 10.5.20 10.5.20.1 255.255.252.0 ${HTTP_BAD_REQUEST} 92 10.5.20.-5 10.5.20.1 255.255.252.0 ${HTTP_BAD_REQUEST} 93 94 95Add Multiple IP Addresses On VMI Interface And Verify 96 [Documentation] Add multiple IP addresses on VMI interface and verify. 97 [Tags] Add_Multiple_IP_Addresses_On_VMI_Interface_And_Verify 98 [Teardown] Run keywords Delete VMI IPv4 Address AND Test Teardown Execution 99 100 ${ip1}= Create dictionary Address=10.5.5.10 SubnetMask=255.255.252.0 Gateway=10.5.5.1 101 ${ip2}= Create dictionary Address=10.5.5.11 SubnetMask=255.255.252.0 Gateway=10.5.5.1 102 ${ip3}= Create dictionary Address=10.5.5.12 SubnetMask=255.255.252.0 Gateway=10.5.5.1 103 ${ips}= Create List ${ip1} ${ip2} ${ip3} 104 105 Redfish.Patch /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 106 ... body={'IPv4StaticAddresses':${ips}} valid_status_codes=[${HTTP_BAD_REQUEST}] 107 108 109Modify IP Addresses On VMI Interface And Verify 110 [Documentation] Modify IP addresses on VMI interface and verify. 111 [Tags] Modify_IP_Addresses_On_VMI_Interface_And_Verify 112 [Template] Set Static IPv4 Address To VMI And Verify 113 [Teardown] Run keywords Delete VMI IPv4 Address AND Test Teardown Execution 114 115 # ip gateway netmask valid_status_code 116 10.5.5.10 10.5.5.1 255.255.252.0 ${HTTP_ACCEPTED} 117 10.5.5.11 10.5.5.1 255.255.252.0 ${HTTP_ACCEPTED} 118 119 120Switch Between IP Origins On VMI And Verify Details 121 [Documentation] Switch between IP origins on VMI and verify details. 122 [Tags] Switch_Between_IP_Origins_On_VMI_And_Verify_Details 123 124 Switch VMI IPv4 Origin And Verify Details 125 Switch VMI IPv4 Origin And Verify Details 126 127 128Verify Persistency Of VMI IPv4 Details After Host Reboot 129 [Documentation] Verify persistency of VMI IPv4 details after host reboot. 130 [Tags] Verify_Persistency_Of_VMI_IPv4_Details_After_Host_Reboot 131 132 # Verifying persistency of dynamic address. 133 Set VMI IPv4 Origin ${True} ${HTTP_ACCEPTED} 134 Redfish Power Off stack_mode=skip 135 Redfish Power On 136 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 137 138 # Verifying persistency of static address. 139 Switch VMI IPv4 Origin And Verify Details 140 Redfish Power Off stack_mode=skip 141 Redfish Power On 142 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 143 144 145Delete VMI Static IP Address And Verify 146 [Documentation] Delete VMI static IP address and verify. 147 [Tags] Delete_VMI_Static_IP_Address_And_Verify 148 [Teardown] Test Teardown Execution 149 150 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 151 Delete VMI IPv4 Address 152 153 154Verify Successful VMI IP Static Configuration On HOST Boot After Session Delete 155 [Documentation] Verify VMI IP static Configuration On HOST Boot After session deleted. 156 [Tags] Verify_Successful_VMI_IP_Static_Configuration_On_HOST_Boot_After_Session_Delete 157 [Teardown] Run keywords Delete VMI IPv4 Address AND Test Teardown Execution 158 159 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 160 161 ${session_info}= Get Redfish Session Info 162 Redfish.Delete ${session_info["location"]} 163 164 # Create a new Redfish session 165 Redfish.Login 166 Redfish Power Off 167 Redfish Power On 168 169 Verify VMI Network Interface Details ${test_ipv4} Static ${test_gateway} ${test_netmask} 170 171 172Verify Persistency Of VMI DHCP IP Configuration After Multiple HOST Reboots 173 [Documentation] Verify Persistency Of VMI DHCP IP configuration After Multiple HOST Reboots 174 [Tags] Verify_Persistency_Of_VMI_DHCP_IP_Configuration_After_Multiple_HOST_Reboots 175 [Teardown] Test Teardown Execution 176 177 Set VMI IPv4 Origin ${True} ${HTTP_ACCEPTED} 178 ${vmi_ip_config}= Get VMI Network Interface Details 179 # Verifying persistency of dynamic address after multiple reboots. 180 FOR ${i} IN RANGE ${2} 181 Redfish Power Off 182 Redfish Power On 183 Verify VMI Network Interface Details ${vmi_ip_config["IPv4_Address"]} 184 ... DHCP ${vmi_ip_config["IPv4_Gateway"]} ${vmi_ip_config["IPv4_SubnetMask"]} 185 END 186 187 188Enable DHCP When Static IP Configured And Verify Static IP 189 [Documentation] Enable DHCP when static ip configured and verify static ip 190 [Tags] Enable_DHCP_When_Static_IP_Configured_And_Verify_Static_IP 191 [Setup] Redfish Power On 192 [Teardown] Test Teardown Execution 193 194 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 195 Set VMI IPv4 Origin ${True} 196 ${vmi_network_conf}= Get VMI Network Interface Details 197 Should Not Be Equal As Strings ${test_ipv4} ${vmi_network_conf["IPv4_Address"]} 198 199 200Verify VMI Static IP Configuration Persist On BMC Reset Before Host Boot 201 [Documentation] Verify VMI static IP configuration persist on BMC reset. 202 [Tags] Verify_VMI_Static_IP_Configuration_Persist_On_BMC_Reset_Before_Host_Boot 203 [Teardown] Run keywords Delete VMI IPv4 Address AND FFDC On Test Case Fail 204 205 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 206 Redfish OBMC Reboot (off) stack_mode=skip 207 Redfish Power On 208 # Verifying the VMI static configuration 209 Verify VMI Network Interface Details ${test_ipv4} Static ${test_gateway} ${test_netmask} 210 211 212Add Static IP When Host Poweroff And Verify On Poweron 213 [Documentation] Add Static IP When Host Poweroff And Verify on power on 214 [Tags] Add_Static_IP_When_Host_Poweroff_And_Verify_On_Poweron 215 [Setup] Redfish Power Off 216 [Teardown] Run keywords Delete VMI IPv4 Address AND FFDC On Test Case Fail 217 218 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 219 Redfish Power On 220 Verify VMI Network Interface Details ${test_ipv4} Static ${test_gateway} ${test_netmask} 221 222 223Add VMI Static IP When Host Poweroff And Verify Static IP On BMC Reset 224 [Documentation] Add Static IP When Host Poweroff And Verify Static IP On BMC Reset. 225 [Tags] Add_VMI_Static_IP_When_Host_Poweroff_And_Verify_Static_IP_On_BMC_Reset 226 [Setup] Redfish Power Off 227 [Teardown] Run keywords Delete VMI IPv4 Address AND FFDC On Test Case Fail 228 229 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 230 Redfish OBMC Reboot (off) stack_mode=skip 231 Redfish Power On 232 Verify VMI Network Interface Details ${test_ipv4} Static ${test_gateway} ${test_netmask} 233 234 235Enable DHCP When No Static IP Configured And Verify DHCP IP 236 [Documentation] Enable DHCP when no static ip configured and verify dhcp ip 237 [Tags] Enable_DHCP_When_No_Static_IP_Configured_And_Verify_DHCP_IP 238 [Setup] Run Keyword And Ignore Error Delete VMI IPv4 Address 239 [Teardown] Test Teardown Execution 240 241 ${curr_origin}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 242 Run Keyword If ${curr_origin} == ${False} Set VMI IPv4 Origin ${True} ${HTTP_ACCEPTED} 243 ${vmi_ip_config}= Get VMI Network Interface Details 244 Verify VMI Network Interface Details ${vmi_ip_config["IPv4_Address"]} 245 ... DHCP ${vmi_ip_config["IPv4_Gateway"]} ${vmi_ip_config["IPv4_SubnetMask"]} 246 247 248Verify User Cannot Delete VMI DHCP IP Address 249 [Documentation] Verify user cannot delete VMI DHCP IP Address 250 [Tags] Verify_User_Cannot_Delete_VMI_DHCP_IP_Address 251 [Setup] Set VMI IPv4 Origin ${True} 252 [Teardown] Test Teardown Execution 253 254 Delete VMI IPv4 Address IPv4Addresses valid_status_code=${HTTP_FORBIDDEN} 255 ${resp}= Redfish.Get 256 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 257 Should Not Be Empty ${resp.dict["IPv4Addresses"]} 258 259 260Enable DHCP When Static IP Configured DHCP Server Unavailable And Verify IP 261 [Documentation] Enable DHCP When Static IP Configured And DHCP Server Unavailable And Verify No IP. 262 [Tags] Enable_DHCP_When_Static_IP_Configured_DHCP_Server_Unavailable_And_Verify_IP 263 [Teardown] Test Teardown Execution 264 265 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 266 Set VMI IPv4 Origin ${True} 267 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 268 269 270Verify To Configure VMI Static IP Address With Different User Roles 271 [Documentation] Verify to configure vmi static ip address with different user roles. 272 [Tags] Verify_To_Configure_VMI_Static_IP_Address_With_Different_User_Roles 273 [Setup] Create Users With Different Roles users=${USERS} force=${True} 274 [Template] Config VMI Static IP Address Using Different Users 275 [Teardown] Delete BMC Users Using Redfish 276 277 # username password ip_address gateway nemask valid_status_code 278 admin_user TestPwd123 ${test_ipv4} ${test_gateway} ${test_netmask} ${HTTP_ACCEPTED} 279 readonly_user TestPwd123 ${test_ipv4} ${test_gateway} ${test_netmask} ${HTTP_FORBIDDEN} 280 281 282Verify To Configure VMI Static IP Address With Operator User Role 283 [Documentation] Verify to configure vmi static ip address with operator user role. 284 [Tags] Verify_To_Configure_VMI_Static_IP_Address_With_Operator_User_Role 285 [Setup] Create Users With Different Roles users=${USERS} force=${True} 286 [Template] Config VMI Static IP Address Using Different Users 287 [Teardown] Delete BMC Users Using Redfish 288 289 # username password ip_address gateway nemask valid_status_code 290 operator_user TestPwd123 ${test_ipv4} ${test_gateway} ${test_netmask} ${HTTP_FORBIDDEN} 291 292 293Verify To Delete VMI Static IP Address With Different User Roles 294 [Documentation] Verify to delete vmi static IP address with different user roles. 295 [Tags] Verify_To_Delete_VMI_Static_IP_Address_With_Different_User_Roles 296 [Setup] Create Users With Different Roles users=${USERS} force=${True} 297 [Template] Delete VMI Static IP Address Using Different Users 298 [Teardown] Delete BMC Users Using Redfish 299 300 # username password valid_status_code 301 admin_user TestPwd123 ${HTTP_ACCEPTED} 302 readonly_user TestPwd123 ${HTTP_FORBIDDEN} 303 304 305Verify To Delete VMI Static IP Address With Operator User Role 306 [Documentation] Verify to delete vmi static IP address with operator user role. 307 [Tags] Verify_To_Delete_VMI_Static_IP_Address_With_Operator_User_Role 308 [Setup] Create Users With Different Roles users=${USERS} force=${True} 309 [Template] Delete VMI Static IP Address Using Different Users 310 [Teardown] Delete BMC Users Using Redfish 311 312 # username password valid_status_code 313 operator_user TestPwd123 ${HTTP_FORBIDDEN} 314 315 316Verify To Update VMI Static IP Address With Different User Roles 317 [Documentation] Verify to update vmi static IP address with different user roles. 318 [Tags] Verify_To_Update_VMI_Static_IP_Address_With_Different_User_Roles 319 [Setup] Create Users With Different Roles users=${USERS} force=${True} 320 [Template] Config VMI Static IP Address Using Different Users 321 [Teardown] Delete BMC Users Using Redfish 322 323 # username password ip_address gateway netmask valid_status_code 324 admin_user TestPwd123 10.5.10.20 10.5.10.1 255.255.0.0 ${HTTP_ACCEPTED} 325 readonly_user TestPwd123 10.5.20.40 10.5.20.1 255.255.0.0 ${HTTP_FORBIDDEN} 326 327 328Verify To Update VMI Static IP Address With Operator User Role 329 [Documentation] Verify to update vmi static IP address with operator user role. 330 [Tags] Verify_To_Update_VMI_Static_IP_Address_With_Operator_User_Role 331 [Setup] Create Users With Different Roles users=${USERS} force=${True} 332 [Template] Config VMI Static IP Address Using Different Users 333 [Teardown] Delete BMC Users Using Redfish 334 335 # username password ip_address gateway netmask valid_status_code 336 operator_user TestPwd123 10.5.10.30 10.5.10.1 255.255.0.0 ${HTTP_FORBIDDEN} 337 338 339Verify To Read VMI Network Configuration With Different User Roles 340 [Documentation] Verify to read vmi network configuration with different user roles. 341 [Tags] Verify_To_Read_VMI_Network_Configuration_With_Different_User_Roles 342 [Setup] Create Users With Different Roles users=${USERS} force=${True} 343 [Template] Read VMI Static IP Address Using Different Users 344 [Teardown] Delete BMC Users Using Redfish 345 346 # username password valid_status_code 347 admin_user TestPwd123 ${HTTP_OK} 348 readonly_user TestPwd123 ${HTTP_OK} 349 350 351Verify To Read VMI Network Configuration With Operator User Role 352 [Documentation] Verify to read vmi network configuration with operator user role. 353 [Tags] Verify_To_Read_VMI_Network_Configuration_With_Operator_User_Role 354 [Setup] Create Users With Different Roles users=${USERS} force=${True} 355 [Template] Read VMI Static IP Address Using Different Users 356 [Teardown] Delete BMC Users Using Redfish 357 358 # username password valid_status_code 359 operator_user TestPwd123 ${HTTP_FORBIDDEN} 360 361 362Enable DHCP On VMI Network Via Different Users Roles And Verify 363 [Documentation] Enable DHCP On VMI Network Via Different Users Roles And Verify. 364 [Tags] Enable_DHCP_On_VMI_Network_Via_Different_Users_Roles_And_Verify 365 [Setup] Create Users With Different Roles users=${USERS} force=${True} 366 [Template] Update User Role And Set VMI IPv4 Origin 367 [Teardown] Delete BMC Users Using Redfish 368 369 # username password dhcp_enabled valid_status_code 370 admin_user TestPwd123 ${True} ${HTTP_ACCEPTED} 371 readonly_user TestPwd123 ${True} ${HTTP_FORBIDDEN} 372 373 374Enable DHCP On VMI Network Via Operator User Role And Verify 375 [Documentation] Enable DHCP On VMI Network Via Operator User Role And Verify. 376 [Tags] Enable_DHCP_On_VMI_Network_Via_Operator_User_Role_And_Verify 377 [Setup] Create Users With Different Roles users=${USERS} force=${True} 378 [Template] Update User Role And Set VMI IPv4 Origin 379 [Teardown] Delete BMC Users Using Redfish 380 381 # username password dhcp_enabled valid_status_code 382 operator_user TestPwd123 ${True} ${HTTP_FORBIDDEN} 383 384 385Disable DHCP On VMI Network Via Different Users Roles And Verify 386 [Documentation] Disable DHCP On VMI Network Via Different Users Roles And Verify. 387 [Tags] Disable_DHCP_On_VMI_Network_Via_Different_Users_Roles_And_Verify 388 [Setup] Create Users With Different Roles users=${USERS} force=${True} 389 [Template] Update User Role And Set VMI IPv4 Origin 390 [Teardown] Delete BMC Users Using Redfish 391 392 # username password dhcp_enabled valid_status_code 393 admin_user TestPwd123 ${False} ${HTTP_ACCEPTED} 394 readonly_user TestPwd123 ${False} ${HTTP_FORBIDDEN} 395 396 397Disable DHCP On VMI Network Via Operator User Role And Verify 398 [Documentation] Disable DHCP On VMI Network Via Operator User Role And Verify. 399 [Tags] Disable_DHCP_On_VMI_Network_Via_Operator_User_Role_And_Verify 400 [Setup] Create Users With Different Roles users=${USERS} force=${True} 401 [Template] Update User Role And Set VMI IPv4 Origin 402 [Teardown] Delete BMC Users Using Redfish 403 404 # username password dhcp_enabled valid_status_code 405 operator_user TestPwd123 ${False} ${HTTP_FORBIDDEN} 406 407 408Enable And Disable DHCP And Verify 409 [Documentation] verify enable DHCP and disable DHCP. 410 [Tags] Enable_And_Disable_DHCP_And_Verify 411 412 Set VMI IPv4 Origin ${True} 413 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 414 Set VMI IPv4 Origin ${False} 415 Verify VMI Network Interface Details ${default} Static ${default} ${default} 416 417 418Multiple Times Enable And Disable DHCP And Verify 419 [Documentation] Enable and Disable DHCP in a loop and verify VMI gets an IP address from DHCP 420 ... each time when DHCP is enabled 421 [Tags] Multiple_Times_Enable_And_Disable_DHCP_And_Verify 422 423 FOR ${i} IN RANGE ${2} 424 Set VMI IPv4 Origin ${True} 425 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 426 Set VMI IPv4 Origin ${False} 427 Verify VMI Network Interface Details ${default} Static ${default} ${default} 428 END 429 430 431Assign Static IPv4 Address With Invalid Netmask To VMI 432 [Documentation] Assign static IPv4 address with invalid netmask and expect error. 433 [Tags] Assign_Static_IPv4_Address_With_Invalid_Netmask_To_VMI 434 [Template] Set Static IPv4 Address To VMI And Verify 435 436 # ip gateway netmask valid_status_code 437 ${test_ipv4} ${test_gateway} 255.256.255.0 ${HTTP_BAD_REQUEST} 438 ${test_ipv4} ${test_gateway} ff.ff.ff.ff ${HTTP_BAD_REQUEST} 439 ${test_ipv4} ${test_gateway} 255.255.253.0 ${HTTP_BAD_REQUEST} 440 441 442Assign Static IPv4 Address With Invalid Gateway To VMI 443 [Documentation] Add static IPv4 address with invalid gateway and expect error. 444 [Tags] Assign_Static_IPv4_Address_With_Invalid_Gateway_To_VMI 445 [Template] Set Static IPv4 Address To VMI And Verify 446 447 # ip gateway netmask valid_status_code 448 ${test_ipv4} @@@.%%.44.11 ${test_netmask} ${HTTP_BAD_REQUEST} 449 ${test_ipv4} 0xa.0xb.0xc.0xd ${test_netmask} ${HTTP_BAD_REQUEST} 450 ${test_ipv4} 10.3.36 ${test_netmask} ${HTTP_BAD_REQUEST} 451 ${test_ipv4} 10.3.36.-10 ${test_netmask} ${HTTP_BAD_REQUEST} 452 453 454Enable DHCP When Host Is Off And Verify After Poweron 455 [Documentation] Enable DHCP when host is off and 456 ... check whether it is enabled after poweron. 457 [Tags] Enable_DHCP_When_Host_Is_Off_And_Verify_After_Poweron 458 [Setup] Redfish Power Off stack_mode=skip 459 460 Set VMI IPv4 Origin ${True} 461 Redfish Power On stack_mode=skip 462 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 463 464 465Disable DHCP When Host Is Off And Verify New State Reflects After Power On 466 [Documentation] Disable DHCP when host is off and 467 ... get network info and verify that VMI origin is static. 468 [Tags] Disable_DHCP_When_Host_Is_Off_And_Verify_New_State_Reflects_After_Power_On 469 [Setup] Redfish Power Off stack_mode=skip 470 471 Set VMI IPv4 Origin ${False} 472 Redfish Power On stack_mode=skip 473 Verify VMI Network Interface Details ${default} Static ${default} ${default} 474 475 476*** Keywords *** 477 478Suite Setup Execution 479 [Documentation] Do test setup execution task. 480 481 Redfish.Login 482 Redfish Power On 483 ${active_channel_config}= Get Active Channel Config 484 Set Suite Variable ${active_channel_config} 485 Set Suite Variable ${ethernet_interface} ${active_channel_config['${CHANNEL_NUMBER}']['name']} 486 ${resp}= Redfish.Get 487 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 488 ${ip_resp}= Evaluate json.loads(r'''${resp.text}''') json 489 ${length}= Get Length ${ip_resp["IPv4StaticAddresses"]} 490 ${vmi_network_conf}= Run Keyword If ${length} != ${0} Get VMI Network Interface Details 491 Set Suite Variable ${vmi_network_conf} 492 493 494Test Teardown Execution 495 [Documentation] Do test teardown execution task. 496 497 FFDC On Test Case Fail 498 ${curr_mode}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 499 Run Keyword If ${curr_mode} == ${True} Set VMI IPv4 Origin ${False} 500 Run Keyword If ${vmi_network_conf} != ${None} 501 ... Set Static IPv4 Address To VMI And Verify ${vmi_network_conf["IPv4_Address"]} 502 ... ${vmi_network_conf["IPv4_Gateway"]} ${vmi_network_conf["IPv4_SubnetMask"]} 503 504 505Get Immediate Child Parameter From VMI Network Interface 506 [Documentation] Get immediate child parameter from VMI network interface. 507 [Arguments] ${parameter} ${valid_status_code}=${HTTP_OK} 508 509 # Description of argument(s): 510 # parameter parameter for which value is required. Ex: DHCPEnabled, MACAddress etc. 511 # valid_status_code Expected valid status code from GET request. 512 513 ${resp}= Redfish.Get 514 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 515 ... valid_status_codes=[${valid_status_code}] 516 517 ${ip_resp}= Evaluate json.loads(r'''${resp.text}''') json 518 ${value}= Set Variable If '${parameter}' != 'DHCPEnabled' ${ip_resp["${parameter}"]} 519 ... ${ip_resp["DHCPv4"]["${parameter}"]} 520 521 [Return] ${value} 522 523 524Switch VMI IPv4 Origin And Verify Details 525 [Documentation] Switch VMI IPv4 origin and verify details. 526 527 ${dhcp_mode_before}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 528 ${dhcp_enabled}= Set Variable If ${dhcp_mode_before} == ${False} ${True} ${False} 529 530 ${origin}= Set Variable If ${dhcp_mode_before} == ${False} DHCP Static 531 Set VMI IPv4 Origin ${dhcp_enabled} ${HTTP_ACCEPTED} 532 533 ${dhcp_mode_after}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 534 Should Not Be Equal ${dhcp_mode_before} ${dhcp_mode_after} 535 536 Run Keyword If ${dhcp_mode_after} == ${True} 537 ... Verify VMI Network Interface Details ${default} ${origin} ${default} ${default} 538 539 540Delete VMI Static IP Address Using Different Users 541 [Documentation] Update user role and delete vmi static IP address. 542 [Arguments] ${username} ${password} ${valid_status_code} 543 [Teardown] Run Keywords Redfish.Login AND 544 ... Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} 545 ... ${test_netmask} ${HTTP_ACCEPTED} AND Redfish.Logout 546 547 # Description of argument(s): 548 # username The host username. 549 # password The host password. 550 # valid_status_code The expected valid status code. 551 552 # TODO: operator_user role is not yet supported. 553 Skip If '${username}' == 'operator_user' 554 Redfish.Login ${username} ${password} 555 Delete VMI IPv4 Address delete_param=IPv4StaticAddresses valid_status_code=${valid_status_code} 556 557 558Config VMI Static IP Address Using Different Users 559 [Documentation] Update user role and update vmi static ip address. 560 [Arguments] ${username} ${password} ${ip} ${gateway} ${netmask} 561 ... ${valid_status_code} 562 563 # Description of argument(s): 564 # username The host username. 565 # password The host password. 566 # ip IP address to be added (e.g. "10.7.7.7"). 567 # subnet_mask Subnet mask for the IP to be added 568 # (e.g. "255.255.0.0"). 569 # gateway Gateway for the IP to be added (e.g. "10.7.7.1"). 570 # valid_status_code The expected valid status code. 571 572 # TODO: operator_user role is not yet supported. 573 Skip If '${username}' == 'operator_user' 574 Redfish.Login ${username} ${password} 575 Set Static IPv4 Address To VMI And Verify ${ip} ${gateway} ${netmask} ${valid_status_code} 576 577 578Read VMI Static IP Address Using Different Users 579 [Documentation] Update user role and read vmi static ip address. 580 [Arguments] ${username} ${password} ${valid_status_code} 581 582 # Description of argument(s): 583 # username The host username. 584 # password The host password. 585 # valid_status_code The expected valid status code. 586 587 # TODO: operator_user role is not yet supported. 588 Skip If '${username}' == 'operator_user' 589 Redfish.Login ${username} ${password} 590 Redfish.Get 591 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 592 ... valid_status_codes=[${valid_status_code}] 593 594 595Delete BMC Users Using Redfish 596 [Documentation] Delete BMC users via redfish. 597 598 Redfish.Login 599 Delete BMC Users Via Redfish users=${USERS} 600 601 602Update User Role And Set VMI IPv4 Origin 603 [Documentation] Update User Role And Set VMI IPv4 Origin. 604 [Arguments] ${username} ${password} ${dhcp_enabled} ${valid_status_code} 605 606 # Description of argument(s): 607 # username The host username. 608 # password The host password. 609 # dhcp_enabled Indicates whether dhcp should be enabled 610 # (${True}, ${False}). 611 # valid_status_code The expected valid status code. 612 613 # TODO: operator_user role is not yet supported. 614 Skip If '${username}' == 'operator_user' 615 Redfish.Login ${username} ${password} 616 Set VMI IPv4 Origin ${dhcp_enabled} ${valid_status_code} 617 618 619Suite Teardown Execution 620 [Documentation] Do suite teardown execution task. 621 622 Run Keyword If ${vmi_network_conf} != ${None} 623 ... Set Static IPv4 Address To VMI And Verify ${vmi_network_conf["IPv4_Address"]} 624 ... ${vmi_network_conf["IPv4_Gateway"]} ${vmi_network_conf["IPv4_SubnetMask"]} 625 Delete All Redfish Sessions 626 Redfish.Logout 627