示例#1
0
def print_obj(obj):
    cps_utils.print_obj(obj)
    cps_obj = cps_utils.CPSObject(obj=obj)
    ifindex = cps_obj.get_attr_data("ifindex")
    ifname = nas_os_utils.if_indextoname(ifindex)
    print "base-sflow/entry/ifname = " + ifname
    print "\n\n"
def ip_address_config(operation, address_family, prefix_length):
    if address_family == "ipv4":
        mod = "base-ip/ipv4/address"
        name_attr = "base-ip/ipv4/name"
        name = "e101-001-0"
        ip_addr = "01010101"

    elif address_family == "ipv6":
        mod = "base-ip/ipv6/address"
        name_attr = "base-ip/ipv6/name"
        name = "br1"
        ip_addr = "01010101010101010101010101010101"
    else:
        print "Unsupported address family"
        assert 0

    cps_obj = cps_object.CPSObject(module = mod)
    cps_obj.add_attr(name_attr, name)
    cps_obj.add_attr('ip', ip_addr)
    cps_obj.add_attr('prefix-length', prefix_length)

    ch = {'operation': operation, 'change': cps_obj.get()}

    if cps.transaction([ch]):
        print "Success"
        cps_utils.print_obj(ch['change'])

    if operation == "create":
        ip_add_verify(address_family, prefix_length)
    elif operation == "delete":
        ip_delete_verify(address_family, prefix_length)
    else:
        print "Unsupported operation"
示例#3
0
def __load_file(name):
    l = []
    with open(name, 'r') as _file:
        _process = False
        while True:
            _line = _file.readline()
            if not _line: break
            if _line.find('ACL Entries:') == 0:
                _process = True
                continue

            if not _process:
                continue

            if _line.find('#') != -1:
                _line = _line[:_ln.find('#') + 1]

            _ln = _line.strip().split(' ')

            if _ln[0] == '-':
                _ln = _ln[1:]
            _name = _ln[0]
            _ln = _ln[1:]
            _ln = ' '.join(_ln)
            _obj = cps_object.CPSObject(module=_KEY, qual='target')
            _obj.add_attr('name', _name)
            _obj.add_attr('rule', _ln)
            l.append(_obj.get())
            cps_utils.print_obj(_obj.get())

    return l
def nas_os_event_handler(ev_obj):

    global g_intf_list
    operation, if_name, untagged_if_name, tagged_if_name = None, None, None, None

    if 'operation' in ev_obj:
        operation = ev_obj['operation']
    else:
        return
    intf_obj = cps_object.CPSObject(obj=ev_obj)
    dbg_print(" Operation:  %s " % (operation))

    if_name = nas_if.get_cps_attr(intf_obj, 'if/interfaces/interface/name')
    if if_name is None:
        dbg_print("Exception in reading name")
    if_type = nas_if.get_cps_attr(intf_obj, 'base-if-linux/if/interfaces/interface/dell-type')
    if operation == 'create':

        if if_name in g_intf_list:
            dbg_print(" Interface %s already present" %(if_name))
        if BASE_CMN_INTERFACE_TYPE_L2_PORT == 2 and if_name in g_intf_list:
            # Member Addition in a bridge
            # Check for untagged member
            ut_mem = nas_if.get_cps_attr(intf_obj, 'dell-if/if/interfaces/interface/untagged-ports')
            t_mem = nas_if.get_cps_attr(intf_obj, 'dell-if/if/interfaces/interface/tagged-ports')
            if ut_mem is not None:
                g_intf_list[if_name].add_attr('dell-if/if/interfaces/interface/untagged-ports', ut_mem)
                dbg_print(" New untagged Member %s addition to the bridge %s" %(ut_mem, if_name))
            # Check for tagged member
            if t_mem is not None:
                g_intf_list[if_name].add_attr('dell-if/if/interfaces/interface/tagged-ports', t_mem)
                dbg_print(" New tagged Member %s addition to the bridge %s" %(t_mem, if_name))
        else:
            g_intf_list[if_name] = intf_obj
            dbg_print(" Create Interface %s  type %s create event" % (if_name, dell_type_to_str[if_type]))
    elif operation == 'delete':
        if if_name not in g_intf_list:
            dbg_print(" delete interface or member event received but intf %s not present" % (if_name))
        else:
            if if_type == 2:
                # member delete event
                ut_mem = nas_if.get_cps_attr(intf_obj, 'dell-if/if/interfaces/interface/untagged-ports')
                t_mem = nas_if.get_cps_attr(intf_obj, 'dell-if/if/interfaces/interface/tagged-ports')
                if ut_mem is not None:
                    g_intf_list[if_name].del_attr('dell-if/if/interfaces/interface/untagged-ports')
                    dbg_print(" Untagged Member %s deletion to the bridge %s" %(ut_mem, if_name))
                if t_mem is not None:
                    g_intf_list[if_name].del_attr('dell-if/if/interfaces/interface/tagged-ports')
                    dbg_print(" tagged Member %s deletion to the bridge %s" %(t_mem, if_name))
            else:
                # Delete Interface event
                dbg_print(" Delete Interface %s event received" % (if_name))
                del g_intf_list[if_name]

    elif operation == 'set':
        dbg_print(" set Interface event received ")
        if if_name not in g_intf_list:
            dbg_print(" set event received but intf not present")
    cps_utils.print_obj(ev_obj)
