[Libvirt-cim] [PATCH] Add readonly property to disk
Chip Vincent
cvincent at linux.vnet.ibm.com
Tue Feb 22 02:43:33 UTC 2011
+1. Pushed.
A nit: The CIM property "readonly" should be "ReadOnly". Not a big deal
since we have other nits like this now in the code. Plan to address when
we update the schema.
On 02/16/2011 09:58 AM, Sharad Mishra wrote:
> # HG changeset patch
> # User Sharad Mishra<snmishra at us.ibm.com>
> # Date 1297867691 28800
> # Node ID 5217c96d817d3d330898df26dd4262b9c26abc21
> # Parent 432922275bea75a769cf058209bdb81198f3b360
> Add readonly property to disk.
>
> This patch adds readonly property to disks.
>
> Signed-off-by: Sharad Mishra<snmishra at us.ibm.com>
>
> diff -r 432922275bea -r 5217c96d817d schema/ResourceAllocationSettingData.mof
> --- a/schema/ResourceAllocationSettingData.mof Fri Jan 21 15:59:27 2011 -0500
> +++ b/schema/ResourceAllocationSettingData.mof Wed Feb 16 06:48:11 2011 -0800
> @@ -17,6 +17,9 @@
> [Description ("Bus type of the device")]
> string BusType;
>
> + [Description ("readonly mode for disk")]
> + boolean readonly;
> +
> };
>
> [Description ("KVM virtual disk configuration"),
> @@ -35,6 +38,9 @@
>
> [Description ("Bus type of the device")]
> string BusType;
> +
> + [Description ("readonly mode for disk")]
> + boolean readonly;
> };
>
> [Description ("LXC virtual disk configuration"),
> diff -r 432922275bea -r 5217c96d817d src/Virt_RASD.c
> --- a/src/Virt_RASD.c Fri Jan 21 15:59:27 2011 -0500
> +++ b/src/Virt_RASD.c Wed Feb 16 06:48:11 2011 -0800
> @@ -275,6 +275,12 @@
> (CMPIValue *)&type,
> CMPI_uint16);
>
> + if(dev->dev.disk.readonly)
> + CMSetProperty(inst,
> + "readonly",
> + (CMPIValue *)&(dev->dev.disk.readonly),
> + CMPI_boolean);
> +
> return s;
> }
>
> diff -r 432922275bea -r 5217c96d817d src/Virt_SettingsDefineCapabilities.c
> --- a/src/Virt_SettingsDefineCapabilities.c Fri Jan 21 15:59:27 2011 -0500
> +++ b/src/Virt_SettingsDefineCapabilities.c Wed Feb 16 06:48:11 2011 -0800
> @@ -852,6 +852,7 @@
> const char *disk_path,
> uint64_t disk_size,
> uint16_t emu_type,
> + bool readonly,
> struct inst_list *list)
> {
> const char *dev;
> @@ -895,6 +896,9 @@
> (CMPIValue *)dev, CMPI_chars);
> CMSetProperty(inst, "EmulatedType",
> (CMPIValue *)&emu_type, CMPI_uint16);
> + if(readonly)
> + CMSetProperty(inst, "readonly",
> + (CMPIValue *)&readonly, CMPI_boolean);
> }
>
> inst_list_add(list, inst);
> @@ -915,6 +919,7 @@
> CMPIStatus s = {CMPI_RC_OK, NULL};
> const char *dev_str = NULL;
> char *id_str = NULL;
> + bool readonly = true;
>
> if (emu_type == VIRT_DISK_TYPE_CDROM)
> dev_str = "CDROM";
> @@ -960,6 +965,7 @@
> vol_path,
> vol_size,
> emu_type,
> + readonly,
> list);
> }
> } else if (STREQ(pfx, "KVM")) {
> @@ -969,6 +975,7 @@
> vol_path,
> vol_size,
> emu_type,
> + readonly,
> list);
>
> } else if (!STREQ(pfx, "LXC")){
> @@ -1042,6 +1049,7 @@
> const char *id;
> int type = 0;
> bool ret;
> + bool readonly = true;
>
> CMPIStatus s = {CMPI_RC_OK, NULL};
>
> @@ -1092,6 +1100,7 @@
> disk_path,
> disk_size,
> emu_type,
> + readonly,
> list);
> if (s.rc != CMPI_RC_OK)
> goto out;
> @@ -1111,6 +1120,7 @@
> disk_path,
> disk_size,
> emu_type,
> + readonly,
> list);
> }
>
> @@ -1236,6 +1246,7 @@
> CMPIStatus s = {CMPI_RC_OK, NULL};
> int ret;
> uint16_t emu_type = 0;
> + bool readonly = false;
>
> ret = virStorageVolGetInfo(volume_ptr,&vol_info);
> if (ret == -1) {
> @@ -1292,6 +1303,7 @@
> vol_path,
> vol_size,
> emu_type,
> + readonly,
> list);
> }
> } else if (STREQ(pfx, "KVM")) {
> @@ -1301,6 +1313,7 @@
> vol_path,
> vol_size,
> emu_type,
> + readonly,
> list);
> } else {
> cu_statusf(_BROKER,&s,
> @@ -1457,7 +1470,7 @@
> if (STREQ(pfx, "LXC"))
> goto out;
>
> - s = cdrom_or_floppy_template(ref,
> + s = odrom_or_floppy_template(ref,
> template_type,
> VIRT_DISK_TYPE_CDROM,
> list);
> diff -r 432922275bea -r 5217c96d817d src/Virt_VirtualSystemManagementService.c
> --- a/src/Virt_VirtualSystemManagementService.c Fri Jan 21 15:59:27 2011 -0500
> +++ b/src/Virt_VirtualSystemManagementService.c Wed Feb 16 06:48:11 2011 -0800
> @@ -835,6 +835,7 @@
> {
> const char *val = NULL;
> uint16_t type;
> + bool read = false;
>
> CU_DEBUG("Enter disk_rasd_to_vdev");
> if (cu_get_str_prop(inst, "VirtualDevice",&val) != CMPI_RC_OK)
> @@ -867,6 +868,11 @@
>
> CU_DEBUG("device type is %s", dev->dev.disk.device);
>
> + if (cu_get_bool_prop(inst, "readonly",&read) != CMPI_RC_OK)
> + dev->dev.disk.readonly = false;
> + else
> + dev->dev.disk.readonly = read;
> +
> free(dev->dev.disk.bus_type);
> if (cu_get_str_prop(inst, "BusType",&val) != CMPI_RC_OK)
> dev->dev.disk.bus_type = NULL;
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
Chip Vincent
Open Virtualization
IBM Linux Technology Center
cvincent at linux.vnet.ibm.com
More information about the Libvirt-cim
mailing list