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