def __endpoints__(): for params in endpoints: print('\n>>> PARAMS __endpoints__() <<<') print(params) try: enabler = db.query(EnablerImp).filter_by(name=params['enabler']).one() except: raise else: m_params = {'enabler_id': enabler.id} for source in db.query(Source).all(): sourcename = source.name.lower() if sourcename not in params: continue m_params['source_id'] = source.id m_params['details'] = params[sourcename] try: metric = db.query(Metric).filter_by(source_id=source.id, enabler_id=enabler.id).one() except NoResultFound: db.add(Metric(**m_params)) else: metric.details = m_params['details'] else: db.commit()
def __entities__(): for params in entities: try: entity = db.query(Entity).filter_by(shortname=params['shortname']).one() except NoResultFound: db.add(Entity(**params)) else: setattr(entity, 'name', params['name']) else: db.commit()
def __sources__(): for params in sources: try: source = db.query(Source).filter_by(name=params['name']).one() except NoResultFound: db.add(Source(**params)) else: for attr in ('content', 'url', 'api', 'units'): if hasattr(source, attr) and attr in params: setattr(source, attr, params[attr]) else: db.commit()
def __enablers__(): for params in enablers: print('\n>>> PARAMS <<<') print(params) try: owner = db.query(Owner).filter_by(name=params['owner']).one() except NoResultFound: raise else: params['owner_id'] = owner.id del params['owner'] try: enabler = db.query(EnablerImp).filter_by(name=params['name']).one() except NoResultFound: db.add(EnablerImp(**params)) else: for attr in ('chapter', 'type', 'status'): if hasattr(enabler, attr) and attr in params: setattr(enabler, attr, params[attr]) else: db.commit()
def __owners__(): for params in owners: try: entity = db.query(Entity).filter_by(shortname=params['entity']).one() except NoResultFound: raise else: params['entity_id'] = entity.id del params['entity'] query = db.query(Owner).filter_by(name=params['name']) try: owner = query.one() except NoResultFound: db.add(Owner(**params)) db.commit() else: for attr in ('shortname', 'email'): if hasattr(owner, attr) and attr in params: setattr(owner, attr, params[attr]) else: db.commit()
def obtain(self): for source in db.query(Source): logger.info(source.name) # if source.name != 'Academy': continue metrics = db.query(Metric).filter_by(source_id=source.id).all() try: op_source = eval('{}()'.format(source.name)) except Exception as e: logger.error('source {} is not implemented'.format( source.name)) logger.error(e) continue for metric in metrics: try: value = op_source.get_measurement(metric) except NotDefined: value = 'Not Defined' except NotImplemented: value = 'No Impl' except InvalidConection: value = 'No Connect' except Exception as e: logger.error(e) value = 'No Access' params = { 'metric_id': metric.id, 'date': datetime.now(), 'value': value.replace(',', '') } logger.debug(params) measurement = Measurement(**params) db.add(measurement) else: db.commit()
def __admin__(): params = {'date': datetime.datetime.now()} db.add(Admin(**params)) db.commit()