Beispiel #1
0
def get_subunit_results(build_uuid,
                        dataset_name,
                        sample_interval,
                        db_uri,
                        build_name='tempest-full',
                        data_path=None,
                        s3=None):
    engine = create_engine(db_uri)
    Session = sessionmaker(bind=engine)
    session = Session()
    runs = api.get_runs_by_key_value('build_uuid', build_uuid, session=session)
    results = []
    for run in runs:
        # Check if we are interested in this build at all
        meta = api.get_run_metadata(run.uuid, session=session)
        build_names = [x.value for x in meta if x.key == 'build_name']
        if len(build_names) >= 1:
            # Skip build_names that aren't selected
            if not build_name == build_names[0]:
                continue
            db_build_name = build_names[0]
        else:
            continue
        # NOTE(mtreinish): Only be concerned with single node to start
        if 'multinode' in db_build_name:
            continue
        result = _get_data_for_run(run,
                                   sample_interval,
                                   session,
                                   data_path=data_path,
                                   s3=s3)
        if result:
            results.append(result)
    session.close()
    return results
Beispiel #2
0
 def test_get_runs_by_key_value(self):
     api.create_run()
     run_b = api.create_run()
     api.add_run_metadata({'not_a_key': 'not_a_value'}, run_b.id)
     found_runs = api.get_runs_by_key_value('not_a_key', 'not_a_value')
     self.assertEqual(1, len(found_runs))
     self.assertEqual(run_b.id, found_runs[0].id)
     self.assertEqual(run_b.uuid, found_runs[0].uuid)
Beispiel #3
0
 def test_get_runs_by_key_value(self):
     api.create_run()
     run_b = api.create_run()
     api.add_run_metadata({'not_a_key': 'not_a_value'}, run_b.id)
     found_runs = api.get_runs_by_key_value('not_a_key', 'not_a_value')
     self.assertEqual(1, len(found_runs))
     self.assertEqual(run_b.id, found_runs[0].id)
     self.assertEqual(run_b.uuid, found_runs[0].uuid)
Beispiel #4
0
def get_runs_by_name(db_uri, build_name, session=None):
    if not session:
        engine = create_engine(db_uri)
        Session = sessionmaker(bind=engine)
        session = Session()
    runs = api.get_runs_by_key_value('build_name', build_name, session=session)
    fail = [x for x in runs if x.fails > 0]
    passes = [x for x in runs if x.fails == 0]
    out = list(itertools.chain.from_iterable(zip(fail, passes)))
    leftover = (len(out) / 2) + 1
    full_out = out + passes[int(leftover):]
    return full_out
Beispiel #5
0
def _get_runs(change_id):
    """Returns the dict of run objects associated with a changeID

    When given the change_id of a Gerrit change, a connection will be made to
    the upstream subunit2sql db and query all run meta having that change_id
    :param change_id: the Gerrit change_id to query
    :return: a json dict of run_meta objects
    """

    engine = create_engine('mysql://*****:*****@logstash.openstack.org' +
                           ':3306/subunit2sql')
    Session = sessionmaker(bind=engine)
    session = Session()

    list_of_runs = api.get_runs_by_key_value(key="build_change",
                                             value=change_id,
                                             session=session)
    ret_list = []

    for run in list_of_runs:
        ret_list.append(run.to_dict())

    return ret_list
Beispiel #6
0
 def find_metadata(self, metadata):
     session = self.session_factory()
     runs = db_api.get_runs_by_key_value('stestr_run_meta',
                                         metadata,
                                         session=session)
     return [x.uuid for x in runs]
Beispiel #7
0
def get_runs_from_build_name(build_name):
    with session_scope() as session:
        build_name = parse.unquote(build_name)
        db_runs = api.get_runs_by_key_value('build_name', build_name, session)
        runs = [run.to_dict() for run in db_runs]
        return jsonify({'runs': runs})
Beispiel #8
0
def get_runs_from_build_name(build_name):
    with session_scope() as session:
        build_name = parse.unquote(build_name)
        db_runs = api.get_runs_by_key_value('build_name', build_name, session)
        runs = [run.to_dict() for run in db_runs]
        return jsonify({'runs': runs})
Beispiel #9
0
def get_runs_from_build_name(build_name):
    session = get_session()
    db_runs = api.get_runs_by_key_value('build_name', build_name, session)
    runs = [run.to_dict() for run in db_runs]
    return jsonify({'runs': runs})