Browse Source

Add a utility for extracting patch software version

Added a new utility in cgcs_patch/patch_functions.py that
extracts only the metadata (and only to stdout) in order to
parse it and provide the software release version.

Signed-off-by: Jessica Castelino <jessica.castelino@windriver.com>
Partial-Bug: 1934674
Change-Id: I39cbc67c5ed8822fe2a21630eec380a43c09de95
changes/45/799545/5
repo sync --force-sync cd $Mino 2 months ago
committed by Jessica Castelino
parent
commit
37e68c0d54
  1. 18
      cgcs-patch/cgcs-patch/cgcs_patch/patch_functions.py

18
cgcs-patch/cgcs-patch/cgcs_patch/patch_functions.py

@ -199,6 +199,24 @@ def parse_pkgver(pkgver):
return (epoch, version, release)
def get_release_from_patch(patchfile):
rel = ""
try:
cmd = "tar xf %s -O metadata.tar | tar x -O" % patchfile
metadata_str = subprocess.check_output(cmd, shell=True)
root = ElementTree.fromstring(metadata_str)
# Extract release version
rel = root.findtext('sw_version')
except subprocess.CalledProcessError as e:
LOG.error("Failed to run tar command")
LOG.error("Command output: %s", e.output)
raise e
except Exception as e:
print("Failed to parse patch software version")
raise e
return rel
class PackageVersion(object):
"""
The PackageVersion class provides a structure for RPM version information,

Loading…
Cancel
Save