[Kimchi-devel] [RFC] Invalid image path not marking template as "invalid" (kimchi-project/kimchi: Issue #933)
Paulo Ricardo Paz Vital
pvital at linux.vnet.ibm.com
Thu Aug 18 14:26:07 UTC 2016
On Aug 18 10:38AM, Ramon Medeiros wrote:
> vmtemplate.py has a function that checks template integrity
> (validate_integrity), that check template and if found some parameters
> invalid, warn the user.
>
> Today, the function is not verifying disks. I'll do it. Just want to make
> sure i'm checking all kind:
>
> Here is the function:
>
> def validate_integrity(self):
> invalid = {}
> # validate networks integrity
> invalid_networks = list(set(self.info['networks']) -
> set(self._get_all_networks_name()))
> if invalid_networks:
> invalid['networks'] = invalid_networks
>
> # validate storagepools and integrity
> for disk in self.info['disks']:
> pool_uri = disk['pool']['name']
> pool_name = pool_name_from_uri(pool_uri)
> if pool_name not in self._get_active_storagepools_name():
> invalid['storagepools'] = [pool_name]
>
> if os.path.exists(disk["base"])
>
> # validate iso integrity
> # FIXME when we support multiples cdrom devices
> iso = self.info.get('cdrom')
> if iso:
> if os.path.exists(iso):
> st_mode = os.stat(iso).st_mode
> if not (stat.S_ISREG(st_mode) or stat.S_ISBLK(st_mode)):
> invalid['cdrom'] = [iso]
> elif not check_url_path(iso):
> invalid['cdrom'] = [iso]
>
> self.info['invalid'] = invalid
>
> return self.info
>
> I just need to get the loop "# validate storagepools and integrity" and add
> a checking:
> # validate storagepools and integrity
> for disk in self.info['disks']:
> pool_uri = disk['pool']['name']
> pool_name = pool_name_from_uri(pool_uri)
> if pool_name not in self._get_active_storagepools_name():
> invalid['storagepools'] = [pool_name]
> +
> + if not os.path.exists(disk.get("base")):
> + invalid["disks"] = disk
> +
>
> I guess this way i can validate disks on dir storagepools, and nfs. But,
> what about netboot and other kind?
>
I think your solution is correct. Go for it.
When you create a netboot VM, Kimchi adds a disk to be the VM's disk and
nothing more (no 'cdrom' devices). So, basically you still have a disk to
check if it exists.
>
> --
>
> Ramon Nunes Medeiros
> Kimchi Developer
> Linux Technology Center Brazil
> IBM Systems & Technology Group
> Phone : +55 19 2132 7878
> ramonn at br.ibm.com
>
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
--
Paulo Ricardo Paz Vital
Linux Technology Center, IBM Systems
http://www.ibm.com/linux/ltc/
More information about the Kimchi-devel
mailing list