dell / dellemc-openmanage-ansible-modules

Dell OpenManage Ansible Modules
GNU General Public License v3.0
335 stars 163 forks source link

[BUG]: IPv6 on new blades using quick deploy fails #565

Closed DellDavidMcKay closed 1 year ago

DellDavidMcKay commented 1 year ago

Bug Description

@sachin-apa Unable to set IPv4 when IPv6 is disabled.

The issue is not present if the device already has a ipv6 gateway or prefix from a previus configuration. e.g. The device had an IPv6 setting prior to being disable

I have reproduced and troubleshoot this issue.

In ome_device_quick_deploy.py it does not set PrefixLength to ipv6_prefix_length (which is the ipv6 prefix var) so when it posts resp_data, the value is null. It should be 1 and gateway :: because the REST interface requires a value for it. elif ipv6_enabled is not None and ipv6_enabled is False: req_data["ProtocolTypeV6"] = str(ipv6_enabled).lower()

should be: elif ipv6_enabled is not None and ipv6_enabled is False: req_data["ProtocolTypeV6"] = str(ipv6_enabled).lower() req_data["PrefixLength"] = "1" req_data["IpV6Gateway"] = "::"

Alt you could enforce setting prefix and gateway values even when ipv6 is disabled but this might confuse some people

Could be related too #533

Component or Module Name

ome_device_quick_deploy.py

Ansible Version

Ansible 2.12

Python Version

Python 3.8

iDRAC/OME/OME-M version

OMEM 2.10.10

Operating System

N/A, Quick dpeloy settings on OMEM

Playbook Used

dellemc.openmanage.ome_device_quick_deploy

Logs

N/A air gapped syste,

Steps to Reproduce

Using a new out of the box blade, send a quick deploy request for IPv4 enabled with static IP and IPv6 disabled.

Expected Behavior

IPv4 IP address is applied and IPv6 is disabled

Actual Behavior

RESTAPI error from the OMEM states that the configuration has an invalid IPv6 subnetmask,

Screenshots

No response

Additional Information

No response

sachin-apa commented 1 year ago

@DellDavidMcKay looks like duplicate of #533 .. In our code we are checking if ipv6 input, if false we were just sending back whatever the API GET returns to us.. and the API GET is returning the default prefix length as 0 and hence you are seeing the job failure calling out that prefix length is invalid.

The suggested workaround is good, when it comes as default value from the argument specs instead of hard coding which can be misleading to users who don't send those values from a playbook.

The main issue is that when we send ipv6 as disable/false and prefix length as 0(invalid) the OME-M job should ideally be ignoring the ipv6 settings as we have disabled it . But it is failing with a prefix length error which we have reported to OME-M team internally and they are gonna fix it (ETA yet to get updates).

i will be closing this and tracking as part of the original issue #533

DellDavidMcKay commented 1 year ago

Sounds good, just seemed like 533 was being set to N/A as it implied the blade was not present?