def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'license.png' controlState.windowTitle = "License" controlState.windowText = "Enter license serial number" self.controlState = controlState self.serialRadio = xml.get_widget('serial_radio') self.serialParent = xml.get_widget('serial_hbox') ## TODO: revisit focus setting, backed out for beta1 (PR #290671) ## causes keystroke in serial number to lose focus to radio # controlState.initialFocus = self.serialRadio # Using a monospace font might make it easier to read. monoFont = pango.FontDescription("monospace") self.entries = [] for entryNumber in range(esxlicense.SERIAL_NUM_COMPONENT_COUNT): entry = xml.get_widget('serialnum%d' % entryNumber) entry.modify_font(monoFont) self.entries.append(entry) connectSignalHandlerByDict(self, LicenseWindow, xml, { ('serial_radio', 'toggled') : 'onSerialToggled', ('serialnum0', 'changed') : 'onSerialnumChangedTabForward', ('serialnum1', 'changed') : 'onSerialnumChangedTabForward', ('serialnum2', 'changed') : 'onSerialnumChangedTabForward', ('serialnum3', 'changed') : 'onSerialnumChangedTabForward', # ('serialnum4', 'changed') : 'onSerialnumChanged', }) self.onSerialToggled(self.serialRadio)
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'adminpassword.png' controlState.windowTitle = "Set Administrator Password" controlState.windowText = \ "Enter the administrator (root) password for ESX" self.controlState = controlState self.xml = xml self.accounts = [] self.passwdEntry1 = self.xml.get_widget("RootpasswordPassword1Entry") self.passwdEntry2 = self.xml.get_widget("RootpasswordPassword2Entry") self.view = self.xml.get_widget("AdduserTreeView") self.scrolled = self.xml.get_widget("AdduserScrolledWindow") self.removeButton = self.xml.get_widget("RemoveuserButton") self.addUserWindow = AddUserWindow(self.xml, self) setupUserAccountsView(self.view, self.scrolled) connectSignalHandlerByDict( self, PasswordWindow, self.xml, { ('AdduserButton', 'clicked'): 'addUser', ('RemoveuserButton', 'clicked'): 'removeUser', }) self.restoreUsers() controlState.initialFocus = self.passwdEntry1
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowTitle = "ESX Storage Device" controlState.windowText = "Select a location to install ESX" controlState.windowIcon = "drive.png" self.xml = xml self.controlState = controlState self.view = xml.get_widget("EsxlocationView") self.scrolled = xml.get_widget("EsxlocationScrolled") storage_widgets.setupStorageView(self.view) # only repopulate the esxlocation if we need to if userchoices.getResetEsxLocation(): model = \ storage_widgets.populateStorageModel(self.view, self.scrolled, devices.DiskSet(), vmfsSupport=False) storage_widgets.findFirstSelectableRow(model, self.view, SUPPORTED_DISK_ENTRY) connectSignalHandlerByDict(self, EsxLocationWindow, self.xml, { ('EsxlocationDetailsButton', 'clicked'): 'showDetails', })
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'customdrivers.png' controlState.windowTitle = 'Custom Drivers' controlState.windowText = \ 'Select custom drivers to install for ESX' self.xml = xml self.foundDriverList = [] self.driverList = [] # list of drivers to save self.driverDict = {} # cache of driver data connectSignalHandlerByDict(self, CustomDriversWindow, self.xml, { ('CustomdriversNoRadioButton', 'toggled') : 'toggleDrivers', ('CustomdriversAddButton', 'clicked') : 'addDriver', ('CustomdriversRemoveButton', 'clicked') : 'removeDriver', }) if userchoices.getDriversLoaded(): self.xml.get_widget('CustomdriversVBox').set_sensitive(False) self.view = self.xml.get_widget('CustomdriversTreeView') self.scrolled = self.xml.get_widget('CustomdriversScrolledWindow') self.addDrivers = AddDrivers(self) _setupAddDriversView(self.view) # build up self.driverList in case the user has gone back # from the screen and re-entered it self.buildDriverList() # unmount the cdrom so the user can eject it manually util.umount(MEDIA_DEVICE_MOUNT_POINT)
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'usb_cd_media.png' controlState.windowTitle = "CD-ROM or USB Installation" controlState.windowText = "Select the ESX installation source" connectSignalHandlerByDict(self, USBInstallMediaWindow, xml, { ('UsbRescan', 'clicked') : 'rescanMedia', ('UsbEject', 'clicked') : 'ejectMedia', }) # Unmount any old media. media.runtimeActionUnmountMedia() self.mediaFound = [] self.view = xml.get_widget("UsbMediaView") self.model = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_PYOBJECT, gobject.TYPE_STRING) self.view.set_model(self.model) mediaViewColumns = ( ("Device", 200), ("Contents", 150), ("ESX Version", 120), ) if not self.view.get_columns(): populateViewColumns(self.view, mediaViewColumns, foreground=4) self.rescanMedia()
def _singleton_init(self, controlState, xml): self.timezones = TimezoneList() chosenTZ = userchoices.getTimezone() if chosenTZ: self.selectedTZ = self.timezones.findByCityName(chosenTZ['city']) else: self.selectedTZ = self.timezones.defaultTimezone connectSignalHandlerByDict( self, TimezoneWindow, xml, { ('advanced_ok', 'clicked'): 'onCityListSelect', ('advanced_cancel', 'clicked'): 'onCityListCancel', ('tz_button', 'clicked'): 'onAdvancedClicked', ('TimezoneDrawingArea', 'motion_notify_event'): 'onTZDrawMotion', ('TimezoneDrawingArea', 'button_press_event'): 'onTZDrawPress', ('TimezoneDrawingArea', 'button_release_event'): 'onTZDrawRelease', ('TimezoneDrawingArea', 'expose_event'): 'onTZDrawExpose', }) self.tzEntry = xml.get_widget("tz_entry") self.advancedDialog = AdvancedDialog(xml) self.allTZsView = xml.get_widget("tz_treeview") self.setupMap(xml) self.setupTimezone(xml)
def __init__(self, settings): CommonWindow.__init__(self) gladePath = os.path.join( os.path.dirname(__file__), 'glade/storage-widgets.glade') self.xml = gtk.glade.XML(gladePath) self.dialog = self.xml.get_widget(settings['dialog']) self.text = self.xml.get_widget(settings['text']) self.okButton = self.xml.get_widget(settings['okButton']) self.cancelButton = self.xml.get_widget(settings['okButton']) self.checkButton = self.xml.get_widget(settings['checkButton']) self.rc = 1 connectSignalHandlerByDict(self, self.__class__.__name__, self.xml, { (settings['cancelButton'], 'clicked') : 'cancelClicked', (settings['okButton'], 'clicked') : 'okClicked', (settings['checkButton'], 'toggled') : 'checkbuttonToggled', }) self.addFrameToWindow() self.dialog.set_position(gtk.WIN_POS_CENTER) self.dialog.connect("key-press-event", self.keypress)
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'network_configure.png' controlState.windowTitle = "Network Configuration" controlState.windowText = "Enter the network configuration information" self.controlState = controlState self.progressDialog = None self.networkAddressWidgets =\ network_address_widgets.NetworkAddressWidgets( xml, self.controlState.gui.getWindow(), 'Cosnetwork', ('ip', 'netmask', 'gateway', 'ns1', 'ns2', 'hostname'), 'CosnetworkDHCPRadioButton', 'CosnetworkIPTable') # # Fill out "Network Adapter:" label. adapter = xml.get_widget("CosnetworkNetworkAdapterLabel") assert len(userchoices.getCosNICs()) > 0 device = userchoices.getCosNICs()[0]['device'] adapter.set_text(device.name) connectSignalHandlerByDict(self, CosNetworkWindow, xml, {('activate_button', 'clicked'): 'onActivateButtonClicked', })
def __init__(self, settings): CommonWindow.__init__(self) gladePath = os.path.join(os.path.dirname(__file__), 'glade/storage-widgets.glade') self.xml = gtk.glade.XML(gladePath) self.dialog = self.xml.get_widget(settings['dialog']) self.text = self.xml.get_widget(settings['text']) self.okButton = self.xml.get_widget(settings['okButton']) self.cancelButton = self.xml.get_widget(settings['okButton']) self.checkButton = self.xml.get_widget(settings['checkButton']) self.rc = 1 connectSignalHandlerByDict( self, self.__class__.__name__, self.xml, { (settings['cancelButton'], 'clicked'): 'cancelClicked', (settings['okButton'], 'clicked'): 'okClicked', (settings['checkButton'], 'toggled'): 'checkbuttonToggled', }) self.addFrameToWindow() self.dialog.set_position(gtk.WIN_POS_CENTER) self.dialog.connect("key-press-event", self.keypress)
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowTitle = "ESX Storage Device" controlState.windowText = "Select a location to install ESX" controlState.windowIcon = "drive.png" self.xml = xml self.controlState = controlState self.view = xml.get_widget("EsxlocationView") self.scrolled = xml.get_widget("EsxlocationScrolled") storage_widgets.setupStorageView(self.view) # only repopulate the esxlocation if we need to if userchoices.getResetEsxLocation(): model = \ storage_widgets.populateStorageModel(self.view, self.scrolled, devices.DiskSet(), vmfsSupport=False) storage_widgets.findFirstSelectableRow(model, self.view, SUPPORTED_DISK_ENTRY) connectSignalHandlerByDict( self, EsxLocationWindow, self.xml, { ('EsxlocationDetailsButton', 'clicked'): 'showDetails', })
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'adminpassword.png' controlState.windowTitle = "Set Administrator Password" controlState.windowText = \ "Enter the administrator (root) password for ESX" self.controlState = controlState self.xml = xml self.accounts = [] self.passwdEntry1 = self.xml.get_widget("RootpasswordPassword1Entry") self.passwdEntry2 = self.xml.get_widget("RootpasswordPassword2Entry") self.view = self.xml.get_widget("AdduserTreeView") self.scrolled = self.xml.get_widget("AdduserScrolledWindow") self.removeButton = self.xml.get_widget("RemoveuserButton") self.addUserWindow = AddUserWindow(self.xml, self) setupUserAccountsView(self.view, self.scrolled) connectSignalHandlerByDict(self, PasswordWindow, self.xml, { ('AdduserButton', 'clicked'): 'addUser', ('RemoveuserButton', 'clicked'): 'removeUser', }) self.restoreUsers() controlState.initialFocus = self.passwdEntry1
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'network_media.png' controlState.windowTitle = "World Wide Web (HTTP) Installation" controlState.windowText = "Enter the URL for the ESX installation media" self.xml = xml connectSignalHandlerByDict(self, HTTPInstallMediaWindow, self.xml, { ('HttpProxyCheckButton', 'toggled'): 'toggleProxy', ('HttpProxyUserCheckButton', 'toggled'): 'toggleUserProxy', })
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'partitioning.png' controlState.windowTitle = "Service Console Virtual Disk Image" controlState.windowText = \ "Configure the service console virtual disk image" global _resetPartitions, _datastoreDevice # reset the vmdk partitions if the datastore device has been changed if userchoices.getEsxDatastoreDevice() != _datastoreDevice: _resetPartitions = True _datastoreDevice = userchoices.getEsxDatastoreDevice() self.xml = xml self.diskSet = devices.DiskSet() self.maxVmdkSize = devices.runtimeActionFindMaxVmdkSize() self.consoleVMSizeLabel = xml.get_widget("SetupvmdksizeLabel") self.view = xml.get_widget("SetupvmdkTreeView") self.scrolled = xml.get_widget("SetupvmdkScrolledWindow") # Download the package data so we can figure out the minimum partition # sizes weaselConfig = systemsettings.WeaselConfig() packagesXML = packages.getPackagesXML(weaselConfig.packageGroups) packageData = packages.PackageData(packagesXML.fullInstallDepot) self.fileSizes = packageData.fileDict self.requests = None self.newButton = xml.get_widget("SetupvmdkNewButton") self.deleteButton = xml.get_widget("SetupvmdkDeleteButton") if _resetPartitions: self._resetPartitions() _resetPartitions = False self.setupVirtualDevice() connectSignalHandlerByDict(self, SetupVmdkWindow, self.xml, { ('SetupvmdkNewButton', 'clicked') : 'newPartition', ('SetupvmdkEditButton', 'clicked') : 'editPartition', ('SetupvmdkDeleteButton', 'clicked') : 'deletePartition', ('SetupvmdkResetButton', 'clicked') : 'resetPartitions', }) self.partitionWindow = PartitionWindow(xml, self) self.setButtons()
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'setuptype.png' controlState.windowTitle = "Setup Type" controlState.windowText = \ "Specify the type of setup for this installation" self.controlState = controlState self.xml = xml self.setupChoice = self.xml.get_widget("SetupchoiceBootloaderHBox") connectSignalHandlerByDict(self, SetupChoiceWindow, self.xml, { ('SetupchoicebasicRadioButton', 'toggled'): 'toggleSetupChoice', })
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'network_media.png' controlState.windowTitle = "File System (FTP) Installation" controlState.windowText = "Enter the FTP settings for the ESX " + \ "installation media" self.xml = xml connectSignalHandlerByDict( self, FTPInstallMediaWindow, self.xml, { ('FtpProxyCheckButton', 'toggled'): 'toggleProxy', ('FtpProxyUserCheckButton', 'toggled'): 'toggleUserProxy', ('FtpNonAnonLoginCheckButton', 'toggled'): 'toggleNonAnonLogin', }) self._setupUrl()
def __init__(self, xml, parent): CommonWindow.__init__(self) self.xml = xml self.parent = parent self.userName = self.xml.get_widget("AdduserNameEntry") self.passwdEntry1 = self.xml.get_widget("AdduserPassword1Entry") self.passwdEntry2 = self.xml.get_widget("AdduserPassword2Entry") self.dialog = self.xml.get_widget("adduser") connectSignalHandlerByDict( self, AddUserWindow, self.xml, { ('AdduserOkButton', 'clicked'): 'okClicked', ('AdduserCancelButton', 'clicked'): 'cancelClicked', }) self.addFrameToWindow()
def __init__(self, xml, parent): CommonWindow.__init__(self) self.xml = xml self.parent = parent self.userName = self.xml.get_widget("AdduserNameEntry") self.passwdEntry1 = self.xml.get_widget("AdduserPassword1Entry") self.passwdEntry2 = self.xml.get_widget("AdduserPassword2Entry") self.dialog = self.xml.get_widget("adduser") connectSignalHandlerByDict(self, AddUserWindow, self.xml, { ('AdduserOkButton', 'clicked'): 'okClicked', ('AdduserCancelButton', 'clicked'): 'cancelClicked', }) self.addFrameToWindow()
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'datastore.png' controlState.windowTitle = "Datastore" controlState.windowText = "Specify a datastore for ESX" self.xml = xml self.diskSet = devices.DiskSet() self.datastoreSet = datastore.DatastoreSet() self.datastoreExistTable = xml.get_widget("DatastoreexistingTable") self.datastoreCreateTable = xml.get_widget("DatastorecreateTable") connectSignalHandlerByDict( self, DataStoreWindow, self.xml, { ('DatastoredeviceButton', 'clicked'): 'createNewDatastore', ('DatastorepartitionButton', 'clicked'): 'selectDatastore', ('DatastorecreateRadioButton', 'toggled'): 'toggleDatastoreChoice', ('DatastoreCheckButton', 'toggled'): 'toggleSameDevice', }) self.defaultDeviceName = userchoices.getEsxPhysicalDevice() # set up the aux. helper windows self.createDataStoreWindow = \ CreateDataStoreWindow(self.xml, self.diskSet, self) self.selectDataStoreWindow = \ SelectDataStoreWindow(self.xml, self.datastoreSet, self) # find the existing vmdk size that we're going to remove vmdkPath = userchoices.getExistingVmdkLocation().get('vmdkLocation') self.vmdkSize = devices.runtimeActionFindExistingVmdkSize(vmdkPath) self.preserveVmfs = bool(userchoices.getPartitionMountRequests()) if userchoices.getResetEsxLocation(): self.setup() userchoices.setResetEsxLocation(False)
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'eula.png' controlState.windowTitle = "End User License Agreement" controlState.windowText = "To continue with the installation, " + \ "please read and accept the end user license agreement." controlState.nextButtonEnabled = False self.checked = xml.get_widget("EulaCheckButton") controlState.initialFocus = self.checked self.controlState = controlState self.xml = xml self.setupEula() connectSignalHandlerByDict(self, EulaWindow, self.xml, { ('EulaCheckButton', 'clicked') : 'acceptedEula', }) self.setupEulaAccepted()
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowIcon = 'datastore.png' controlState.windowTitle = "Datastore" controlState.windowText = "Specify a datastore for ESX" self.xml = xml self.diskSet = devices.DiskSet() self.datastoreSet = datastore.DatastoreSet() self.datastoreExistTable = xml.get_widget("DatastoreexistingTable") self.datastoreCreateTable = xml.get_widget("DatastorecreateTable") connectSignalHandlerByDict(self, DataStoreWindow, self.xml, { ('DatastoredeviceButton', 'clicked'): 'createNewDatastore', ('DatastorepartitionButton', 'clicked'): 'selectDatastore', ('DatastorecreateRadioButton', 'toggled'): 'toggleDatastoreChoice', ('DatastoreCheckButton', 'toggled'): 'toggleSameDevice', }) self.defaultDeviceName = userchoices.getEsxPhysicalDevice() # set up the aux. helper windows self.createDataStoreWindow = \ CreateDataStoreWindow(self.xml, self.diskSet, self) self.selectDataStoreWindow = \ SelectDataStoreWindow(self.xml, self.datastoreSet, self) # find the existing vmdk size that we're going to remove vmdkPath = userchoices.getExistingVmdkLocation().get('vmdkLocation') self.vmdkSize = devices.runtimeActionFindExistingVmdkSize(vmdkPath) self.preserveVmfs = bool(userchoices.getPartitionMountRequests()) if userchoices.getResetEsxLocation(): self.setup() userchoices.setResetEsxLocation(False)
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowTitle = "ESX Storage Device" controlState.windowText = "Select a location to install ESX" controlState.windowIcon = "drive.png" self.controlState = controlState self.xml = xml self.view = xml.get_widget("InstalllocationView") self.scrolled = xml.get_widget("InstalllocationScrolled") storage_widgets.setupStorageView(self.view) model = storage_widgets.populateStorageModel( self.view, self.scrolled, devices.DiskSet()) storage_widgets.findFirstSelectableRow(model, self.view, SUPPORTED_DISK_ENTRY) connectSignalHandlerByDict(self, InstallLocationWindow, self.xml, { ('InstalllocationDetailsButton', 'clicked'): 'showDetails', })
def __init__(self, xml, parent): CommonWindow.__init__(self) self.dialog = xml.get_widget("partition") self.xml = xml self.parent = parent # used to keep track if we're editing a partition or creating a new # one self.currentRequest = None connectSignalHandlerByDict(self, PartitionWindow, self.xml, { ('PartitionOkButton', 'clicked') : 'okClicked', ('PartitionCancelButton', 'clicked') : 'cancelClicked', ('PartitionfsComboBox', 'changed') : 'checkFs', }) populateSizeEntries(xml.get_widget("PartitionsizeComboBox")) populateMountPoints(xml.get_widget("PartitionMountpointComboBoxEntry")) populateFsEntries(xml.get_widget("PartitionfsComboBox")) self.addFrameToWindow()
def __init__(self, parent): CommonWindow.__init__(self) self.parent = parent self.xml = parent.xml self.dialog = self.xml.get_widget('adddrivers') assert self.dialog if not os.path.exists(customdrivers.DRIVER_DEPOT_DIR): os.makedirs(customdrivers.DRIVER_DEPOT_DIR) connectSignalHandlerByDict(self, AddDrivers, self.xml, { ('AdddriversOkButton', 'clicked') : 'importClicked', ('AdddriversCancelButton', 'clicked') : 'cancelClicked', }) self.view = self.xml.get_widget('AdddriversTreeView') self.scrolled = self.xml.get_widget('AdddriversScrolledWindow') _setupAddDriversView(self.view) self.addFrameToWindow()
def __init__(self, controlState, xml): controlState.displayHeaderBar = True controlState.windowTitle = "ESX Storage Device" controlState.windowText = "Select a location to install ESX" controlState.windowIcon = "drive.png" self.controlState = controlState self.xml = xml self.view = xml.get_widget("InstalllocationView") self.scrolled = xml.get_widget("InstalllocationScrolled") storage_widgets.setupStorageView(self.view) model = storage_widgets.populateStorageModel(self.view, self.scrolled, devices.DiskSet()) storage_widgets.findFirstSelectableRow(model, self.view, SUPPORTED_DISK_ENTRY) connectSignalHandlerByDict( self, InstallLocationWindow, self.xml, { ('InstalllocationDetailsButton', 'clicked'): 'showDetails', })
def _singleton_init(self, controlState, xml): self.timezones = TimezoneList() chosenTZ = userchoices.getTimezone() if chosenTZ: self.selectedTZ = self.timezones.findByCityName( chosenTZ['city'] ) else: self.selectedTZ = self.timezones.defaultTimezone connectSignalHandlerByDict(self, TimezoneWindow, xml, { ('advanced_ok', 'clicked'): 'onCityListSelect', ('advanced_cancel', 'clicked'): 'onCityListCancel', ('tz_button', 'clicked'): 'onAdvancedClicked', ('TimezoneDrawingArea', 'motion_notify_event'): 'onTZDrawMotion', ('TimezoneDrawingArea', 'button_press_event'): 'onTZDrawPress', ('TimezoneDrawingArea', 'button_release_event'): 'onTZDrawRelease', ('TimezoneDrawingArea', 'expose_event'): 'onTZDrawExpose', }) self.tzEntry = xml.get_widget("tz_entry") self.advancedDialog = AdvancedDialog(xml) self.allTZsView = xml.get_widget("tz_treeview") self.setupMap(xml) self.setupTimezone(xml)
def __init__(self, parent): CommonWindow.__init__(self) self.xml = parent.xml self.acceptedEula = False self.dialog = self.xml.get_widget('drivereula') assert self.dialog self.okButton = self.xml.get_widget('DrivereulaOkButton') self.checkButton = self.xml.get_widget('DrivereulaCheckButton') self.okButton.set_sensitive(self.checkButton.get_active()) connectSignalHandlerByDict(self, AddDrivers, self.xml, { ('DrivereulaOkButton', 'clicked') : 'okClicked', ('DrivereulaCancelButton', 'clicked') : 'cancelClicked', ('DrivereulaCheckButton', 'toggled') : 'checkbuttonToggled', }) self.setupEula() self.addFrameToWindow() self.dialog.set_position(gtk.WIN_POS_CENTER) self.dialog.show_all()