def do_groups(self, _): """Show flow group table for logical device""" logical_device = pb2dict(self.get_logical_device(-1)) print_groups('Logical Device', self.logical_device_id, type='n/a', groups=logical_device['flow_groups']['items'])
def do_flows(self, line): """Show flow table for device""" device = pb2dict(self.get_device(-1)) print_flows('Device', self.device_id, type=device['type'], flows=device['flows']['items'], groups=device['flow_groups']['items'])
def do_meters(self, _): """Show flow meter table for logical device""" logical_device = pb2dict(self.get_logical_device(-1)) print_meters( 'Logical Device', self.logical_device_id, type='n/a', meters=logical_device['meters']['items'] )
def do_groups(self, _): """Show flow group table for logical device""" logical_device = pb2dict(self.get_logical_device(-1)) print_groups( 'Logical Device', self.logical_device_id, type='n/a', groups=logical_device['flow_groups']['items'] )
def do_flows(self, line): """Show flow table for device""" device = pb2dict(self.get_device(-1)) print_flows( 'Device', self.device_id, type=device['type'], flows=device['flows']['items'], groups=device['flow_groups']['items'] )
def add(_row, pb, prefix='', number=0): d = pb2dict(pb) if show_nulls: fields = pb.DESCRIPTOR.fields for field in fields: set_row(d, _row, field, getattr(pb, field.name), t, prefix, fields_to_omit, number) else: fields = pb.ListFields() for (field, value) in fields: set_row(d, _row, field, value, t, prefix, fields_to_omit, number)
def add(_row, pb, prefix='', number=0): d = pb2dict(pb) for field in pb._fields: fname = prefix + field.name if fname in fields_to_omit: continue value = getattr(pb, field.name) if isinstance(value, Message): add(_row, value, fname + '.', 100 * (number + field.number)) else: t.add_cell(_row, number + field.number, fname, d.get(field.name))
def do_self_test(self, line): """ Self Test a device. ID of the device needs to be provided """ device_id = line or self.default_device_id self.poutput('Self Testing {}'.format(device_id)) try: stub = self.get_stub() res = stub.SelfTest(voltha_pb2.ID(id=device_id)) self.poutput('Self Tested {}'.format(device_id)) self.poutput(dumps(pb2dict(res), indent=4)) except Exception as e: self.poutput('Error in self test {}. Error:{}'.format(device_id, e))
def do_self_test(self, line): """ Self Test a device. ID of the device needs to be provided """ device_id = line or self.default_device_id self.poutput('Self Testing {}'.format(device_id)) try: stub = self.get_stub() res = stub.SelfTest(voltha_pb2.ID(id=device_id)) self.poutput('Self Tested {}'.format(device_id)) self.poutput(dumps(pb2dict(res), indent=4)) except Exception, e: self.poutput('Error in self test {}. Error:{}'.format(device_id, e))
def set_cell(pb, field, value, t, prefix, fields_to_omit): d = pb2dict(pb) fname = prefix + field.name if fname in fields_to_omit: return if isinstance(value, Message): pr(value, fname + '.') elif is_repeated_item(value): # handles any list row = t.number_of_rows() t.add_cell(row, 0, 'field', fname) t.add_cell(row, 1, 'value', '{} item(s)'.format(len(d.get(field.name)))) else: row = t.number_of_rows() t.add_cell(row, 0, 'field', fname) t.add_cell(row, 1, 'value', value)
def pr(_pb, prefix=''): d = pb2dict(_pb) for field in sorted(_pb._fields, key=lambda f: f.number): fname = prefix + field.name if fname in fields_to_omit: continue value = getattr(_pb, field.name) if isinstance(value, Message): pr(value, fname + '.') elif isinstance(value, RepeatedCompositeFieldContainer): row = t.number_of_rows() t.add_cell(row, 0, 'field', fname) t.add_cell(row, 1, 'value', '{} item(s)'.format( len(d.get(field.name)))) else: row = t.number_of_rows() t.add_cell(row, 0, 'field', fname) t.add_cell(row, 1, 'value', d.get(field.name))
def do_health(self, line): """Show connectivity status to Voltha status""" stub = voltha_pb2.HealthServiceStub(self.get_channel()) res = stub.GetHealthStatus(Empty()) self.poutput(dumps(pb2dict(res), indent=4))
def do_health(self, line): """Show connectivity status to Voltha status""" stub = voltha_pb2.HealthServiceStub(self.get_channel()) res = stub.GetHealthStatus(Empty()) self.poutput(dumps(pb2dict(res), indent=4))