示例#5
0
def set_cps_object(module_name, attr_list={}, op='set'):
    cps_obj = cps_object.CPSObject(module=module_name, data=attr_list)
    upd = (op, cps_obj.get())
    ret_cps_data = cps_utils.CPSTransaction([upd]).commit()
    if ret_cps_data == False:
        return False
    cps_utils.print_obj(ret_cps_data[0])
    return True
def get_cps_object(module_name, attr_list = {}, qual='target'):
    cps_obj = cps_object.CPSObject(module = module_name, qual = qual, data = attr_list)
    ret_list = []
    if cps.get([cps_obj.get()], ret_list)  == False:
        return False
    for ret_obj in ret_list:
        cps_utils.print_obj(ret_obj)
    return True
示例#7
0
def test_get_ether_stat():
    cps_obj = cps_object.CPSObject(
        module="dell-base-if-cmn/if/interfaces-state/interface/statistics",
        qual="observed")
    cps_obj.add_attr('if/interfaces-state/interface/name', "e101-001-0")
    ret_list = []
    print "Input object: ", cps_obj.get()
    assert cps.get([cps_obj.get()], ret_list)
    for ret in ret_list:
        o = cps_object.CPSObject(obj=ret)
        cps_utils.print_obj(o.get())
示例#8
0
def show_switch(args):
    l = []
    obj = create_switch_entities_obj()
    cps.get([obj.get()], l)
    for i in l:
        cps_utils.print_obj(i)

    l = []
    obj = create_switch_obj()
    cps.get([obj.get()], l)
    for i in l:
        cps_utils.print_obj(i)
def show_switch(args):
    l = []
    obj = create_switch_entities_obj()
    cps.get([obj.get()], l)
    for i in l:
        cps_utils.print_obj(i)

    l = []
    obj = create_switch_obj()
    cps.get([obj.get()], l)
    for i in l:
        cps_utils.print_obj(i)
示例#10
0
def media_transceiver_set(slot, media_id, channel, enable):
    media_channel = cps_object.CPSObject(module='base-pas/media-channel',
                                         qual='target',
                                         data={
                                             'slot': slot,
                                             'port': media_id,
                                             'state': enable
                                         })
    if channel != None:
        media_channel.add_attr('channel', channel)
    cps_utils.print_obj(media_channel.get())
    ch = {'operation': 'set', 'change': media_channel.get()}
    cps.transaction([ch])
