Skip to content

Commit

Permalink
Resolving enhancement #927
Browse files Browse the repository at this point in the history
  • Loading branch information
ygorelik committed Jun 13, 2019
1 parent 4ae67d8 commit 04b47c2
Show file tree
Hide file tree
Showing 15 changed files with 197 additions and 183 deletions.
63 changes: 0 additions & 63 deletions sdk/cpp/core/tests/models/[email protected]

This file was deleted.

26 changes: 26 additions & 0 deletions sdk/cpp/core/tests/models/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -674,4 +674,30 @@ module ydktest-sanity {
}
}
}

container conditional-interface {
leaf ifType {
type enumeration {
enum ethernet;
enum atm;
enum ds0;
}
}
leaf ifMTU {
type uint32;
}
must "(ifType != 'ethernet' and ifType != 'atm') or " +
"(ifType = 'ethernet' and ifMTU = 1500)" {
error-message "An ethernet MTU must be 1500";
}
must "(ifType != 'atm' and ifType != 'ethernet') or " +
"(ifType = 'atm' and ifMTU <= 17966 and ifMTU >= 64)" {
error-message "An atm MTU must be 64 .. 17966";
}

when "/conditional-interface/ifType='ds0'";
leaf ds0ChannelNumber {
type uint16;
}
}
}
17 changes: 8 additions & 9 deletions sdk/python/core/samples/_config_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ def _get_bgp_config():
bgp_cfg.global_.config.as_ = 65001

ipv4_afsf = bgp_cfg.global_.afi_safis.AfiSafi()
ipv4_afsf.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity()
ipv4_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity()
ipv4_afsf.afi_safi_name = openconfig_bgp_types.Ipv4_UnicastIdentity()
ipv4_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv4_UnicastIdentity()
ipv4_afsf.config.enabled = True

ipv6_afsf = bgp_cfg.global_.afi_safis.AfiSafi()
ipv6_afsf.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity()
ipv6_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv6UnicastIdentity()
ipv6_afsf.afi_safi_name = openconfig_bgp_types.Ipv6_UnicastIdentity()
ipv6_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv6_UnicastIdentity()
ipv6_afsf.config.enabled = True

bgp_cfg.global_.afi_safis.afi_safi.append(ipv4_afsf)
Expand All @@ -45,9 +45,9 @@ def _get_bgp_config():
nbr_ipv4.config.peer_as = 65002

nbr_ipv4_afsf = nbr_ipv4.afi_safis.AfiSafi()
nbr_ipv4_afsf.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity()
nbr_ipv4_afsf.afi_safi_name = openconfig_bgp_types.Ipv4_UnicastIdentity()
nbr_ipv4_afsf.config.peer_as = 65002
nbr_ipv4_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv4UnicastIdentity()
nbr_ipv4_afsf.config.afi_safi_name = openconfig_bgp_types.Ipv4_UnicastIdentity()
nbr_ipv4_afsf.config.enabled = True

# Create afi-safi policy instances
Expand All @@ -70,8 +70,8 @@ def _get_routing_cfg():

comm_set = RoutingPolicy.DefinedSets.BgpDefinedSets.CommunitySets.CommunitySet()
comm_set.community_set_name = 'testing'
comm_set.community_member.append("65172:16001")
comm_set.community_member.append("65172:16032")
comm_set.config.community_member.append("65172:16001")
comm_set.config.community_member.append("65172:16032")
routing_policy.defined_sets.bgp_defined_sets.community_sets.community_set.append(comm_set)
return routing_policy

Expand All @@ -80,4 +80,3 @@ def _get_bgp_routing_multiple_object():
bgp_cfg = _get_bgp_config()
routing_policy = _get_routing_cfg()
return {'bgp':bgp_cfg, 'routing-policy':routing_policy}

13 changes: 2 additions & 11 deletions sdk/python/core/samples/bgp.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,24 +22,18 @@
# open-config bgp yang module.
#



from __future__ import print_function
from __future__ import absolute_import
from ydk.types import Empty
from ydk.services import CRUDService
import logging

from session_mgr import establish_session, init_logging
from ydk.models.openconfig import openconfig_bgp
from ydk.models.openconfig import openconfig_bgp_types
from ydk.models.openconfig.openconfig_routing_policy import RoutingPolicy
from ydk.errors import YPYError




