def get_stats_internal(self, report_name, num_sets, start_time, end_time, subclass=None): start_time = time_to_local_time(start_time) end_time = time_to_local_time(end_time) bns = [('time_lb', 'datetime_sec', start_time), ('time_ub', 'datetime_sec', end_time)] if subclass is not None: bns.append(('subclass', 'uint32', subclass)) code, msg, bindings = Mgmt.action( '/stats/actions/generate_report/%s' % report_name, *bns ) if code != 0: raise ServiceError, msg # save off the file name so we can remove it in self.onReturn() results = bindings['results'] res = bulk_stats.bsp_to_data_val_sets(results, num_sets) return res
def schedule_tcpdump(self, interfaces, filename, duration, date_and_time, max_size): """ schedule_tcpdump(auth, interfaces, filename, duration, date_and_time, max_size) -> None Schedule a TCP dump to run at a later time. Parameters: interfaces (string): comma-separated list of interfaces or 'all' filename (string): id string added to the boilerplate TCP dump name duration (int): maximum number of seconds that the capture will run or 0 to run until stop_tcpdump is called date_and_time (datetime): date and time to start the TCP dump max_size (int): maximum size, in megabytes, of capture file. Settimg this to 0 causes the system default size to be used. Exceptions: schedule_tcpdumpFault - Invalid capture name schedule_tcpdumpFault - Invalid interfaces schedule_tcpdumpFault - Capture name too long schedule_tcpdumpFault - Duplicate interface name schedule_tcpdumpFault - No valid interfaces provided schedule_tcpdumpFault - Invalid file name (same as invalid capture name) schedule_tcpdumpFault - Invalid date or time """ if filename.find('..') != -1: raise ServiceError("filename %s must not contain '..'" % filename) action_params = [] if interfaces == 'all': action_params.append(('all_interfaces', 'bool', 'true')) else: for iface in interfaces.split(','): action_params.append(('interface', 'string', iface)) action_params.append(('cap_name', 'string', filename)) action_params.append(('duration', 'duration_sec', duration)) action_params.append(('file_size', 'uint32', max_size)) date_and_time = time_to_local_time(date_and_time) dump_date, dump_time = date_and_time.split() action_params.append(('sched_time', 'time_sec', dump_time)) action_params.append(('sched_date', 'date', dump_date)) code, msg, bindings = Mgmt.action('/rbt/tcpdump/action/start', action_params) if code != 0: raise ServiceError, msg