Esempio n. 1
0
    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()
Esempio n. 2
0
    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()
Esempio n. 3
0
    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()
Esempio n. 6
0
    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()
Esempio n. 8
0
    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()
Esempio n. 10
0
    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")
Esempio n. 11
0
    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()
Esempio n. 12
0
    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()
Esempio n. 14
0
    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()
Esempio n. 16
0
    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")
Esempio n. 17
0
    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()
Esempio n. 18
0
    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()
Esempio n. 19
0
    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()
Esempio n. 20
0
    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,
        })
Esempio n. 21
0
    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()
Esempio n. 23
0
    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()
Esempio n. 25
0
    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()
Esempio n. 26
0
    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()
Esempio n. 27
0
    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))
Esempio n. 28
0
    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")
Esempio n. 29
0
    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()
Esempio n. 30
0
    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()
Esempio n. 33
0
    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()
Esempio n. 35
0
    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"))
Esempio n. 36
0
    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))
Esempio n. 38
0
    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()
Esempio n. 39
0
    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()
Esempio n. 40
0
    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()
Esempio n. 42
0
    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))
Esempio n. 43
0
    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()
Esempio n. 45
0
    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()
Esempio n. 47
0
    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")
Esempio n. 48
0
    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()
Esempio n. 49
0
    @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