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 11Test Tags Vmi 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 31&{SLAAC_ENABLED} IPv6AutoConfigEnabled=${True} 32&{SLAAC_DISABLED} IPv6AutoConfigEnabled=${False} 33 34&{ENABLE_SLAAC} StatelessAddressAutoConfig=&{SLAAC_ENABLED} 35&{DISABLE_SLAAC} StatelessAddressAutoConfig=&{SLAAC_DISABLED} 36 37&{DHCPv6_ENABLED} OperatingMode=Enabled 38&{DHCPv6_DISABLED} OperatingMode=Disabled 39 40&{ENABLE_DHCPv6} DHCPv6=&{DHCPv6_ENABLED} 41&{DISABLE_DHCPv6} DHCPv6=&{DHCPv6_DISABLED} 42 43${default} 0.0.0.0 44${default_ipv6addr} :: 45${prefix_length} ${64} 46${test_vmi_ipv6addr} 2001:db8:1111:2222:10:5:5:6 47 48 49*** Test Cases *** 50 51Verify All VMI EthernetInterfaces 52 [Documentation] Verify all VMI ethernet interfaces. 53 [Tags] Verify_All_VMI_EthernetInterfaces 54 55 Verify VMI EthernetInterfaces 56 57 58Verify Existing VMI Network Interface Details 59 [Documentation] Verify existing VMI network interface details. 60 [Tags] Verify_Existing_VMI_Network_Interface_Details 61 62 ${vmi_ip}= Get VMI Network Interface Details 63 ${origin}= Set Variable If ${vmi_ip["DHCPv4"]} == ${False} Static DHCP 64 Should Not Be Equal ${vmi_ip["DHCPv4"]} ${vmi_ip["IPv4StaticAddresses"]} 65 Should Be Equal As Strings ${vmi_ip["Id"]} ${ethernet_interface} 66 Should Be Equal As Strings ${vmi_ip["Description"]} 67 ... Hypervisor's Virtual Management Ethernet Interface 68 Should Be Equal As Strings ${vmi_ip["Name"]} Hypervisor Ethernet Interface 69 Run Keyword If ${vmi_ip["IPv4StaticAddresses"]} != @{empty} 70 ... Verify VMI Network Interface Details ${vmi_ip["IPv4_Address"]} 71 ... ${origin} ${vmi_ip["IPv4_Gateway"]} ${vmi_ip["IPv4_SubnetMask"]} 72 73 74Delete Existing Static VMI IP Address 75 [Documentation] Delete existing static VMI IP address. 76 [Tags] Delete_Existing_Static_VMI_IP_Address 77 78 ${curr_origin}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 79 Run Keyword If ${curr_origin} == ${True} Set VMI IPv4 Origin ${False} ${HTTP_ACCEPTED} 80 81 Delete VMI IPv4 Address 82 83 84Verify User Cannot Delete ReadOnly Property IPv4Addresses 85 [Documentation] Verify user cannot delete readonly property IPv4Addresses. 86 [Tags] Verify_User_Cannot_Delete_ReadOnly_Property_IPv4Addresses 87 88 ${curr_origin}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 89 Run Keyword If ${curr_origin} == ${True} Set VMI IPv4 Origin ${False} ${HTTP_ACCEPTED} 90 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 91 Delete VMI IPv4 Address IPv4Addresses valid_status_code=${HTTP_FORBIDDEN} 92 93 94Assign Valid And Invalid Static IPv4 Address To VMI 95 [Documentation] Assign static IPv4 address to VMI. 96 [Tags] Assign_Valid_And_Invalid_Static_IPv4_Address_To_VMI 97 [Template] Set Static IPv4 Address To VMI And Verify 98 [Teardown] Run keywords Delete VMI IPv4 Address AND Test Teardown Execution 99 100 # ip gateway netmask valid_status_code 101 10.5.20.30 10.5.20.1 255.255.252.0 ${HTTP_ACCEPTED} 102 a.3.118.94 10.5.20.1 255.255.252.0 ${HTTP_BAD_REQUEST} 103 10.5.20 10.5.20.1 255.255.252.0 ${HTTP_BAD_REQUEST} 104 10.5.20.-5 10.5.20.1 255.255.252.0 ${HTTP_BAD_REQUEST} 105 106 107Add Multiple IP Addresses On VMI Interface And Verify 108 [Documentation] Add multiple IP addresses on VMI interface and verify. 109 [Tags] Add_Multiple_IP_Addresses_On_VMI_Interface_And_Verify 110 [Teardown] Run keywords Delete VMI IPv4 Address AND Test Teardown Execution 111 112 ${ip1}= Create dictionary Address=10.5.5.10 SubnetMask=255.255.252.0 Gateway=10.5.5.1 113 ${ip2}= Create dictionary Address=10.5.5.11 SubnetMask=255.255.252.0 Gateway=10.5.5.1 114 ${ip3}= Create dictionary Address=10.5.5.12 SubnetMask=255.255.252.0 Gateway=10.5.5.1 115 ${ips}= Create List ${ip1} ${ip2} ${ip3} 116 117 Redfish.Patch /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 118 ... body={'IPv4StaticAddresses':${ips}} valid_status_codes=[${HTTP_BAD_REQUEST}] 119 120 121Modify IP Addresses On VMI Interface And Verify 122 [Documentation] Modify IP addresses on VMI interface and verify. 123 [Tags] Modify_IP_Addresses_On_VMI_Interface_And_Verify 124 [Template] Set Static IPv4 Address To VMI And Verify 125 [Teardown] Run keywords Delete VMI IPv4 Address AND Test Teardown Execution 126 127 # ip gateway netmask valid_status_code 128 10.5.5.10 10.5.5.1 255.255.252.0 ${HTTP_ACCEPTED} 129 10.5.5.11 10.5.5.1 255.255.252.0 ${HTTP_ACCEPTED} 130 131 132Switch Between IP Origins On VMI And Verify Details 133 [Documentation] Switch between IP origins on VMI and verify details. 134 [Tags] Switch_Between_IP_Origins_On_VMI_And_Verify_Details 135 136 Switch VMI IPv4 Origin And Verify Details 137 Switch VMI IPv4 Origin And Verify Details 138 139 140Verify Persistency Of VMI IPv4 Details After Host Reboot 141 [Documentation] Verify persistency of VMI IPv4 details after host reboot. 142 [Tags] Verify_Persistency_Of_VMI_IPv4_Details_After_Host_Reboot 143 144 # Verifying persistency of dynamic address. 145 Set VMI IPv4 Origin ${True} ${HTTP_ACCEPTED} 146 Redfish Power Off stack_mode=skip 147 Redfish Power On 148 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 149 150 # Verifying persistency of static address. 151 Switch VMI IPv4 Origin And Verify Details 152 Redfish Power Off stack_mode=skip 153 Redfish Power On 154 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 155 156 157Delete VMI Static IP Address And Verify 158 [Documentation] Delete VMI static IP address and verify. 159 [Tags] Delete_VMI_Static_IP_Address_And_Verify 160 [Teardown] Test Teardown Execution 161 162 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 163 Delete VMI IPv4 Address 164 165 166Verify Successful VMI IP Static Configuration On HOST Boot After Session Delete 167 [Documentation] Verify VMI IP static Configuration On HOST Boot After session deleted. 168 [Tags] Verify_Successful_VMI_IP_Static_Configuration_On_HOST_Boot_After_Session_Delete 169 [Teardown] Run keywords Delete VMI IPv4 Address AND Test Teardown Execution 170 171 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 172 173 ${session_info}= Get Redfish Session Info 174 Redfish.Delete ${session_info["location"]} 175 176 # Create a new Redfish session 177 Redfish.Login 178 Redfish Power Off 179 Redfish Power On 180 181 Verify VMI Network Interface Details ${test_ipv4} Static ${test_gateway} ${test_netmask} 182 183 184Verify Persistency Of VMI DHCP IP Configuration After Multiple HOST Reboots 185 [Documentation] Verify Persistency Of VMI DHCP IP configuration After Multiple HOST Reboots 186 [Tags] Verify_Persistency_Of_VMI_DHCP_IP_Configuration_After_Multiple_HOST_Reboots 187 [Teardown] Test Teardown Execution 188 189 Set VMI IPv4 Origin ${True} ${HTTP_ACCEPTED} 190 ${vmi_ip_config}= Get VMI Network Interface Details 191 # Verifying persistency of dynamic address after multiple reboots. 192 FOR ${i} IN RANGE ${2} 193 Redfish Power Off 194 Redfish Power On 195 Verify VMI Network Interface Details ${vmi_ip_config["IPv4_Address"]} 196 ... DHCP ${vmi_ip_config["IPv4_Gateway"]} ${vmi_ip_config["IPv4_SubnetMask"]} 197 END 198 199 200Enable DHCP When Static IP Configured And Verify Static IP 201 [Documentation] Enable DHCP when static ip configured and verify static ip 202 [Tags] Enable_DHCP_When_Static_IP_Configured_And_Verify_Static_IP 203 [Setup] Redfish Power On 204 [Teardown] Test Teardown Execution 205 206 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 207 Set VMI IPv4 Origin ${True} 208 ${vmi_network_conf}= Get VMI Network Interface Details 209 Should Not Be Equal As Strings ${test_ipv4} ${vmi_network_conf["IPv4_Address"]} 210 211 212Verify VMI Static IP Configuration Persist On BMC Reset Before Host Boot 213 [Documentation] Verify VMI static IP configuration persist on BMC reset. 214 [Tags] Verify_VMI_Static_IP_Configuration_Persist_On_BMC_Reset_Before_Host_Boot 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 OBMC Reboot (off) stack_mode=skip 219 Redfish Power On 220 # Verifying the VMI static configuration 221 Verify VMI Network Interface Details ${test_ipv4} Static ${test_gateway} ${test_netmask} 222 223 224Add Static IP When Host Poweroff And Verify On Poweron 225 [Documentation] Add Static IP When Host Poweroff And Verify on power on 226 [Tags] Add_Static_IP_When_Host_Poweroff_And_Verify_On_Poweron 227 [Setup] Redfish Power Off 228 [Teardown] Run keywords Delete VMI IPv4 Address AND FFDC On Test Case Fail 229 230 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 231 Redfish Power On 232 Verify VMI Network Interface Details ${test_ipv4} Static ${test_gateway} ${test_netmask} 233 234 235Add VMI Static IP When Host Poweroff And Verify Static IP On BMC Reset 236 [Documentation] Add Static IP When Host Poweroff And Verify Static IP On BMC Reset. 237 [Tags] Add_VMI_Static_IP_When_Host_Poweroff_And_Verify_Static_IP_On_BMC_Reset 238 [Setup] Redfish Power Off 239 [Teardown] Run keywords Delete VMI IPv4 Address AND FFDC On Test Case Fail 240 241 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 242 Redfish OBMC Reboot (off) stack_mode=skip 243 Redfish Power On 244 Verify VMI Network Interface Details ${test_ipv4} Static ${test_gateway} ${test_netmask} 245 246 247Enable DHCP When No Static IP Configured And Verify DHCP IP 248 [Documentation] Enable DHCP when no static ip configured and verify dhcp ip 249 [Tags] Enable_DHCP_When_No_Static_IP_Configured_And_Verify_DHCP_IP 250 [Setup] Run Keyword And Ignore Error Delete VMI IPv4 Address 251 [Teardown] Test Teardown Execution 252 253 ${curr_origin}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 254 Run Keyword If ${curr_origin} == ${False} Set VMI IPv4 Origin ${True} ${HTTP_ACCEPTED} 255 ${vmi_ip_config}= Get VMI Network Interface Details 256 Verify VMI Network Interface Details ${vmi_ip_config["IPv4_Address"]} 257 ... DHCP ${vmi_ip_config["IPv4_Gateway"]} ${vmi_ip_config["IPv4_SubnetMask"]} 258 259 260Verify User Cannot Delete VMI DHCP IP Address 261 [Documentation] Verify user cannot delete VMI DHCP IP Address 262 [Tags] Verify_User_Cannot_Delete_VMI_DHCP_IP_Address 263 [Setup] Set VMI IPv4 Origin ${True} 264 [Teardown] Test Teardown Execution 265 266 Delete VMI IPv4 Address IPv4Addresses valid_status_code=${HTTP_FORBIDDEN} 267 ${resp}= Redfish.Get 268 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 269 Should Not Be Empty ${resp.dict["IPv4Addresses"]} 270 271 272Enable DHCP When Static IP Configured DHCP Server Unavailable And Verify IP 273 [Documentation] Enable DHCP When Static IP Configured And DHCP Server Unavailable And Verify No IP. 274 [Tags] Enable_DHCP_When_Static_IP_Configured_DHCP_Server_Unavailable_And_Verify_IP 275 [Teardown] Test Teardown Execution 276 277 Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 278 Set VMI IPv4 Origin ${True} 279 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 280 281 282Verify To Configure VMI Static IP Address With Different User Roles 283 [Documentation] Verify to configure vmi static ip address with different user roles. 284 [Tags] Verify_To_Configure_VMI_Static_IP_Address_With_Different_User_Roles 285 [Setup] Run Keywords Delete BMC Users Using Redfish 286 ... AND 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 admin_user TestPwd123 ${test_ipv4} ${test_gateway} ${test_netmask} ${HTTP_ACCEPTED} 292 readonly_user TestPwd123 ${test_ipv4} ${test_gateway} ${test_netmask} ${HTTP_FORBIDDEN} 293 294 295Verify To Configure VMI Static IP Address With Operator User Role 296 [Documentation] Verify to configure vmi static ip address with operator user role. 297 [Tags] Verify_To_Configure_VMI_Static_IP_Address_With_Operator_User_Role 298 [Setup] Create Users With Different Roles users=${USERS} force=${True} 299 [Template] Config VMI Static IP Address Using Different Users 300 [Teardown] Delete BMC Users Using Redfish 301 302 # username password ip_address gateway nemask valid_status_code 303 operator_user TestPwd123 ${test_ipv4} ${test_gateway} ${test_netmask} ${HTTP_FORBIDDEN} 304 305 306Verify To Delete VMI Static IP Address With Different User Roles 307 [Documentation] Verify to delete vmi static IP address with different user roles. 308 [Tags] Verify_To_Delete_VMI_Static_IP_Address_With_Different_User_Roles 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 admin_user TestPwd123 ${HTTP_ACCEPTED} 315 readonly_user TestPwd123 ${HTTP_FORBIDDEN} 316 317 318Verify To Delete VMI Static IP Address With Operator User Role 319 [Documentation] Verify to delete vmi static IP address with operator user role. 320 [Tags] Verify_To_Delete_VMI_Static_IP_Address_With_Operator_User_Role 321 [Setup] Create Users With Different Roles users=${USERS} force=${True} 322 [Template] Delete VMI Static IP Address Using Different Users 323 [Teardown] Delete BMC Users Using Redfish 324 325 # username password valid_status_code 326 operator_user TestPwd123 ${HTTP_FORBIDDEN} 327 328 329Verify To Update VMI Static IP Address With Different User Roles 330 [Documentation] Verify to update vmi static IP address with different user roles. 331 [Tags] Verify_To_Update_VMI_Static_IP_Address_With_Different_User_Roles 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 admin_user TestPwd123 10.5.10.20 10.5.10.1 255.255.0.0 ${HTTP_ACCEPTED} 338 readonly_user TestPwd123 10.5.20.40 10.5.20.1 255.255.0.0 ${HTTP_FORBIDDEN} 339 340 341Verify To Update VMI Static IP Address With Operator User Role 342 [Documentation] Verify to update vmi static IP address with operator user role. 343 [Tags] Verify_To_Update_VMI_Static_IP_Address_With_Operator_User_Role 344 [Setup] Create Users With Different Roles users=${USERS} force=${True} 345 [Template] Config VMI Static IP Address Using Different Users 346 [Teardown] Delete BMC Users Using Redfish 347 348 # username password ip_address gateway netmask valid_status_code 349 operator_user TestPwd123 10.5.10.30 10.5.10.1 255.255.0.0 ${HTTP_FORBIDDEN} 350 351 352Verify To Read VMI Network Configuration With Different User Roles 353 [Documentation] Verify to read vmi network configuration with different user roles. 354 [Tags] Verify_To_Read_VMI_Network_Configuration_With_Different_User_Roles 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 admin_user TestPwd123 ${HTTP_OK} 361 readonly_user TestPwd123 ${HTTP_OK} 362 363 364Verify To Read VMI Network Configuration With Operator User Role 365 [Documentation] Verify to read vmi network configuration with operator user role. 366 [Tags] Verify_To_Read_VMI_Network_Configuration_With_Operator_User_Role 367 [Setup] Create Users With Different Roles users=${USERS} force=${True} 368 [Template] Read VMI Static IP Address Using Different Users 369 [Teardown] Delete BMC Users Using Redfish 370 371 # username password valid_status_code 372 operator_user TestPwd123 ${HTTP_FORBIDDEN} 373 374 375Enable DHCP On VMI Network Via Different Users Roles And Verify 376 [Documentation] Enable DHCP On VMI Network Via Different Users Roles And Verify. 377 [Tags] Enable_DHCP_On_VMI_Network_Via_Different_Users_Roles_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 admin_user TestPwd123 ${True} ${HTTP_ACCEPTED} 384 readonly_user TestPwd123 ${True} ${HTTP_FORBIDDEN} 385 386 387Enable DHCP On VMI Network Via Operator User Role And Verify 388 [Documentation] Enable DHCP On VMI Network Via Operator User Role And Verify. 389 [Tags] Enable_DHCP_On_VMI_Network_Via_Operator_User_Role_And_Verify 390 [Setup] Create Users With Different Roles users=${USERS} force=${True} 391 [Template] Update User Role And Set VMI IPv4 Origin 392 [Teardown] Delete BMC Users Using Redfish 393 394 # username password dhcp_enabled valid_status_code 395 operator_user TestPwd123 ${True} ${HTTP_FORBIDDEN} 396 397 398Disable DHCP On VMI Network Via Different Users Roles And Verify 399 [Documentation] Disable DHCP On VMI Network Via Different Users Roles And Verify. 400 [Tags] Disable_DHCP_On_VMI_Network_Via_Different_Users_Roles_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 admin_user TestPwd123 ${False} ${HTTP_ACCEPTED} 407 readonly_user TestPwd123 ${False} ${HTTP_FORBIDDEN} 408 409 410Disable DHCP On VMI Network Via Operator User Role And Verify 411 [Documentation] Disable DHCP On VMI Network Via Operator User Role And Verify. 412 [Tags] Disable_DHCP_On_VMI_Network_Via_Operator_User_Role_And_Verify 413 [Setup] Create Users With Different Roles users=${USERS} force=${True} 414 [Template] Update User Role And Set VMI IPv4 Origin 415 [Teardown] Delete BMC Users Using Redfish 416 417 # username password dhcp_enabled valid_status_code 418 operator_user TestPwd123 ${False} ${HTTP_FORBIDDEN} 419 420 421Enable And Disable DHCP And Verify 422 [Documentation] verify enable DHCP and disable DHCP. 423 [Tags] Enable_And_Disable_DHCP_And_Verify 424 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 430 431Multiple Times Enable And Disable DHCP And Verify 432 [Documentation] Enable and Disable DHCP in a loop and verify VMI gets an IP address from DHCP 433 ... each time when DHCP is enabled 434 [Tags] Multiple_Times_Enable_And_Disable_DHCP_And_Verify 435 436 FOR ${i} IN RANGE ${2} 437 Set VMI IPv4 Origin ${True} 438 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 439 Set VMI IPv4 Origin ${False} 440 Verify VMI Network Interface Details ${default} Static ${default} ${default} 441 END 442 443 444Assign Static IPv4 Address With Invalid Netmask To VMI 445 [Documentation] Assign static IPv4 address with invalid netmask and expect error. 446 [Tags] Assign_Static_IPv4_Address_With_Invalid_Netmask_To_VMI 447 [Template] Set Static IPv4 Address To VMI And Verify 448 449 # ip gateway netmask valid_status_code 450 ${test_ipv4} ${test_gateway} 255.256.255.0 ${HTTP_BAD_REQUEST} 451 ${test_ipv4} ${test_gateway} ff.ff.ff.ff ${HTTP_BAD_REQUEST} 452 ${test_ipv4} ${test_gateway} 255.255.253.0 ${HTTP_BAD_REQUEST} 453 454 455Assign Static IPv4 Address With Invalid Gateway To VMI 456 [Documentation] Add static IPv4 address with invalid gateway and expect error. 457 [Tags] Assign_Static_IPv4_Address_With_Invalid_Gateway_To_VMI 458 [Template] Set Static IPv4 Address To VMI And Verify 459 460 # ip gateway netmask valid_status_code 461 ${test_ipv4} @@@.%%.44.11 ${test_netmask} ${HTTP_BAD_REQUEST} 462 ${test_ipv4} 0xa.0xb.0xc.0xd ${test_netmask} ${HTTP_BAD_REQUEST} 463 ${test_ipv4} 10.3.36 ${test_netmask} ${HTTP_BAD_REQUEST} 464 ${test_ipv4} 10.3.36.-10 ${test_netmask} ${HTTP_BAD_REQUEST} 465 466 467Enable DHCP When Host Is Off And Verify After Poweron 468 [Documentation] Enable DHCP when host is off and 469 ... check whether it is enabled after poweron. 470 [Tags] Enable_DHCP_When_Host_Is_Off_And_Verify_After_Poweron 471 [Setup] Redfish Power Off stack_mode=skip 472 473 Set VMI IPv4 Origin ${True} 474 Redfish Power On stack_mode=skip 475 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 476 477 478Disable DHCP When Host Is Off And Verify New State Reflects After Power On 479 [Documentation] Disable DHCP when host is off and 480 ... get network info and verify that VMI origin is static. 481 [Tags] Disable_DHCP_When_Host_Is_Off_And_Verify_New_State_Reflects_After_Power_On 482 [Setup] Redfish Power Off stack_mode=skip 483 484 Set VMI IPv4 Origin ${False} 485 Redfish Power On stack_mode=skip 486 Verify VMI Network Interface Details ${default} Static ${default} ${default} 487 488 489Enable VMI Stateless Address AutoConfig And Verify 490 [Documentation] Enable VMI SLAACv6 and verify an origin. 491 [Tags] Enable_VMI_Stateless_Address_AutoConfig_And_Verify 492 493 Set VMI SLAACv6 Origin ${True} 494 495 # Check origin is set to slaac and address are getting displayed. 496 Verify VMI IPv6 Address SLAAC 497 498 499Disable VMI Stateless Address AutoConfig And Verify 500 [Documentation] Disable VMI SLAACv6 and verify an origin. 501 [Tags] Disable_VMI_Stateless_Address_AutoConfig_And_Verify 502 [Setup] Set VMI SLAACv6 Origin ${True} 503 504 Set VMI SLAACv6 Origin ${False} 505 506 # Check origin is set to static and slaacv6 address are getting erased. 507 Verify VMI IPv6 Address Static 508 509 510Enable VMI SLAAC And Check Persistency On BMC Reboot 511 [Documentation] Enable VMI SLAACv6 and verify its persistency 512 ... on BMC reboot and this works on the setup where router 513 ... advertises network prefix. 514 [Tags] Enable_VMI_SLAAC_And_Check_Persistency_On_BMC_Reboot 515 516 Set VMI SLAACv6 Origin ${True} 517 518 # Reboot BMC and verify persistency. 519 OBMC Reboot (off) 520 Redfish Power On 521 Wait For Host Boot Progress To Reach Required State 522 Sleep 5s 523 524 # Check origin is set to slaac and address are getting displayed. 525 ${vmi_ipv6addr}= Verify VMI IPv6 Address SLAAC 526 Should Not Be Equal ${vmi_ipv6addr["Address"]} ${default_ipv6addr} 527 528 529Disable VMI SLAAC And Check Persistency On BMC Reboot 530 [Documentation] Disable VMI SLAACv6 and verify its persistency 531 ... on BMC reboot. 532 [Tags] Disable_VMI_SLAAC_And_Check_Persistency_On_BMC_Reboot 533 534 Set VMI SLAACv6 Origin ${False} 535 536 # Reboot BMC and verify persistency. 537 OBMC Reboot (off) 538 Redfish Power On 539 Wait For Host Boot Progress To Reach Required State 540 541 # Check if origin is set to static and SLAAC address are getting erased. 542 ${vmi_ipv6addr}= Verify VMI IPv6 Address Static 543 Should Be Equal ${vmi_ipv6addr["Address"]} ${default_ipv6addr} 544 545 546Disable VMI DHCPv4 When SLAAC Is Enabled And Verify 547 [Documentation] Disable VMI DHCPv4 parameter when SLAACv6 is enabled 548 ... and check whether the IPv4 address origin is set to static and 549 ... DHCPv4 address is getting erased. 550 [Tags] Disable_VMI_DHCPv4_When_SLAAC_Is_Enabled_And_Verify 551 [Setup] Set VMI IPv4 Origin ${True} 552 553 # Set IPv6 origin to SLAAC. 554 Set VMI SLAACv6 Origin ${True} 555 Verify VMI IPv6 Address SLAAC 556 557 # Disable VMI DHCPv4 and check IPv4 address origin is set to static. 558 Set VMI IPv4 Origin ${False} 559 Verify VMI Network Interface Details ${default} Static ${default} ${default} 560 561 562Enable VMI SLAAC When DHCPv6 Is Enabled And Verify 563 [Documentation] Enable VMI SLAACv6 when VMI DHCPv6 is enabled and 564 ... check IPv6 gets Slaac address and this works on the setup 565 ... where router advertise network prefix. 566 [Tags] Enable_VMI_SLAAC_When_DHCPv6_Is_Enabled_And_Verify 567 568 Set VMI DHCPv6 Property Enabled 569 570 # Enable SLAAC and check whether IPv6 origin is set to SLAAC. 571 Set VMI SLAACv6 Origin ${True} 572 573 # Check if origin is set to slaac and address are getting displayed. 574 ${vmi_ipv6addr}= Verify VMI IPv6 Address SLAAC 575 Should Not Be Equal ${vmi_ipv6addr["Address"]} ${default_ipv6addr} 576 Should Be Equal ${vmi_ipv6addr["PrefixLength"]} ${prefix_length} 577 578 579Disable VMI DHCPv6 Property And Verify 580 [Documentation] Disable VMI DHCPv6 property and verify IPv6 address 581 ... origin is set to static and DHCPv6 address is erased. 582 [Tags] Disable_VMI_DHCPv6_Property_And_Verify 583 [Setup] Set VMI DHCPv6 Property Enabled 584 585 Set VMI DHCPv6 Property Disabled 586 587 # Verify IPv6 address origin is set to static and DHCPv6 address is erased. 588 ${vmi_ipv6addr}= Verify VMI IPv6 Address Static 589 Should Be Equal ${vmi_ipv6addr["Address"]} ${default_ipv6addr} 590 591 592Enable VMI SLAAC When DHCPv4 Is Enabled And Verify 593 [Documentation] On VMI enable SLAAC when DHCPv4 is enabled and verify DHCPv4 settings are intact 594 ... and IPv6 origin is set to SLAAC & it gets assigned with SLAAC IPv6 address and this 595 ... works on the setup where router advertise network prefix. 596 [Tags] Enable_VMI_SLAAC_When_DHCPv4_Is_Enabled_And_Verify 597 [Setup] Set VMI IPv4 Origin ${True} 598 599 # Enable Autoconfig address and check whether IPv6 address origin is set to SLAAC. 600 Set VMI SLAACv6 Origin ${True} 601 Verify VMI IPv6 Address SLAAC 602 603 # Check there is no impact on IPv4 settings, IPv4 address origin should be DHCP. 604 Verify VMI Network Interface Details ${default} DHCP ${default} ${default} 605 606 607Disable VMI DHCPv6 Property And Check Persistency On BMC Reboot 608 [Documentation] Disable VMI DHCPv6 property and verify its persistency on 609 ... BMC reboot. 610 [Tags] Disable_VMI_DHCPv6_Property_And_Check_Persistency_On_BMC_Reboot 611 [Setup] Set VMI DHCPv6 Property Enabled 612 613 Set VMI DHCPv6 Property Disabled 614 615 # Reboot BMC and verify persistency. 616 OBMC Reboot (off) 617 618 # Verify IPv6 address origin is set to Static and DHCPv6 address is erased. 619 ${vmi_ipv6addr}= Verify VMI IPv6 Address Static 620 Should Be Equal ${vmi_ipv6addr["Address"]} ${default_ipv6addr} 621 622 623Enable VMI SLAAC When IPv4 Origin Is Static And Verify 624 [Documentation] On VMI enable SLAAC when IPv4 origin is static and verify IPv4 settings are intact 625 ... and IPv6 origin is set to SLAAC & it gets assigned with SLAAC IPv6 address and this works 626 ... on the setup where router advertise network prefix. 627 [Tags] Enable_VMI_SLAAC_When_IPv4_Origin_Is_Static_And_Verify 628 [Setup] Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} ${test_netmask} 629 [Teardown] Run keywords Delete VMI IPv4 Address AND Test Teardown Execution 630 631 # Enable Autoconfig address and check whether IPv6 address origin is set to SLAAC. 632 Set VMI SLAACv6 Origin ${True} 633 Verify VMI IPv6 Address SLAAC 634 635 # Check there is no impact on IPv4 settings, IPv4 address origin should be Static. 636 Verify VMI Network Interface Details ${test_ipv4} Static ${test_gateway} ${test_netmask} 637 638 639Configure Static VMI IPv6 Address And Verify 640 [Documentation] Add static VMI IPv6 address and check whether IPv6 origin is set to static 641 ... and Static IPv6 address is assigned. 642 [Tags] Configure_Static_VMI_IPv6_Address_And_Verify 643 644 Set Static VMI IPv6 Address ${test_vmi_ipv6addr} ${prefix_length} 645 646 # Verify IPv6 address origin is set to static and static IPv6 address is assigned. 647 ${vmi_ipv6addr}= Verify VMI IPv6 Address Static 648 Should Not Be Equal ${vmi_ipv6addr["Address"]} ${default_ipv6addr} 649 Should Be Equal ${vmi_ipv6addr["PrefixLength"]} ${prefix_length} 650 651 652*** Keywords *** 653 654Suite Setup Execution 655 [Documentation] Do test setup execution task. 656 657 Redfish.Login 658 659 Redfish Power Off 660 Set BIOS Attribute pvm_hmc_managed Enabled 661 Set BIOS Attribute pvm_stop_at_standby Disabled 662 663 Redfish Power On 664 Wait For Host Boot Progress To Reach Required State 665 666 ${active_channel_config}= Get Active Channel Config 667 Set Suite Variable ${active_channel_config} 668 Set Suite Variable ${ethernet_interface} ${active_channel_config['${CHANNEL_NUMBER}']['name']} 669 ${resp}= Redfish.Get 670 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 671 ${ip_resp}= Evaluate json.loads(r'''${resp.text}''') json 672 ${length}= Get Length ${ip_resp["IPv4StaticAddresses"]} 673 ${vmi_network_conf}= Run Keyword If ${length} != ${0} Get VMI Network Interface Details 674 Set Suite Variable ${vmi_network_conf} 675 676 677Test Teardown Execution 678 [Documentation] Do test teardown execution task. 679 680 FFDC On Test Case Fail 681 ${curr_mode}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 682 Run Keyword If ${curr_mode} == ${True} Set VMI IPv4 Origin ${False} 683 Run Keyword If '${vmi_network_conf["IPv4_Address"]}' != '${default}' 684 ... Set Static IPv4 Address To VMI And Verify ${vmi_network_conf["IPv4_Address"]} 685 ... ${vmi_network_conf["IPv4_Gateway"]} ${vmi_network_conf["IPv4_SubnetMask"]} 686 687 688Get Immediate Child Parameter From VMI Network Interface 689 [Documentation] Get immediate child parameter from VMI network interface. 690 [Arguments] ${parameter} ${valid_status_code}=${HTTP_OK} 691 692 # Description of argument(s): 693 # parameter parameter for which value is required. Ex: DHCPEnabled, MACAddress etc. 694 # valid_status_code Expected valid status code from GET request. 695 696 ${resp}= Redfish.Get 697 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 698 ... valid_status_codes=[${valid_status_code}] 699 700 ${ip_resp}= Evaluate json.loads(r'''${resp.text}''') json 701 ${value}= Set Variable If '${parameter}' != 'DHCPEnabled' ${ip_resp["${parameter}"]} 702 ... ${ip_resp["DHCPv4"]["${parameter}"]} 703 704 RETURN ${value} 705 706 707Switch VMI IPv4 Origin And Verify Details 708 [Documentation] Switch VMI IPv4 origin and verify details. 709 710 ${dhcp_mode_before}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 711 ${dhcp_enabled}= Set Variable If ${dhcp_mode_before} == ${False} ${True} ${False} 712 713 ${origin}= Set Variable If ${dhcp_mode_before} == ${False} DHCP Static 714 Set VMI IPv4 Origin ${dhcp_enabled} ${HTTP_ACCEPTED} 715 716 ${dhcp_mode_after}= Get Immediate Child Parameter From VMI Network Interface DHCPEnabled 717 Should Not Be Equal ${dhcp_mode_before} ${dhcp_mode_after} 718 719 Run Keyword If ${dhcp_mode_after} == ${True} 720 ... Verify VMI Network Interface Details ${default} ${origin} ${default} ${default} 721 722 723Delete VMI Static IP Address Using Different Users 724 [Documentation] Update user role and delete vmi static IP address. 725 [Arguments] ${username} ${password} ${valid_status_code} 726 [Teardown] Run Keywords Redfish.Login AND 727 ... Set Static IPv4 Address To VMI And Verify ${test_ipv4} ${test_gateway} 728 ... ${test_netmask} ${HTTP_ACCEPTED} AND Redfish.Logout 729 730 # Description of argument(s): 731 # username The host username. 732 # password The host password. 733 # valid_status_code The expected valid status code. 734 735 # TODO: operator_user role is not yet supported. 736 Skip If '${username}' == 'operator_user' 737 Redfish.Login ${username} ${password} 738 Delete VMI IPv4 Address delete_param=IPv4StaticAddresses valid_status_code=${valid_status_code} 739 740 741Config VMI Static IP Address Using Different Users 742 [Documentation] Update user role and update vmi static ip address. 743 [Arguments] ${username} ${password} ${ip} ${gateway} ${netmask} 744 ... ${valid_status_code} 745 746 # Description of argument(s): 747 # username The host username. 748 # password The host password. 749 # ip IP address to be added (e.g. "10.7.7.7"). 750 # subnet_mask Subnet mask for the IP to be added 751 # (e.g. "255.255.0.0"). 752 # gateway Gateway for the IP to be added (e.g. "10.7.7.1"). 753 # valid_status_code The expected valid status code. 754 755 # TODO: operator_user role is not yet supported. 756 Skip If '${username}' == 'operator_user' 757 Redfish.Login ${username} ${password} 758 Set Static IPv4 Address To VMI And Verify ${ip} ${gateway} ${netmask} ${valid_status_code} 759 760 761Read VMI Static IP Address Using Different Users 762 [Documentation] Update user role and read vmi static ip address. 763 [Arguments] ${username} ${password} ${valid_status_code} 764 765 # Description of argument(s): 766 # username The host username. 767 # password The host password. 768 # valid_status_code The expected valid status code. 769 770 # TODO: operator_user role is not yet supported. 771 Skip If '${username}' == 'operator_user' 772 Redfish.Login ${username} ${password} 773 Redfish.Get 774 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${ethernet_interface} 775 ... valid_status_codes=[${valid_status_code}] 776 777 778Delete BMC Users Using Redfish 779 [Documentation] Delete BMC users via redfish. 780 781 Redfish.Login 782 Delete BMC Users Via Redfish users=${USERS} 783 784 785Update User Role And Set VMI IPv4 Origin 786 [Documentation] Update User Role And Set VMI IPv4 Origin. 787 [Arguments] ${username} ${password} ${dhcp_enabled} ${valid_status_code} 788 789 # Description of argument(s): 790 # username The host username. 791 # password The host password. 792 # dhcp_enabled Indicates whether dhcp should be enabled 793 # (${True}, ${False}). 794 # valid_status_code The expected valid status code. 795 796 # TODO: operator_user role is not yet supported. 797 Skip If '${username}' == 'operator_user' 798 Redfish.Login ${username} ${password} 799 Set VMI IPv4 Origin ${dhcp_enabled} ${valid_status_code} 800 801 802Suite Teardown Execution 803 [Documentation] Do suite teardown execution task. 804 805 Run Keyword If ${vmi_network_conf} != ${None} 806 ... Set Static IPv4 Address To VMI And Verify ${vmi_network_conf["IPv4_Address"]} 807 ... ${vmi_network_conf["IPv4_Gateway"]} ${vmi_network_conf["IPv4_SubnetMask"]} 808 Delete All Redfish Sessions 809 Redfish.Logout 810 811 812Set VMI SLAACv6 Origin 813 [Documentation] Set VMI SLAACv6 origin. 814 [Arguments] ${slaac_enabled}=${False} ${valid_status_code}=${HTTP_ACCEPTED} 815 ... ${interface}=${ethernet_interface} 816 817 # Description of argument(s): 818 # slaacv6_enabled True if user wants to enable SLAACv6. Default is Static, hence value is set to False. 819 # valid_status_code Expected valid status code from PATCH request. Default is HTTP_OK. 820 # interface VMI interface (eg. eth0 or eth1). 821 822 ${data}= Set Variable If ${slaac_enabled} == ${False} ${DISABLE_SLAAC} ${ENABLE_SLAAC} 823 ${resp}= Redfish.Patch 824 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${interface} 825 ... body=${data} valid_status_codes=[${valid_status_code}] 826 827 Sleep ${wait_time} 828 Return From Keyword If ${valid_status_code} != ${HTTP_ACCEPTED} 829 ${resp}= Redfish.Get 830 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${interface} 831 Should Be Equal ${resp.dict["StatelessAddressAutoConfig"]["IPv6AutoConfigEnabled"]} ${slaac_enabled} 832 833 834Verify VMI IPv6 Address 835 [Documentation] Verify VMI IPv6 address configurations. 836 [Arguments] ${ipv6_origin} ${interface}=${ethernet_interface} 837 838 # Description of argument(s): 839 # ipv6_origin Origin of IPv6 address eg. Static or DHCPv6 or SLAAC. 840 # interface VMI interface (eg. eth0 or eth1). 841 842 ${resp}= Redfish.Get /redfish/v1/Systems/hypervisor/EthernetInterfaces/${interface} 843 844 @{vmi_ipv6_configurations}= Get From Dictionary ${resp.dict} IPv6Addresses 845 ${vmi_ipv6_config}= Get From List ${vmi_ipv6_configurations} 0 846 Should Not Be Empty ${vmi_ipv6_config["Address"]} 847 Should Be Equal As Strings ${vmi_ipv6_config["AddressOrigin"]} ${ipv6_origin} 848 RETURN &{vmi_ipv6_config} 849 850 851Set VMI DHCPv6 Property 852 [Documentation] Set VMI DHCPv6 attribute. 853 [Arguments] ${dhcpv6_operatingmode}=${Disabled} ${valid_status_code}=${HTTP_ACCEPTED} 854 ... ${interface}=${ethernet_interface} 855 856 # Description of argument(s): 857 # dhcpv6_operatingmode Enabled if user wants to enable DHCPv6. 858 # ... Default is Static, hence value is set to Disabled. 859 # valid_status_code Expected valid status code from PATCH request. Default is HTTP_OK. 860 # interface VMI interface (eg. eth0 or eth1). 861 862 ${data}= Set Variable If '${dhcpv6_operatingmode}' == 'Disabled' ${DISABLE_DHCPv6} ${ENABLE_DHCPv6} 863 ${resp}= Redfish.Patch 864 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${interface} 865 ... body=${data} valid_status_codes=[${valid_status_code}] 866 867 Sleep ${wait_time} 868 Return From Keyword If ${valid_status_code} != ${HTTP_ACCEPTED} 869 ${resp}= Redfish.Get 870 ... /redfish/v1/Systems/hypervisor/EthernetInterfaces/${interface} 871 Should Be Equal ${resp.dict["DHCPv6"]["OperatingMode"]} ${dhcpv6_operatingmode} 872 873 874Set Static VMI IPv6 Address 875 [Documentation] Add static VMI IPv6 address. 876 [Arguments] ${vmi_ipv6_addr} ${prefix_len} ${valid_status_codes}=${HTTP_ACCEPTED} 877 ... ${interface}=${ethernet_interface} 878 879 # Description of argument(s): 880 # vmi_ipv6_addr VMI IPv6 address to be added. 881 # prefix_len Prefix length for the VMI IPv6 to be added. 882 # valid_status_codes Expected valid status code from PATCH request. 883 # interface VMI interface (eg. eth0 or eth1). 884 885 ${prefix_length}= Convert To Integer ${prefix_len} 886 ${empty_dict}= Create Dictionary 887 ${vmi_ipv6_data}= Create Dictionary Address=${vmi_ipv6_addr} 888 ... PrefixLength=${prefix_length} 889 890 ${patch_list}= Create List 891 892 Append To List ${patch_list} ${vmi_ipv6_data} 893 ${data}= Create Dictionary IPv6StaticAddresses=${patch_list} 894 895 ${active_channel_config}= Get Active Channel Config 896 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']} 897 898 Redfish.patch /redfish/v1/Systems/hypervisor/EthernetInterfaces/${interface} 899 ... body=&{data} valid_status_codes=[${valid_status_codes}] 900