[Kimchi-devel] [PATCH] ISO Scan: Use volume set id instead of volume id for some wrong images.
Shu Ming
shuming at linux.vnet.ibm.com
Wed Mar 12 09:16:19 UTC 2014
Reviewed-by: Shu Ming <shuming at linux.vnet.ibm.com>
2014/3/12 14:30, Mark Wu:
> Some RHEL ISO images store the infomation of volume id in the location
> of volume set id mistakenly. But it's better to support those ISO images
> since they're already public available. For details, please see:
>
> isoinfo -d -i rhel-server-6.5-ppc64-dvd.iso
> CD-ROM is in ISO 9660 format
> System id: PPC
> Volume id: RED_HAT
> Volume set id: RHEL_6.5 ppc64
> Publisher id:
> Data preparer id:
> Application id: RHEL_6.5 ppc64
> Copyright File id:
> Abstract File id:
> Bibliographic File id:
> Volume set size is: 1
> Volume set sequence number is: 1
> Logical block size is: 2048
> Volume size is: 1634718
> Joliet with UCS level 3 found
>
> Signed-off-by: Mark Wu <wudxw at linux.vnet.ibm.com>
> ---
> src/kimchi/isoinfo.py | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/src/kimchi/isoinfo.py b/src/kimchi/isoinfo.py
> index 8d423ad..b7315e0 100644
> --- a/src/kimchi/isoinfo.py
> +++ b/src/kimchi/isoinfo.py
> @@ -235,7 +235,16 @@ class IsoImage(object):
> raise IsoFormatError("KCHISO0006E", {'filename': self.path})
> if vd_ident != 'CD001' or vd_ver != 1:
> raise IsoFormatError("KCHISO0007E", {'filename': self.path})
> - self.volume_id = vol_id
> + if vol_id.strip() == 'RED_HAT':
> + # Some RHEL ISO images store the infomation of volume id in the
> + # location of volume set id mistakenly.
> + self.volume_id = self._get_volume_set_id(data)
> + else:
> + self.volume_id = vol_id
> +
> + def _get_volume_set_id(self, data):
> + # The index is picked from ISO-9660 specification.
> + return data[190: 318]
>
> def _get_iso_data(self, offset, size):
> if self.remote:
More information about the Kimchi-devel
mailing list