示例#11
0
def _trace_events(_obj):
    handle = cps.event_connect()

    cps.event_register_object(handle, _obj.get())

    while True:
        ev = cps.event_wait(handle)
        print "@", str(datetime.datetime.now()), "- Event for", _get_key(
            ev['key'])
        if 'operation' in ev:
            print "Operation : ", ev['operation']
        cps_utils.print_obj(ev)
        print "----------------------------------------------"
def create_interface(obj):

    ifobj = nas_if.make_interface_from_phy_port(obj)

    if if_cache.exists(ifobj.get_attr_data('if/interfaces/interface/name')):
        print "Already exists.... " + ifobj.get_attr_data('if/interfaces/interface/name')
        return

    # create the object
    ch = {'operation': 'rpc', 'change': ifobj.get()}
    cps.transaction([ch])
    print "Interface Created : " + ifobj.get_attr_data('if/interfaces/interface/name')
    cps_utils.print_obj(ch['change'])
示例#13
0
def media_led_set(slot, media_id, channel, speed):
    media_channel = cps_object.CPSObject(module='base-pas/media-channel',
                                         qual='target',
                                         data={
                                             'slot': slot,
                                             'port': media_id,
                                             'channel': channel,
                                             'speed': speed
                                         })
    cps_utils.print_obj(media_channel.get())
    ch = {'operation': 'set', 'change': media_channel.get()}
    print "set speed for media Id : %d channel %d speed %d " % (media_id,
                                                                channel, speed)
    cps.transaction([ch])
示例#14
0
def create_interface(obj):

    ifobj = nas_if.make_interface_from_phy_port(obj)

    if if_cache.exists(ifobj.get_attr_data('if/interfaces/interface/name')):
        print "Already exists.... " + ifobj.get_attr_data(
            'if/interfaces/interface/name')
        return

    # create the object
    ch = {'operation': 'rpc', 'change': ifobj.get()}
    cps.transaction([ch])
    print "Interface Created : " + ifobj.get_attr_data(
        'if/interfaces/interface/name')
    cps_utils.print_obj(ch['change'])
示例#15
0
def _get_obj_from_input():
    if (len(sys.argv) < 2):
        return None

    _qual_list = cps.QUALIFIERS
    _obj = cps_object.CPSObject(module="cps", qual="target")

    _inp = sys.argv[1].lower()
    _lst = _inp.split(cps.PATH_SEP, 1)

    #Only 'qualifier' provided as first argument
    if len(_lst) == 1:
        in_qual = _lst[0]
        if in_qual not in cps.QUALIFIERS:
            print "\nCheck the qualifier, not a valid qualifier "
            return None
        #Second argument is the 'module'
        if len(sys.argv) == 3:
            _key = cps.key_from_name(in_qual, sys.argv[2])
        else:
            _key = cps.key_from_qual(in_qual)
        _obj.set_key(_key)
        print " Registering for " + _key
    else:
        try:
            _obj = cps_object.object_from_parameters(prog='cps_trace_events',
                                                     description="")
        except ValueError:
            return None
        _key = _obj.get_key()
        print " Registering for object ..."
        cps_utils.print_obj(_obj.get())
    print "----------------------------------"

    if ((_key == "") or (_key == None)):
        print "Check the object name, not a valid object\n"
        return None

    return _obj
示例#16
0
            print "Attempting to delete address ", addr, name
            if dn_base_ip_tool.del_ip_addr(addr, name):
                return True
            print "Failed to execute request..."
    except Exception as e:
        print "Faild to commit operation.", e
        print params

    return False

