ui: disable setting uid/gid_start for user namespace

Libvirt not allowed uid/gid_start
configured as none 0 or not specified.
This patch will disable config uid/gid_start in UI.

Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
This commit is contained in:
Chen Hanxiao 2014-02-27 10:01:29 +08:00
parent c1e7da72b7
commit 77553c7e49
3 changed files with 34 additions and 46 deletions

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.16.0 on Thu Feb 20 08:33:46 2014 --> <!-- Generated with glade 3.16.0 on Mon Feb 24 22:09:46 2014 -->
<interface> <interface>
<!-- interface-requires gtk+ 3.0 --> <!-- interface-requires gtk+ 3.0 -->
<object class="GtkAccelGroup" id="accelgroup1"/> <object class="GtkAccelGroup" id="accelgroup1"/>
@ -1163,37 +1163,6 @@
<property name="height">1</property> <property name="height">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkSpinButton" id="uid-start">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="width_chars">6</property>
<property name="adjustment">adjustment14</property>
<property name="climb_rate">1</property>
<signal name="changed" handler="on_idmap_uid_start_changed" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="gid-start">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">adjustment15</property>
<property name="climb_rate">1</property>
<signal name="changed" handler="on_idmap_uid_target_changed" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child> <child>
<object class="GtkSpinButton" id="uid-target"> <object class="GtkSpinButton" id="uid-target">
<property name="visible">True</property> <property name="visible">True</property>
@ -1252,6 +1221,33 @@
<property name="height">1</property> <property name="height">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkLabel" id="gid-start">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">0</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="uid-start">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">0</property>
<property name="width_chars">10</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>

View File

@ -580,10 +580,8 @@ class vmmDetails(vmmGObjectUI):
"on_overview_name_changed": lambda *x: self.enable_apply(x, EDIT_NAME), "on_overview_name_changed": lambda *x: self.enable_apply(x, EDIT_NAME),
"on_overview_title_changed": lambda *x: self.enable_apply(x, EDIT_TITLE), "on_overview_title_changed": lambda *x: self.enable_apply(x, EDIT_TITLE),
"on_machine_type_changed": lambda *x: self.enable_apply(x, EDIT_MACHTYPE), "on_machine_type_changed": lambda *x: self.enable_apply(x, EDIT_MACHTYPE),
"on_idmap_uid_start_changed": lambda *x: self.enable_apply(x, EDIT_IDMAP),
"on_idmap_uid_target_changed": lambda *x: self.enable_apply(x, EDIT_IDMAP), "on_idmap_uid_target_changed": lambda *x: self.enable_apply(x, EDIT_IDMAP),
"on_idmap_uid_count_changed": lambda *x: self.enable_apply(x, EDIT_IDMAP), "on_idmap_uid_count_changed": lambda *x: self.enable_apply(x, EDIT_IDMAP),
"on_idmap_gid_start_changed": lambda *x: self.enable_apply(x, EDIT_IDMAP),
"on_idmap_gid_target_changed": lambda *x: self.enable_apply(x, EDIT_IDMAP), "on_idmap_gid_target_changed": lambda *x: self.enable_apply(x, EDIT_IDMAP),
"on_idmap_gid_count_changed": lambda *x: self.enable_apply(x, EDIT_IDMAP), "on_idmap_gid_count_changed": lambda *x: self.enable_apply(x, EDIT_IDMAP),
"on_config_idmap_check_toggled": self.config_idmap_enable, "on_config_idmap_check_toggled": self.config_idmap_enable,
@ -1976,15 +1974,12 @@ class vmmDetails(vmmGObjectUI):
if self.edited(EDIT_IDMAP): if self.edited(EDIT_IDMAP):
enable_idmap = self.widget("config-idmap-checkbutton").get_active() enable_idmap = self.widget("config-idmap-checkbutton").get_active()
if enable_idmap: if enable_idmap:
uid_start = self.widget("uid-start").get_text().strip()
uid_target = self.widget("uid-target").get_text().strip() uid_target = self.widget("uid-target").get_text().strip()
uid_count = self.widget("uid-count").get_text().strip() uid_count = self.widget("uid-count").get_text().strip()
gid_start = self.widget("gid-start").get_text().strip()
gid_target = self.widget("gid-target").get_text().strip() gid_target = self.widget("gid-target").get_text().strip()
gid_count = self.widget("gid-count").get_text().strip() gid_count = self.widget("gid-count").get_text().strip()
idmap_list = [uid_start, uid_target, uid_count, gid_start, idmap_list = [uid_target, uid_count, gid_target, gid_count]
gid_target, gid_count]
else: else:
idmap_list = None idmap_list = None
@ -2478,10 +2473,8 @@ class vmmDetails(vmmGObjectUI):
is_container = self.vm.is_container() is_container = self.vm.is_container()
self.widget("config-idmap-expander").set_visible(is_container) self.widget("config-idmap-expander").set_visible(is_container)
self.widget("uid-start").set_text('0')
self.widget("uid-target").set_text('1000') self.widget("uid-target").set_text('1000')
self.widget("uid-count").set_text('10') self.widget("uid-count").set_text('10')
self.widget("gid-start").set_text('0')
self.widget("gid-target").set_text('1000') self.widget("gid-target").set_text('1000')
self.widget("gid-count").set_text('10') self.widget("gid-count").set_text('10')
@ -2491,8 +2484,7 @@ class vmmDetails(vmmGObjectUI):
self.widget("config-idmap-checkbutton").set_active(show_config) self.widget("config-idmap-checkbutton").set_active(show_config)
self.widget("idmap-spin-grid").set_sensitive(show_config) self.widget("idmap-spin-grid").set_sensitive(show_config)
if show_config: if show_config:
Name = ["uid-start", "uid-target", "uid-count", Name = ["uid-target", "uid-count", "gid-target", "gid-count"]
"gid-start", "gid-target", "gid-count"]
for name in Name: for name in Name:
IdMap_proper = getattr(IdMap, name.replace("-", "_")) IdMap_proper = getattr(IdMap, name.replace("-", "_"))
self.widget(name).set_value(int(IdMap_proper)) self.widget(name).set_value(int(IdMap_proper))

View File

@ -577,17 +577,17 @@ class vmmDomain(vmmLibvirtObject):
# Idmap config define methods # Idmap config define methods
def define_idmap(self, idmap_list): def define_idmap(self, idmap_list):
def change(guest): def change(guest):
guest.idmap.uid_start = uid_start guest.idmap.uid_start = 0
guest.idmap.uid_target = uid_target guest.idmap.uid_target = uid_target
guest.idmap.uid_count = uid_count guest.idmap.uid_count = uid_count
guest.idmap.gid_start = gid_start guest.idmap.gid_start = 0
guest.idmap.gid_target = gid_target guest.idmap.gid_target = gid_target
guest.idmap.gid_count = gid_count guest.idmap.gid_count = gid_count
def clear(guest): def clear(guest):
guest.idmap.clear() guest.idmap.clear()
if idmap_list is not None: if idmap_list is not None:
(uid_start, uid_target, uid_count, gid_start, (uid_target, uid_count, gid_target,
gid_target, gid_count) = idmap_list gid_count) = idmap_list
return self._redefine(change) return self._redefine(change)
else: else:
return self._redefine(clear) return self._redefine(clear)