Exemplo n.º 1
0
 def setUp(self):
     from ydk.services import CRUDService
     crud = CRUDService()
     runner = ysanity.Runner()
     crud.delete(self.ncc, runner)
Exemplo n.º 2
0
from ydk.services import CRUDService 
from ydk.providers import NetconfServiceProvider
from ydk.models.bgp import bgp


provider = NetconfServiceProvider(address=xrv, port=830, username=“cisco”, password=“cisco”, protocol=“ssh")

crud = CRUDService()  #  create  CRUD  service
bgp = bgp.Bgp() #  create oc bgp object
  #  set  local  AS  number
bgp.global_.config.router-id_ = "1.1.1.1"
crud.create(provider, bgp) #create  on  NETCONF  device
provider.close()

Exemplo n.º 3
0
    def build_config(self,
                     apply=True,
                     attributes=None,
                     unconfig=False,
                     **kwargs):
        attributes = AttributesHelper(self, attributes)
        configurations = CliConfigBuilder(unconfig=unconfig)
        interface_configurations = xr_ifmgr_cfg.InterfaceConfigurations()
        # import pdb;pdb.set_trace()
        # crud_service = CRUDService()
        # ncp = NetconfServiceProvider(self.device)
        # x = crud_service.read(ncp, interface_configurations)
        # abc = YangConfig(device=self.device, ydk_obj=x, ncp=ncp, crud_service=crud_service)
        # print(abc)
        interface_configuration = interface_configurations.InterfaceConfiguration(
        )
        interface_configuration.active = "act"
        interface_configuration.interface_name = attributes.value('name')
        shutdown = attributes.value('shutdown')

        if shutdown is not None:
            if unconfig:
                # Special case: unconfiguring always applies shutdown
                interface_configuration.shutdown = Empty()
            elif shutdown:
                interface_configuration.shutdown = Empty()

            else:
                interface_configuration.shutdown = DELETE()

        vrf = attributes.value('vrf')
        if vrf:
            if unconfig:
                interface_configuration.vrf = DELETE()
            else:
                interface_configuration.vrf = vrf.name

        ipv4 = attributes.value('ipv4')
        if ipv4:
            primary = interface_configuration.ipv4_network.addresses.Primary()
            if unconfig:
                primary.address = DELETE()
                primary.netmask = DELETE()
                interface_configuration.ipv4_network.addresses.primary = primary
            else:
                primary.address = str(ipv4.ip)
                primary.netmask = str(ipv4.netmask)
                interface_configuration.ipv4_network.addresses.primary = primary

        # In Cisco-IOS-XR-l2-eth-infra-cfg.yang, augmentation section
        # augment "/a1:interface-configurations/a1:interface-configuration"
        # container ethernet-service is defined
        eth_encap_type1 = attributes.value('eth_encap_type1')
        eth_encap_val1 = attributes.value('eth_encap_val1')
        # eth_encap_type2 = attributes.value('eth_encap_type2')
        eth_encap_val2 = attributes.value('eth_encap_val2')

        if eth_encap_type1:
            interface_configuration.ethernet_service\
                                   .local_traffic_default_encapsulation\
                                   .outer_tag_type = eth_encap_type1

        if eth_encap_val1:
            interface_configuration.ethernet_service\
                                   .local_traffic_default_encapsulation\
                                   .outer_vlan_id = eth_encap_val1

        # if eth_encap_type2:
        #     interface_configuration.encapsulation.encapsulation = \
        #         eth_encap_type2

        if eth_encap_val2:
            interface_configuration.ethernet_service\
                                   .local_traffic_default_encapsulation\
                                   .inner_vlan_id = eth_encap_val2

        # instantiate crud service
        crud_service = CRUDService()

        if apply:

            # create netconf connection
            ncp = NetconfServiceProvider(self.device)

            crud_service.create(ncp, interface_configuration)
        else:
            return YangConfig(device=self.device,
                              ydk_obj=interface_configuration,
                              ncp=NetconfServiceProvider,
                              crud_service=crud_service.create)
Exemplo n.º 4
0
 def setUp(self):
     crud = CRUDService()
     runner = ysanity.Runner()
     crud.delete(self.ncc, runner)
Exemplo n.º 5
0
    def read_entity(self, provider, entity):
        crud = CRUDService()

        return crud.read(provider, entity)
Exemplo n.º 6
0
    def delete_entity(self, provider, entity):
        crud = CRUDService()

        return crud.delete(provider, entity)
Exemplo n.º 7
0
def crud_read(obj):
    crud = CRUDService()
    ncc = NetconfServiceProvider(address='93180-EX-1',
                                 username='******',
                                 password='******')
    return crud.read(ncc, obj)
def config_bgp_ipv4(yang_repo="",
                    address="",
                    grpc_port="",
                    username="",
                    password="",
                    crud_op="add",
                    bgp={}):

     repository = Repository(yang_repo)
     provider = gNMIServiceProvider(repo=repository, 
                                    address=address, 
                                    port=int(grpc_port), 
                                    username=username, 
                                    password=password)

     gnmi_service = gNMIService()
     crud = CRUDService()

     ni = oc_ni.NetworkInstances.NetworkInstance()

     if "vrf" in list(bgp.keys()):
       ni.name = bgp["vrf"]
     else:
         print("Vrf for network Instance not specified")
         sys.exit(1)

     protocol = ni.protocols.Protocol()

     protocol.identifier =  oc_policy_types.BGP()
     protocol.name = "default"
     protocol.config.identifier = oc_policy_types.BGP()
     protocol.config.name = "default"

     if "as" in list(bgp.keys()):
         protocol.bgp.global_.config.as_ = int(bgp["as"])
     else:
         print("AS for BGP instance not specified")
         sys.exit(1)

     # Fill out your BGP object properly using the Openconfig Yang Model
     # You will need to bring up the IBGP neighbor between rtr1 and rtr4

     #global configs
     protocol.bgp.global_.config.router_id = bgp["router_id"]
     afi_safi = protocol.bgp.global_.afi_safis.AfiSafi()
     afi_safi.afi_safi_name = oc_bgp_types.IPV4UNICAST()
     afi_safi.config.enabled = True
     protocol.bgp.global_.afi_safis.afi_safi.append(afi_safi)
     
     #Peer-group configs
     peer_group = protocol.bgp.peer_groups.PeerGroup()
     peer_group.peer_group_name = bgp["peer-group-name"]
     peer_group.config.peer_group_name = bgp["peer-group-name"]
     peer_group.transport.config.local_address = bgp["peer-group-local-address"]
     afi_safi = peer_group.afi_safis.AfiSafi()
     afi_safi.afi_safi_name = oc_bgp_types.IPV4UNICAST()
     afi_safi.config.enabled = True
     peer_group.afi_safis.afi_safi.append(afi_safi)
     protocol.bgp.peer_groups.peer_group.append(peer_group)
     
     #Neighbor configs
     neighbor = protocol.bgp.neighbors.Neighbor()
     neighbor.config.peer_as = int(bgp["peer-as"])     
     neighbor.neighbor_address = bgp["neighbor"]
     neighbor.config.neighbor_address =  bgp["neighbor"]
     neighbor.config.peer_group = bgp["peer-group-name"]
     protocol.bgp.neighbors.neighbor.append(neighbor)

     ni.protocols.protocol.append(protocol)


     if crud_op == "add":
         response = crud.create(provider, ni)
     elif crud_op == "delete":
         response = crud.delete(provider, ni)
     elif crud_op is "update":
         response = crud.update(provider, ni)
     else:
         print("Invalid operation requested, allowed values =  add, update, delete")
         return False
     return response
Exemplo n.º 9
0
                       datastore=Datastore.candidate, with_defaults_option=None):
    print('==============\nNETCONF GET CONFIG SERVICE\n==============')

    netconf_service.get_config(provider, datastore, ydk_obj, with_defaults_option)
{% endif %}{% endspaceless %}