if __name__ == '__main__':
    if len(sys.argv) > 1:
        l = []
        _get_ip_objs(cps_object.CPSObject('base-ip/ipv4'), l)
        for i in l:
            cps_utils.print_obj(i)
        sys.exit(1)

    handle = cps.obj_init()
    d = {}
    d['get'] = get_cb
    d['transaction'] = trans_cb

    for i in _keys.keys():
        if i.find('base-ip') == -1:
            continue
        cps.obj_register(handle, _keys[i], d)

    while True:
        time.sleep(1)
    _operation = ['set', 'create', 'delete']
    if _in_op not in _operation:
       print "\nCheck operation, supported operations (set/create/delete)\n"
       exit(1)

    _qual = ['target', 'observed', 'proposed', 'realtime']
    if _in_qual not in _qual:
       print "\nCheck qualifier, supported qualifiers (target/observed/proposed/realtime)\n"
       exit(1)

    _key = cps.key_from_name(_in_qual, sys.argv[3])

    if ((_key == "") or (_key  == None)):
        print "\nCheck the object name, not a valid object\n"
        exit(1)

    handle = cps.event_connect()
    print " sending event for...."
    _obj = cps_object.CPSObject(qual=_in_qual, module=sys.argv[3])

    for e in sys.argv[4:]:
        attr = e.split('=',1)
        _obj.add_attr(attr[0],attr[1])

    cur_obj = _obj.get()
    ev = {'operation':_in_op, 'key':cur_obj['key'], 'data':cur_obj['data']}
    cps.event_send(handle, ev)
    if 'operation' in ev:
        print "Operation : ", ev['operation']
    cps_utils.print_obj(cur_obj)
示例#18
0
            print "Attempting to delete address ", addr, name
            if dn_base_ip_tool.del_ip_addr(addr, name):
                return True
            print "Failed to execute request..."
    except Exception as e:
        print "Faild to commit operation.", e
        print params

    return False

if __name__ == '__main__':
    if len(sys.argv) > 1:
        l = []
        _get_ip_objs(cps_object.CPSObject('base-ip/ipv4'), l)
        for i in l:
            cps_utils.print_obj(i)
        sys.exit(1)

    handle = cps.obj_init()
    d = {}
    d['get'] = get_cb
    d['transaction'] = trans_cb

    for i in _keys.keys():
        if i.find('base-ip') == -1:
            continue
        cps.obj_register(handle, _keys[i], d)

    while True:
        time.sleep(1)
示例#19
0
#Python code block to request MAC address table entry

import   cps_utils 
import   cps

#Register the attribute type
cps_utils.add_attr_type("base-mac/query/mac-address",   "mac")

#Define the MAC address request type
d  =     {"mac-address":   "00:0a:0b:cc:0d:0e","request-type":"2"}

#Associate the get operation with the CPS object
obj   =  cps_utils.CPSObject('base-mac/query', data=   d)

#Create an object filter list
filter_list   =  [] filter_list.append(obj.get()) l =  []

#Check for failure
if cps.get(filter_list,l):
    if l:
        for   ret_obj   in   l:
            cps_utils.print_obj(ret_obj) 
    else:
        print   "No   objects   found"         
else:
    print   "No   objects   found" 
    raise   RuntimeError   ("Error   Getting   MAC   Table   Entries")
示例#20
0
        print "Missing args.  Please enter a CPS key path and then optional attributes/values separated by ="
        print "%s qual base-port/physical hardware-port-id=26"
        print "qual = target,observed,.."
        print "qual is an optional argument if not specified, target is used by default"
        exit(1)
    l = []
    k = []
    cur_obj = None
    qual = "target"
    qual_list = ["target","observed","proposed","realtime"]
    for e in sys.argv[1:]:
        if e in qual_list:
            qual = e
            continue
        if e.find('=') == -1:
            if (cur_obj is None):
                cur_obj = cps_object.CPSObject(qual=qual,module=e)
            else:
                k.append(cur_obj.get())
                cur_obj = cps_object.CPSObject(qual=qual,module=e)
        else:
            res = e.split('=', 1)
            cur_obj.add_attr(res[0], res[1])

    k.append(cur_obj.get())

    cps.get(k, l)
    for entry in l:
        print ""
        cps_utils.print_obj(entry)