#<bgp xmlns="http://openconfig.net/yang/bgp">
# <bgp xmlns="http://openconfig.net/yang/bgp">
# <global>
# <config>
# <as>65172</as>
Expand Down Expand Up @@ -72,8 +66,7 @@
# </afi-safis>
# </neighbor>
# </neighbors>
#</bgp>

# </bgp>


def bgp_run(crud_service, session):
Expand Down Expand Up @@ -149,8 +142,6 @@ def bgp_run(crud_service, session):

bgp_cfg_read = crud_service.read(session, bgp.Bgp())



#crud on just the neighbor

# IPv6 Neighbor instance config
Expand Down
11 changes: 6 additions & 5 deletions sdk/python/core/samples/bgp_codec.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@
# ydk.models.bgp.bgp.py which in turn is derived from the
# open-config bgp yang module.
#

from __future__ import print_function

import logging

from ydk.providers import CodecServiceProvider
from ydk.services import CodecService

Expand Down Expand Up @@ -52,10 +54,9 @@ def run_multiple_routing_bgp(codec_service, provider):
assert multi_payload == codec_service.encode(provider, multi_entity)


def init_logging():
import logging
def init_logging(logging_level):
logger = logging.getLogger("ydk")
logger.setLevel(logging.DEBUG)
logger.setLevel(logging_level)
handler = logging.StreamHandler()
formatter = logging.Formatter(("%(asctime)s - %(name)s - "
"%(levelname)s - %(message)s"))
Expand All @@ -64,7 +65,7 @@ def init_logging():


if __name__ == "__main__":
init_logging()
init_logging(logging.INFO)
provider = CodecServiceProvider(type='xml')
codec_service = CodecService()
bgp_run(codec_service, provider)
Expand Down
2 changes: 2 additions & 0 deletions sdk/python/core/samples/hello-xr.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
from ydk.providers import NetconfServiceProvider
from ydk.models.cisco_ios_xr import Cisco_IOS_XR_shellutil_oper as xr_shellutil_oper


def enable_logging(level):
log = logging.getLogger('ydk')
log.setLevel(level)
Expand All @@ -33,6 +34,7 @@ def enable_logging(level):
handler.setFormatter(formatter)
log.addHandler(handler)


if __name__ == "__main__":
"""Main execution path"""

Expand Down
6 changes: 4 additions & 2 deletions sdk/python/core/samples/ietf_system.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# ------------------------------------------------------------------

from __future__ import print_function

from ydk.providers import NetconfServiceProvider
from ydk.services import CRUDService


def _get_obj_system():
from ydk.models.ietf import ietf_system
from ydk.models.ydktest_new import ietf_system

obj_system=ietf_system.System()
obj_system.contact = '[email protected]'
Expand Down Expand Up @@ -134,7 +136,7 @@ def _init_logging():
def ietf_run(crud_service, provider):
print('==============\nCRUD SERVICE\n==============')

from ydk.models.ietf import ietf_system
from ydk.models.ydktest_new import ietf_system
sys_obj = _get_obj_system()

crud_service.delete(provider, ietf_system.System())
Expand Down
63 changes: 29 additions & 34 deletions sdk/python/core/samples/oc-interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,14 @@
# open-config-interfaces yang module.
#



from __future__ import print_function
from ydk.types import Empty, DELETE, Decimal64

from ydk.services import CRUDService
import logging
from ydk.errors import YPYError

from session_mgr import establish_session, init_logging
from ydk.models.openconfig.openconfig_interfaces import Interfaces
from ydk.errors import YPYError

from ydk.models.openconfig.openconfig_interfaces import Interfaces


def print_interface(interface):
Expand All @@ -41,22 +38,22 @@ def print_interface(interface):

if interface.config is not None:
print (' config')
print(' name:-%s'% interface.config.name)
print(' name: %s'% interface.config.name)
if interface.config.type is not None:
print(' type:-%s'%interface.config.type.__class__)
print(' enabled:-%s'%interface.config.enabled)
print(' type: %s'%interface.config.type.__class__)
print(' enabled: %s'%interface.config.enabled)

