Signed-off-by: Lin Ma <lma@xxxxxxxx> --- ui/addhardware.ui | 56 ++++++++++++++++++++++++++++++++++++++ virtManager/addhardware.py | 35 ++++++++++++++++++++++++ 2 files changed, 91 insertions(+) diff --git a/ui/addhardware.ui b/ui/addhardware.ui index dffcf8c6..aa9e0339 100644 --- a/ui/addhardware.ui +++ b/ui/addhardware.ui @@ -328,6 +328,62 @@ <property name="top_attach">3</property> </packing> </child> + <child> + <object class="GtkLabel" id="disk-pr-label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">_Managed SCSI PR:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">disk-pr-entry</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">4</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="disk-pr"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="has_entry">True</property> + <child internal-child="entry"> + <object class="GtkEntry" id="disk-pr-entry"> + <property name="can_focus">True</property> + <signal name="changed" handler="on_disk_pr_combo_changed" swapped="no"/> + </object> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">4</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="disk-pr-path-label"> + <property name="visible">False</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">PR source path:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">disk-pr-path-entry</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">5</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="disk-pr-path-entry"> + <property name="visible">False</property> + <property name="can_focus">True</property> + <property name="hexpand">False</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">5</property> + </packing> + </child> </object> </child> <child type="label"> diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py index e1fe699c..7d6ae47a 100644 --- a/virtManager/addhardware.py +++ b/virtManager/addhardware.py @@ -111,6 +111,8 @@ class vmmAddHardware(vmmGObjectUI): "on_usbredir_type_changed": self._change_usbredir_type, "on_controller_type_changed": self._change_controller_type, + + "on_disk_pr_combo_changed": self._change_disk_pr_combo, }) self.bind_escape_key_close() @@ -197,6 +199,7 @@ class vmmAddHardware(vmmGObjectUI): self.build_disk_discard_combo(self.vm, self.widget("storage-discard")) self.build_disk_detect_zeroes_combo(self.vm, self.widget("storage-detect-zeroes")) + self.build_disk_pr_managed_combo(self.vm, self.widget("disk-pr")) self.build_network_model_combo(self.vm, self.widget("net-model")) self._build_input_combo() self.build_sound_combo(self.vm, self.widget("sound-model")) @@ -856,6 +859,15 @@ class vmmAddHardware(vmmGObjectUI): self.widget("storage-devtype")) self._refresh_disk_bus(devtype) + disk_pr = self.widget("disk-pr") + uiutil.set_grid_row_visible(disk_pr, False) + disk_pr_path_entry = self.widget("disk-pr-path-entry") + uiutil.set_grid_row_visible(disk_pr_path_entry, False) + is_lun = devtype == "lun" + uiutil.set_grid_row_visible(disk_pr, is_lun) + not_managed = (uiutil.get_list_selection(disk_pr) == "no") + uiutil.set_grid_row_visible(disk_pr_path_entry, is_lun and not_managed) + allow_create = devtype not in ["cdrom", "floppy"] self.addstorage.widget("storage-create-box").set_sensitive( allow_create) @@ -978,6 +990,15 @@ class vmmAddHardware(vmmGObjectUI): self.populate_controller_model_combo(combo, controller_type) uiutil.set_grid_row_visible(combo, len(combo.get_model()) > 1) + def _change_disk_pr_combo(self, src): + ignore = src + disk_pr = self.widget("disk-pr") + not_managed = (uiutil.get_list_selection(disk_pr) == "no") + uiutil.set_grid_row_visible(self.widget("disk-pr-path-label"), + not_managed) + uiutil.set_grid_row_visible(self.widget("disk-pr-path-entry"), + not_managed) + ###################### # Add device methods # @@ -1208,6 +1229,14 @@ class vmmAddHardware(vmmGObjectUI): self.widget("storage-discard")) detect_zeroes = uiutil.get_list_selection( self.widget("storage-detect-zeroes")) + if device == "lun": + pr_managed = uiutil.get_list_selection(self.widget("disk-pr")) + pr_path = None + if pr_managed == "no": + pr_path = self.widget("disk-pr-path-entry").get_text() + # Hardcode the vales of the type and the mode + pr_type = "unix" + pr_mode = "client" controller_model = None if (bus == "scsi" and @@ -1238,6 +1267,12 @@ class vmmAddHardware(vmmGObjectUI): disk.driver_discard = discard if detect_zeroes: disk.driver_detect_zeroes = detect_zeroes + if device == "lun": + disk.pr_managed = pr_managed + if pr_path: + disk.pr_path = pr_path + disk.pr_type = pr_type + disk.pr_mode = pr_mode # Generate target disks = (self.vm.xmlobj.devices.disk + -- 2.19.0 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list