Repository: ansible/ansible

Issue:
asa_config commit and update options non-functional
##### ISSUE TYPE
 - Bug Report
 
##### COMPONENT NAME
asa_config

##### ANSIBLE VERSION

```
ansible 2.4.0.0
  config file = None
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 2.7.12+ (default, Sep 17 2016, 12:08:02) [GCC 6.2.0 20160914]

```

##### CONFIGURATION

```
root@ansible:~# ansible-config dump --only-changed
root@ansible:~#
```


##### OS / ENVIRONMENT

Running Ansible from Ubuntu 16.10
Running Ansible aganst ASA 9.8(1)

##### SUMMARY

When running `asa_config`, trying to use `update` or `commit` options produces error indicating that neither are supported parameters.

##### STEPS TO REPRODUCE

I've pasted a sample task below that produces the error

```yaml
  tasks:
   - name: Check TCP State Bypass for Object
     asa_config:
      update: check
      lines:
       - access-list tcp-bypass-acl extended permit ip object {{ object_name }} any
       - access-list tcp-bypass-acl extended permit ip any object {{ object_name }}
      provider: "{{ cli }}"
     register: is_bypassed
```

##### EXPECTED RESULTS
Documentation indicates that these options would cause the task to not actually apply the changes to the device.

##### ACTUAL RESULTS
Below is the output. interesting line: `"msg": "Unsupported parameters for (asa_config) module: update Supported parameters include: after,auth_pass,authorize,backup,before,config,context,defaults,host,lines,match,parents,password,passwords,port,provider,replace,save,src,ssh_keyfile,timeout,username"`

Seems to indicate that update and commit aren't options.