示例#21
0
            0]
        print "qual is an optional argument if not specified, target is used by default"
        print "To add embedded attribute specify the all arguments in comma followed by = and its value"
        print "For eg. base-stg/entry/intf,0,ifindex=17 base-stg/entry/intf,0,state=1"
        exit(1)

    qual_list = ["target", "observed", "proposed", "realtime"]
    if sys.argv[1] in qual_list:
        ch = {'operation': sys.argv[2], 'change': {}}
        cur_obj = cps_object.CPSObject(qual=sys.argv[1], module=sys.argv[3])
        arg_list = sys.argv[4:]
    else:
        ch = {'operation': sys.argv[1], 'change': {}}
        cur_obj = cps_object.CPSObject(qual="target", module=sys.argv[2])
        arg_list = sys.argv[3:]
    for e in arg_list:
        res = e.split('=', 1)
        # For embedded attribute check if comma seperated attribute list is given
        # then add it as embedded
        embed_attrs = res[0].split(',')
        if len(embed_attrs) == 3:
            cur_obj.add_embed_attr(embed_attrs, res[1])
        else:
            cur_obj.add_attr(res[0], res[1])

    ch['change'] = cur_obj.get()

    if cps.transaction([ch]):
        print "Success"
        cps_utils.print_obj(ch['change'])
示例#22
0
def get(obj):
    get = []
    if cps.get([obj.get()], get):
        for i in get:
            cps_utils.print_obj(i)
def print_port_list(port_list):
    for ph in port_list:
        print 'Key ' + str(ph)
        cps_utils.print_obj(port_list[ph].get())
    return
def print_port_obj(port_obj):
    cps_utils.print_obj(port_obj.get())
    return
        print "To add embedded attribute specify the all arguments in comma followed by = and its value"
        print "For eg. base-stg/entry/intf,0,ifindex=17 base-stg/entry/intf,0,state=1"
        exit(1)

    qual_list = ["target","observed","proposed","realtime"]
    if sys.argv[1] in qual_list:
        ch = {'operation': sys.argv[2], 'change': {}}
        cur_obj = cps_object.CPSObject(qual=sys.argv[1],module=sys.argv[3])
        arg_list = sys.argv[4:]
    else:
        ch = {'operation': sys.argv[1], 'change': {}}
        cur_obj = cps_object.CPSObject(qual="target",module=sys.argv[2])
        arg_list = sys.argv[3:
                            ]
    for e in arg_list:
        res = e.split('=', 1)
        # For embedded attribute check if comma seperated attribute list is given
        # then add it as embedded
        embed_attrs = res[0].split(',')
        if len(embed_attrs) == 3:
            cur_obj.add_embed_attr(embed_attrs,res[1])
        else:
            cur_obj.add_attr(res[0], res[1])


    ch['change'] = cur_obj.get()

    if cps.transaction([ch]):
        print "Success"
        cps_utils.print_obj(ch['change'])
import   cps_utils import   cps

cps_utils.add_attr_type("base-mac/query/mac-address",   "mac")


d  =     {"mac-address":   "00:0a:0b:cc:0d:0e","request-type":"2"}
obj   =  cps_utils.CPSObject('base-mac/query', data=   d)

filter_list   =  [] filter_list.append(obj.get()) l =  []

if cps.get(filter_list,l):
    if l:
        for   ret_obj   in   l:
            cps_utils.print_obj(ret_obj) 
    else:
        print   "No   objects   found"         
else:
    print   "No   objects   found" 
    raise   RuntimeError   ("Error   Getting   MAC   Table   Entries")

def create(obj):
    ret = commit(obj, "create")
    if ret:
        cps_utils.print_obj(ret[0])
    return ret
示例#28
0
#
# See the Apache Version 2.0 License for specific language governing
# permissions and limitations under the License.
#

import cps
import cps_utils
import cps_object

