def imagingServerDefaultMenuSet(self, menu): """ Set the imaging server default boot menu displayed to all un-registered computers. Called by the MMC agent. @param menu: default menu to set @type menu: dict @return: True if successful @rtype: bool """ if not isMenuStructure(menu): self.logger.error( "Can't set default computer menu: bad menu structure") ret = False else: try: self.logger.debug('Setting default boot menu for computers') imb = ImagingDefaultMenuBuilder(self.config, menu) imenu = imb.make() imenu.write() ret = True except Exception, e: self.logger.exception( "Error while setting default boot menu of unregistered computers: %s" % e) ret = False
def imagingServerDefaultMenuSet(self, menu): """ Set the imaging server default boot menu displayed to all un-registered computers. Called by the MMC agent. @param menu: default menu to set @type menu: dict @return: True if successful @rtype: bool """ if not isMenuStructure(menu): self.logger.error("Can't set default computer menu: bad menu structure") ret = False else: try: self.logger.debug('Setting default boot menu for computers') imb = ImagingDefaultMenuBuilder(self.config, menu) imenu = imb.make() imenu.write() ret = True except Exception, e: self.logger.exception("Error while setting default boot menu of unregistered computers: %s" % e) ret = False
def computersMenuSet(self, menus): """ Set computers imaging boot menu. @param menus: list of (uuid, menu) couples @type menus: list @ret: list of the computer uuid which menu have been successfully set @rtype: list """ ret = [] for cuuid in menus: menu = menus[cuuid] if not isUUID(cuuid): self.logger.error('Invalid computer UUID %s' % cuuid) continue if not isMenuStructure(menu): self.logger.error( "Invalid menu structure for computer UUID %s" % cuuid) continue res = self.myUUIDCache.getByUUID(cuuid) if res == False: self.logger.warn("Updating MAC address for UUID %s" % cuuid) self.myUUIDCache.set( menu['target']['uuid'], menu['target']['macaddress'], menu['target']['name'], '') # FIXME : domainname '' is probably a wrong idea res = self.myUUIDCache.getByUUID(cuuid) try: macaddress = res['mac'] hostname = res['shortname'] self.logger.debug( 'Setting menu for computer UUID/MAC/hostname %s/%s/%s' % (cuuid, macaddress, hostname)) imb = ImagingComputerMenuBuilder(self.config, macaddress, menu) imenu = imb.make() imenu.write() ret.append(cuuid) imc = ImagingComputerConfiguration(self.config, cuuid, hostname, menu) imc.write() except Exception, e: self.logger.exception( "Error while setting new menu of computer uuid/mac %s: %s" % (cuuid, e))
def _success(menu): global menu_data if not isMenuStructure(menu): self.logger.error("Invalid menu structure for computer MAC %s" % mac) # TODO: generate default menu menu_data = '' try: #self.logger.debug('Setting menu for computer UUID/MAC/hostname %s/%s/%s' % (cuuid, macaddress, hostname)) imb = ImagingComputerMenuBuilder(self.config, mac, menu) imenu = imb.make() menu_data = imenu.buildMenu() except Exception, e: self.logger.exception("Error while setting new menu of computer uuid/mac %s", str(e)) # if cant generate specific menu, use default menu # or minimal menu genre "Continue usual startup" menu_data = ''
def _success(menu): global menu_data if not isMenuStructure(menu): self.logger.error( "Invalid menu structure for computer MAC %s" % mac) # TODO: generate default menu menu_data = '' try: #self.logger.debug('Setting menu for computer UUID/MAC/hostname %s/%s/%s' % (cuuid, macaddress, hostname)) imb = ImagingComputerMenuBuilder(self.config, mac, menu) imenu = imb.make() menu_data = imenu.buildMenu() except Exception, e: self.logger.exception( "Error while setting new menu of computer uuid/mac %s", str(e)) # if cant generate specific menu, use default menu # or minimal menu genre "Continue usual startup" menu_data = ''
def computersMenuSet(self, menus): """ Set computers imaging boot menu. @param menus: list of (uuid, menu) couples @type menus: list @ret: list of the computer uuid which menu have been successfully set @rtype: list """ ret = [] for cuuid in menus: menu = menus[cuuid] if not isUUID(cuuid): self.logger.error('Invalid computer UUID %s' % cuuid) continue if not isMenuStructure(menu): self.logger.error("Invalid menu structure for computer UUID %s" % cuuid) continue res = self.myUUIDCache.getByUUID(cuuid) if res == False: self.logger.warn("Updating MAC address for UUID %s" % cuuid) self.myUUIDCache.set(menu['target']['uuid'], menu['target']['macaddress'], menu['target']['name'], '') # FIXME : domainname '' is probably a wrong idea res = self.myUUIDCache.getByUUID(cuuid) try: macaddress = res['mac'] hostname = res['shortname'] self.logger.debug('Setting menu for computer UUID/MAC/hostname %s/%s/%s' % (cuuid, macaddress, hostname)) imb = ImagingComputerMenuBuilder(self.config, macaddress, menu) imenu = imb.make() imenu.write() ret.append(cuuid) imc = ImagingComputerConfiguration(self.config, cuuid, hostname, menu) imc.write() except Exception, e: self.logger.exception("Error while setting new menu of computer uuid/mac %s: %s" % (cuuid, e))