if __name__ == "__main__":
    _init_logging()
    provider = NetconfServiceProvider(address='{{host}}', 
                                      username='******', 
                                      password='******', 
                                      protocol='ssh', 
                                      port={{port}})

    {% spaceless %}
    {% if service_type == 'crud' %}crud_service = CRUDService()
    {% if service == 'create' %}{% for i in ydk_obj_names.split %}
    ydk_obj = {{i}}()
    crud_create(crud_service, provider, ydk_obj)
    {% endfor %}{% endif %}
    {% if service == 'update' %}{% for i in ydk_obj_names.split %}
    ydk_obj = {{i}}()
    crud_update(crud_service, provider, ydk_obj)
    {% endfor %}{% endif %}
    {% if service == 'delete' %}{% for i in ydk_obj_names.split %}
    ydk_obj = {{i}}()
    crud_delete(crud_service, provider, ydk_obj)
    {% endfor %}{% endif %}
    {% if service == 'get' %}{% for i in ydk_obj_names.split %}
    ydk_obj = {{i}}()
    crud_get(crud_service, provider, ydk_obj)
Exemplo n.º 10
0
 def setUpClass(self):
     self.ncc = NetconfServiceProvider(address='127.0.0.1',
                                       username='******',
                                       password='******',
                                       port=12022)
     self.crud = CRUDService()