if __name__ == '__main__':
    _obj = cps_object.object_from_parameters(prog='cps_get_oid',
                                             description='This process \
                    will perform a CPS get and return the results.  \
        The command line supports getting a single object with many attributes.  \
        An example is: %(prog)s cps/node-group -attr name=\'localhost\'')

    k = [_obj.get()]
    l = []

    _cur_key = ''
    cps.get(k, l)
    for entry in l:
        o = cps_object.CPSObject(obj=entry)
        if (_cur_key != o.get_key()):
            _cur_key = o.get_key()
            print('\n============%s==========\n' %
                  cps.name_from_key(_cur_key, 1))

        cps_utils.print_obj(o.get(), show_key=False)
        print "------------------------------------------------"
示例#29
0
def mirror_show():
    filt = cps_utils.CPSObject('base-mirror/entry')
    ret = []
    r = cps.get([filt.get()], ret)
    for obj in ret:
        cps_utils.print_obj(obj)
示例#30
0
def create(obj):
    ret = commit(obj, "create")
    if ret:
        cps_utils.print_obj(ret[0])
    return ret
示例#31
0
def mirror_show():
    filt = cps_utils.CPSObject('base-mirror/entry')
    ret = []
    r = cps.get([filt.get()], ret)
    for obj in ret:
        cps_utils.print_obj(obj)
def incoming_svcs_test(is_negative_test=False, *test_args):
    global parser
    global test_count

    if len(test_args) == 0:
        args = vars(parser.parse_args())
    else:
        args = vars(parser.parse_args(test_args))

    op = args['operation']

    if op == 'pre-cfg':
        #config test pre-req
        clear = args['clear']
        print 'Running test pre-configruation %s...' % ('cleanup '
                                                        if clear else '')
        if 'mgmt_ip' in args and args['mgmt_ip'] is not None:
            print 'Management IP: %s' % args['mgmt_ip']
            test_pre_req_cfg(clear, args['mgmt_ip'])
        else:
            test_pre_req_cfg(clear)
        time.sleep(20)
        print 'Done with pre-configuration'
        return True

    if op != 'run-test':
        print '*** Running %stest: %s ***' % ('negative ' if is_negative_test
                                              else '', ' '.join(test_args))
    obj = cps_object.CPSObject('vrf-firewall/ns-incoming-service')
    for arg_name, arg_val in args.items():
        if arg_name in arg_cps_attr_map and arg_val is not None:
            attr_name, func = arg_cps_attr_map[arg_name]
            if func is not None:
                attr_val = func(arg_name, arg_val)
                if type(attr_name) is list:
                    if attr_val is None:
                        raise RuntimeError('Failed to convert input %s' %
                                           arg_name)
                    if len(attr_name) != len(attr_val):
                        raise RuntimeError('Invalid argument %s' % arg_name)
                    for idx in range(len(attr_name)):
                        if attr_val[idx] is not None:
                            obj.add_attr(attr_name[idx], attr_val[idx])
                else:
                    if attr_val is not None:
                        obj.add_attr(attr_name, attr_val)
            else:
                obj.add_attr(attr_name, arg_val)

    if op == 'info':
        ret_list = []
        if cps.get([obj.get()], ret_list) == False:
            raise RuntimeError('Failed to get object')
        for ret_obj in ret_list:
            cps_utils.print_obj(ret_obj)
    elif op == 'run-test':
        if run_test_incoming_svcs() == False:
            print 'UT failed'
            return False
        print 'UT success'
        return True
    else:
        upd = (op, obj.get())
        ret_val = cps_utils.CPSTransaction([upd]).commit()
        # exit on success for negative test
        if is_negative_test and ret_val != False:
            raise RuntimeError('Operation %s should have failed but succeed' %
                               op)
        elif not is_negative_test and ret_val == False:
            raise RuntimeError('Failed to %s object' % op)
        if ret_val != False:
            print 'Input object %s' % op
            cps_utils.print_obj(ret_val[0])
    test_count += 1
    return True
        print "\nCheck the qualifier, not a valid qualifier "
        cps_trace_usage()
        exit(1)

    if len(sys.argv) > 2:
        _key = cps.key_from_name(in_qual, sys.argv[2])
    else:
        _key = cps.key_from_qual(in_qual)

    print "Key : " + _key

    if ((_key == "") or (_key == None)):
        print "Check the object name, not a valid object\n"
        exit(1)

    if len(sys.argv) > 2:
        print " Registering for " + in_qual + " " + sys.argv[2]
    else:
        print " Registering for " + in_qual

    handle = cps.event_connect()

    cps.event_register(handle, _key)

    while True:
        ev = cps.event_wait(handle)
        print ev['key']
        if 'operation' in ev:
            print "Operation : ", ev['operation']
        cps_utils.print_obj(ev)
