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!")
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!')
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 })
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)