Exemplo n.º 11
0
    four_byte_as.default_vrf.bgp_entity.neighbors.neighbor.append(neighbor)

    crud_service.create(provider.get_node_provider('xr'), bgp)


if __name__ == "__main__":
    init_logging()
    repository_path = os.path.join(os.path.expanduser('~'), 'Cisco', 'odl',
                                   'distribution-karaf-0.5.2-Boron-SR2',
                                   'cache', 'schema')
    if not os.path.exists(repository_path):
        os.makedirs(repository_path)
    repository = Repository(repository_path)

    parser = ArgumentParser()
    parser.add_argument("-v",
                        "--verbose",
                        help="print debugging messages",
                        action="store_true")
    parser.add_argument("device",
                        help="NETCONF device (ssh://user:password@host:port)")
    args = parser.parse_args()
    device = urlparse(args.device)

    provider = OpenDaylightServiceProvider(repository, device.hostname,
                                           device.username, device.password,
                                           device.port, EncodingFormat.XML)
    crud_service = CRUDService()
    odl_run(crud_service, provider)
    exit()
Exemplo n.º 12
0
	def push_conf(self):
		returncode = 0
		xr,returncode = self.access_router()
		if returncode > 0:
			print "\n"+self.OUTPUT.get(returncode)+"\n"
			return returncode
		
		try:
			sgroup = oc_telemetry.TelemetrySystem.SensorGroups.SensorGroup()
			sgroup.sensor_group_id = self.SGroupName
			sgroup.config.sensor_group_id = self.SGroupName
			sgroup.sensor_paths = sgroup.SensorPaths()		
			
			split = ","
			PathList = self.SPath.split(split)
			for path in PathList:
				new_sensorpath = sgroup.SensorPaths.SensorPath()
				new_sensorpath.path = path
				new_sensorpath.config.path = path
				sgroup.sensor_paths.sensor_path.append(new_sensorpath)
		
			rpc_service = CRUDService()
			rpc_service.create(xr, sgroup)
			sub = oc_telemetry.TelemetrySystem.Subscriptions.Persistent.Subscription()
			sub.subscription_id = long(self.SubId)
			sub.config.subscription_id = long(self.SubId)
		
			sub.sensor_profiles = sub.SensorProfiles()
			new_sgroup = sub.SensorProfiles.SensorProfile()
			new_sgroup.sensor_group = self.SGroupName
			new_sgroup.config.sensor_group = self.SGroupName
			new_sgroup.config.sample_interval = long(self.Interval)

			sub.sensor_profiles.sensor_profile.append(new_sgroup)
			
			sub.destination_groups = sub.DestinationGroups()
			new_dgroup = sub.DestinationGroups.DestinationGroup()
			new_dgroup.group_id = self.DgroupName
			new_dgroup.config.group_id = self.DgroupName
			sub.destination_groups.destination_group.append(new_dgroup)
			rpc_service.create(xr, sub)
			
			dgroup = xr_telemetry.TelemetryModelDriven.DestinationGroups.DestinationGroup()
			dgroup.destination_id = self.DgroupName
			dgroup.destinations = dgroup.Destinations()
			
			new_destination = dgroup.Destinations.Destination()
			new_destination.address_family = xr_telemetry.AfEnum.IPV4
			
			new_ipv4=xr_telemetry.TelemetryModelDriven.DestinationGroups.DestinationGroup().Destinations().Destination().Ipv4()
			new_ipv4.destination_port = int(self.RmtPort)
			new_ipv4.ipv4_address = self.DestIp
			
			new_ipv4.encoding = xr_telemetry.EncodeTypeEnum.SELF_DESCRIBING_GPB
			new_ipv4.protocol = xr_telemetry.TelemetryModelDriven.DestinationGroups.DestinationGroup().Destinations().Destination().Ipv4().Protocol()
			new_ipv4.protocol.protocol = xr_telemetry.ProtoTypeEnum.TCP
			new_destination.ipv4.append(new_ipv4)
			
			dgroup.destinations.destination.append(new_destination)
			rpc_service.create(xr, dgroup)
		except:
			returncode = 4
		
		'''
		Verty the configurations
		'''
		returncode = self.verify_conf(xr)
		xr.close()
		
		print "\n"+self.OUTPUT.get(returncode)+"\n"
		return returncode
