##### SUMMARY

- When a playbook with eos_l3_interfaces , stae= replaced, is run twice, changed is always  'true'
- In the second run, the configured ipv4 address is removed.

This is because, no ip address is always passed as part of commands.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
eos_l3_interfaces.py

##### ANSIBLE VERSION
```
ansible 2.10.0.dev0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/gosriniv/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/gosriniv/ansible/lib/ansible
  executable location = /home/gosriniv/ansible/bin/ansible
  python version = 3.6.5 (default, Sep  4 2019, 12:23:33) [GCC 9.0.1 20190312 (Red Hat 9.0.1-0.10)]


```


##### OS / ENVIRONMENT
Arista EOS


##### STEPS TO REPRODUCE

```
eos_l3_interfaces:
      config:
        - name : Ethernet1
          ipv4:
            - address: 203.1.1.1/24
        - name: Ethernet2
          ipv6:
            - address: 5001::1/64
      state: replaced


```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
Changed should be False in the second run.
Commands should be empty in the second run

##### ACTUAL RESULTS

```
First Run
===========

changed: [10.8.38.32] => {
    "after": [
        {
            "ipv4": [
                {
                    "address": "203.1.1.1/24"
                }
            ],
            "name": "Ethernet1"
        },
        {
            "ipv6": [
                {
                    "address": "5001::1/64"
                }
            ],
            "name": "Ethernet2"
        },
        {
            "name": "Ethernet3"
        },
        {
            "name": "Ethernet4"
        },
        {
            "name": "Ethernet5"
        },
        {
            "name": "Ethernet6"
        },
        {
            "name": "Ethernet7"
        },
        {
            "ipv4": [
                {
                    "address": "10.8.38.32/24"
                }
            ],
            "name": "Management1"
        }
    ],
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "before": [
        {
            "name": "Ethernet1"
        },
        {
            "ipv6": [
                {
                    "address": "5001::1/64"
                }
            ],
            "name": "Ethernet2"
        },
        {
            "name": "Ethernet3"
        },
        {
            "name": "Ethernet4"
        },
        {
            "name": "Ethernet5"
        },
        {
            "name": "Ethernet6"
        },
        {
            "name": "Ethernet7"
        },
        {
            "ipv4": [
                {
                    "address": "10.8.38.32/24"
                }
            ],
            "name": "Management1"
        }
    ],
    "changed": true,
    "commands": [
        "interface Ethernet2",
        "no ip address",
        "interface Ethernet1",
        "ip address 203.1.1.1/24"
    ],
    "invocation": {
        "module_args": {
            "config": [
                {
                    "ipv4": [
                        {
                            "address": "203.1.1.1/24",
                            "secondary": null
                        }
                    ],
                    "ipv6": null,
                    "name": "Ethernet1"
                },
                {
                    "ipv4": null,
                    "ipv6": [
                        {
                            "address": "5001::1/64"
                        }
                    ],
                    "name": "Ethernet2"
                }
            ],
            "state": "replaced"
        }
    }
}
META: ran handlers
META: ran handlers

PLAY RECAP ***********************************************************************************************************************************************************************************
10.8.38.32                 : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   


Second Run:
==========

changed: [10.8.38.32] => {
    "after": [
        {
            "name": "Ethernet1"
        },
        {
            "ipv6": [
                {
                    "address": "5001::1/64"
                }
            ],
            "name": "Ethernet2"
        },
        {
            "name": "Ethernet3"
        },
        {
            "name": "Ethernet4"
        },
        {
            "name": "Ethernet5"
        },
        {
            "name": "Ethernet6"
        },
        {
            "name": "Ethernet7"
        },
        {
            "ipv4": [
                {
                    "address": "10.8.38.32/24"
                }
            ],
            "name": "Management1"
        }
    ],
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "before": [
        {
            "ipv4": [
                {
                    "address": "203.1.1.1/24"
                }
            ],
            "name": "Ethernet1"
        },
        {
            "ipv6": [
                {
                    "address": "5001::1/64"
                }
            ],
            "name": "Ethernet2"
        },
        {
            "name": "Ethernet3"
        },
        {
            "name": "Ethernet4"
        },
        {
            "name": "Ethernet5"
        },
        {
            "name": "Ethernet6"
        },
        {
            "name": "Ethernet7"
        },
        {
            "ipv4": [
                {
                    "address": "10.8.38.32/24"
                }
            ],
            "name": "Management1"
        }
    ],
    "changed": true,
    "commands": [
        "interface Ethernet2",
        "no ip address",
        "interface Ethernet1",
        "no ip address"
    ],
    "invocation": {
        "module_args": {
            "config": [
                {
                    "ipv4": [
                        {
                            "address": "203.1.1.1/24",
                            "secondary": null
                        }
                    ],
                    "ipv6": null,
                    "name": "Ethernet1"
                },
                {
                    "ipv4": null,
                    "ipv6": [
                        {
                            "address": "5001::1/64"
                        }
                    ],
                    "name": "Ethernet2"
                }
            ],
            "state": "replaced"
        }
    }
}
META: ran handlers
META: ran handlers

PLAY RECAP ***********************************************************************************************************************************************************************************
10.8.38.32                 : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

```

"""
The eos_l3_interfaces class
It is in this file where the current configuration (as dict)
is compared to the provided configuration (as dict) and the command set
necessary to bring the current configuration to it's desired end-state is
created
"""
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
from ansible.module_utils.network.common.cfg.base import ConfigBase
from ansible.module_utils.network.common.utils import to_list, param_list_to_dict
from ansible.module_utils.network.eos.facts.facts import Facts
from ansible.module_utils.network.eos.utils.utils import normalize_interface
class L3_interfaces(ConfigBase):