```
root@ansible:/home/bocesadmin/playbooks# ansible-playbook -vvvv del-vnet-static-nat.yaml
ansible-playbook 2.4.0.0
  config file = None
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible
  executable location = /usr/local/bin/ansible-playbook
  python version = 2.7.12+ (default, Sep 17 2016, 12:08:02) [GCC 6.2.0 20160914]
No config file found; using defaults
setting up inventory plugins
Parsed /etc/ansible/hosts inventory source with ini plugin
Loading callback plugin default of type stdout, v2.0 from /usr/local/lib/python2.7/dist-packages/ansible/plugins/callback/__init__.pyc

PLAYBOOK: del-vnet-static-nat.yaml ************************************************************************************************************************************
1 plays in del-vnet-static-nat.yaml
NAT Object Name: Test2
Inside IP Address: 1.1.1.2

PLAY [vnet-asas] ******************************************************************************************************************************************************
META: ran handlers

TASK [Check TCP State Bypass for Object] ******************************************************************************************************************************
task path: /home/bocesadmin/playbooks/del-vnet-static-nat.yaml:20
<192.168.xx.114> using connection plugin network_cli
<192.168.xx.122> using connection plugin network_cli
<192.168.xx.114> socket_path: /root/.ansible/pc/4aac022917
<192.168.xx.122> socket_path: /root/.ansible/pc/e50792166a
Using module file /usr/local/lib/python2.7/dist-packages/ansible/modules/network/asa/asa_config.py
<192.168.xx.114> ESTABLISH LOCAL CONNECTION FOR USER: root
<192.168.xx.114> EXEC /bin/sh -c 'echo ~ && sleep 0'
Using module file /usr/local/lib/python2.7/dist-packages/ansible/modules/network/asa/asa_config.py
<192.168.xx.122> ESTABLISH LOCAL CONNECTION FOR USER: root
<192.168.xx.122> EXEC /bin/sh -c 'echo ~ && sleep 0'
<192.168.xx.122> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1507758062.15-202091755212852 `" && echo ansible-tmp-1507758062.15-202091755212852="` echo /root/.ansible/tmp/ansible-tmp-1507758062.15-202091755212852 `" ) && sleep 0'
<192.168.xx.114> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1507758062.15-190689918581943 `" && echo ansible-tmp-1507758062.15-190689918581943="` echo /root/.ansible/tmp/ansible-tmp-1507758062.15-190689918581943 `" ) && sleep 0'
<192.168.xx.122> PUT /tmp/tmpfxis7S TO /root/.ansible/tmp/ansible-tmp-1507758062.15-202091755212852/asa_config.py
<192.168.xx.122> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1507758062.15-202091755212852/ /root/.ansible/tmp/ansible-tmp-1507758062.15-202091755212852/asa_config.py && sleep 0'
<192.168.xx.114> PUT /tmp/tmp0kiItv TO /root/.ansible/tmp/ansible-tmp-1507758062.15-190689918581943/asa_config.py
<192.168.xx.114> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1507758062.15-190689918581943/ /root/.ansible/tmp/ansible-tmp-1507758062.15-190689918581943/asa_config.py && sleep 0'
<192.168.xx.122> EXEC /bin/sh -c '/usr/bin/python /root/.ansible/tmp/ansible-tmp-1507758062.15-202091755212852/asa_config.py; rm -rf "/root/.ansible/tmp/ansible-tmp-1507758062.15-202091755212852/" > /dev/null 2>&1 && sleep 0'
<192.168.xx.114> EXEC /bin/sh -c '/usr/bin/python /root/.ansible/tmp/ansible-tmp-1507758062.15-190689918581943/asa_config.py; rm -rf "/root/.ansible/tmp/ansible-tmp-1507758062.15-190689918581943/" > /dev/null 2>&1 && sleep 0'
fatal: [192.168.xx.122]: FAILED! => {
    "changed": false,
    "failed": true,
    "invocation": {
        "module_args": {
            "lines": [
                "access-list tcp-bypass-acl extended permit ip object Test2 any",
                "access-list tcp-bypass-acl extended permit ip any object Test2"
            ],
            "provider": {
                "auth_pass": null,
                "authorize": false,
                "context": null,
                "host": "192.168.xx.122",
                "password": XXXX,
                "passwords": null,
                "port": null,
                "ssh_keyfile": null,
                "timeout": null,
                "transport": "cli",
                "username": XXXX
            },
            "update": "check"
        }
    },
    "msg": "Unsupported parameters for (asa_config) module: update Supported parameters include: after,auth_pass,authorize,backup,before,config,context,defaults,host,lines,match,parents,password,passwords,port,provider,replace,save,src,ssh_keyfile,timeout,username"
}
fatal: [192.168.xx.114]: FAILED! => {
    "changed": false,
    "failed": true,
    "invocation": {
        "module_args": {
            "lines": [
                "access-list tcp-bypass-acl extended permit ip object Test2 any",
                "access-list tcp-bypass-acl extended permit ip any object Test2"
            ],
            "provider": {
                "auth_pass": null,
                "authorize": false,
                "context": null,
                "host": "192.168.xx.114",
                "password": XXXX,
                "passwords": null,
                "port": null,
                "ssh_keyfile": null,
                "timeout": null,
                "transport": "cli",
                "username": XXXX
            },
            "update": "check"
        }
    },
    "msg": "Unsupported parameters for (asa_config) module: update Supported parameters include: after,auth_pass,authorize,backup,before,config,context,defaults,host,lines,match,parents,password,passwords,port,provider,replace,save,src,ssh_keyfile,timeout,username"
}
        to retry, use: --limit @/home/bocesadmin/playbooks/del-vnet-static-nat.retry

PLAY RECAP ************************************************************************************************************************************************************
192.168.xx.114             : ok=0    changed=0    unreachable=0    failed=1
192.168.xx.122             : ok=0    changed=0    unreachable=0    failed=1


```



Discussion:
cc @ogenstad @privateip
[click here for bot help](https://github.com/ansible/ansibullbot/blob/master/ISSUE_HELP.md)
<!--- boilerplate: notify --->

Resolving patch:
diff --git a/lib/ansible/modules/network/asa/asa_config.py b/lib/ansible/modules/network/asa/asa_config.py
--- a/lib/ansible/modules/network/asa/asa_config.py
+++ b/lib/ansible/modules/network/asa/asa_config.py
@@ -93,28 +93,6 @@
     required: false
     default: line
     choices: ['line', 'block']
-  update:
-    description:
-      - The I(update) argument controls how the configuration statements
-        are processed on the remote device.  Valid choices for the I(update)
-        argument are I(merge) and I(check).  When the argument is set to
-        I(merge), the configuration changes are merged with the current
-        device running configuration.  When the argument is set to I(check)
-        the configuration updates are determined but not actually configured
-        on the remote device.
-    required: false
-    default: merge
-    choices: ['merge', 'check']
-  commit:
-    description:
-      - This argument specifies the update method to use when applying the
-        configuration changes to the remote node.  If the value is set to
-        I(merge) the configuration updates are merged with the running-
-        config.  If the value is set to I(check), no changes are made to
-        the remote host.
-    required: false
-    default: merge
-    choices: ['merge', 'check']
   backup:
     description:
       - This argument will cause the module to create a full backup of


Test patch: