def create(self, id, sdata): sdata.getSession().addYangSessionPreReserveProcessor( self.create_pre_processor) #Fetch Local Config Object config = getCurrentObjectConfig(id, sdata, 'transport_options') #Fetch Service Model Context Object smodelctx = None #Fetch Parent Object parentobj = None dev = [] inputkeydict = {} devbindobjs = {} inputdict = {} opaque_args = self.opaque_args # START OF FETCHING THE LEAF PARAMETERS inputdict['name'] = config.get_field_value('name') inputdict['transport_option'] = config.get_field_value( 'transport_option') inputdict['tcp_options'] = config.get_field_value('tcp_options') # END OF FETCHING THE LEAF PARAMETERS _Gen_obj = getLocalObject(sdata, 'day1service') device_mgmt_ip_address = _Gen_obj.day1service.device_ip #Fetch Device Object dev = getDeviceObject(device_mgmt_ip_address, sdata) # START OF FETCHING THE PARENT KEY LEAF PARAMETERS inputkeydict[ 'day1services_day1service_netflow_netflow_flow_records_flow_record_name'] = sdata.getRcPath( ).split('/')[-4].split('=')[1] inputkeydict['day1services_day1service_device_ip'] = sdata.getRcPath( ).split('/')[-8].split('=')[1] # END OF FETCHING THE PARENT KEY LEAF PARAMETERS dev_pro_name = inputdict['name'] if util.isNotEmpty(inputdict['transport_option']): if util.isNotEmpty(inputdict['tcp_options']): dev_pro_name = "collect_transport_%s_%s" % ( inputdict['transport_option'], inputdict['tcp_options']) else: dev_pro_name = "collect_transport_%s" % ( inputdict['transport_option']) #Use the custom methods to process the data service_customization.ServiceDataCustomization.process_service_create_data( smodelctx, sdata, dev, id=id, device=dev, parentobj=parentobj, inputdict=inputdict, inputkeydict=inputkeydict, config=config, hopaque=opaque_args) #Start of Device binding with python bindings netflow_object = devices.device.netflow.netflow() netflow_flow_records_object = devices.device.netflow.flow_records.flow_records( ) _Gen_obj = getLocalObject(sdata, 'flow-record') inputdict[ 'day1services_day1service_netflow_netflow_flow_records_flow_record_name'] = _Gen_obj.flow_record.name if util.isNotEmpty( inputdict.get( 'day1services_day1service_netflow_netflow_flow_records_flow_record_name' )): netflow_flow_records_flow_record_object = devices.device.netflow.flow_records.flow_record.flow_record( ) netflow_flow_records_flow_record_collect_object = devices.device.netflow.flow_records.flow_record.collect.collect( ) netflow_flow_records_flow_record_collect_transport_object = devices.device.netflow.flow_records.flow_record.collect.transport.transport( ) if util.isNotEmpty(inputdict.get('name')): netflow_flow_records_flow_record_collect_transport_transport_options_object = devices.device.netflow.flow_records.flow_record.collect.transport.transport_options.transport_options( ) netflow_flow_records_flow_record_collect_transport_transport_options_object.name = dev_pro_name netflow_flow_records_flow_record_collect_transport_transport_options_object.transport_option = inputdict.get( 'transport_option') netflow_flow_records_flow_record_collect_transport_transport_options_object.tcp_options = inputdict.get( 'tcp_options') #End of Device binding devbindobjs[ 'netflow_flow_records_flow_record_collect_transport_transport_options_object'] = netflow_flow_records_flow_record_collect_transport_transport_options_object #Use the custom method to process/create payload service_customization.ServiceDataCustomization.process_service_device_bindings( smodelctx, sdata, dev, id=id, device=dev, inputdict=inputdict, inputkeydict=inputkeydict, parentobj=parentobj, config=config, devbindobjs=devbindobjs, hopaque=opaque_args) for dev_iterator in dev: if not yang.Sdk.dataExists( dev_iterator.url + '/l3features:netflow/flow-records/flow-record=%s/collect' % (util.make_interfacename( inputdict.get( 'day1services_day1service_netflow_netflow_flow_records_flow_record_name' )))): yang.Sdk.createData( dev_iterator.url + '/l3features:netflow/flow-records/flow-record=%s' % (util.make_interfacename( inputdict.get( 'day1services_day1service_netflow_netflow_flow_records_flow_record_name' ))), '<collect/>', sdata.getSession(), False) if not yang.Sdk.dataExists( dev_iterator.url + '/l3features:netflow/flow-records/flow-record=%s/collect/transport' % (util.make_interfacename( inputdict.get( 'day1services_day1service_netflow_netflow_flow_records_flow_record_name' )))): yang.Sdk.createData( dev_iterator.url + '/l3features:netflow/flow-records/flow-record=%s/collect' % (util.make_interfacename( inputdict.get( 'day1services_day1service_netflow_netflow_flow_records_flow_record_name' ))), '<transport/>', sdata.getSession(), False) netflow_flow_records_flow_record_collect_transport_transport_options_object_payload = netflow_flow_records_flow_record_collect_transport_transport_options_object.getxml( filter=True) log('netflow_flow_records_flow_record_collect_transport_transport_options_object_payload: %s' % (netflow_flow_records_flow_record_collect_transport_transport_options_object_payload )) for dev_iterator in dev: yang.Sdk.createData( dev_iterator.url + '/netflow/flow-records/flow-record=%s/collect/transport' % (util.make_interfacename( inputdict.get( 'day1services_day1service_netflow_netflow_flow_records_flow_record_name' ))), netflow_flow_records_flow_record_collect_transport_transport_options_object_payload, sdata.getSession(), True)
def create(self, id, sdata): sdata.getSession().addYangSessionPreReserveProcessor( self.create_pre_processor) #Fetch Local Config Object config = getCurrentObjectConfig(id, sdata, 'interface') #Fetch Service Model Context Object smodelctx = None #Fetch Parent Object parentobj = None dev = [] inputkeydict = {} devbindobjs = {} inputdict = {} opaque_args = self.opaque_args # START OF FETCHING THE LEAF PARAMETERS inputdict['interface'] = config.get_field_value('interface') # END OF FETCHING THE LEAF PARAMETERS _Gen_obj = getLocalObject(sdata, 'day1service') device_mgmt_ip_address = _Gen_obj.day1service.device_ip #Fetch Device Object dev = getDeviceObject(device_mgmt_ip_address, sdata) # START OF FETCHING THE PARENT KEY LEAF PARAMETERS inputkeydict[ 'day1services_day1service_netflow_netflow_flow_monitors_flow_monitor_name'] = sdata.getRcPath( ).split('/')[-3].split('=')[1] inputkeydict['day1services_day1service_device_ip'] = sdata.getRcPath( ).split('/')[-7].split('=')[1] # END OF FETCHING THE PARENT KEY LEAF PARAMETERS #Use the custom methods to process the data service_customization.ServiceDataCustomization.process_service_create_data( smodelctx, sdata, dev, id=id, device=dev, parentobj=parentobj, inputdict=inputdict, inputkeydict=inputkeydict, config=config, hopaque=opaque_args) #Start of Device binding with python bindings #netflow_object = devices.device.netflow.netflow() netflow_object = netflow.netflow() #netflow_flow_monitors_object = devices.device.netflow.flow_monitors.flow_monitors() netflow_flow_monitors_object = netflow.flow_monitors.flow_monitors() _Gen_obj = getLocalObject(sdata, 'flow-monitor') inputdict[ 'day1services_day1service_netflow_netflow_flow_monitors_flow_monitor_name'] = _Gen_obj.flow_monitor.name if util.isNotEmpty( inputdict.get( 'day1services_day1service_netflow_netflow_flow_monitors_flow_monitor_name' )): #netflow_flow_monitors_flow_monitor_object = devices.device.netflow.flow_monitors.flow_monitor.flow_monitor() netflow_flow_monitors_flow_monitor_object = netflow.flow_monitors.flow_monitor.flow_monitor( ) #netflow_flow_monitors_flow_monitor_interfaces_object = devices.device.netflow.flow_monitors.flow_monitor.interfaces.interfaces() netflow_flow_monitors_flow_monitor_interfaces_object = netflow.flow_monitors.flow_monitor.interfaces.interfaces( ) if util.isNotEmpty(inputdict.get('interface')): #netflow_flow_monitors_flow_monitor_interfaces_interface_object = devices.device.netflow.flow_monitors.flow_monitor.interfaces.interface.interface() netflow_flow_monitors_flow_monitor_interfaces_interface_object = netflow.flow_monitors.flow_monitor.interfaces.interface.interface( ) netflow_flow_monitors_flow_monitor_interfaces_interface_object.interface = inputdict.get( 'interface') #End of Device binding devbindobjs[ 'netflow_flow_monitors_flow_monitor_interfaces_interface_object'] = netflow_flow_monitors_flow_monitor_interfaces_interface_object #Use the custom method to process/create payload service_customization.ServiceDataCustomization.process_service_device_bindings( smodelctx, sdata, dev, id=id, device=dev, inputdict=inputdict, inputkeydict=inputkeydict, parentobj=parentobj, config=config, devbindobjs=devbindobjs, hopaque=opaque_args) for dev_iterator in dev: if not yang.Sdk.dataExists( dev_iterator.url + '/l3features:netflow/flow-monitors/flow-monitor=%s/interfaces' % (util.make_interfacename( inputdict.get( 'day1services_day1service_netflow_netflow_flow_monitors_flow_monitor_name' )))): yang.Sdk.createData( dev_iterator.url + '/l3features:netflow/flow-monitors/flow-monitor=%s' % (util.make_interfacename( inputdict.get( 'day1services_day1service_netflow_netflow_flow_monitors_flow_monitor_name' ))), '<interfaces/>', sdata.getSession(), False) netflow_flow_monitors_flow_monitor_interfaces_interface_object_payload = netflow_flow_monitors_flow_monitor_interfaces_interface_object.getxml( filter=True) #log('netflow_flow_monitors_flow_monitor_interfaces_interface_object_payload: %s' % (netflow_flow_monitors_flow_monitor_interfaces_interface_object_payload)) for dev_iterator in dev: yang.Sdk.createData( dev_iterator.url + '/l3features:netflow/flow-monitors/flow-monitor=%s/interfaces' % (util.make_interfacename( inputdict.get( 'day1services_day1service_netflow_netflow_flow_monitors_flow_monitor_name' ))), netflow_flow_monitors_flow_monitor_interfaces_interface_object_payload, sdata.getSession(), True)
def create(self, id, sdata): sdata.getSession().addYangSessionPreReserveProcessor(self.create_pre_processor) #Fetch Local Config Object config = getCurrentObjectConfig(id, sdata, 'match_condition') #Fetch Service Model Context Object smodelctx = None #Fetch Parent Object parentobj = None dev = [] inputkeydict = {} devbindobjs={} inputdict = {} opaque_args = self.opaque_args if config.get_field_value('cidr') == "true": prefix_in = config.get_field_value('cidr_value') prefix = util.IPPrefix(prefix_in) ip_address = prefix.address wildcard = prefix.wildcard source_ipv4_address = ip_address source_ipv4_mask = wildcard else: source_ipv4_address = config.get_field_value('source_ipv4_address') source_ipv4_mask = config.get_field_value('source_ipv4_address_mask') if config.get_field_value('cidr') == "true" and config.get_field_value('cidr_destination_value') !=None: prefix_in = config.get_field_value('cidr_destination_value') prefix = util.IPPrefix(prefix_in) ip_address = prefix.address wildcard = prefix.wildcard destination_ipv4_address = ip_address destination_ipv4_mask = wildcard else: destination_ipv4_address = config.get_field_value('destination_ipv4_address') destination_ipv4_mask = config.get_field_value('destination_ipv4_address_mask') # START OF FETCHING THE LEAF PARAMETERS inputdict['sequence_number'] = config.get_field_value('sequence_number') inputdict['match_condition_name'] = config.get_field_value('match_condition_name') inputdict['match_packets'] = config.get_field_value('match_packets') inputdict['source_condition_type'] = config.get_field_value('source_condition_type') inputdict['source_ipv4_address'] = source_ipv4_address inputdict['source_ipv4_address_mask'] = source_ipv4_mask ''' if config.get_field_value('dest_condition_type') is None: if inputdict['source_condition_type'] == 'host': inputdict['dest_condition_type'] = 'host' if inputdict['source_condition_type'] == 'cidr': inputdict['dest_condition_type'] = 'cidr' if inputdict['source_condition_type'] == 'any': inputdict['dest_condition_type'] = None else: inputdict['dest_condition_type'] = config.get_field_value('dest_condition_type') inputdict['cidr_destination_value'] = config.get_field_value('cidr_destination_value') inputdict['destination_ipv4_address'] = destination_ipv4_address inputdict['destination_ipv4_address_mask'] = destination_ipv4_mask ''' inputdict['action'] = config.get_field_value('action') acl_name = inputdict['action'] if inputdict['source_condition_type'] == 'host': acl_name = acl_name + ' ' + 'host' + ' '+ inputdict['source_ipv4_address'] if inputdict['source_condition_type'] == "cidr": acl_name = acl_name + ' ' + inputdict['source_ipv4_address'] + ' ' + inputdict['source_ipv4_address_mask'] if inputdict['source_condition_type'] == "any": acl_name = acl_name + ' ' + 'any' #if inputdict['dest_condition_type'] == "host" and inputdict['destination_ipv4_address'] != None: #acl_name = acl_name + ' ' + 'host' + ' ' + inputdict['destination_ipv4_address'] #if inputdict['destination_ipv4_address'] != None and inputdict['destination_ipv4_address_mask'] !=None: #acl_name = acl_name + ' ' + inputdict['destination_ipv4_address'] + ' ' + inputdict['destination_ipv4_address_mask'] if inputdict['match_packets']!= None: acl_name = acl_name + ' ' + inputdict['match_packets'] # END OF FETCHING THE LEAF PARAMETERS _Gen_obj = getLocalObject(sdata, 'day1service') device_mgmt_ip_address = _Gen_obj.day1service.device_ip #Fetch Device Object dev = getDeviceObject(device_mgmt_ip_address, sdata) # START OF FETCHING THE PARENT KEY LEAF PARAMETERS inputkeydict['day1services_day1service_named_access_lists_acl_acl_name'] = sdata.getRcPath().split('/')[-2].split('=')[1] inputkeydict['day1services_day1service_device_ip'] = sdata.getRcPath().split('/')[-4].split('=')[1] # END OF FETCHING THE PARENT KEY LEAF PARAMETERS #Use the custom methods to process the data service_customization.ServiceDataCustomization.process_service_create_data(smodelctx, sdata, dev, id=id, device=dev, parentobj=parentobj, inputdict=inputdict, inputkeydict=inputkeydict, config=config, hopaque=opaque_args) #Start of Device binding with python bindings #access_lists_object = devices.device.access_lists.access_lists() _Gen_obj = getLocalObject(sdata, 'acl') inputdict['day1services_day1service_named_access_lists_acl_acl_name'] = _Gen_obj.acl.acl_name if util.isNotEmpty(inputdict.get('day1services_day1service_named_access_lists_acl_acl_name')): #access_lists_access_list_object = devices.device.access_lists.access_list.access_list() #access_lists_access_list_acl_rules_object = devices.device.access_lists.access_list.acl_rules.acl_rules() if util.isNotEmpty(inputdict.get('match_condition_name')): #access_lists_access_list_acl_rules_acl_rule_object = devices.device.access_lists.access_list.acl_rules.acl_rule.acl_rule() access_lists_access_list_acl_rules_acl_rule_object = access_lists.access_list.acl_rules.acl_rule.acl_rule() #access_lists_access_list_acl_rules_acl_rule_object.name = inputdict.get('match_condition_name') access_lists_access_list_acl_rules_acl_rule_object.name = acl_name access_lists_access_list_acl_rules_acl_rule_object.linenumber = inputdict.get('sequence_number') access_lists_access_list_acl_rules_acl_rule_object.action = inputdict.get('action') access_lists_access_list_acl_rules_acl_rule_object.source_condition_type = inputdict.get('source_condition_type') access_lists_access_list_acl_rules_acl_rule_object.source_ip = inputdict.get('source_ipv4_address') access_lists_access_list_acl_rules_acl_rule_object.source_mask = inputdict.get('source_ipv4_address_mask') #access_lists_access_list_acl_rules_acl_rule_object.dest_condition_type = inputdict.get('dest_condition_type') #access_lists_access_list_acl_rules_acl_rule_object.dest_ip = inputdict.get('destination_ipv4_address') #access_lists_access_list_acl_rules_acl_rule_object.dest_mask = inputdict.get('destination_ipv4_address_mask') if inputdict.get('match_packets') != "log": access_lists_access_list_acl_rules_acl_rule_object.match_packets = inputdict.get('match_packets') else: access_lists_access_list_acl_rules_acl_rule_object.extra_options = "log" #End of Device binding devbindobjs['access_lists_access_list_acl_rules_acl_rule_object'] = access_lists_access_list_acl_rules_acl_rule_object #Use the custom method to process/create payload service_customization.ServiceDataCustomization.process_service_device_bindings(smodelctx, sdata, dev, id=id, device=dev, inputdict=inputdict, inputkeydict=inputkeydict, parentobj=parentobj, config=config, devbindobjs=devbindobjs, hopaque=opaque_args) #for dev_iterator in dev: #yang.Sdk.createData(dev_iterator.url+'/access-lists/access-list=%s'%(util.make_interfacename(inputdict.get('day1services_day1service_named_access_lists_acl_acl_name'))),'<acl-rules/>', sdata.getSession(), True) access_lists_access_list_acl_rules_acl_rule_object_payload = access_lists_access_list_acl_rules_acl_rule_object.getxml(filter=True) #log('access_lists_access_list_acl_rules_acl_rule_object_payload: %s' % (access_lists_access_list_acl_rules_acl_rule_object_payload)) for dev_iterator in dev: yang.Sdk.createData(dev_iterator.url+'/acl:access-lists/access-list=%s/acl-rules'%(util.make_interfacename(inputdict.get('day1services_day1service_named_access_lists_acl_acl_name'))),access_lists_access_list_acl_rules_acl_rule_object_payload, sdata.getSession(), True)
def create(self, id, sdata): sdata.getSession().addYangSessionPreReserveProcessor( self.create_pre_processor) #Fetch Local Config Object config = getCurrentObjectConfig(id, sdata, 'options') #Fetch Service Model Context Object smodelctx = None #Fetch Parent Object parentobj = None rcpath = util.get_parent_rcpath(sdata.getRcPath(), level=1) xml_output = yang.Sdk.getData(rcpath, '', sdata.getTaskId()) parentobj = util.parseXmlString(xml_output) dev = [] inputkeydict = {} devbindobjs = {} inputdict = {} opaque_args = self.opaque_args # START OF FETCHING THE LEAF PARAMETERS inputdict['option'] = config.get_field_value('option') # END OF FETCHING THE LEAF PARAMETERS _Gen_obj = getLocalObject(sdata, 'day1service') device_mgmt_ip_address = _Gen_obj.day1service.device_ip if hasattr(parentobj.flow_export, 'name'): inputdict[ 'netflow_flow_exports_flow_export_name'] = parentobj.flow_export.name #Fetch Device Object dev = getDeviceObject(device_mgmt_ip_address, sdata) # START OF FETCHING THE PARENT KEY LEAF PARAMETERS inputkeydict[ 'day1services_day1service_netflow_netflow_flow_exports_flow_export_name'] = sdata.getRcPath( ).split('/')[-2].split('=')[1] inputkeydict['day1services_day1service_device_ip'] = sdata.getRcPath( ).split('/')[-6].split('=')[1] # END OF FETCHING THE PARENT KEY LEAF PARAMETERS #Use the custom methods to process the data service_customization.ServiceDataCustomization.process_service_create_data( smodelctx, sdata, dev, id=id, device=dev, parentobj=parentobj, inputdict=inputdict, inputkeydict=inputkeydict, config=config, hopaque=opaque_args) #Start of Device binding with python bindings #netflow_object = devices.device.netflow.netflow() netflow_object = netflow.netflow() #netflow_flow_exports_object = devices.device.netflow.flow_exports.flow_exports() netflow_flow_exports_object = netflow.flow_exports.flow_exports() if util.isNotEmpty( inputdict.get('netflow_flow_exports_flow_export_name')): #netflow_flow_exports_flow_export_object = devices.device.netflow.flow_exports.flow_export.flow_export() netflow_flow_exports_flow_export_object = netflow.flow_exports.flow_export.flow_export( ) if util.isNotEmpty(inputdict.get('option')): #netflow_flow_exports_flow_export_options_object = devices.device.netflow.flow_exports.flow_export.options.options() netflow_flow_exports_flow_export_options_object = netflow.flow_exports.flow_export.options.options( ) netflow_flow_exports_flow_export_options_object.option = inputdict.get( 'option') #End of Device binding devbindobjs[ 'netflow_flow_exports_flow_export_options_object'] = netflow_flow_exports_flow_export_options_object #Use the custom method to process/create payload service_customization.ServiceDataCustomization.process_service_device_bindings( smodelctx, sdata, dev, id=id, device=dev, inputdict=inputdict, inputkeydict=inputkeydict, parentobj=parentobj, config=config, devbindobjs=devbindobjs, hopaque=opaque_args) netflow_flow_exports_flow_export_options_object_payload = netflow_flow_exports_flow_export_options_object.getxml( filter=True) log('netflow_flow_exports_flow_export_options_object_payload: %s' % (netflow_flow_exports_flow_export_options_object_payload)) for dev_iterator in dev: yang.Sdk.createData( dev_iterator.url + '/l3features:netflow/flow-exports/flow-export=%s' % (util.make_interfacename( inputdict.get('netflow_flow_exports_flow_export_name'))), netflow_flow_exports_flow_export_options_object_payload, sdata.getSession(), True)