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] Run Keywords Delete BMC Users Using Redfish 274 ... AND Create Users With Different Roles users=${USERS} force=${True} 275 [Template] Config VMI Static IP Address Using Different Users 276 [Teardown] Delete BMC Users Using Redfish 277 278 # username password ip_address gateway nemask valid_status_code 279 admin_user TestPwd123 ${test_ipv4} ${test_gateway} ${test_netmask} ${HTTP_ACCEPTED} 280 readonly_user TestPwd123 ${test_ipv4} ${test_gateway} ${test_netmask} ${HTTP_FORBIDDEN} 281 282 283Verify To Configure VMI Static IP Address With Operator User Role 284 [Documentation] Verify to configure vmi static ip address with operator user role. 285 [Tags] Verify_To_Configure_VMI_Static_IP_Address_With_Operator_User_Role 286 [Setup] Create Users With Different Roles users=${USERS} force=${True} 287 [Template] Config VMI Static IP Address Using Different Users 288 [Teardown] Delete BMC Users Using Redfish 289 290 # username password ip_address gateway nemask valid_status_code 291 operator_user TestPwd123 ${test_ipv4} ${test_gateway} ${test_netmask} ${HTTP_FORBIDDEN} 292 293 294Verify To Delete VMI Static IP Address With Different User Roles 295 [Documentation] Verify to delete vmi static IP address with different user roles. 296 [Tags] Verify_To_Delete_VMI_Static_IP_Address_With_Different_User_Roles 297 [Setup] Create Users With Different Roles users=${USERS} force=${True} 298 [Template] Delete VMI Static IP Address Using Different Users 299 [Teardown] Delete BMC Users Using Redfish 300 301 # username password valid_status_code 302 admin_user TestPwd123 ${HTTP_ACCEPTED} 303 readonly_user TestPwd123 ${HTTP_FORBIDDEN} 304 305 306Verify To Delete VMI Static IP Address With Operator User Role 307 [Documentation] Verify to delete vmi static IP address with operator user role. 308 [Tags] Verify_To_Delete_VMI_Static_IP_Address_With_Operator_User_Role 309 [Setup] Create Users With Different Roles users=${USERS} force=${True} 310 [Template] Delete VMI Static IP Address Using Different Users 311 [Teardown] Delete BMC Users Using Redfish 312 313 # username password valid_status_code 314 operator_user TestPwd123 ${HTTP_FORBIDDEN} 315 316 317Verify To Update VMI Static IP Address With Different User Roles 318 [Documentation] Verify to update vmi static IP address with different user roles. 319 [Tags] Verify_To_Update_VMI_Static_IP_Address_With_Different_User_Roles 320 [Setup] Create Users With Different Roles users=${USERS} force=${True} 321 [Template] Config VMI Static IP Address Using Different Users 322 [Teardown] Delete BMC Users Using Redfish 323 324 # username password ip_address gateway netmask valid_status_code 325 admin_user TestPwd123 10.5.10.20 10.5.10.1 255.255.0.0 ${HTTP_ACCEPTED} 326 readonly_user TestPwd123 10.5.20.40 10.5.20.1 255.255.0.0 ${HTTP_FORBIDDEN} 327 328 329Verify To Update VMI Static IP Address With Operator User Role 330 [Documentation] Verify to update vmi static IP address with operator user role. 331 [Tags] Verify_To_Update_VMI_Static_IP_Address_With_Operator_User_Role 332 [Setup] Create Users With Different Roles users=${USERS} force=${True} 333 [Template] Config VMI Static IP Address Using Different Users 334 [Teardown] Delete BMC Users Using Redfish 335 336 # username password ip_address gateway netmask valid_status_code 337 operator_user TestPwd123 10.5.10.30 10.5.10.1 255.255.0.0 ${HTTP_FORBIDDEN} 338 339 340Verify To Read VMI Network Configuration With Different User Roles 341 [Documentation] Verify to read vmi network configuration with different user roles. 342 [Tags] Verify_To_Read_VMI_Network_Configuration_With_Different_User_Roles 343 [Setup] Create Users With Different Roles users=${USERS} force=${True} 344 [Template] Read VMI Static IP Address Using Different Users 345 [Teardown] Delete BMC Users Using Redfish 346 347 # username password valid_status_code 348 admin_user TestPwd123 ${HTTP_OK} 349 readonly_user TestPwd123 ${HTTP_OK} 350 351 352Verify To Read VMI Network Configuration With Operator User Role 353 [Documentation] Verify to read vmi network configuration with operator user role. 354 [Tags] Verify_To_Read_VMI_Network_Configuration_With_Operator_User_Role 355 [Setup] Create Users With Different Roles users=${USERS} force=${True} 356 [Template] Read VMI Static IP Address Using Different Users 357 [Teardown] Delete BMC Users Using Redfish 358 359 # username password valid_status_code 360 operator_user TestPwd123 ${HTTP_FORBIDDEN} 361 362 363Enable DHCP On VMI Network Via Different Users Roles And Verify 364 [Documentation] Enable DHCP On VMI Network Via Different Users Roles And Verify. 365 [Tags] Enable_DHCP_On_VMI_Network_Via_Different_Users_Roles_And_Verify 366 [Setup] Create Users With Different Roles users=${USERS} force=${True} 367 [Template] Update User Role And Set VMI IPv4 Origin 368 [Teardown] Delete BMC Users Using Redfish 369 370 # username password dhcp_enabled valid_status_code 371 admin_user TestPwd123 ${True} ${HTTP_ACCEPTED} 372 readonly_user TestPwd123 ${True} ${HTTP_FORBIDDEN} 373 374 375Enable DHCP On VMI Network Via Operator User Role And Verify 376 [Documentation] Enable DHCP On VMI Network Via Operator User Role And Verify. 377 [Tags] Enable_DHCP_On_VMI_Network_Via_Operator_User_Role_And_Verify 378 [Setup] Create Users With Different Roles users=${USERS} force=${True} 379 [Template] Update User Role And Set VMI IPv4 Origin 380 [Teardown] Delete BMC Users Using Redfish 381 382 # username password dhcp_enabled valid_status_code 383 operator_user TestPwd123 ${True} ${HTTP_FORBIDDEN} 384 385 386Disable DHCP On VMI Network Via Different Users Roles And Verify 387 [Documentation] Disable DHCP On VMI Network Via Different Users Roles And Verify. 388 [Tags] Disable_DHCP_On_VMI_Network_Via_Different_Users_Roles_And_Verify 389 [Setup] Create Users With Different Roles users=${USERS} force=${True} 390 [Template] Update User Role And Set VMI IPv4 Origin 391 [Teardown] Delete BMC Users Using Redfish 392 393 # username password dhcp_enabled valid_status_code 394 admin_user TestPwd123 ${False} ${HTTP_ACCEPTED} 395 readonly_user TestPwd123 ${False} ${HTTP_FORBIDDEN} 396 397 398Disable DHCP On VMI Network Via Operator User Role And Verify 399 [Documentation] Disable DHCP On VMI Network Via Operator User Role And Verify. 400 [Tags] Disable_DHCP_On_VMI_Network_Via_Operator_User_Role_And_Verify 401 [Setup] Create Users With Different Roles users=${USERS} force=${True} 402 [Template] Update User Role And Set VMI IPv4 Origin 403 [Teardown] Delete BMC Users Using Redfish 404 405 # username password dhcp_enabled valid_status_code 406 operator_user TestPwd123 ${False} ${HTTP_FORBIDDEN} 407 408 409Enable And Disable DHCP And Verify 410 [Documentation] verify enable DHCP and disable DHCP. 411 [Tags] Enable_And_Disable_DHCP_And_Verify 412 413 Set VMI IPv4 Origin ${True} 414 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 415 Set VMI IPv4 Origin ${False} 416 Verify VMI Network Interface Details ${default} Static ${default} ${default} 417 418 419Multiple Times Enable And Disable DHCP And Verify 420 [Documentation] Enable and Disable DHCP in a loop and verify VMI gets an IP address from DHCP 421 ... each time when DHCP is enabled 422 [Tags] Multiple_Times_Enable_And_Disable_DHCP_And_Verify 423 424 FOR ${i} IN RANGE ${2} 425 Set VMI IPv4 Origin ${True} 426 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 427 Set VMI IPv4 Origin ${False} 428 Verify VMI Network Interface Details ${default} Static ${default} ${default} 429 END 430 431 432Assign Static IPv4 Address With Invalid Netmask To VMI 433 [Documentation] Assign static IPv4 address with invalid netmask and expect error. 434 [Tags] Assign_Static_IPv4_Address_With_Invalid_Netmask_To_VMI 435 [Template] Set Static IPv4 Address To VMI And Verify 436 437 # ip gateway netmask valid_status_code 438 ${test_ipv4} ${test_gateway} 255.256.255.0 ${HTTP_BAD_REQUEST} 439 ${test_ipv4} ${test_gateway} ff.ff.ff.ff ${HTTP_BAD_REQUEST} 440 ${test_ipv4} ${test_gateway} 255.255.253.0 ${HTTP_BAD_REQUEST} 441 442 443Assign Static IPv4 Address With Invalid Gateway To VMI 444 [Documentation] Add static IPv4 address with invalid gateway and expect error. 445 [Tags] Assign_Static_IPv4_Address_With_Invalid_Gateway_To_VMI 446 [Template] Set Static IPv4 Address To VMI And Verify 447 448 # ip gateway netmask valid_status_code 449 ${test_ipv4} @@@.%%.44.11 ${test_netmask} ${HTTP_BAD_REQUEST} 450 ${test_ipv4} 0xa.0xb.0xc.0xd ${test_netmask} ${HTTP_BAD_REQUEST} 451 ${test_ipv4} 10.3.36 ${test_netmask} ${HTTP_BAD_REQUEST} 452 ${test_ipv4} 10.3.36.-10 ${test_netmask} ${HTTP_BAD_REQUEST} 453 454 455Enable DHCP When Host Is Off And Verify After Poweron 456 [Documentation] Enable DHCP when host is off and 457 ... check whether it is enabled after poweron. 458 [Tags] Enable_DHCP_When_Host_Is_Off_And_Verify_After_Poweron 459 [Setup] Redfish Power Off stack_mode=skip 460 461 Set VMI IPv4 Origin ${True} 462 Redfish Power On stack_mode=skip 463 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 464 465 466Disable DHCP When Host Is Off And Verify New State Reflects After Power On 467 [Documentation] Disable DHCP when host is off and 468 ... get network info and verify that VMI origin is static. 469 [Tags] Disable_DHCP_When_Host_Is_Off_And_Verify_New_State_Reflects_After_Power_On 470 [Setup] Redfish Power Off stack_mode=skip 471 472 Set VMI IPv4 Origin ${False} 473 Redfish Power On stack_mode=skip 474 Verify VMI Network Interface Details ${default} Static ${default} ${default} 475 476 477*** Keywords *** 478 479Suite Setup Execution 480 [Documentation] Do test setup execution task. 481 482 Redfish.Login 483 Redfish Power On 484 ${active_channel_config}= Get Active Channel Config 485 Set Suite Variable ${active_channel_config} 486 Set Suite Variable ${ethernet_interface} ${active_channel_config['${CHANNEL_NUMBER}']['name']} 487 ${resp}= Redfish.Get 488 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 489 ${ip_resp}= Evaluate json.loads(r'''${resp.text}''') json 490 ${length}= Get Length ${ip_resp["IPv4StaticAddresses"]} 491 ${vmi_network_conf}= Run Keyword If ${length} != ${0} Get VMI Network Interface Details 492 Set Suite Variable ${vmi_network_conf} 493 494 495Test Teardown Execution 496 [Documentation] Do test teardown execution task. 497 498 FFDC On Test Case Fail 499 ${curr_mode}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 500 Run Keyword If ${curr_mode} == ${True} Set VMI IPv4 Origin ${False} 501 Run Keyword If ${vmi_network_conf} != ${None} 502 ... Set Static IPv4 Address To VMI And Verify ${vmi_network_conf["IPv4_Address"]} 503 ... ${vmi_network_conf["IPv4_Gateway"]} ${vmi_network_conf["IPv4_SubnetMask"]} 504 505 506Get Immediate Child Parameter From VMI Network Interface 507 [Documentation] Get immediate child parameter from VMI network interface. 508 [Arguments] ${parameter} ${valid_status_code}=${HTTP_OK} 509 510 # Description of argument(s): 511 # parameter parameter for which value is required. Ex: DHCPEnabled, MACAddress etc. 512 # valid_status_code Expected valid status code from GET request. 513 514 ${resp}= Redfish.Get 515 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 516 ... valid_status_codes=[${valid_status_code}] 517 518 ${ip_resp}= Evaluate json.loads(r'''${resp.text}''') json 519 ${value}= Set Variable If '${parameter}' != 'DHCPEnabled' ${ip_resp["${parameter}"]} 520 ... ${ip_resp["DHCPv4"]["${parameter}"]} 521 522 [Return] ${value} 523 524 525Switch VMI IPv4 Origin And Verify Details 526 [Documentation] Switch VMI IPv4 origin and verify details. 527 528 ${dhcp_mode_before}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 529 ${dhcp_enabled}= Set Variable If ${dhcp_mode_before} == ${False} ${True} ${False} 530 531 ${origin}= Set Variable If ${dhcp_mode_before} == ${False} DHCP Static 532 Set VMI IPv4 Origin ${dhcp_enabled} ${HTTP_ACCEPTED} 533 534 ${dhcp_mode_after}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 535 Should Not Be Equal ${dhcp_mode_before} ${dhcp_mode_after} 536 537 Run Keyword If ${dhcp_mode_after} == ${True} 538 ... Verify VMI Network Interface Details ${default} ${origin} ${default} ${default} 539 540 541Delete VMI Static IP Address Using Different Users 542 [Documentation] Update user role and delete vmi static IP address. 543 [Arguments] ${username} ${password} ${valid_status_code} 544 [Teardown] Run Keywords Redfish.Login AND 545 ... Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} 546 ... ${test_netmask} ${HTTP_ACCEPTED} AND Redfish.Logout 547 548 # Description of argument(s): 549 # username The host username. 550 # password The host password. 551 # valid_status_code The expected valid status code. 552 553 # TODO: operator_user role is not yet supported. 554 Skip If '${username}' == 'operator_user' 555 Redfish.Login ${username} ${password} 556 Delete VMI IPv4 Address delete_param=IPv4StaticAddresses valid_status_code=${valid_status_code} 557 558 559Config VMI Static IP Address Using Different Users 560 [Documentation] Update user role and update vmi static ip address. 561 [Arguments] ${username} ${password} ${ip} ${gateway} ${netmask} 562 ... ${valid_status_code} 563 564 # Description of argument(s): 565 # username The host username. 566 # password The host password. 567 # ip IP address to be added (e.g. "10.7.7.7"). 568 # subnet_mask Subnet mask for the IP to be added 569 # (e.g. "255.255.0.0"). 570 # gateway Gateway for the IP to be added (e.g. "10.7.7.1"). 571 # valid_status_code The expected valid status code. 572 573 # TODO: operator_user role is not yet supported. 574 Skip If '${username}' == 'operator_user' 575 Redfish.Login ${username} ${password} 576 Set Static IPv4 Address To VMI And Verify ${ip} ${gateway} ${netmask} ${valid_status_code} 577 578 579Read VMI Static IP Address Using Different Users 580 [Documentation] Update user role and read vmi static ip address. 581 [Arguments] ${username} ${password} ${valid_status_code} 582 583 # Description of argument(s): 584 # username The host username. 585 # password The host password. 586 # valid_status_code The expected valid status code. 587 588 # TODO: operator_user role is not yet supported. 589 Skip If '${username}' == 'operator_user' 590 Redfish.Login ${username} ${password} 591 Redfish.Get 592 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 593 ... valid_status_codes=[${valid_status_code}] 594 595 596Delete BMC Users Using Redfish 597 [Documentation] Delete BMC users via redfish. 598 599 Redfish.Login 600 Delete BMC Users Via Redfish users=${USERS} 601 602 603Update User Role And Set VMI IPv4 Origin 604 [Documentation] Update User Role And Set VMI IPv4 Origin. 605 [Arguments] ${username} ${password} ${dhcp_enabled} ${valid_status_code} 606 607 # Description of argument(s): 608 # username The host username. 609 # password The host password. 610 # dhcp_enabled Indicates whether dhcp should be enabled 611 # (${True}, ${False}). 612 # valid_status_code The expected valid status code. 613 614 # TODO: operator_user role is not yet supported. 615 Skip If '${username}' == 'operator_user' 616 Redfish.Login ${username} ${password} 617 Set VMI IPv4 Origin ${dhcp_enabled} ${valid_status_code} 618 619 620Suite Teardown Execution 621 [Documentation] Do suite teardown execution task. 622 623 Run Keyword If ${vmi_network_conf} != ${None} 624 ... Set Static IPv4 Address To VMI And Verify ${vmi_network_conf["IPv4_Address"]} 625 ... ${vmi_network_conf["IPv4_Gateway"]} ${vmi_network_conf["IPv4_SubnetMask"]} 626 Delete All Redfish Sessions 627 Redfish.Logout 628