CiscoDevNet / ansible-dcnm

Apache License 2.0
45 stars 36 forks source link

NDFC: Error when using the dcnm_network.py module in ansible_collections/cisco/dcnm/plugins/modules #197

Closed smukkavi closed 1 year ago

smukkavi commented 1 year ago

Community Note

Ansible Version and collection version

DCNM version

Affected module(s)

dcnm_network.py

Ansible Playbook

# Copy-paste your anisble playbook here 

Debug Output

Expected Behavior

Customer is using ingress replication for VxLAN setup in their test lab, this option should not expect a multicast address. But while running the Ansible playbook, they see error message about the multicast address which is not set anywhere.

Actual Behavior

We are getting an error when using the dcnm_network.py module in ansible_collections/cisco/dcnm/plugins/modules.

TASK [configure_network : Merge networks] ** failed: [lab_ndfc_server] (item=['10.30.5.19', 'Ethernet1/13']) => {"ansible_loop_var": "item", "changed": false, "item": ["10.30.5.19", "Ethernet1/13"], "msg": {"DATA": {"cause": null, "localizedMessage": "Invalid: Fabric mode is not multicast and Multicast Address: 239.1.1.0 is present", "message": "Invalid: Fabric mode is not multicast and Multicast Address: 239.1.1.0 is present", "stackTrace": [{"classLoaderName": "app", "className": "com.cisco.dcbu.topdown.dao.LanNetworkDAO", "fileName": "LanNetworkDAO.java", "lineNumber": 378, "methodName": "validateNwCreateParams", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "com.cisco.dcbu.topdown.dao.LanNetworkDAO", "fileName": "LanNetworkDAO.java", "lineNumber": 639, "methodName": "insertOrUpdateNetwork", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "com.cisco.dcbu.topdown.dao.LanNetworkDAO", "fileName": "LanNetworkDAO.java", "lineNumber": 428, "methodName": "insertOrUpdateNetwork", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "com.cisco.dcbu.topdown.dao.LanNetworkDAO", "fileName": "LanNetworkDAO.java", "lineNumber": 222, "methodName": "insertOrUpdateNetwork", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "com.cisco.dcbu.topdown.impl.LanNetworkImpl", "fileName": "LanNetworkImpl.java", "lineNumber": 131, "methodName": "createOrUpdateNetwork", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "com.cisco.dcbu.topdown.service.LanNetworks", "fileName": "LanNetworks.java", "lineNumber": 145, "methodName": "createNetwork", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": null, "className": "jdk.internal.reflect.GeneratedMethodAccessor975", "fileName": null, "lineNumber": -1, "methodName": "invoke", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": null, "className": "jdk.internal.reflect.DelegatingMethodAccessorImpl", "fileName": null, "lineNumber": -1, "methodName": "invoke", "moduleName": "java.base", "moduleVersion": "11.0.14.1", "nativeMethod": false}, {"classLoaderName": null, "className": "java.lang.reflect.Method", "fileName": null, "lineNumber": -1, "methodName": "invoke", "moduleName": "java.base", "moduleVersion": "11.0.14.1", "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory", "fileName": "ResourceMethodInvocationHandlerFactory.java", "lineNumber": 52, "methodName": "lambda$static$0", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$$Lambda$1576/0x00000000a04128d0", "fileName": null, "lineNumber": -1, "methodName": "invoke", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1", "fileName": "AbstractJavaResourceMethodDispatcher.java", "lineNumber": 124, "methodName": "run", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher", "fileName": "AbstractJavaResourceMethodDispatcher.java", "lineNumber": 167, "methodName": "invoke", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker", "fileName": "JavaResourceMethodDispatcherProvider.java", "lineNumber": 176, "methodName": "doDispatch", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher", "fileName": "AbstractJavaResourceMethodDispatcher.java", "lineNumber": 79, "methodName": "dispatch", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.model.ResourceMethodInvoker", "fileName": "ResourceMethodInvoker.java", "lineNumber": 475, "methodName": "invoke", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.model.ResourceMethodInvoker", "fileName": "ResourceMethodInvoker.java", "lineNumber": 397, "methodName": "apply", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.model.ResourceMethodInvoker", "fileName": "ResourceMethodInvoker.java", "lineNumber": 81, "methodName": "apply", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.ServerRuntime$1", "fileName": "ServerRuntime.java", "lineNumber": 255, "methodName": "run", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.internal.Errors$1", "fileName": "Errors.java", "lineNumber": 248, "methodName": "call", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.internal.Errors$1", "fileName": "Errors.java", "lineNumber": 244, "methodName": "call", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.internal.Errors", "fileName": "Errors.java", "lineNumber": 292, "methodName": "process", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.internal.Errors", "fileName": "Errors.java", "lineNumber": 274, "methodName": "process", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.internal.Errors", "fileName": "Errors.java", "lineNumber": 244, "methodName": "process", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.process.internal.RequestScope", "fileName": "RequestScope.java", "lineNumber": 265, "methodName": "runInScope", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.ServerRuntime", "fileName": "ServerRuntime.java", "lineNumber": 234, "methodName": "process", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.server.ApplicationHandler", "fileName": "ApplicationHandler.java", "lineNumber": 684, "methodName": "handle", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.servlet.WebComponent", "fileName": "WebComponent.java", "lineNumber": 394, "methodName": "serviceImpl", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.servlet.WebComponent", "fileName": "WebComponent.java", "lineNumber": 346, "methodName": "service", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.servlet.ServletContainer", "fileName": "ServletContainer.java", "lineNumber": 366, "methodName": "service", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.servlet.ServletContainer", "fileName": "ServletContainer.java", "lineNumber": 319, "methodName": "service", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.glassfish.jersey.servlet.ServletContainer", "fileName": "ServletContainer.java", "lineNumber": 205, "methodName": "service", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.ApplicationFilterChain", "fileName": "ApplicationFilterChain.java", "lineNumber": 227, "methodName": "internalDoFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.ApplicationFilterChain", "fileName": "ApplicationFilterChain.java", "lineNumber": 162, "methodName": "doFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.tomcat.websocket.server.WsFilter", "fileName": "WsFilter.java", "lineNumber": 53, "methodName": "doFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.ApplicationFilterChain", "fileName": "ApplicationFilterChain.java", "lineNumber": 189, "methodName": "internalDoFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.ApplicationFilterChain", "fileName": "ApplicationFilterChain.java", "lineNumber": 162, "methodName": "doFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.springframework.web.filter.RequestContextFilter", "fileName": "RequestContextFilter.java", "lineNumber": 100, "methodName": "doFilterInternal", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.springframework.web.filter.OncePerRequestFilter", "fileName": "OncePerRequestFilter.java", "lineNumber": 117, "methodName": "doFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.ApplicationFilterChain", "fileName": "ApplicationFilterChain.java", "lineNumber": 189, "methodName": "internalDoFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.ApplicationFilterChain", "fileName": "ApplicationFilterChain.java", "lineNumber": 162, "methodName": "doFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.springframework.web.filter.FormContentFilter", "fileName": "FormContentFilter.java", "lineNumber": 93, "methodName": "doFilterInternal", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.springframework.web.filter.OncePerRequestFilter", "fileName": "OncePerRequestFilter.java", "lineNumber": 117, "methodName": "doFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.ApplicationFilterChain", "fileName": "ApplicationFilterChain.java", "lineNumber": 189, "methodName": "internalDoFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.ApplicationFilterChain", "fileName": "ApplicationFilterChain.java", "lineNumber": 162, "methodName": "doFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.springframework.web.filter.CharacterEncodingFilter", "fileName": "CharacterEncodingFilter.java", "lineNumber": 201, "methodName": "doFilterInternal", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.springframework.web.filter.OncePerRequestFilter", "fileName": "OncePerRequestFilter.java", "lineNumber": 117, "methodName": "doFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.ApplicationFilterChain", "fileName": "ApplicationFilterChain.java", "lineNumber": 189, "methodName": "internalDoFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.ApplicationFilterChain", "fileName": "ApplicationFilterChain.java", "lineNumber": 162, "methodName": "doFilter", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.StandardWrapperValve", "fileName": "StandardWrapperValve.java", "lineNumber": 197, "methodName": "invoke", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.StandardContextValve", "fileName": "StandardContextValve.java", "lineNumber": 97, "methodName": "invoke", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.authenticator.AuthenticatorBase", "fileName": "AuthenticatorBase.java", "lineNumber": 541, "methodName": "invoke", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.StandardHostValve", "fileName": "StandardHostValve.java", "lineNumber": 135, "methodName": "invoke", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.valves.ErrorReportValve", "fileName": "ErrorReportValve.java", "lineNumber": 92, "methodName": "invoke", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.core.StandardEngineValve", "fileName": "StandardEngineValve.java", "lineNumber": 78, "methodName": "invoke", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.valves.RemoteIpValve", "fileName": "RemoteIpValve.java", "lineNumber": 769, "methodName": "invoke", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.catalina.connector.CoyoteAdapter", "fileName": "CoyoteAdapter.java", "lineNumber": 360, "methodName": "service", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.coyote.http11.Http11Processor", "fileName": "Http11Processor.java", "lineNumber": 399, "methodName": "service", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.coyote.AbstractProcessorLight", "fileName": "AbstractProcessorLight.java", "lineNumber": 65, "methodName": "process", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.coyote.AbstractProtocol$ConnectionHandler", "fileName": "AbstractProtocol.java", "lineNumber": 889, "methodName": "process", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.tomcat.util.net.NioEndpoint$SocketProcessor", "fileName": "NioEndpoint.java", "lineNumber": 1743, "methodName": "doRun", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.tomcat.util.net.SocketProcessorBase", "fileName": "SocketProcessorBase.java", "lineNumber": 49, "methodName": "run", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.tomcat.util.threads.ThreadPoolExecutor", "fileName": "ThreadPoolExecutor.java", "lineNumber": 1191, "methodName": "runWorker", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker", "fileName": "ThreadPoolExecutor.java", "lineNumber": 659, "methodName": "run", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": "app", "className": "org.apache.tomcat.util.threads.TaskThread$WrappingRunnable", "fileName": "TaskThread.java", "lineNumber": 61, "methodName": "run", "moduleName": null, "moduleVersion": null, "nativeMethod": false}, {"classLoaderName": null, "className": "java.lang.Thread", "fileName": null, "lineNumber": -1, "methodName": "run", "moduleName": "java.base", "moduleVersion": "11.0.14.1", "nativeMethod": false}], "suppressed": []}, "MESSAGE": "Bad Request", "METHOD": "POST", "REQUEST_PATH": https://10.30.2.151:443/appcenter/cisco/ndfc/api/v1/lan-fabric/rest/top-down/fabrics/NEP6_Nexus_fabric/networks, "RETURN_CODE": 400, "ROLLBACK_RESULT": "SUCCESS - Attempted rollback of the task has succeeded"}}

Steps to Reproduce

Run the playbook dcnm_network.py using ingress-replication.

References

praveenramoorthy commented 1 year ago

@smukkavi thanks for opening this SR. This issue is already fixed through #188. It will be part of the upcoming release. Thanks.

praveenramoorthy commented 1 year ago

Fixed as part of #208

jatin-agarwal commented 1 year ago

It seems this issue still exists in version 3.2.0. In the file, I can see defaukt vaues being assigned to multicast_group_address based on dcnm version. This in turn in resulting in error when using the network module for a fabric with ingress-replication.

praveenramoorthy commented 1 year ago

@jatin-agarwal Will check and fix this issue

praveenramoorthy commented 1 year ago

@jatin-agarwal This issue is fixed in #224.