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