def __init__(self, queue_type=None, queue_number=None, port_id=None, switch_id=0, cps_data=None): if cps_data != None: self.cps_data = cps_data return self.cps_data = None self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) if queue_type != None: self.cps_obj_wr.add_leaf_attr('type', queue_type) if queue_number != None: self.cps_obj_wr.add_leaf_attr('queue-number', queue_number) if port_id != None: self.cps_obj_wr.add_leaf_attr('port-id', port_id) self.cps_obj_wr.add_leaf_attr('switch-id', switch_id) # add stats you want to pull here self.cps_obj_wr.add_leaf_attr('packets', 0) self.cps_obj_wr.add_leaf_attr('bytes', 0) self.cps_obj_wr.add_leaf_attr('dropped-packets', 0) self.cps_obj_wr.add_leaf_attr('dropped-bytes', 0) self.cps_obj_wr.add_leaf_attr('current-occupancy-bytes', 0) self.cps_obj_wr.add_leaf_attr('watermark-bytes', 0)
def __init__(self, port_name=None, level=None, switch_id=0, sg_id=None, sched_id=None, chld_id_list=[], cps_data=None): if cps_data is not None: self.cps_data = cps_data return self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) self.cps_data = self.cps_obj_wr.get() self.set_attr('switch-id', switch_id) if port_name is not None: port_id = ifindex_utils.if_nametoindex(port_name) self.set_attr('port-id', port_id) if sg_id is not None: self.set_attr('id', sg_id) if level is not None: self.set_attr('level', level) if sched_id is not None: self.set_attr('scheduler-profile-id', sched_id) if chld_id_list is not None and isinstance( chld_id_list, list) and len(chld_id_list) > 0: self.set_attr('child_count', len(chld_id_list)) self.set_attr('child-list', chld_id_list)
def __init__(self, ifindex=None, ifname=None, cps_data=None, switch_id=0, list_of_attr_value_pairs=[]): if cps_data is not None: self.cps_data = cps_data return self.cps_data = None self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) if ifindex is not None: self.cps_obj_wr.add_leaf_attr('port-id', ifindex) elif ifname is not None: ifindex = ifindex_utils.if_nametoindex(ifname) if ifindex is None: raise RuntimeError("Port " + ifname + " not available") self.cps_obj_wr.add_leaf_attr('port-id', ifindex) self.cps_obj_wr.add_leaf_attr('switch-id', switch_id) for pair in list_of_attr_value_pairs: self.set_attr(pair[0], pair[1])
def __create_map_table(self, map_name): map_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) if self.yang_name in self.get_old_maps(): map_wr.add_leaf_attr('switch-id', self.switch_id) upd = ('create', map_wr.get()) ret_data_list = cps_utils.CPSTransaction([upd]).commit() if ret_data_list == False: print "Map Table Create failed - " + self.yang_name return None self.map_result = ret_data_list[0] map_id = utl.extract_cps_attr(self, ret_data_list[0], 'id') if map_name != None: map_wr.add_leaf_attr('id', map_id) map_wr.add_leaf_attr('name', map_name) upd = ('set', map_wr.get()) ret_cps_data = cps_utils.CPSTransaction([upd]).commit() if ret_cps_data == False: print "map name modification failed" return map_id
def __init__(self, meter_type=None, cir=None, cbs=None, pbs=None, pir=None, meter_id=None, switch_id=0, cps_data=None): if cps_data is not None: self.cps_data = cps_data return self.cps_data = None self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) self.mode_detected = True if meter_id is not None: # Detect Meter Mode only for the Create case self.mode_detected = False self.cps_obj_wr.add_leaf_attr('id', meter_id) self.cps_obj_wr.add_leaf_attr('switch-id', switch_id) if meter_type is not None: self.cps_obj_wr.add_leaf_attr('type', meter_type) if cir is not None: self.cps_obj_wr.add_leaf_attr('committed-rate', cir) if cbs is not None: self.cps_obj_wr.add_leaf_attr('committed-burst', cbs) if pbs is not None: self.cps_obj_wr.add_leaf_attr('peak-burst', pbs) if pir is not None: self.cps_obj_wr.add_leaf_attr('peak-rate', pir)
def __init__(self, cps_data=None, map_of_attr={}): if cps_data is not None: self.cps_data = cps_data return self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) self.cps_data = self.cps_obj_wr.get() for key in map_of_attr: self.set_attr(key, map_of_attr[key])
def __init__(self, local_id, port_id, cps_data=None): if cps_data is not None: self.cps_data = cps_data return self.cps_data = None self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) if local_id is not None: self.cps_obj_wr.add_leaf_attr('local-id', local_id) if port_id is not None: self.cps_obj_wr.add_leaf_attr('port-id', port_id)
def __init__(self, id=None, cps_data=None): if cps_data != None: self.cps_data = cps_data return self.cps_data = None self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) if id != None: self.cps_obj_wr.add_leaf_attr('id', id) # add supported stats to pull here self.cps_obj_wr.add_leaf_attr('current-occupancy-bytes', 0) self.cps_obj_wr.add_leaf_attr('watermark-bytes', 0)
def __init__(self, switch_id=0, wred_id=None, cps_data=None, map_of_attr={}): if cps_data is not None: self.cps_data = cps_data return self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) self.cps_data = self.cps_obj_wr.get() self.set_attr('switch-id', switch_id) if wred_id is not None: self.set_attr('id', wred_id) for key in map_of_attr: if key == 'npu-id-list': for npu_id in map_of_attr[key]: self.add_npu_to_list(npu_id) else: self.set_attr(key, map_of_attr[key])
def __form_map_entry_obj(self, pair): val_num = 0 entry_wr = utl.CPSObjWrp(self.yang_entry_name, self.get_type_map()) if self.yang_name in self.get_old_maps(): entry_wr.add_leaf_attr('switch-id', self.switch_id, utl.obj_path(self.yang_name)) if self.get_map_id() is None: raise RuntimeError('Map Entry needs Map Table to be created first') entry_wr.add_leaf_attr('id', self.get_map_id(), utl.obj_path(self.yang_name)) if isinstance(pair, tuple): names = self.get_attr_names(self.yang_name) for val in pair: entry_wr.add_leaf_attr(names[val_num], val) val_num += 1 elif isinstance(pair, dict): for name, val in pair.items(): entry_wr.add_leaf_attr(name, val) return entry_wr
def __init__(self, port_id=None, local_id=None, cps_data=None): if cps_data != None: self.cps_data = cps_data return self.cps_data = None self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) if port_id != None: self.cps_obj_wr.add_leaf_attr('port-id', port_id) if local_id != None: self.cps_obj_wr.add_leaf_attr('local-id', local_id) # add supported stats to pull here self.cps_obj_wr.add_leaf_attr('packets', 0) self.cps_obj_wr.add_leaf_attr('bytes', 0) self.cps_obj_wr.add_leaf_attr('current-occupancy-bytes', 0) self.cps_obj_wr.add_leaf_attr('shared-current-occupancy-bytes', 0)
def __init__(self, queue_type, queue_number, port_id, switch_id=0, cps_data=None): if cps_data is not None: self.cps_data = cps_data return self.cps_data = None self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) if queue_type is not None: self.cps_obj_wr.add_leaf_attr('type', queue_type) if queue_number is not None: self.cps_obj_wr.add_leaf_attr('queue-number', queue_number) if port_id is not None: self.cps_obj_wr.add_leaf_attr('port-id', port_id) self.cps_obj_wr.add_leaf_attr('switch-id', switch_id)
def __init__(self, yang_map_name, entry_list=[], map_id=None, switch_id=0, cps_data=None, create_map=True, map_name=None): self.yang_name = yang_map_name self.yang_entry_name = yang_map_name + '/entry' if cps_data is not None: self.cps_data = cps_data return self.cps_data = None self.switch_id = switch_id self.map_id = map_id if (create_map is False): # try to get bulk self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) self.cps_data = self.cps_obj_wr.get() return if map_id is None: self.map_id = self.__create_map_table(map_name) self.new_entry_list = [] self.mod_entry_list = [] self.del_entry_list = [] for pair in entry_list: entry_obj_wr = self.__form_map_entry_obj(pair) self.new_entry_list.append(entry_obj_wr)
def data_map(self): entry_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map()) if self.yang_name in self.get_old_maps(): entry_wr.add_leaf_attr('switch-id', self.switch_id) entry_wr.add_leaf_attr('id', self.map_id) return entry_wr.get()