def get_smu_info(smu_id, platform, release): rows = [] smu_loader = SMUInfoLoader(platform, release) smu_info = smu_loader.get_smu_info_by_id(smu_id) if smu_info is not None: row = {} row['id'] = smu_info.id row['name'] = smu_info.name row['status'] = smu_info.status row['type'] = smu_info.type row['posted_date'] = smu_info.posted_date row['ddts'] = smu_info.ddts row['description'] = smu_info.description row['functional_areas'] = smu_info.functional_areas row['impact'] = smu_info.impact row['package_bundles'] = smu_info.package_bundles row['compressed_image_size'] = str(smu_info.compressed_image_size) row['uncompressed_image_size'] = str(smu_info.uncompressed_image_size) row['prerequisites'] = smu_info.prerequisites row['supersedes'] = smu_info.supersedes row['superseded_by'] = smu_info.superseded_by row['composite_DDTS'] = smu_info.composite_DDTS row['prerequisites_smu_ids'] = "" row['supersedes_smu_ids'] = "" row['superseded_by_smu_ids'] = "" if smu_info.prerequisites != "": prereqs = smu_info.prerequisites.split(',') for smu in prereqs: prereq = smu_loader.get_smu_info(smu) row['prerequisites_smu_ids'] = row[ 'prerequisites_smu_ids'] + prereq.id + ',' row['prerequisites_smu_ids'] = row['prerequisites_smu_ids'][:-1] if smu_info.supersedes != "": supersedes = smu_info.supersedes.split(',') for smu in supersedes: supersedes_info = smu_loader.get_smu_info(smu) row['supersedes_smu_ids'] = row[ 'supersedes_smu_ids'] + supersedes_info.id + ',' row['supersedes_smu_ids'] = row['supersedes_smu_ids'][:-1] if smu_info.superseded_by != "": superseded_by = smu_info.superseded_by.split(',') for smu in superseded_by: supersedes_info = smu_loader.get_smu_info(smu) row['superseded_by_smu_ids'] = row[ 'superseded_by_smu_ids'] + supersedes_info.id + ',' row['superseded_by_smu_ids'] = row['superseded_by_smu_ids'][:-1] rows.append(row) return rows
def get_smu_info(smu_id, platform, release): rows = [] smu_loader = SMUInfoLoader(platform, release) smu_info = smu_loader.get_smu_info_by_id(smu_id) if smu_info is not None: row = {} row["id"] = smu_info.id row["name"] = smu_info.name row["status"] = smu_info.status row["type"] = smu_info.type row["posted_date"] = smu_info.posted_date row["ddts"] = smu_info.ddts row["description"] = smu_info.description row["functional_areas"] = smu_info.functional_areas row["impact"] = smu_info.impact row["package_bundles"] = smu_info.package_bundles row["compressed_image_size"] = str(smu_info.compressed_image_size) row["uncompressed_image_size"] = str(smu_info.uncompressed_image_size) row["prerequisites"] = smu_info.prerequisites row["supersedes"] = smu_info.supersedes row["superseded_by"] = smu_info.superseded_by row["composite_DDTS"] = smu_info.composite_DDTS row["prerequisites_smu_ids"] = "" row["supersedes_smu_ids"] = "" row["superseded_by_smu_ids"] = "" if smu_info.prerequisites != "": prereqs = smu_info.prerequisites.split(",") for smu in prereqs: prereq = smu_loader.get_smu_info(smu) row["prerequisites_smu_ids"] = row["prerequisites_smu_ids"] + prereq.id + "," row["prerequisites_smu_ids"] = row["prerequisites_smu_ids"][:-1] if smu_info.supersedes != "": supersedes = smu_info.supersedes.split(",") for smu in supersedes: supersedes_info = smu_loader.get_smu_info(smu) row["supersedes_smu_ids"] = row["supersedes_smu_ids"] + supersedes_info.id + "," row["supersedes_smu_ids"] = row["supersedes_smu_ids"][:-1] if smu_info.superseded_by != "": superseded_by = smu_info.superseded_by.split(",") for smu in superseded_by: supersedes_info = smu_loader.get_smu_info(smu) row["superseded_by_smu_ids"] = row["superseded_by_smu_ids"] + supersedes_info.id + "," row["superseded_by_smu_ids"] = row["superseded_by_smu_ids"][:-1] rows.append(row) return rows
def api_get_cco_software_entry(request, name_or_id): """ http://localhost:5000/api/v1/cco/software/AA09694?platform=asr9k_px&release=5.3.3 name_or_id can be the PIMS ID (e.g., AA09694) or the software name (asr9k-p-4.2.3.CSCut30136) """ validate_url_parameters(request, ['platform', 'release']) platform = request.args.get('platform') release = request.args.get('release') smu_loader = SMUInfoLoader(platform, release) if smu_loader.is_valid: smu_info = smu_loader.get_smu_info(name_or_id) if smu_info: return jsonify(**{RESPONSE_ENVELOPE: get_smu_info(smu_info)}) else: # Now search for the ID instead of name smu_info = smu_loader.get_smu_info_by_id(name_or_id) if smu_info: return jsonify(**{RESPONSE_ENVELOPE: get_smu_info(smu_info)}) return failed_response('Unable to locate {}'.format(name_or_id), return_code=HTTP_NOT_FOUND)