Exemplo n.º 13
0
        def build_config(self,
                         apply=True,
                         attributes=None,
                         unconfig=False,
                         **kwargs):
            attributes = AttributesHelper(self, attributes)
            configurations = CliConfigBuilder(unconfig=unconfig)
            ydk_obj = ned.Native.Vlan()

            vlan_config = []
            for sub, attributes2 in attributes.mapping_values(
                    'access_map_attr', keys=self.access_map_attr.keys()):
                vlan_config.extend(
                    sub.build_config(apply=False,
                                     attributes=attributes2,
                                     unconfig=unconfig,
                                     ydk_obj=ydk_obj,
                                     **kwargs))

            for sub, attributes2 in attributes.mapping_values(
                    'vlan_configuration_attr',
                    keys=self.vlan_configuration_attr.keys()):
                vlan_config.extend(
                    sub.build_config(apply=False,
                                     attributes=attributes2,
                                     unconfig=unconfig,
                                     ydk_obj=ydk_obj,
                                     **kwargs))

            for sub, attributes2 in attributes.mapping_values(
                    'interface_attr', keys=self.interface_attr.keys()):
                vlan_config.extend(
                    sub.build_config(apply=False,
                                     attributes=attributes2,
                                     unconfig=unconfig,
                                     ydk_obj=ydk_obj,
                                     **kwargs))

            # iosxe: vlan 1000 (config-vlan)
            id = attributes.value('vlan_id', force=True)

            if id:
                vlan = ydk_obj.VlanList()
                vlan.id = int(id)
                ydk_obj.vlan_list.append(vlan)

            # instantiate crud service
            crud_service = CRUDService()

            if apply:

                # create netconf connection
                ncp = NetconfServiceProvider(self.device)

                if unconfig:
                    crud_service.delete(ncp, ydk_obj)
                else:
                    crud_service.create(ncp, ydk_obj)
            else:
                ydks = []

                if unconfig:
                    ydks.append(
                        YangConfig(device=self.device,
                                   ydk_obj=ydk_obj,
                                   ncp=NetconfServiceProvider,
                                   crud_service=crud_service.delete))
                else:
                    ydks.append(
                        YangConfig(device=self.device,
                                   ydk_obj=ydk_obj,
                                   ncp=NetconfServiceProvider,
                                   crud_service=crud_service.create))

                return ydks
Exemplo n.º 14
0
 def setUpClass(cls):
     cls.ncc = NetconfServiceProvider(cls.hostname, cls.username,
                                      cls.password, cls.port, cls.protocol,
                                      cls.on_demand, cls.common_cache)
     cls.crud = CRUDService()
Exemplo n.º 15
0
    def create_entity(self, provider, entity):
        crud = CRUDService()

        return crud.create(provider, entity)
    device = urlparse(args.device)

    # log debug messages if verbose argument specified
    if args.verbose:
        logger = logging.getLogger("ydk")
        logger.setLevel(logging.INFO)
        handler = logging.StreamHandler()
        formatter = logging.Formatter(("%(asctime)s - %(name)s - "
                                       "%(levelname)s - %(message)s"))
        handler.setFormatter(formatter)
        logger.addHandler(handler)

    # create gNMI provider
    repository = Repository(YDK_REPO_DIR + device.hostname)
    provider = gNMIServiceProvider(repo=repository,
                                   address=device.hostname,
                                   port=device.port,
                                   username=device.username,
                                   password=device.password)
    # create CRUD service
    crud = CRUDService()

    bgp = xr_ipv4_bgp_cfg.Bgp()  # create object
    config_bgp(bgp)  # add object configuration

    # create configuration on gNMI device
    crud.create(provider, bgp)

    exit()
# End of script
Exemplo n.º 17
0
 def service():
     """Create service."""
     return CRUDService()