def __init__(self, shark, handle, config=None, source=None): super(View4, self).__init__() self.shark = shark self.handle = handle self.source = source self._outputs = {} if config is None: self.config = shark.api.view.get_config(handle) else: self.config = config if source is None: path = self.config['input_source']['path'] self.source = path_to_class(shark, path)
def __init__(self, shark, handle, config=None, source=None): super(View4, self).__init__() self.shark = shark self.handle = handle self.source = source self._outputs = {} self.timestamp_format = APITimestampFormat.NANOSECOND if config is None: self.config = shark.api.view.get_config(handle, timestamp_format=self.timestamp_format) else: self.config = config if source is None: path = self.config['input_source']['path'] self.source = path_to_class(shark, path)
def run(self): """ Main execution method """ shark = DeviceManager.get_device(self.table.device.id) logger.debug("Creating columns for Shark table %d" % self.table.id) # Create Key/Value Columns columns = [] for tc in self.table.get_columns(synthetic=False): tc_options = tc.options if tc.iskey and tc.name == 'time' and tc_options.extractor == 'sample_time': # don't create column for view, we will use the sample time for timeseries self.timeseries = True self.column_names.append('time') continue elif tc.iskey: c = Key(tc_options.extractor, description=tc.label, default_value=tc_options.default_value) else: if tc_options.operation: try: operation = getattr(Operation, tc_options.operation) except AttributeError: operation = Operation.sum print ('ERROR: Unknown operation attribute ' '%s for column %s.' % (tc_options.operation, tc.name)) else: operation = Operation.none c = Value(tc_options.extractor, operation, description=tc.label, default_value=tc_options.default_value) self.column_names.append(tc.name) columns.append(c) # Identify Sort Column sortidx = None if self.table.sortcol is not None: sort_name = self.table.sortcol.options.extractor for i, c in enumerate(columns): if c.field == sort_name: sortidx = i break # Initialize filters filters = [] filterexpr = self.job.combine_filterexprs(joinstr="&") if filterexpr: filters.append(SharkFilter(filterexpr)) criteria = self.job.criteria tf = TimeFilter(start=datetime.datetime.fromtimestamp(criteria.starttime), end=datetime.datetime.fromtimestamp(criteria.endtime)) filters.append(tf) logger.info("Setting shark table %d timeframe to %s" % (self.table.id, str(tf))) # process Report/Table Criteria self.table.apply_table_criteria(criteria) # Get source type from options try: with lock: source = path_to_class(shark, self.table.options.view) setup_capture_job(shark, self.table.options.view.split('/', 1)[1], self.table.options.view_size) except RvbdHTTPException, e: source = None raise e
def run(self): """ Main execution method """ criteria = self.job.criteria if criteria.shark_device == '': logger.debug('%s: No shark device selected' % self.table) self.job.mark_error("No Shark Device Selected") return False #self.fake_run() #return True shark = DeviceManager.get_device(criteria.shark_device) logger.debug("Creating columns for Shark table %d" % self.table.id) # Create Key/Value Columns columns = [] for tc in self.table.get_columns(synthetic=False): tc_options = tc.options if ( tc.iskey and tc.name == 'time' and tc_options.extractor == 'sample_time'): # don't create column, use the sample time for timeseries self.timeseries = True self.column_names.append('time') continue elif tc.iskey: c = Key(tc_options.extractor, description=tc.label, default_value=tc_options.default_value) else: if tc_options.operation: try: operation = getattr(Operation, tc_options.operation) except AttributeError: operation = Operation.sum print ('ERROR: Unknown operation attribute ' '%s for column %s.' % (tc_options.operation, tc.name)) else: operation = Operation.none c = Value(tc_options.extractor, operation, description=tc.label, default_value=tc_options.default_value) self.column_names.append(tc.name) columns.append(c) # Identify Sort Column sortidx = None if self.table.sortcol is not None: sort_name = self.table.sortcol.options.extractor for i, c in enumerate(columns): if c.field == sort_name: sortidx = i break # Initialize filters criteria = self.job.criteria filters = [] filterexpr = self.job.combine_filterexprs( exprs=criteria.shark_filterexpr, joinstr="&" ) if filterexpr: filters.append(SharkFilter(filterexpr)) tf = TimeFilter(start=criteria.starttime, end=criteria.endtime) filters.append(tf) logger.info("Setting shark table %d timeframe to %s" % (self.table.id, str(tf))) # Get source type from options try: with lock: source = path_to_class(shark, self.job.criteria.shark_source_name) except RvbdHTTPException, e: source = None raise e
def run(self): """ Main execution method """ criteria = self.job.criteria if criteria.shark_device == '': logger.debug('%s: No shark device selected' % self.table) self.job.mark_error("No Shark Device Selected") return False #self.fake_run() #return True shark = DeviceManager.get_device(criteria.shark_device) logger.debug("Creating columns for Shark table %d" % self.table.id) # Create Key/Value Columns columns = [] for tc in self.table.get_columns(synthetic=False): tc_options = tc.options if (tc.iskey and tc.name == 'time' and tc_options.extractor == 'sample_time'): # don't create column, use the sample time for timeseries self.timeseries = True self.column_names.append('time') continue elif tc.iskey: c = Key(tc_options.extractor, description=tc.label, default_value=tc_options.default_value) else: if tc_options.operation: try: operation = getattr(Operation, tc_options.operation) except AttributeError: operation = Operation.sum print('ERROR: Unknown operation attribute ' '%s for column %s.' % (tc_options.operation, tc.name)) else: operation = Operation.none c = Value(tc_options.extractor, operation, description=tc.label, default_value=tc_options.default_value) self.column_names.append(tc.name) columns.append(c) # Identify Sort Column sortidx = None if self.table.sortcol is not None: sort_name = self.table.sortcol.options.extractor for i, c in enumerate(columns): if c.field == sort_name: sortidx = i break # Initialize filters criteria = self.job.criteria filters = [] filterexpr = self.job.combine_filterexprs( exprs=criteria.shark_filterexpr, joinstr="&") if filterexpr: filters.append(SharkFilter(filterexpr)) tf = TimeFilter(start=criteria.starttime, end=criteria.endtime) filters.append(tf) logger.info("Setting shark table %d timeframe to %s" % (self.table.id, str(tf))) # Get source type from options try: with lock: source = path_to_class(shark, self.job.criteria.shark_source_name) except RvbdHTTPException, e: source = None raise e