示例#34
0
#
# THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT
# LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS
# FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
#
# See the Apache Version 2.0 License for specific language governing
# permissions and limitations under the License.

import cps
import cps_object
import cps_utils

_ipv4_key = cps.key_from_name('target', 'base-ip/ipv4')
_ipv6_key = cps.key_from_name('target', 'base-ip/ipv6')

if __name__ == '__main__':
    # monitor ip change event
    handle = cps.event_connect()
    cps.event_register(handle, _ipv4_key)
    cps.event_register(handle, _ipv6_key)
    while True:
        o = cps.event_wait(handle)
        print o
        obj = cps_object.CPSObject(obj=o)
        cps_utils.print_obj(obj)
        if _ipv4_key == obj.get_key():
            print "IPv4 change event received"
        elif _ipv6_key == obj.get_key():
            print "IPv6 change event received"
    _operation = ['set', 'create', 'delete']
    if _in_op not in _operation:
        print "\nCheck operation, supported operations (set/create/delete)\n"
        exit(1)

    _qual = ['target', 'observed', 'proposed', 'realtime']
    if _in_qual not in _qual:
        print "\nCheck qualifier, supported qualifiers (target/observed/proposed/realtime)\n"
        exit(1)

    _key = cps.key_from_name(_in_qual, sys.argv[3])

    if ((_key == "") or (_key == None)):
        print "\nCheck the object name, not a valid object\n"
        exit(1)

    handle = cps.event_connect()
    print " sending event for...."
    _obj = cps_object.CPSObject(qual=_in_qual, module=sys.argv[3])

    for e in sys.argv[4:]:
        attr = e.split('=', 1)
        _obj.add_attr(attr[0], attr[1])

    cur_obj = _obj.get()
    ev = {'operation': _in_op, 'key': cur_obj['key'], 'data': cur_obj['data']}
    cps.event_send(handle, ev)
    if 'operation' in ev:
        print "Operation : ", ev['operation']
    cps_utils.print_obj(cur_obj)
def get(obj):
    get = []
    if cps.get([obj.get()], get):
        for i in get:
            cps_utils.print_obj(i)
示例#37
0
# CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT
#  LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS
# FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
#
# See the Apache Version 2.0 License for specific language governing
# permissions and limitations under the License.
#

import cps
import cps_object
import cps_utils

_ipv4_key = cps.key_from_name('target', 'base-ip/ipv4')
_ipv6_key = cps.key_from_name('target', 'base-ip/ipv6')


if __name__ == '__main__':
    # monitor ip change event
    handle = cps.event_connect()
    cps.event_register(handle, _ipv4_key)
    cps.event_register(handle, _ipv6_key)
    while True:
        o = cps.event_wait(handle)
        print o
        obj = cps_object.CPSObject(obj=o)
        cps_utils.print_obj(obj)
        if _ipv4_key == obj.get_key():
            print "IPv4 change event received"
        elif _ipv6_key == obj.get_key():
            print "IPv6 change event received"