Ejemplo n.º 1
0
def main():
    helper = get_connection(
        vsys=True,
        template=True,
        template_stack=True,
        with_state=True,
        with_classic_provider_spec=True,
        argument_spec=dict(
            zone=dict(required=True),
            mode=dict(
                choices=["tap", "virtual-wire", "layer2", "layer3", "external"],
                default="layer3",
            ),
            interface=dict(type="list", elements="str"),
            zone_profile=dict(),
            log_setting=dict(),
            enable_userid=dict(type="bool", default=False),
            include_acl=dict(type="list", elements="str"),
            exclude_acl=dict(type="list", elements="str"),
        ),
    )
    module = AnsibleModule(
        argument_spec=helper.argument_spec,
        supports_check_mode=True,
        required_one_of=helper.required_one_of,
    )

    # Verify imports, build pandevice object tree.
    parent = helper.get_pandevice_parent(module)

    # Set the Zone object params
    zone_spec = {
        "name": module.params["zone"],
        "mode": module.params["mode"],
        "interface": module.params["interface"],
        "zone_profile": module.params["zone_profile"],
        "log_setting": module.params["log_setting"],
        "enable_user_identification": module.params["enable_userid"],
        "include_acl": module.params["include_acl"],
        "exclude_acl": module.params["exclude_acl"],
    }

    # Retrieve the current list of zones
    try:
        zones = Zone.refreshall(parent, add=False)
    except PanDeviceError as e:
        module.fail_json(msg="Failed refresh: {0}".format(e))

    # Build the zone and attach to the parent
    new_zone = Zone(**zone_spec)
    parent.add(new_zone)

    # Perform the requeseted action.
    changed, diff = helper.apply_state(new_zone, zones, module)

    # Done!
    module.exit_json(changed=changed, diff=diff, msg="Done!")
Ejemplo n.º 2
0
def main():
    helper = get_connection(
        vsys=True,
        template=True,
        template_stack=True,
        with_state=True,
        with_classic_provider_spec=True,
        argument_spec=dict(
            zone=dict(required=True),
            mode=dict(choices=[
                'tap', 'virtual-wire', 'layer2', 'layer3', 'external'
            ],
                      default='layer3'),
            interface=dict(type='list', elements='str'),
            zone_profile=dict(),
            log_setting=dict(),
            enable_userid=dict(type='bool', default=False),
            include_acl=dict(type='list', elements='str'),
            exclude_acl=dict(type='list', elements='str'),
        ),
    )
    module = AnsibleModule(
        argument_spec=helper.argument_spec,
        supports_check_mode=True,
        required_one_of=helper.required_one_of,
    )

    # Verify imports, build pandevice object tree.
    parent = helper.get_pandevice_parent(module)

    # Set the Zone object params
    zone_spec = {
        'name': module.params['zone'],
        'mode': module.params['mode'],
        'interface': module.params['interface'],
        'zone_profile': module.params['zone_profile'],
        'log_setting': module.params['log_setting'],
        'enable_user_identification': module.params['enable_userid'],
        'include_acl': module.params['include_acl'],
        'exclude_acl': module.params['exclude_acl']
    }

    # Retrieve the current list of zones
    try:
        zones = Zone.refreshall(parent, add=False)
    except PanDeviceError as e:
        module.fail_json(msg='Failed refresh: {0}'.format(e))

    # Build the zone and attach to the parent
    new_zone = Zone(**zone_spec)
    parent.add(new_zone)

    # Perform the requeseted action.
    changed, diff = helper.apply_state(new_zone, zones, module)

    # Done!
    module.exit_json(changed=changed, diff=diff, msg='Done!')
Ejemplo n.º 3
0
    def populate_facts(self):
        # Get session usage XML
        session_root = self.parent.op('show session meter')

        # Loop through all VSYS
        virtual_systems = []
        vsys_list = Vsys.refreshall(self.parent, name_only=True)
        for vsys in vsys_list:
            for var in ('display_name', 'interface', 'virtual_routers'):
                vsys.refresh_variable(var)

            zones = [x.name for x in Zone.refreshall(vsys, name_only=True)]
            vsys_id = vsys.name[4:]
            vsys_sessions = session_root.find(".//entry/[vsys='" + vsys_id + "']")
            vsys_currentsessions = vsys_sessions.find('.//current').text
            vsys_maxsessions = vsys_sessions.find('.//maximum').text

            virtual_systems.append({
                'vsys_id': vsys_id,
                'vsys_name': vsys.name,
                'vsys_description': vsys.display_name,
                'vsys_iflist': vsys.interface,
                'vsys_vrlist': vsys.virtual_routers,
                'vsys_zonelist': zones,
                'vsys_maxsessions': vsys_maxsessions,
                'vsys_currentsessions': vsys_currentsessions,
            })

        self.facts.update({
            'virtual-systems': virtual_systems
        })
Ejemplo n.º 4
0
def main():
    helper = get_connection(
        vsys=True,
        template=True,
        template_stack=True,
        with_classic_provider_spec=True,
        argument_spec=dict(
            name=dict(),
        ),
    )
    module = AnsibleModule(
        argument_spec=helper.argument_spec,
        supports_check_mode=False,
        required_one_of=helper.required_one_of,
    )

    # Verify imports, build pandevice object tree.
    parent = helper.get_pandevice_parent(module)

    renames = (
        ('name', 'zone'),
        ('enable_user_identification', 'enable_userid'),
    )

    name = module.params['name']
    if name is None:
        try:
            listing = Zone.refreshall(parent)
        except PanDeviceError as e:
            module.fail_json(msg='Failed refreshall: {0}'.format(e))

        zones = helper.to_module_dict(listing, renames)
        module.exit_json(changed=False, zones=zones)

    zone = Zone(name)
    parent.add(zone)
    try:
        zone.refresh()
    except PanDeviceError as e:
        module.fail_json(msg='Failed refresh: {0}'.format(e))

    spec = helper.to_module_dict(zone, renames)
    module.exit_json(changed=False, spec=spec)