if interface.state is not None:
print (' state')
print(' name:-%s'% interface.state.name)
print(' name: %s'% interface.state.name)
if interface.state.type is not None:
print(' type:-%s'%interface.state.type.__class__)
print(' enabled:-%s'%interface.state.enabled)
print(' type: %s'%interface.state.type.__class__)
print(' enabled: %s'%interface.state.enabled)
if interface.state.admin_status is not None:
enum_str = 'DOWN'
if interface.state.admin_status == interface.state.AdminStatusEnum.UP:
enum_str = 'UP'
print(' admin_status:-%s'%enum_str)
print(' admin_status: %s'%enum_str)
if interface.state.oper_status is not None:
oper_status_map = { interface.state.OperStatusEnum.UP : 'UP',
interface.state.OperStatusEnum.DOWN : 'DOWN',
Expand All @@ -65,35 +62,36 @@ def print_interface(interface):
interface.state.OperStatusEnum.DORMANT : 'DORMANT',
interface.state.OperStatusEnum.NOT_PRESENT : 'NOT_PRESENT',
}
print(' oper_status:-%s'%oper_status_map[interface.state.oper_status])
print(' oper_status: %s'%oper_status_map[interface.state.oper_status])

if interface.state.mtu is not None:
print(' mtu:-%s'%interface.state.mtu)
print(' mtu: %s'%interface.state.mtu)
if interface.state.last_change is not None:
print(' last_change:-%s'%interface.state.last_change)
print(' last_change: %s'%interface.state.last_change)

if interface.state.counters is not None:
print(' counters')
print(' in_unicast_pkts:-%s'%interface.state.counters.in_unicast_pkts)
print(' in_octets:-%s'%interface.state.counters.in_octets)
print(' out_unicast_pkts:-%s'%interface.state.counters.out_unicast_pkts)
print(' out_octets:-%s'%interface.state.counters.out_octets)
print(' in_multicast_pkts:-%s'%interface.state.counters.in_multicast_pkts)
print(' in_broadcast_pkts:-%s'%interface.state.counters.in_broadcast_pkts)
print(' out_multicast_pkts:-%s'%interface.state.counters.out_multicast_pkts)
print(' out_broadcast_pkts:-%s'%interface.state.counters.out_broadcast_pkts)
print(' out_discards:-%s'%interface.state.counters.out_discards)
print(' in_discards:-%s'%interface.state.counters.in_discards)
print(' in_unknown_protos:-%s'%interface.state.counters.in_unknown_protos)
print(' in_errors:-%s'%interface.state.counters.in_errors)
print(' out_errors:-%s'%interface.state.counters.out_errors)
print(' last_clear:-%s'%interface.state.counters.last_clear)
print(' in_unicast_pkts: %s'%interface.state.counters.in_unicast_pkts)
print(' in_octets: %s'%interface.state.counters.in_octets)
print(' out_unicast_pkts: %s'%interface.state.counters.out_unicast_pkts)
print(' out_octets: %s'%interface.state.counters.out_octets)
print(' in_multicast_pkts: %s'%interface.state.counters.in_multicast_pkts)
print(' in_broadcast_pkts: %s'%interface.state.counters.in_broadcast_pkts)
print(' out_multicast_pkts: %s'%interface.state.counters.out_multicast_pkts)
print(' out_broadcast_pkts: %s'%interface.state.counters.out_broadcast_pkts)
print(' out_discards: %s'%interface.state.counters.out_discards)
print(' in_discards: %s'%interface.state.counters.in_discards)
print(' in_unknown_protos: %s'%interface.state.counters.in_unknown_protos)
print(' in_errors: %s'%interface.state.counters.in_errors)
print(' out_errors: %s'%interface.state.counters.out_errors)
print(' last_clear: %s'%interface.state.counters.last_clear)

if interface.state.ifindex is not None:
print(' ifindex:-%s'%interface.state.ifindex)
print(' ifindex: %s'%interface.state.ifindex)

print('*' * 28)


def read_interfaces(crud_service, provider):

interfaces_filter = Interfaces()
Expand All @@ -118,13 +116,10 @@ def create_interfaces_config(crud_service, provider):
print('An error occurred creating the interface.')



if __name__ == "__main__":
init_logging()
provider = establish_session()
crud_service = CRUDService()
read_interfaces(crud_service, provider)


provider.close()
exit()
Loading

0 comments on commit 04b47c2

Please sign in to comment.