def open_reviews(module): memory_storage_inst = vault.get_memory_storage() time_now = int(time.time()) module_id_index = vault.get_vault()['module_id_index'] module = module.lower() if module not in module_id_index: flask.abort(404) modules = module_id_index[module]['modules'] review_ids = (memory_storage_inst.get_record_ids_by_modules(modules) & memory_storage_inst.get_record_ids_by_types(['review'])) waiting_on_reviewer = [] waiting_on_submitter = [] total_open = 0 for review in memory_storage_inst.get_records(review_ids): if review.status == 'NEW': total_open += 1 # review.value is minimum from votes made for the latest patch if review.value in [1, 2]: # CI or engineer liked this change request, waiting for someone # to merge or to put dislike waiting_on_reviewer.append(helpers.extend_record(review)) elif review.value in [-1, -2]: # CI or reviewer do not like this, waiting for submitter to fix waiting_on_submitter.append(helpers.extend_record(review)) else: # new requests without votes, waiting for CI pass return { 'module': module, 'total_open': total_open, 'waiting_on_reviewer': len(waiting_on_reviewer), 'waiting_on_submitter': len(waiting_on_submitter), 'waiting_on_ci': (total_open - len(waiting_on_reviewer) - len(waiting_on_submitter)), 'reviewer_latest_revision': _process_stat(waiting_on_reviewer, 'updated_on', time_now), 'reviewer_first_revision': _process_stat(waiting_on_reviewer, 'date', time_now), 'submitter_latest_revision': _process_stat(waiting_on_submitter, 'updated_on', time_now), 'submitter_first_revision': _process_stat(waiting_on_submitter, 'date', time_now), }
def open_reviews(module): memory_storage_inst = vault.get_memory_storage() time_now = int(time.time()) module_id_index = vault.get_vault()['module_id_index'] module = module.lower() if module not in module_id_index: flask.abort(404) modules = module_id_index[module]['modules'] review_ids = (memory_storage_inst.get_record_ids_by_modules(modules) & memory_storage_inst.get_record_ids_by_types(['review'])) waiting_on_reviewer = [] waiting_on_submitter = [] total_open = 0 for review in memory_storage_inst.get_records(review_ids): if review.status == 'NEW': total_open += 1 # review.value is minimum from votes made for the latest patch if review.value in [1, 2]: # CI or engineer liked this change request, waiting for someone # to merge or to put dislike waiting_on_reviewer.append(helpers.extend_record(review)) elif review.value in [-1, -2]: # CI or reviewer do not like this, waiting for submitter to fix waiting_on_submitter.append(helpers.extend_record(review)) else: # new requests without votes, waiting for CI pass limit = int(flask.request.args.get('limit') or CONF.report_default_limit) if limit < 0: limit = None return { 'module': module, 'total_open': total_open, 'waiting_on_reviewer': len(waiting_on_reviewer), 'waiting_on_submitter': len(waiting_on_submitter), 'waiting_on_ci': (total_open - len(waiting_on_reviewer) - len(waiting_on_submitter)), 'reviewer_latest_revision': _process_stat( waiting_on_reviewer, 'updated_on', time_now, limit), 'reviewer_first_revision': _process_stat( waiting_on_reviewer, 'date', time_now, limit), 'submitter_latest_revision': _process_stat( waiting_on_submitter, 'updated_on', time_now, limit), 'submitter_first_revision': _process_stat( waiting_on_submitter, 'date', time_now, limit), }
def blueprint_summary(module, blueprint_name): blueprint_id = utils.get_blueprint_id(module, blueprint_name) bpd = vault.get_memory_storage().get_record_by_primary_key( 'bpd:' + blueprint_id) if not bpd: flask.abort(404) return bpd = helpers.extend_record(bpd) record_ids = vault.get_memory_storage().get_record_ids_by_blueprint_ids( [blueprint_id]) activity = [helpers.extend_record(record) for record in vault.get_memory_storage().get_records(record_ids)] activity.sort(key=lambda x: x['date'], reverse=True) return {'blueprint': bpd, 'activity': activity}