def __init__(self, conn): vmmGObjectUI.__init__(self, "vmm-create-net.ui", "vmm-create-net") self.conn = conn self.builder.connect_signals({ "on_create_pages_switch_page" : self.page_changed, "on_create_cancel_clicked" : self.close, "on_vmm_create_delete_event" : self.close, "on_create_forward_clicked" : self.forward, "on_create_back_clicked" : self.back, "on_create_finish_clicked" : self.finish, "on_net_name_activate": self.forward, "on_net_forward_toggled" : self.change_forward_type, "on_net-ipv4-enable_toggled" : self.change_ipv4_enable, "on_net-ipv4-network_changed": self.change_network, "on_net-dhcpv4-enable_toggled": self.change_dhcpv4_enable, "on_net-dhcpv4-start_changed": self.change_dhcpv4_start, "on_net-dhcpv4-end_changed": self.change_dhcpv4_end, "on_net-ipv6-enable_toggled" : self.change_ipv6_enable, "on_net-ipv6-network_changed": self.change_ipv6_network, "on_net-dhcpv6-enable_toggled": self.change_dhcpv6_enable, "on_net-dhcpv6-start_changed": self.change_dhcpv6_start, "on_net-dhcpv6-end_changed": self.change_dhcpv6_end, }) self.bind_escape_key_close() finish_img = Gtk.Image.new_from_stock(Gtk.STOCK_QUIT, Gtk.IconSize.BUTTON) self.widget("create-finish").set_image(finish_img) self.set_initial_state()
def __init__(self, vm, disk): vmmGObjectUI.__init__(self, "vmm-choose-cd.ui", "vmm-choose-cd") self.vm = vm self.conn = self.vm.conn self.disk = disk self.storage_browser = None self.media_type = disk.device self.builder.connect_signals({ "on_media_toggled": self.media_toggled, "on_fv_iso_location_browse_clicked": self.browse_fv_iso_location, "on_cd_path_changed": self.change_cd_path, "on_ok_clicked": self.ok, "on_vmm_choose_cd_delete_event": self.close, "on_cancel_clicked": self.close, }) self.widget("iso-image").set_active(True) self.initialize_opt_media() self.reset_state()
def __init__(self, conn): vmmGObjectUI.__init__(self, "createpool.ui", "vmm-create-pool") self.conn = conn self._pool = None self.builder.connect_signals({ "on_pool_forward_clicked" : self.forward, "on_pool_back_clicked" : self.back, "on_pool_cancel_clicked" : self.close, "on_vmm_create_pool_delete_event" : self.close, "on_pool_finish_clicked" : self.forward, "on_pool_pages_change_page" : self.page_changed, "on_pool_source_button_clicked" : self.browse_source_path, "on_pool_target_button_clicked" : self.browse_target_path, "on_pool_name_activate": self.forward, "on_pool_hostname_activate" : self.hostname_changed, "on_pool_iqn_chk_toggled": self.iqn_toggled, }) self.bind_escape_key_close() self.set_initial_state() self.set_page(PAGE_NAME)
def __init__(self, conn): vmmGObjectUI.__init__(self, "vmm-create-net.ui", "vmm-create-net") self.conn = conn self.window.connect_signals({ "on_create_pages_switch_page": self.page_changed, "on_create_cancel_clicked": self.close, "on_vmm_create_delete_event": self.close, "on_create_forward_clicked": self.forward, "on_create_back_clicked": self.back, "on_create_finish_clicked": self.finish, "on_net_name_activate": self.forward, "on_net_forward_toggled": self.change_forward_type, "on_net_network_changed": self.change_network, "on_net_dhcp_enable_toggled": self.change_dhcp_enable, "on_net_dhcp_start_changed": self.change_dhcp_start, "on_net_dhcp_end_changed": self.change_dhcp_end, "on_create_help_clicked": self.show_help, }) self.bind_escape_key_close() # XXX: Help docs useless/out of date self.widget("create-help").hide() finish_img = gtk.image_new_from_stock(gtk.STOCK_QUIT, gtk.ICON_SIZE_BUTTON) self.widget("create-finish").set_image(finish_img) self.set_initial_state()
def __init__(self, conn, parent_pool): vmmGObjectUI.__init__(self, "vmm-create-vol.ui", "vmm-create-vol") self.conn = conn self.parent_pool = parent_pool self.name_hint = None self.vol = None self.vol_class = Storage.StoragePool.get_volume_for_pool(parent_pool.get_type()) self.window.connect_signals({ "on_vmm_create_vol_delete_event" : self.close, "on_vol_cancel_clicked" : self.close, "on_vol_create_clicked" : self.finish, "on_vol_name_changed" : self.vol_name_changed, "on_vol_allocation_value_changed" : self.vol_allocation_changed, "on_vol_capacity_value_changed" : self.vol_capacity_changed, }) self.bind_escape_key_close() format_list = self.widget("vol-format") format_model = gtk.ListStore(str, str) format_list.set_model(format_model) text2 = gtk.CellRendererText() format_list.pack_start(text2, False) format_list.add_attribute(text2, 'text', 1) self.widget("vol-info-view").modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("grey")) # XXX: Help docs useless/out of date self.widget("pool-help").hide() finish_img = gtk.image_new_from_stock(gtk.STOCK_QUIT, gtk.ICON_SIZE_BUTTON) self.widget("vol-create").set_image(finish_img) self.reset_state()
def __init__(self, vm, builder, topwin): vmmGObjectUI.__init__(self, "vmm-snapshots.ui", None, builder=builder, topwin=topwin) self.vm = vm self._initial_populate = False self._init_ui() self._snapshot_new = self.widget("snapshot-new") self._snapshot_new.set_transient_for(self.topwin) self.builder.connect_signals({ "on_snapshot_add_clicked": self._on_add_clicked, "on_snapshot_delete_clicked": self._on_delete_clicked, "on_snapshot_start_clicked": self._on_start_clicked, "on_snapshot_apply_clicked": self._on_apply_clicked, # 'Create' dialog "on_snapshot_new_delete_event": self._snapshot_new_close, "on_snapshot_new_ok_clicked": self._on_new_ok_clicked, "on_snapshot_new_cancel_clicked" : self._snapshot_new_close, }) self.top_box = self.widget("snapshot-top-box") self.widget("snapshot-top-window").remove(self.top_box) self.widget("snapshot-list").get_selection().connect("changed", self._snapshot_selected) self._set_snapshot_state(None)
def __init__(self, conn): vmmGObjectUI.__init__(self, "vmm-create-net.ui", "vmm-create-net") self.conn = conn self.window.connect_signals({ "on_create_pages_switch_page" : self.page_changed, "on_create_cancel_clicked" : self.close, "on_vmm_create_delete_event" : self.close, "on_create_forward_clicked" : self.forward, "on_create_back_clicked" : self.back, "on_create_finish_clicked" : self.finish, "on_net_name_activate": self.forward, "on_net_forward_toggled" : self.change_forward_type, "on_net_network_changed": self.change_network, "on_net_dhcp_enable_toggled": self.change_dhcp_enable, "on_net_dhcp_start_changed": self.change_dhcp_start, "on_net_dhcp_end_changed": self.change_dhcp_end, "on_create_help_clicked": self.show_help, }) self.bind_escape_key_close() # XXX: Help docs useless/out of date self.widget("create-help").hide() finish_img = gtk.image_new_from_stock(gtk.STOCK_QUIT, gtk.ICON_SIZE_BUTTON) self.widget("create-finish").set_image(finish_img) self.set_initial_state()
def __init__(self): vmmGObjectUI.__init__(self, "about.ui", "vmm-about") self.builder.connect_signals({ "on_vmm_about_delete_event": self.close, "on_vmm_about_response": self.close, })
def __init__(self): # check if groups config file exists vmaffinityxmlutil.checkIfGroupsConfigExists() #initialize all UI components to none self.viewRulesImageBanner = None self.configuredAffinityRulesScrolledwindow = None self.selectedRuleDesTextview = None self.selectedAffinityRuleVMsScrolledwindow = None self.cancelViewRuleButton = None self.okViewRuleButton = None self.allGroupsClist = None self.VMsInGroupClist = None #CList related variables self.selectedGroupRow = None self.selectedGroupColumn = None self.allGroupDictionary = None #Initialize window vmmGObjectUI.__init__(self, "vmaffinity-view-rules.ui", "vmaffinity-view-rules") #Connect signals self.window.connect_signals({ "on_vmaffinity-view-configured-rules_delete_event":self.close, "on_cancelViewRuleButton_clicked":self.close, "on_okViewRuleButton_clicked":self.close, }) #Initialize UI components self.initUIComponents()
def __init__(self, vm, builder, topwin): vmmGObjectUI.__init__(self, "snapshots.ui", None, builder=builder, topwin=topwin) self.vm = vm self._initial_populate = False self._snapmenu = None self._init_ui() self._snapshot_new = self.widget("snapshot-new") self._snapshot_new.set_transient_for(self.topwin) self.bind_escape_key_close_helper(self._snapshot_new, self._snapshot_new_close) self.builder.connect_signals({ "on_snapshot_add_clicked": self._on_add_clicked, "on_snapshot_delete_clicked": self._on_delete_clicked, "on_snapshot_start_clicked": self._on_start_clicked, "on_snapshot_apply_clicked": self._on_apply_clicked, "on_snapshot_list_changed": self._snapshot_selected, "on_snapshot_list_button_press_event": self._popup_snapshot_menu, # 'Create' dialog "on_snapshot_new_delete_event": self._snapshot_new_close, "on_snapshot_new_ok_clicked": self._on_new_ok_clicked, "on_snapshot_new_cancel_clicked" : self._snapshot_new_close, "on_snapshot_new_name_changed" : self._snapshot_new_name_changed, "on_snapshot_new_name_activate": self._on_new_ok_clicked, }) self.top_box = self.widget("snapshot-top-box") self.widget("snapshot-top-window").remove(self.top_box) self.widget("snapshot-list").get_selection().emit("changed")
def __init__(self, vm, engine): vmmGObjectUI.__init__(self, "vmm-migrate.ui", "vmm-migrate") self.vm = vm self.conn = vm.conn self.engine = engine self.destconn_rows = [] self.builder.connect_signals({ "on_vmm_migrate_delete_event" : self.close, "on_migrate_cancel_clicked" : self.close, "on_migrate_finish_clicked" : self.finish, "on_migrate_dest_changed" : self.destconn_changed, "on_migrate_set_rate_toggled" : self.toggle_set_rate, "on_migrate_set_interface_toggled" : self.toggle_set_interface, "on_migrate_set_port_toggled" : self.toggle_set_port, "on_migrate_set_maxdowntime_toggled" : self.toggle_set_maxdowntime, }) self.bind_escape_key_close() blue = Gdk.color_parse("#0072A8") self.widget("migrate-header").modify_bg(Gtk.StateType.NORMAL, blue) image = Gtk.Image.new_from_icon_name("vm_clone_wizard", Gtk.IconSize.DIALOG) image.show() self.widget("migrate-vm-icon-box").pack_end(image, False, False, False) self.init_state()
def __init__(self, conn, parent_pool): vmmGObjectUI.__init__(self, "createvol.ui", "vmm-create-vol") self.conn = conn self.parent_pool = parent_pool self.name_hint = None self.vol = None self.storage_browser = None self.builder.connect_signals({ "on_vmm_create_vol_delete_event" : self.close, "on_vol_cancel_clicked" : self.close, "on_vol_create_clicked" : self.finish, "on_vol_name_changed" : self.vol_name_changed, "on_vol_format_changed" : self.vol_format_changed, "on_backing_store_changed" : self._show_alloc, "on_vol_allocation_value_changed" : self.vol_allocation_changed, "on_vol_capacity_value_changed" : self.vol_capacity_changed, "on_backing_browse_clicked" : self.browse_backing, }) self.bind_escape_key_close() self._init_state() self.reset_state()
def reset_state(self): # check if groups config file exists vmaffinityxmlutil.checkIfGroupsConfigExists() #initialize all UI components to none self.viewHostAffinityRulesImageBanner = None self.availableVirtualMachinesScrolledwindow = None self.selectedVMDesTextview = None self.selectedVMAffinedHostsScrolledwindow = None self.cancelViewHostAffinityRuleButton = None self.okViewHostAffinityRuleButton = None self.allVMsClist = None self.affinedHostsClist = None #CList related variables self.selectedVMRow = None self.selectedVMColumn = None self.allVMHostAffinityDictionary = None #Initialize window vmmGObjectUI.__init__(self, "vmaffinity-view-hostaffinityrules.ui", "vmaffinity-view-hostaffinity-rules") #Connect signals self.window.connect_signals({ "on_vmaffinity-view-configured-rules_delete_event":self.close, "on_cancelViewHostAffinityRuleButton_clicked":self.close, "on_okViewHostAffinityRuleButton_clicked":self.close, }) #Initialize UI components self.initUIComponents()
def __init__(self, conn, parent_pool): vmmGObjectUI.__init__(self, "vmm-create-vol.ui", "vmm-create-vol") self.conn = conn self.parent_pool = parent_pool self.name_hint = None self.vol = None self.vol_class = Storage.StoragePool.get_volume_for_pool(parent_pool.get_type()) self.builder.connect_signals({ "on_vmm_create_vol_delete_event" : self.close, "on_vol_cancel_clicked" : self.close, "on_vol_create_clicked" : self.finish, "on_vol_name_changed" : self.vol_name_changed, "on_vol_allocation_value_changed" : self.vol_allocation_changed, "on_vol_capacity_value_changed" : self.vol_capacity_changed, }) self.bind_escape_key_close() format_list = self.widget("vol-format") format_model = Gtk.ListStore(str, str) format_list.set_model(format_model) text2 = Gtk.CellRendererText() format_list.pack_start(text2, False) format_list.add_attribute(text2, 'text', 1) self.widget("vol-info-view").modify_bg(Gtk.StateType.NORMAL, Gdk.Color.parse("grey")[1]) finish_img = Gtk.Image.new_from_stock(Gtk.STOCK_QUIT, Gtk.IconSize.BUTTON) self.widget("vol-create").set_image(finish_img) self.reset_state()
def reset_state(self): #initialize all UI components to none self.vmaDeleteHostAffinityBanner = None self.allVMsScrolledwindow = None self.selectedVMAffinedHostsScrolledwindow = None self.selectedRuleDesTextview = None self.cancelRuleDeletionButton = None self.DeleteHostAffinityButton = None self.errorLabel = None self.allVmsClist = None self.affinedHostsClist = None #CList related variables self.selectedVMRow = None self.selectedVMColumn = None self.allVMHostAffinityDictionary = None vmmGObjectUI.__init__(self, "vmaffinity-deleterule.ui", "vmaffinity-deleterule") #Connect signals self.window.connect_signals({ "on_cancelRuleDeletionButton_clicked": self.close, "on_DeleteHostAffinityButton_clicked":self.DeleteHostAffinityRuleButtonClicked, "on_vmaffinity-deletehostaffinityrule_delete_event": self.close,}) #Initialize all UI components self.initUIComponents() self.err = vmmErrorDialog()
def __init__(self, vm, builder, topwin): vmmGObjectUI.__init__(self, "fsdetails.ui", None, builder=builder, topwin=topwin) self.vm = vm self.conn = vm.conn self._dev = None self.storage_browser = None self.builder.connect_signals({ "on_fs_type_combo_changed": self.change_field, "on_fs_driver_combo_changed": self.change_field, "on_fs_source_browse_clicked": self.browse_fs_source, "on_fs_mode_combo_changed": self.notify_change, "on_fs_wrpolicy_combo_changed": self.notify_change, "on_fs_readonly_toggled": self.notify_change, "on_fs_format_combo_changed": self.notify_change, "on_fs_source_changed": self.notify_change, "on_fs_ram_source_changed": self.notify_change, "on_fs_target_changed": self.notify_change, }) self.set_initial_state() self.top_box = self.widget("vmm-fs-details")
def __init__(self, orig_vm): vmmGObjectUI.__init__(self, "vmm-clone.ui", "vmm-clone") self.orig_vm = orig_vm self.conn = self.orig_vm.conn self.clone_design = None self.storage_list = {} self.target_list = [] self.net_list = {} self.mac_list = [] self.storage_browser = None self.change_mac = self.widget("vmm-change-mac") self.change_mac.set_transient_for(self.topwin) self.change_storage = self.widget("vmm-change-storage") self.change_storage.set_transient_for(self.topwin) self.window.connect_signals({ "on_clone_delete_event": self.close, "on_clone_cancel_clicked": self.close, "on_clone_ok_clicked": self.finish, "on_clone_help_clicked": self.show_help, # Change mac dialog "on_vmm_change_mac_delete_event": self.change_mac_close, "on_change_mac_cancel_clicked": self.change_mac_close, "on_change_mac_ok_clicked": self.change_mac_finish, # Change storage dialog "on_vmm_change_storage_delete_event": self.change_storage_close, "on_change_storage_cancel_clicked": self.change_storage_close, "on_change_storage_ok_clicked": self.change_storage_finish, "on_change_storage_doclone_toggled": self.change_storage_doclone_toggled, "on_change_storage_browse_clicked": self.change_storage_browse, }) self.bind_escape_key_close() # XXX: Help docs useless/out of date self.widget("clone-help").hide() finish_img = gtk.image_new_from_stock(gtk.STOCK_NEW, gtk.ICON_SIZE_BUTTON) self.widget("clone-ok").set_image(finish_img) self.set_initial_state()
def __init__(self, vm, disk): vmmGObjectUI.__init__(self, "choosecd.ui", "vmm-choose-cd") self.vm = vm self.conn = self.vm.conn self.storage_browser = None # This is also overwritten from details.py when targetting a new disk self.disk = disk self.media_type = disk.device self.mediacombo = vmmMediaCombo(self.conn, self.builder, self.topwin, self.media_type) self.widget("media-combo-align").add(self.mediacombo.top_box) self.builder.connect_signals({ "on_vmm_choose_cd_delete_event": self.close, "on_media_toggled": self.media_toggled, "on_fv_iso_location_browse_clicked": self.browse_fv_iso_location, "on_ok_clicked": self.ok, "on_cancel_clicked": self.close, }) self.reset_state()
def __init__(self, vm, engine): vmmGObjectUI.__init__(self, "vmm-migrate.ui", "vmm-migrate") self.vm = vm self.conn = vm.conn self.engine = engine self.destconn_rows = [] self.window.connect_signals({ "on_vmm_migrate_delete_event" : self.close, "on_migrate_cancel_clicked" : self.close, "on_migrate_finish_clicked" : self.finish, "on_migrate_dest_changed" : self.destconn_changed, "on_migrate_set_rate_toggled" : self.toggle_set_rate, "on_migrate_set_interface_toggled" : self.toggle_set_interface, "on_migrate_set_port_toggled" : self.toggle_set_port, "on_migrate_set_maxdowntime_toggled" : self.toggle_set_maxdowntime, }) self.bind_escape_key_close() blue = gtk.gdk.color_parse("#0072A8") self.widget("migrate-header").modify_bg(gtk.STATE_NORMAL, blue) image = gtk.image_new_from_icon_name("vm_clone_wizard", gtk.ICON_SIZE_DIALOG) image.show() self.widget("migrate-vm-icon-box").pack_end(image, False) self.init_state()
def __init__(self): vmmGObjectUI.__init__(self, "vmm-about.ui", "vmm-about") self.builder.connect_signals({ "on_vmm_about_delete_event": self.close, "on_vmm_about_response": self.close, })
def __init__(self): vmmGObjectUI.__init__(self, "preferences.ui", "vmm-preferences") self._init_ui() self.refresh_view_system_tray() self.refresh_update_interval() self.refresh_console_accels() self.refresh_console_scaling() self.refresh_console_resizeguest() self.refresh_new_vm_sound() self.refresh_graphics_type() self.refresh_add_spice_usbredir() self.refresh_storage_format() self.refresh_cpu_default() self.refresh_cpu_poll() self.refresh_disk_poll() self.refresh_net_poll() self.refresh_memory_poll() self.refresh_grabkeys_combination() self.refresh_confirm_forcepoweroff() self.refresh_confirm_poweroff() self.refresh_confirm_pause() self.refresh_confirm_removedev() self.refresh_confirm_interface() self.refresh_confirm_unapplied() self.refresh_confirm_delstorage() self.builder.connect_signals({ "on_vmm_preferences_delete_event": self.close, "on_prefs_close_clicked": self.close, "on_prefs_system_tray_toggled" : self.change_view_system_tray, "on_prefs_stats_update_interval_changed": self.change_update_interval, "on_prefs_console_accels_toggled": self.change_console_accels, "on_prefs_console_scaling_changed": self.change_console_scaling, "on_prefs_console_resizeguest_changed": self.change_console_resizeguest, "on_prefs_new_vm_sound_toggled": self.change_new_vm_sound, "on_prefs_graphics_type_changed": self.change_graphics_type, "on_prefs_add_spice_usbredir_changed": self.change_add_spice_usbredir, "on_prefs_storage_format_changed": self.change_storage_format, "on_prefs_cpu_default_changed": self.change_cpu_default, "on_prefs_stats_enable_cpu_toggled": self.change_cpu_poll, "on_prefs_stats_enable_disk_toggled": self.change_disk_poll, "on_prefs_stats_enable_net_toggled": self.change_net_poll, "on_prefs_stats_enable_memory_toggled": self.change_memory_poll, "on_prefs_confirm_forcepoweroff_toggled": self.change_confirm_forcepoweroff, "on_prefs_confirm_poweroff_toggled": self.change_confirm_poweroff, "on_prefs_confirm_pause_toggled": self.change_confirm_pause, "on_prefs_confirm_removedev_toggled": self.change_confirm_removedev, "on_prefs_confirm_interface_toggled": self.change_confirm_interface, "on_prefs_confirm_unapplied_toggled": self.change_confirm_unapplied, "on_prefs_confirm_delstorage_toggled": self.change_confirm_delstorage, "on_prefs_btn_keys_define_clicked": self.change_grab_keys, }) self.widget("prefs-graphics-type").emit("changed") self.bind_escape_key_close()
def __init__(self, conn): vmmGObjectUI.__init__(self, "vmm-create-interface.ui", "vmm-create-interface") self.conn = conn self.interface = None self.bridge_config = self.widget("bridge-config") self.bridge_config.set_transient_for(self.topwin) self.bond_config = self.widget("bond-config") self.bond_config.set_transient_for(self.topwin) self.ip_config = self.widget("ip-config") self.ip_config.set_transient_for(self.topwin) self.ip_manually_changed = False self.window.connect_signals({ "on_vmm_create_interface_delete_event" : self.close, "on_cancel_clicked": self.close, "on_back_clicked" : self.back, "on_forward_clicked" : self.forward, "on_finish_clicked" : self.finish, "on_help_clicked": self.show_help, "on_pages_switch_page": self.page_changed, "on_bridge_config_button_clicked": self.show_bridge_config, "on_bond_config_button_clicked": self.show_bond_config, "on_ip_config_button_clicked": self.show_ip_config, "on_vlan_tag_changed": self.update_interface_name, # Bridge config dialog "on_bridge_config_delete_event": self.bridge_config_finish, "on_bridge_ok_clicked" : self.bridge_config_finish, # IP config dialog "on_ip_config_delete_event": self.ip_config_finish, "on_ip_ok_clicked": self.ip_config_finish, "on_ip_copy_interface_toggled": self.ip_copy_interface_toggled, "on_ipv4_mode_changed": self.ipv4_mode_changed, "on_ipv6_mode_changed": self.ipv6_mode_changed, "on_ipv6_address_add_clicked": self.ipv6_address_add, "on_ipv6_address_remove_clicked": self.ipv6_address_remove, # Bond config dialog "on_bond_config_delete_event": self.bond_config_finish, "on_bond_ok_clicked" : self.bond_config_finish, "on_bond_monitor_mode_changed": self.bond_monitor_mode_changed, }) self.bind_escape_key_close() self.set_initial_state()
def __init__(self, vm, window): vmmGObjectUI.__init__(self, None, None) self.vm = vm self.windowname = "vmm-details" self.window = window self.topwin = self.widget(self.windowname) self.err = vmmErrorDialog(self.topwin) self.pointer_is_grabbed = False self.change_title() self.vm.connect("config-changed", self.change_title) # State for disabling modifiers when keyboard is grabbed self.accel_groups = gtk.accel_groups_from_object(self.topwin) self.gtk_settings_accel = None self.gtk_settings_mnemonic = None # Initialize display widget self.viewer = None self.tunnels = None self.viewerRetriesScheduled = 0 self.viewerRetryDelay = 125 self._viewer_connected = False self.viewer_connecting = False self.scale_type = self.vm.get_console_scaling() # Fullscreen toolbar self.send_key_button = None self.fs_toolbar = None self.fs_drawer = None self.keycombo_menu = uihelpers.build_keycombo_menu(self.send_key) self.init_fs_toolbar() finish_img = gtk.image_new_from_stock(gtk.STOCK_YES, gtk.ICON_SIZE_BUTTON) self.widget("console-auth-login").set_image(finish_img) # Make viewer widget background always be black black = gtk.gdk.Color(0, 0, 0) self.widget("console-vnc-viewport").modify_bg(gtk.STATE_NORMAL, black) # Signals are added by vmmDetails. Don't use connect_signals here # or it changes will be overwritten # Set console scaling self.add_gconf_handle( self.vm.on_console_scaling_changed(self.refresh_scaling)) scroll = self.widget("console-vnc-scroll") scroll.connect("size-allocate", self.scroll_size_allocate) self.add_gconf_handle( self.config.on_console_accels_changed(self.set_enable_accel)) self.add_gconf_handle( self.config.on_keys_combination_changed(self.grab_keys_changed)) self.page_changed()
def __init__(self): # check if groups config file exists vmaffinityxmlutil.checkIfGroupsConfigExists() #initialize all UI components to none self.manageRuleBanner = None self.configuredAffinityRulesScrolledwindow = None self.selectedRuleDesTextview = None self.selectedAffinityRuleVMsScrolledwindow = None self.availableVirtualMachineScrolledwindow = None self.updatedGroupVirtualMachineScrolledwindow = None self.addVMToUpdatedAffinityGroupbutton = None self.removeVMFromUpdatedAffinityGroupButton = None self.cancelRuleManageButton = None self.UpdateAffinityGroupButton = None self.errorLabel = None self.allGroupsClist = None self.VMsInGroupClist = None # CList for managing self.universalVMList = None self.VMsInUpdatedGroupClist = None # CList variables for managing self.universalSelectedVMRow = None self.universalSelectedVMColumn = None self.updatedListSelectedVMRow = None self.updatedListSelectedVMColumn = None #CList related variables self.selectedGroupRow = None self.selectedGroupColumn = None self.allGroupDictionary = None # List of all available machines in this machine self.allVMsInMachine = None vmmGObjectUI.__init__(self, "vmaffinity-manage-affinity-rules.ui", "vmaffinity-manage-affinity-rules") #Connect signals self.window.connect_signals({"on_addVMToUpdatedAffinityGroupbutton_clicked": self.addVMToUpdatedAffinityGroup, "on_removeVMFromUpdatedAffinityGroupButton_clicked": self.removeVMFromUpdatedAffinityGroup, "on_cancelRuleManageButton_clicked": self.close, "on_UpdateAffinityGroupButton_clicked": self.UpdateAffinityGroup, "on_vmaffinity-manage-affinity-rules_delete_event": self.close, }) # a counter to keep track on how many virtual machines in updated group vm members. self.totalVMsInUpdatedGroup = 0 #Initialize all UI components self.initUIComponents() self.err = vmmErrorDialog()
def __init__(self, orig_vm): vmmGObjectUI.__init__(self, "vmm-clone.ui", "vmm-clone") self.orig_vm = orig_vm self.conn = self.orig_vm.conn self.clone_design = None self.storage_list = {} self.target_list = [] self.net_list = {} self.mac_list = [] self.storage_browser = None self.change_mac = self.widget("vmm-change-mac") self.change_mac.set_transient_for(self.topwin) self.change_storage = self.widget("vmm-change-storage") self.change_storage.set_transient_for(self.topwin) self.builder.connect_signals({ "on_clone_delete_event": self.close, "on_clone_cancel_clicked": self.close, "on_clone_ok_clicked": self.finish, # Change mac dialog "on_vmm_change_mac_delete_event": self.change_mac_close, "on_change_mac_cancel_clicked": self.change_mac_close, "on_change_mac_ok_clicked": self.change_mac_finish, # Change storage dialog "on_vmm_change_storage_delete_event": self.change_storage_close, "on_change_storage_cancel_clicked": self.change_storage_close, "on_change_storage_ok_clicked": self.change_storage_finish, "on_change_storage_doclone_toggled": self.change_storage_doclone_toggled, "on_change_storage_browse_clicked": self.change_storage_browse, }) self.bind_escape_key_close() finish_img = Gtk.Image.new_from_stock(Gtk.STOCK_NEW, Gtk.IconSize.BUTTON) self.widget("clone-ok").set_image(finish_img) self.set_initial_state()
def __init__(self, conn, builder, topwin, media_type): vmmGObjectUI.__init__(self, None, None, builder=builder, topwin=topwin) self.conn = conn self.media_type = media_type self.top_box = None self.combo = None self._warn_icon = None self._populated = False self._init_ui()
def __init__(self): vmmGObjectUI.__init__(self, "vmm-open-connection.ui", "vmm-open-connection") self.window.connect_signals({ "on_hypervisor_changed": self.hypervisor_changed, "on_connection_changed": self.conn_changed, "on_hostname_combo_changed": self.hostname_combo_changed, "on_connect_remote_toggled": self.connect_remote_toggled, "on_username_entry_changed": self.username_changed, "on_cancel_clicked": self.cancel, "on_connect_clicked": self.open_conn, "on_vmm_open_connection_delete_event": self.cancel, }) self.browser = None self.browser_sigs = [] self.can_browse = False self.window.add_from_string(_hostname_xml) self.widget("table1").attach(self.widget("hostname"), 1, 2, 4, 5, yoptions=gtk.FILL) # Set this if we can't resolve 'hostname.local': means avahi # prob isn't configured correctly, and we should strip .local self.can_resolve_local = None # Plain hostname resolve failed, means we should just use IP addr self.can_resolve_hostname = None self.set_initial_state() self.bus = None self.server = None self.can_browse = False try: self.bus = dbus.SystemBus() self.server = dbus.Interface( self.bus.get_object("org.freedesktop.Avahi", "/"), "org.freedesktop.Avahi.Server") self.can_browse = True except Exception, e: logging.debug("Couldn't contact avahi: %s", str(e))
def __init__(self, conn, builder, topwin): vmmGObjectUI.__init__(self, "addstorage.ui", None, builder=builder, topwin=topwin) self.conn = conn self.storage_browser = None self.builder.connect_signals({ "on_config_storage_browse_clicked": self._browse_storage, "on_config_storage_select_toggled": self._toggle_storage_select, }) self.top_box = self.widget("config-storage-box")
def __init__(self, conn): vmmGObjectUI.__init__(self, "vmm-create-pool.ui", "vmm-create-pool") self.conn = conn self._pool = None self._pool_class = Storage.StoragePool self.builder.connect_signals({ "on_pool_forward_clicked" : self.forward, "on_pool_back_clicked" : self.back, "on_pool_cancel_clicked" : self.close, "on_vmm_create_pool_delete_event" : self.close, "on_pool_finish_clicked" : self.forward, "on_pool_pages_change_page" : self.page_changed, "on_pool_source_button_clicked" : self.browse_source_path, "on_pool_target_button_clicked" : self.browse_target_path, "on_pool_name_activate": self.forward, "on_pool_hostname_activate" : self.hostname_changed, "on_pool_iqn_chk_toggled": self.iqn_toggled, "on_pool_name_focus_in_event": self.update_doc_name, "on_pool_type_focus": self.update_doc_type, "on_pool_type_changed": self.update_doc_type, "on_pool_format_focus": self.update_doc_format, "on_pool_format_changed": self.update_doc_format, "on_pool_target_path_focus_in_event": self.update_doc_target_path, "on_pool_target_path_focus": self.update_doc_target_path, "on_pool_target_path_changed": self.update_doc_target_path, "on_pool_source_path_focus_in_event": self.update_doc_source_path, "on_pool_source_path_focus": self.update_doc_source_path, "on_pool_source_path_changed": self.update_doc_source_path, "on_pool_hostname_focus_in_event": self.update_doc_hostname, "on_pool_build_focus_in_event": self.update_build_doc, "on_pool_iqn_focus_in_event": self.update_doc_iqn, }) self.bind_escape_key_close() finish_img = Gtk.Image.new_from_stock(Gtk.STOCK_QUIT, Gtk.IconSize.BUTTON) self.widget("pool-finish").set_image(finish_img) self.set_initial_state()
def __init__(self): vmmGObjectUI.__init__(self, "delete.ui", "vmm-delete") self.vm = None self.conn = None self.builder.connect_signals({ "on_vmm_delete_delete_event" : self.close, "on_delete_cancel_clicked" : self.close, "on_delete_ok_clicked" : self.finish, "on_delete_remove_storage_toggled" : self.toggle_remove_storage, }) self.bind_escape_key_close() self._init_state()
def __init__(self, orig_vm): vmmGObjectUI.__init__(self, "vmm-clone.ui", "vmm-clone") self.orig_vm = orig_vm self.conn = self.orig_vm.conn self.clone_design = None self.storage_list = {} self.target_list = [] self.net_list = {} self.mac_list = [] self.storage_browser = None self.change_mac = self.widget("vmm-change-mac") self.change_mac.set_transient_for(self.topwin) self.change_storage = self.widget("vmm-change-storage") self.change_storage.set_transient_for(self.topwin) self.window.connect_signals({ "on_clone_delete_event" : self.close, "on_clone_cancel_clicked" : self.close, "on_clone_ok_clicked" : self.finish, "on_clone_help_clicked" : self.show_help, # Change mac dialog "on_vmm_change_mac_delete_event": self.change_mac_close, "on_change_mac_cancel_clicked" : self.change_mac_close, "on_change_mac_ok_clicked" : self.change_mac_finish, # Change storage dialog "on_vmm_change_storage_delete_event": self.change_storage_close, "on_change_storage_cancel_clicked" : self.change_storage_close, "on_change_storage_ok_clicked" : self.change_storage_finish, "on_change_storage_doclone_toggled" : self.change_storage_doclone_toggled, "on_change_storage_browse_clicked" : self.change_storage_browse, }) self.bind_escape_key_close() # XXX: Help docs useless/out of date self.widget("clone-help").hide() finish_img = gtk.image_new_from_stock(gtk.STOCK_NEW, gtk.ICON_SIZE_BUTTON) self.widget("clone-ok").set_image(finish_img) self.set_initial_state()
def __init__(self): # check if groups config file exists vmaffinityxmlutil.checkIfGroupsConfigExists() #initialize all UI components to none self.allVMScrolledWindow = None self.newGroupVMScrolledWindow = None self.newGroupTextEntry = None self.newGroupDescriptionTextView = None self.createNewRuleBanner = None self.addVMToGroupButton = None self.removeVMFromGroupButton = None self.cancelNewRuleCreationButton = None self.createNewRuleButton = None self.warningLabel = None self.allVMClist = None self.groupVMClist = None #CList related variables self.selectedAllVMRow = None self.selectedAllVMColumn = None self.selectedGroupVMRow = None self.selectedGroupVMColumn = None self.allVMList = None self.totalVMsInGroup = 0 #Helper Variables self.sortedAllGroupsList = None vmmGObjectUI.__init__(self, "vmaffinity-createnewrule.ui", "vmaffinity-createnewrule") #Connect signals self.window.connect_signals({ "on_addVMToAffinityGroupbutton_clicked": self.addVMToGroupClicked, "on_removeVMFromAffinityGroup_clicked": self.removeVMFromGroupClicked, "on_cancelNewRuleCreationButton_clicked":self.cancelClicked, "on_CreateNewRuleButton_clicked":self.createNewAffinityGroupClicked, "on_newAffinityGroupNameTextEntry_focus_out_event":self.groupNameTextEntryFocusOut, "on_vmaffinity-createnewrule_delete_event": self.close, }) #Initialize UI components self.initUIComponents() #Initialize helper variables self.sortedAllGroupsList = vmaffinityxmlutil.loadGroupsToList()
def __init__(self, orig_vm): vmmGObjectUI.__init__(self, "vmm-clone.ui", "vmm-clone") self.orig_vm = orig_vm self.conn = self.orig_vm.conn self.clone_design = None self.storage_list = {} self.target_list = [] self.net_list = {} self.mac_list = [] self.storage_browser = None self.change_mac = self.widget("vmm-change-mac") self.change_mac.set_transient_for(self.topwin) self.change_storage = self.widget("vmm-change-storage") self.change_storage.set_transient_for(self.topwin) self.builder.connect_signals({ "on_clone_delete_event" : self.close, "on_clone_cancel_clicked" : self.close, "on_clone_ok_clicked" : self.finish, # Change mac dialog "on_vmm_change_mac_delete_event": self.change_mac_close, "on_change_mac_cancel_clicked" : self.change_mac_close, "on_change_mac_ok_clicked" : self.change_mac_finish, # Change storage dialog "on_vmm_change_storage_delete_event": self.change_storage_close, "on_change_storage_cancel_clicked" : self.change_storage_close, "on_change_storage_ok_clicked" : self.change_storage_finish, "on_change_storage_doclone_toggled" : self.change_storage_doclone_toggled, "on_change_storage_browse_clicked" : self.change_storage_browse, }) self.bind_escape_key_close() finish_img = Gtk.Image.new_from_stock(Gtk.STOCK_NEW, Gtk.IconSize.BUTTON) self.widget("clone-ok").set_image(finish_img) self.set_initial_state()
def __init__(self, conn): vmmGObjectUI.__init__(self, "vmm-storage-browse.ui", "vmm-storage-browse") self.conn = conn self.conn_signal_ids = [] self.finish_cb_id = None # Add Volume wizard self.addvol = None # Name of VM we are choosing storage for, can be used to recommend # volume name if creating self.vm_name = None # Arguments to pass to util.browse_local for local storage self.browse_reason = None self.rhel6_defaults = True self.local_args = {} self.window.connect_signals({ "on_vmm_storage_browse_delete_event": self.close, "on_browse_cancel_clicked": self.close, "on_browse_local_clicked": self.browse_local, "on_new_volume_clicked": self.new_volume, "on_choose_volume_clicked": self.finish, "on_vol_list_row_activated": self.finish, }) self.bind_escape_key_close() finish_img = gtk.image_new_from_stock(gtk.STOCK_NEW, gtk.ICON_SIZE_BUTTON) self.widget("new-volume").set_image(finish_img) finish_img = gtk.image_new_from_stock(gtk.STOCK_OPEN, gtk.ICON_SIZE_BUTTON) self.widget("choose-volume").set_image(finish_img) self.set_initial_state()
def __init__(self): vmmGObjectUI.__init__(self, "vmm-delete.ui", "vmm-delete") self.vm = None self.conn = None self.window.connect_signals({ "on_vmm_delete_delete_event" : self.close, "on_delete_cancel_clicked" : self.close, "on_delete_ok_clicked" : self.finish, "on_delete_remove_storage_toggled" : self.toggle_remove_storage, }) self.bind_escape_key_close() image = gtk.image_new_from_icon_name("vm_delete_wizard", gtk.ICON_SIZE_DIALOG) image.show() self.widget("icon-box").pack_end(image, False) prepare_storage_list(self.widget("delete-storage-list"))
def __init__(self): vmmGObjectUI.__init__(self, "vmm-delete.ui", "vmm-delete") self.vm = None self.conn = None self.builder.connect_signals({ "on_vmm_delete_delete_event" : self.close, "on_delete_cancel_clicked" : self.close, "on_delete_ok_clicked" : self.finish, "on_delete_remove_storage_toggled" : self.toggle_remove_storage, }) self.bind_escape_key_close() image = Gtk.Image.new_from_icon_name("vm_delete_wizard", Gtk.IconSize.DIALOG) image.show() self.widget("icon-box").pack_end(image, False, False, False) prepare_storage_list(self.widget("delete-storage-list"))
def __init__(self): vmmGObjectUI.__init__(self, "vmm-open-connection.ui", "vmm-open-connection") self.window.connect_signals( { "on_hypervisor_changed": self.hypervisor_changed, "on_connection_changed": self.conn_changed, "on_hostname_combo_changed": self.hostname_combo_changed, "on_connect_remote_toggled": self.connect_remote_toggled, "on_username_entry_changed": self.username_changed, "on_cancel_clicked": self.cancel, "on_connect_clicked": self.open_conn, "on_vmm_open_connection_delete_event": self.cancel, } ) self.browser = None self.browser_sigs = [] self.can_browse = False self.window.add_from_string(_hostname_xml) self.widget("table1").attach(self.widget("hostname"), 1, 2, 4, 5, yoptions=gtk.FILL) # Set this if we can't resolve 'hostname.local': means avahi # prob isn't configured correctly, and we should strip .local self.can_resolve_local = None # Plain hostname resolve failed, means we should just use IP addr self.can_resolve_hostname = None self.set_initial_state() self.bus = None self.server = None self.can_browse = False try: self.bus = dbus.SystemBus() self.server = dbus.Interface( self.bus.get_object("org.freedesktop.Avahi", "/"), "org.freedesktop.Avahi.Server" ) self.can_browse = True except Exception, e: logging.debug("Couldn't contact avahi: %s", str(e))
def __init__(self, conn): vmmGObjectUI.__init__(self, "vmm-create-net.ui", "vmm-create-net") self.conn = conn self.builder.connect_signals({ "on_create_pages_switch_page" : self.page_changed, "on_create_cancel_clicked" : self.close, "on_vmm_create_delete_event" : self.close, "on_create_forward_clicked" : self.forward, "on_create_back_clicked" : self.back, "on_create_finish_clicked" : self.finish, "on_net_name_activate": self.forward, "on_net_forward_toggled" : self.change_forward_type, "on_net-ipv4-enable_toggled" : self.change_ipv4_enable, "on_net-ipv4-network_changed": self.change_ipv4_network, "on_net-dhcpv4-enable_toggled": self.change_dhcpv4_enable, "on_net-dhcpv4-start_changed": self.change_dhcpv4_start, "on_net-dhcpv4-end_changed": self.change_dhcpv4_end, "on_net-ipv6-enable_toggled" : self.change_ipv6_enable, "on_net-ipv6-network_changed": self.change_ipv6_network, "on_net-dhcpv6-enable_toggled": self.change_dhcpv6_enable, "on_net-dhcpv6-start_changed": self.change_dhcpv6_start, "on_net-dhcpv6-end_changed": self.change_dhcpv6_end, "on_net-routev4-enable_toggled": self.change_routev4_enable, "on_net-routev4-network_changed": self.change_routev4_network, "on_net-routev4-gateway_changed": self.change_routev4_gateway, "on_net-routev6-enable_toggled": self.change_routev6_enable, "on_net-routev6-network_changed": self.change_routev6_network, "on_net-routev6-gateway_changed": self.change_routev6_gateway, }) self.bind_escape_key_close() finish_img = Gtk.Image.new_from_stock(Gtk.STOCK_QUIT, Gtk.IconSize.BUTTON) self.widget("create-finish").set_image(finish_img) self.set_initial_state()
def __init__(self, conn, parent_pool): vmmGObjectUI.__init__(self, "vmm-create-vol.ui", "vmm-create-vol") self.conn = conn self.parent_pool = parent_pool self.name_hint = None self.vol = None self.vol_class = Storage.StoragePool.get_volume_for_pool( parent_pool.get_type()) self.window.connect_signals({ "on_vmm_create_vol_delete_event": self.close, "on_vol_cancel_clicked": self.close, "on_vol_create_clicked": self.finish, "on_vol_name_changed": self.vol_name_changed, "on_vol_allocation_value_changed": self.vol_allocation_changed, "on_vol_capacity_value_changed": self.vol_capacity_changed, }) self.bind_escape_key_close() format_list = self.widget("vol-format") format_model = gtk.ListStore(str, str) format_list.set_model(format_model) text2 = gtk.CellRendererText() format_list.pack_start(text2, False) format_list.add_attribute(text2, 'text', 1) self.widget("vol-info-view").modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("grey")) # XXX: Help docs useless/out of date self.widget("pool-help").hide() finish_img = gtk.image_new_from_stock(gtk.STOCK_QUIT, gtk.ICON_SIZE_BUTTON) self.widget("vol-create").set_image(finish_img) self.reset_state()
def __init__(self, callback, args, finish_cb, finish_args, title, text, parent, show_progress=True, cancel_cb=None): """ @show_progress: If False, don't actually show a progress dialog @cancel_cb: Cancel callback if operation supports it. (cb, arg1, arg2, ...) """ vmmGObjectUI.__init__(self, "vmm-progress.ui", "vmm-progress") self.topwin.set_transient_for(parent) self.show_progress = bool(show_progress) cancel_cb = cancel_cb or (None, []) self.cancel_cb = cancel_cb[0] self.cancel_args = [self] + list(cancel_cb[1:]) self.job_canceled = False self._finish_cb = finish_cb self._finish_args = finish_args or () self._timer = None self._error_info = None self._data = None self._is_pulsing = True self._meter = None self._bg_thread = threading.Thread(target=cb_wrapper, args=[callback, self] + args) self._bg_thread.daemon = True logging.debug("Creating async job for function cb=%s", callback) self.builder.connect_signals({ "on_async_job_delete_event" : self._on_window_delete, "on_async_job_cancel_clicked" : self._on_cancel, }) # UI state self.topwin.set_title(title) self.widget("pbar-text").set_text(text) self.widget("cancel-async-job").set_visible(bool(self.cancel_cb))
def __init__(self): # check if groups config file exists vmaffinityxmlutil.checkIfGroupsConfigExists() #initialize all UI components to none self.affinedHostsTextEntry = None self.newRuleDescriptionTextView = None self.availableVirtualMachineScrolledwindow = None self.addVMToAffinityGroupbutton = None self.removeVMFromAffinityGroup = None self.affinedVirtualMachineScrolledwindow = None self.cancelHostAffinityRuleCreationButton = None self.CreateHostAffinityRuleButton = None self.warningLabel = None self.vmacreatehostaffinityrulebanner = None self.allVMClist = None self.affinedVMClist = None #CList related variables self.selectedAllVMRow = None self.selectedAllVMColumn = None self.selectedAffinedVMRow = None self.selectedAffinedVMColumn = None self.totalVMsAffined = 0 vmmGObjectUI.__init__(self, "vmaffinity-createhostaffinityrule.ui", "vmaffinity-createhostaffinityrule") #Connect signals self.window.connect_signals({ "on_addVMToAffinityGroupbutton_clicked": self.addVMToGroupClicked, "on_removeVMFromAffinityGroup_clicked": self.removeVMFromGroupClicked, "on_cancelHostAffinityRuleCreationButton_clicked":self.close, "on_CreateHostAffinityRuleButton_clicked":self.createNewHostAffinityRuleClicked, "on_vmaffinity-createhostaffinityrule_delete_event": self.close, }) #Initialize UI components self.initUIComponents()
def __init__(self): vmmGObjectUI.__init__(self, "vmm-open-connection.ui", "vmm-open-connection") self.builder.connect_signals({ "on_hypervisor_changed": self.hypervisor_changed, "on_connection_changed": self.conn_changed, "on_hostname_combo_changed": self.hostname_combo_changed, "on_connect_remote_toggled": self.connect_remote_toggled, "on_username_entry_changed": self.username_changed, "on_cancel_clicked": self.cancel, "on_connect_clicked": self.open_conn, "on_vmm_open_connection_delete_event": self.cancel, }) self.browser = None self.browser_sigs = [] # Set this if we can't resolve 'hostname.local': means avahi # prob isn't configured correctly, and we should strip .local self.can_resolve_local = None # Plain hostname resolve failed, means we should just use IP addr self.can_resolve_hostname = None self.set_initial_state() self.dbus = None self.avahiserver = None try: self.dbus = Gio.bus_get_sync(Gio.BusType.SYSTEM, None) self.avahiserver = Gio.DBusProxy.new_sync(self.dbus, 0, None, "org.freedesktop.Avahi", "/", "org.freedesktop.Avahi.Server", None) except Exception, e: logging.debug("Couldn't contact avahi: %s", str(e))
def __init__(self): vmmGObjectUI.__init__(self, "vmm-preferences.ui", "vmm-preferences") self.refresh_view_system_tray() self.refresh_update_interval() self.refresh_console_accels() self.refresh_console_scaling() self.refresh_new_vm_sound() self.refresh_graphics_type() self.refresh_storage_format() self.refresh_disk_poll() self.refresh_net_poll() self.refresh_grabkeys_combination() self.refresh_confirm_forcepoweroff() self.refresh_confirm_poweroff() self.refresh_confirm_pause() self.refresh_confirm_removedev() self.refresh_confirm_interface() self.refresh_confirm_unapplied() self.refresh_confirm_delstorage() self.builder.connect_signals({ "on_prefs_system_tray_toggled": self.change_view_system_tray, "on_prefs_stats_update_interval_changed": self.change_update_interval, "on_prefs_console_accels_toggled": self.change_console_accels, "on_prefs_console_scaling_changed": self.change_console_scaling, "on_prefs_close_clicked": self.close, "on_vmm_preferences_delete_event": self.close, "on_prefs_new_vm_sound_toggled": self.change_new_vm_sound, "on_prefs_stats_enable_disk_toggled": self.change_disk_poll, "on_prefs_stats_enable_net_toggled": self.change_net_poll, "on_prefs_confirm_forcepoweroff_toggled": self.change_confirm_forcepoweroff, "on_prefs_confirm_poweroff_toggled": self.change_confirm_poweroff, "on_prefs_confirm_pause_toggled": self.change_confirm_pause, "on_prefs_confirm_removedev_toggled": self.change_confirm_removedev, "on_prefs_confirm_interface_toggled": self.change_confirm_interface, "on_prefs_confirm_unapplied_toggled": self.change_confirm_unapplied, "on_prefs_confirm_delstorage_toggled": self.change_confirm_delstorage, "on_prefs_btn_keys_define_clicked": self.change_grab_keys, "on_prefs_graphics_type_changed": self.change_graphics_type, "on_prefs_storage_format_changed": self.change_storage_format, }) self.bind_escape_key_close()
def __init__(self): vmmGObjectUI.__init__(self, "vmm-preferences.ui", "vmm-preferences") self.add_gconf_handle( self.config.on_view_system_tray_changed( self.refresh_view_system_tray)) self.add_gconf_handle( self.config.on_console_accels_changed(self.refresh_console_accels)) self.add_gconf_handle( self.config.on_console_scaling_changed( self.refresh_console_scaling)) self.add_gconf_handle( self.config.on_stats_update_interval_changed( self.refresh_update_interval)) self.add_gconf_handle( self.config.on_stats_history_length_changed( self.refresh_history_length)) self.add_gconf_handle( self.config.on_sound_local_changed(self.refresh_sound_local)) self.add_gconf_handle( self.config.on_sound_remote_changed(self.refresh_sound_remote)) self.add_gconf_handle( self.config.on_graphics_type_changed(self.refresh_graphics_type)) self.add_gconf_handle( self.config.on_storage_format_changed(self.refresh_storage_format)) self.add_gconf_handle( self.config.on_stats_enable_disk_poll_changed( self.refresh_disk_poll)) self.add_gconf_handle( self.config.on_stats_enable_net_poll_changed( self.refresh_net_poll)) self.add_gconf_handle( self.config.on_confirm_forcepoweroff_changed( self.refresh_confirm_forcepoweroff)) self.add_gconf_handle( self.config.on_confirm_poweroff_changed( self.refresh_confirm_poweroff)) self.add_gconf_handle( self.config.on_confirm_pause_changed(self.refresh_confirm_pause)) self.add_gconf_handle( self.config.on_confirm_removedev_changed( self.refresh_confirm_removedev)) self.add_gconf_handle( self.config.on_confirm_interface_changed( self.refresh_confirm_interface)) self.add_gconf_handle( self.config.on_confirm_unapplied_changed( self.refresh_confirm_unapplied)) self.refresh_view_system_tray() self.refresh_update_interval() self.refresh_history_length() self.refresh_console_accels() self.refresh_console_scaling() self.refresh_sound_local() self.refresh_sound_remote() self.refresh_graphics_type() self.refresh_storage_format() self.refresh_disk_poll() self.refresh_net_poll() self.refresh_grabkeys_combination() self.refresh_confirm_forcepoweroff() self.refresh_confirm_poweroff() self.refresh_confirm_pause() self.refresh_confirm_removedev() self.refresh_confirm_interface() self.refresh_confirm_unapplied() self.window.connect_signals({ "on_prefs_system_tray_toggled": self.change_view_system_tray, "on_prefs_stats_update_interval_changed": self.change_update_interval, "on_prefs_stats_history_length_changed": self.change_history_length, "on_prefs_console_accels_toggled": self.change_console_accels, "on_prefs_console_scaling_changed": self.change_console_scaling, "on_prefs_close_clicked": self.close, "on_vmm_preferences_delete_event": self.close, "on_prefs_help_clicked": self.show_help, "on_prefs_sound_local_toggled": self.change_local_sound, "on_prefs_sound_remote_toggled": self.change_remote_sound, "on_prefs_stats_enable_disk_toggled": self.change_disk_poll, "on_prefs_stats_enable_net_toggled": self.change_net_poll, "on_prefs_confirm_forcepoweroff_toggled": self.change_confirm_forcepoweroff, "on_prefs_confirm_poweroff_toggled": self.change_confirm_poweroff, "on_prefs_confirm_pause_toggled": self.change_confirm_pause, "on_prefs_confirm_removedev_toggled": self.change_confirm_removedev, "on_prefs_confirm_interface_toggled": self.change_confirm_interface, "on_prefs_confirm_unapplied_toggled": self.change_confirm_unapplied, "on_prefs_btn_keys_define_clicked": self.change_grab_keys, "on_prefs_graphics_type_changed": self.change_graphics_type, "on_prefs_storage_format_changed": self.change_storage_format, }) self.bind_escape_key_close() # XXX: Help docs useless/out of date self.widget("prefs-help").hide()
def __init__(self, conn): vmmGObjectUI.__init__(self, "vmm-create-pool.ui", "vmm-create-pool") self.conn = conn self._pool = None self._pool_class = Storage.StoragePool self.builder.connect_signals({ "on_pool_forward_clicked": self.forward, "on_pool_back_clicked": self.back, "on_pool_cancel_clicked": self.close, "on_vmm_create_pool_delete_event": self.close, "on_pool_finish_clicked": self.forward, "on_pool_pages_change_page": self.page_changed, "on_pool_source_button_clicked": self.browse_source_path, "on_pool_target_button_clicked": self.browse_target_path, "on_pool_name_activate": self.forward, "on_pool_hostname_activate": self.hostname_changed, "on_pool_iqn_chk_toggled": self.iqn_toggled, "on_pool_name_focus_in_event": self.update_doc_name, "on_pool_type_focus": self.update_doc_type, "on_pool_type_changed": self.update_doc_type, "on_pool_format_focus": self.update_doc_format, "on_pool_format_changed": self.update_doc_format, "on_pool_target_path_focus_in_event": self.update_doc_target_path, "on_pool_target_path_focus": self.update_doc_target_path, "on_pool_target_path_changed": self.update_doc_target_path, "on_pool_source_path_focus_in_event": self.update_doc_source_path, "on_pool_source_path_focus": self.update_doc_source_path, "on_pool_source_path_changed": self.update_doc_source_path, "on_pool_hostname_focus_in_event": self.update_doc_hostname, "on_pool_build_focus_in_event": self.update_build_doc, "on_pool_iqn_focus_in_event": self.update_doc_iqn, }) self.bind_escape_key_close() finish_img = Gtk.Image.new_from_stock(Gtk.STOCK_QUIT, Gtk.IconSize.BUTTON) self.widget("pool-finish").set_image(finish_img) self.set_initial_state()
def __init__(self, conn): vmmGObjectUI.__init__(self, "vmm-create-pool.ui", "vmm-create-pool") self.conn = conn self._pool = None self._pool_class = Storage.StoragePool self.window.add_from_string(_comboentry_xml) self.widget("pool-source-box").pack_start( self.widget("pool-source-path")) self.widget("pool-target-box").pack_start( self.widget("pool-target-path")) self.window.connect_signals({ "on_pool_forward_clicked" : self.forward, "on_pool_back_clicked" : self.back, "on_pool_cancel_clicked" : self.close, "on_vmm_create_pool_delete_event" : self.close, "on_pool_finish_clicked" : self.forward, "on_pool_pages_change_page" : self.page_changed, "on_pool_source_button_clicked" : self.browse_source_path, "on_pool_target_button_clicked" : self.browse_target_path, "on_pool_name_activate": self.forward, "on_pool_hostname_activate" : self.hostname_changed, "on_pool_iqn_chk_toggled": self.iqn_toggled, "on_pool_name_focus_in_event": (self.update_doc, "name", "pool-info1"), # I cannot for the life of me get a combobox to abide # focus-in, button-pressed, motion-over, etc. "on_pool_type_focus": (self.update_doc, "type", "pool-info1"), "on_pool_type_changed": (self.update_doc_changed, "type", "pool-info1"), "on_pool_format_focus": (self.update_doc, "format", "pool-info2"), "on_pool_format_changed": (self.update_doc_changed, "format", "pool-info2"), "on_pool_target_path_focus_in_event": (self.update_doc, "target_path", "pool-info2"), "on_pool_target_path_focus": (self.update_doc, "target_path", "pool-info2"), "on_pool_target_path_changed": (self.update_doc_changed, "target_path", "pool-info2"), "on_pool_source_path_focus_in_event": (self.update_doc, "source_path", "pool-info2"), "on_pool_source_path_focus": (self.update_doc, "source_path", "pool-info2"), "on_pool_source_path_changed": (self.update_doc_changed, "source_path", "pool-info2"), "on_pool_hostname_focus_in_event": (self.update_doc, "host", "pool-info2"), "on_pool_build_focus_in_event": (self.update_build_doc), "on_pool_iqn_focus_in_event": (self.update_doc, "iqn", "pool-info2"), }) self.bind_escape_key_close() # XXX: Help docs useless/out of date self.widget("pool-help").hide() finish_img = gtk.image_new_from_stock(gtk.STOCK_QUIT, gtk.ICON_SIZE_BUTTON) self.widget("pool-finish").set_image(finish_img) self.set_initial_state()
def __init__(self): vmmGObjectUI.__init__(self, "vmm-manager.ui", "vmm-manager") self.delete_dialog = None self.ignore_pause = False # Mapping of VM UUID -> tree model rows to # allow O(1) access instead of O(n) self.rows = {} w, h = self.config.get_manager_window_size() self.topwin.set_default_size(w or 550, h or 550) self.prev_position = None self.vmmenu = gtk.Menu() self.vmmenushutdown = gtk.Menu() self.vmmenu_items = {} self.vmmenushutdown_items = {} self.connmenu = gtk.Menu() self.connmenu_items = {} # There seem to be ref counting issues with calling # list.get_column, so avoid it self.diskcol = None self.netcol = None self.guestcpucol = None self.hostcpucol = None self.window.connect_signals({ "on_menu_view_guest_cpu_usage_activate": (self.toggle_stats_visible, COL_GUEST_CPU), "on_menu_view_host_cpu_usage_activate": (self.toggle_stats_visible, COL_HOST_CPU), "on_menu_view_disk_io_activate": (self.toggle_stats_visible, COL_DISK), "on_menu_view_network_traffic_activate": (self.toggle_stats_visible, COL_NETWORK), "on_vm_manager_delete_event": self.close, "on_vmm_manager_configure_event": self.window_resized, "on_menu_file_add_connection_activate": self.new_conn, "on_menu_file_quit_activate": self.exit_app, "on_menu_file_close_activate": self.close, "on_vmm_close_clicked": self.close, "on_vm_open_clicked": self.show_vm, "on_vm_run_clicked": self.start_vm, "on_vm_new_clicked": self.new_vm, "on_vm_shutdown_clicked": self.poweroff_vm, "on_vm_pause_clicked": self.pause_vm_button, "on_menu_edit_details_activate": self.show_vm, "on_menu_edit_delete_activate": self.do_delete, "on_menu_host_details_activate": self.show_host, "on_vm_list_row_activated": self.show_vm, "on_vm_list_button_press_event": self.popup_vm_menu_button, "on_vm_list_key_press_event": self.popup_vm_menu_key, "on_menu_edit_preferences_activate": self.show_preferences, "on_menu_help_about_activate": self.show_about, "on_menu_help_activate": self.show_help, }) self.init_vmlist() self.init_stats() self.init_toolbar() self.init_context_menus() # XXX: Help docs useless/out of date self.widget("menu_help").hide() self.vm_selected() self.widget("vm-list").get_selection().connect("changed", self.vm_selected) self.max_disk_rate = 10.0 self.max_net_rate = 10.0 # Initialize stat polling columns based on global polling # preferences (we want signal handlers for this) for typ, init_val in [ (COL_DISK, self.config.get_stats_enable_disk_poll()), (COL_NETWORK, self.config.get_stats_enable_net_poll()) ]: self.enable_polling(None, None, init_val, typ) # Select first list entry vmlist = self.widget("vm-list") if len(vmlist.get_model()) != 0: vmlist.get_selection().select_iter( vmlist.get_model().get_iter_first()) # Queue up the default connection detector self.idle_emit("add-default-conn")
def __init__(self, conn): vmmGObjectUI.__init__(self, "vmm-host.ui", "vmm-host") self.conn = conn self.title = conn.get_short_hostname() + " " + self.topwin.get_title() self.topwin.set_title(self.title) self.ICON_RUNNING = "state_running" self.ICON_SHUTOFF = "state_shutoff" self.addnet = None self.addpool = None self.addvol = None self.addinterface = None self.volmenu = None self._in_refresh = False self.cpu_usage_graph = None self.memory_usage_graph = None self.init_conn_state() # Set up signals self.widget("net-list").get_selection().connect( "changed", self.net_selected) self.widget("vol-list").get_selection().connect( "changed", self.vol_selected) self.widget("interface-list").get_selection().connect( "changed", self.interface_selected) self.init_net_state() self.init_storage_state() self.init_interface_state() self.conn.connect("net-added", self.repopulate_networks) self.conn.connect("net-removed", self.repopulate_networks) self.conn.connect("net-started", self.refresh_network) self.conn.connect("net-stopped", self.refresh_network) self.conn.connect("pool-added", self.repopulate_storage_pools) self.conn.connect("pool-removed", self.repopulate_storage_pools) self.conn.connect("pool-started", self.refresh_storage_pool) self.conn.connect("pool-stopped", self.refresh_storage_pool) self.conn.connect("interface-added", self.repopulate_interfaces) self.conn.connect("interface-removed", self.repopulate_interfaces) self.conn.connect("interface-started", self.refresh_interface) self.conn.connect("interface-stopped", self.refresh_interface) self.conn.connect("state-changed", self.conn_state_changed) self.window.connect_signals({ "on_menu_file_view_manager_activate": self.view_manager, "on_menu_file_quit_activate": self.exit_app, "on_menu_file_close_activate": self.close, "on_vmm_host_delete_event": self.close, "on_menu_restore_saved_activate": self.restore_domain, "on_menu_help_contents_activate": self.show_help, "on_net_add_clicked": self.add_network, "on_net_delete_clicked": self.delete_network, "on_net_stop_clicked": self.stop_network, "on_net_start_clicked": self.start_network, "on_net_autostart_toggled": self.net_autostart_changed, "on_net_apply_clicked": self.net_apply, "on_pool_add_clicked": self.add_pool, "on_vol_add_clicked": self.add_vol, "on_pool_stop_clicked": self.stop_pool, "on_pool_start_clicked": self.start_pool, "on_pool_delete_clicked": self.delete_pool, "on_pool_refresh_clicked": self.pool_refresh, "on_pool_autostart_toggled": self.pool_autostart_changed, "on_vol_delete_clicked": self.delete_vol, "on_vol_list_button_press_event": self.popup_vol_menu, "on_pool_apply_clicked": self.pool_apply, "on_interface_add_clicked": self.add_interface, "on_interface_start_clicked": self.start_interface, "on_interface_stop_clicked": self.stop_interface, "on_interface_delete_clicked": self.delete_interface, "on_interface_startmode_changed": self.interface_startmode_changed, "on_interface_apply_clicked": self.interface_apply, "on_config_autoconnect_toggled": self.toggle_autoconnect, }) # XXX: Help docs useless/out of date self.widget("help_menuitem").hide() finish_img = gtk.image_new_from_stock(gtk.STOCK_DELETE, gtk.ICON_SIZE_BUTTON) self.widget("vol-delete").set_image(finish_img) finish_img = gtk.image_new_from_stock(gtk.STOCK_NEW, gtk.ICON_SIZE_BUTTON) self.widget("vol-add").set_image(finish_img) self.conn.connect("resources-sampled", self.refresh_resources) self.reset_state()
@staticmethod def simple_async_noshow(callback, args, parent, errorintro, simplecb=True, errorcb=None): _simple_async(callback, args, "", "", parent, errorintro, False, simplecb, errorcb) def __init__(self, callback, args, title, text, parent, async=True, show_progress=True, cancel_cb=None): """ @async: If False, run synchronously without a separate thread @show_progress: If False, don't actually show a progress dialog @cancel_cb: Cancel callback if operation supports it. (cb, arg1, arg2, ...) """ vmmGObjectUI.__init__(self, "vmm-progress.ui", "vmm-progress") self.topwin.set_transient_for(parent) self.async = bool(async) self.show_progress = bool(show_progress) cancel_cb = cancel_cb or (None, []) self.cancel_cb = cancel_cb[0] self.cancel_args = [self] + list(cancel_cb[1:]) self.job_canceled = False self._error_info = None self._data = None self._is_pulsing = True self._meter = None