[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