Esempio n. 1
0
    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()
Esempio n. 2
0
 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()
Esempio n. 3
0
 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()
Esempio n. 4
0
 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()
Esempio n. 5
0
    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()
Esempio n. 7
0
 def __admin__():
     params = {'date': datetime.datetime.now()}
     db.add(Admin(**params))
     db.commit()