def _guessStuff(self, fRandomPvPMode): """ Used by the constructor to guess stuff. """ sNm = self.sVmName.lower().strip() asSplit = sNm.replace('-', ' ').split(' ') if self.sKind is None: # From name. for aInfo in g_aaNameToDetails: if _intersects(asSplit, aInfo[g_iRegEx]): self.aInfo = aInfo self.sGuestOsType = self._mkCanonicalGuestOSType( aInfo[g_iGuestOsType]) self.sKind = aInfo[g_iKind] break if self.sKind is None: reporter.fatal('The OS of test VM "%s" cannot be guessed' % (self.sVmName, )) # Check for 64-bit, if required and supported. if (self.aInfo[g_iFlags] & g_kiArchMask) == g_k32_64 and _intersects( asSplit, ['64', 'amd64']): self.sKind = self.sKind + '_64' else: # Lookup the kind. for aInfo in g_aaNameToDetails: if self.sKind == aInfo[g_iKind]: self.aInfo = aInfo break if self.aInfo is None: reporter.fatal( 'The OS of test VM "%s" with sKind="%s" cannot be guessed' % (self.sVmName, self.sKind)) # Translate sKind into sGuest OS Type. if self.sGuestOsType is None: if self.aInfo is not None: self.sGuestOsType = self._mkCanonicalGuestOSType( self.aInfo[g_iGuestOsType]) elif self.sKind.find("Windows") >= 0: self.sGuestOsType = g_ksGuestOsTypeWindows elif self.sKind.find("Linux") >= 0: self.sGuestOsType = g_ksGuestOsTypeLinux elif self.sKind.find("Solaris") >= 0: self.sGuestOsType = g_ksGuestOsTypeSolaris else: reporter.fatal( 'The OS of test VM "%s", sKind="%s" cannot be guessed' % (self.sVmName, self.sKind)) # Restrict modes and such depending on the OS. if self.asVirtModesSup is None: self.asVirtModesSup = list(g_asVirtModes) if self.sGuestOsType in (g_ksGuestOsTypeOS2, g_ksGuestOsTypeDarwin) \ or self.sKind.find('_64') > 0 \ or (self.aInfo is not None and (self.aInfo[g_iFlags] & g_kiNoRaw)): self.asVirtModesSup = [ sVirtMode for sVirtMode in self.asVirtModesSup if sVirtMode != 'raw' ] # TEMPORARY HACK - START sHostName = socket.getfqdn() if sHostName.startswith('testboxpile1'): self.asVirtModesSup = [ sVirtMode for sVirtMode in self.asVirtModesSup if sVirtMode != 'raw' ] # TEMPORARY HACK - END # Restrict the CPU count depending on the OS and/or percieved SMP readiness. if self.acCpusSup is None: if _intersects(asSplit, ['uni']): self.acCpusSup = [1] elif self.aInfo is not None: self.acCpusSup = [ i for i in range(self.aInfo[g_iMinCpu], self.aInfo[g_iMaxCpu]) ] else: self.acCpusSup = [1] # Figure relevant PV modes based on the OS. if self.asParavirtModesSup is None: self.asParavirtModesSup = g_kdaParavirtProvidersSupported[ self.sGuestOsType] ## @todo Remove this hack as soon as we've got around to explictly configure test variations ## on the server side. Client side random is interesting but not the best option. if fRandomPvPMode: random.seed() self.asParavirtModesSup = (random.choice( self.asParavirtModesSup), ) return True
def _guessStuff(self): """ Used by the constructor to guess stuff. """ sNm = self.sVmName.lower().strip(); asSplit = sNm.replace('-', ' ').split(' '); if self.sKind is None: # From name. for aInfo in g_aaNameToDetails: if _intersects(asSplit, aInfo[g_iRegEx]): self.aInfo = aInfo; self.sGuestOsType = self._mkCanonicalGuestOSType(aInfo[g_iGuestOsType]) self.sKind = aInfo[g_iKind]; break; if self.sKind is None: reporter.fatal('The OS of test VM "%s" cannot be guessed' % (self.sVmName,)); # Check for 64-bit, if required and supported. if self.aInfo[g_iArch] == g_k32_64 and _intersects(asSplit, ['64', 'amd64']): self.sKind = self.sKind + '_64'; else: # Lookup the kind. for aInfo in g_aaNameToDetails: if self.sKind == aInfo[g_iKind]: self.aInfo = aInfo; break; if self.aInfo is None: reporter.fatal('The OS of test VM "%s" with sKind="%s" cannot be guessed' % (self.sVmName, self.sKind)); # Translate sKind into sGuest OS Type. if self.sGuestOsType is None: if self.aInfo is not None: self.sGuestOsType = self._mkCanonicalGuestOSType(self.aInfo[g_iGuestOsType]) elif self.sKind.find("Windows") >= 0: self.sGuestOsType = g_ksGuestOsTypeWindows elif self.sKind.find("Linux") >= 0: self.sGuestOsType = g_ksGuestOsTypeLinux; elif self.sKind.find("Solaris") >= 0: self.sGuestOsType = g_ksGuestOsTypeSolaris; else: reporter.fatal('The OS of test VM "%s", sKind="%s" cannot be guessed' % (self.sVmName, self.sKind)); # Restrict modes and such depending on the OS. if self.asVirtModesSup is None: self.asVirtModesSup = list(g_asVirtModes); if self.sGuestOsType in (g_ksGuestOsTypeOS2, g_ksGuestOsTypeDarwin): self.asVirtModesSup = [sVirtMode for sVirtMode in self.asVirtModesSup if sVirtMode != 'raw']; if self.sKind.find('_64') > 0: self.asVirtModesSup = [sVirtMode for sVirtMode in self.asVirtModesSup if sVirtMode != 'raw']; # Restrict the CPU count depending on the OS and/or percieved SMP readiness. if self.acCpusSup is None: if _intersects(asSplit, ['uni']): self.acCpusSup = [1]; elif self.aInfo is not None: self.acCpusSup = [i for i in range(self.aInfo[g_iMinCpu], self.aInfo[g_iMaxCpu]) ]; else: self.acCpusSup = [1]; return True;
def _guessStuff(self, fRandomPvPMode): """ Used by the constructor to guess stuff. """ sNm = self.sVmName.lower().strip(); asSplit = sNm.replace('-', ' ').split(' '); if self.sKind is None: # From name. for aInfo in g_aaNameToDetails: if _intersects(asSplit, aInfo[g_iRegEx]): self.aInfo = aInfo; self.sGuestOsType = self._mkCanonicalGuestOSType(aInfo[g_iGuestOsType]) self.sKind = aInfo[g_iKind]; break; if self.sKind is None: reporter.fatal('The OS of test VM "%s" cannot be guessed' % (self.sVmName,)); # Check for 64-bit, if required and supported. if self.aInfo[g_iArch] == g_k32_64 and _intersects(asSplit, ['64', 'amd64']): self.sKind = self.sKind + '_64'; else: # Lookup the kind. for aInfo in g_aaNameToDetails: if self.sKind == aInfo[g_iKind]: self.aInfo = aInfo; break; if self.aInfo is None: reporter.fatal('The OS of test VM "%s" with sKind="%s" cannot be guessed' % (self.sVmName, self.sKind)); # Translate sKind into sGuest OS Type. if self.sGuestOsType is None: if self.aInfo is not None: self.sGuestOsType = self._mkCanonicalGuestOSType(self.aInfo[g_iGuestOsType]) elif self.sKind.find("Windows") >= 0: self.sGuestOsType = g_ksGuestOsTypeWindows elif self.sKind.find("Linux") >= 0: self.sGuestOsType = g_ksGuestOsTypeLinux; elif self.sKind.find("Solaris") >= 0: self.sGuestOsType = g_ksGuestOsTypeSolaris; else: reporter.fatal('The OS of test VM "%s", sKind="%s" cannot be guessed' % (self.sVmName, self.sKind)); # Restrict modes and such depending on the OS. if self.asVirtModesSup is None: self.asVirtModesSup = list(g_asVirtModes); if self.sGuestOsType in (g_ksGuestOsTypeOS2, g_ksGuestOsTypeDarwin): self.asVirtModesSup = [sVirtMode for sVirtMode in self.asVirtModesSup if sVirtMode != 'raw']; if self.sKind.find('_64') > 0: self.asVirtModesSup = [sVirtMode for sVirtMode in self.asVirtModesSup if sVirtMode != 'raw']; # TEMPORARY HACK - START sHostName = socket.getfqdn(); if sHostName.startswith('testboxpile1'): self.asVirtModesSup = [sVirtMode for sVirtMode in self.asVirtModesSup if sVirtMode != 'raw']; # TEMPORARY HACK - END # Restrict the CPU count depending on the OS and/or percieved SMP readiness. if self.acCpusSup is None: if _intersects(asSplit, ['uni']): self.acCpusSup = [1]; elif self.aInfo is not None: self.acCpusSup = [i for i in range(self.aInfo[g_iMinCpu], self.aInfo[g_iMaxCpu]) ]; else: self.acCpusSup = [1]; # Figure relevant PV modes based on the OS. if self.asParavirtModesSup is None: self.asParavirtModesSup = g_kdaParavirtProvidersSupported[self.sGuestOsType]; ## @todo Remove this hack as soon as we've got around to explictly configure test variations ## on the server side. Client side random is interesting but not the best option. if fRandomPvPMode: random.seed(); self.asParavirtModesSup = (random.choice(self.asParavirtModesSup),); return True;