def version(self, version): typeChecker(type(self).__name__, version, str, "version") categoryChecker( type(self).__name__, version, ["3.0", "4.0", "4.1"], "version") if self.__versions is UNSETVALUE: self.__versions = Versions() self.__versions.layer = version
def versions(self, versions): typeChecker(type(self).__name__, versions, dict, "version") attack = UNSETVALUE if 'attack' in versions: attack = versions['attack'] try: loadChecker(type(self).__name__, versions, ['layer', 'navigator'], "versions") self.__versions = Versions(versions['layer'], attack, versions['navigator']) except MissingParameters as e: handler(type(self).__name__, 'versions {} is missing parameters: ' '{}. Skipping.' .format(versions, e))
def getUpdatesFromPackage(aFiles, aDate): updates = [] versions = Versions() types = Types() languages = Languages() date = core.dates.toString(aDate) for updateFile in aFiles: path = os.path.normpath(updateFile) kb = core.kb.getKB(updateFile) osVersion = versions.getVersion(updateFile) osType = types.getType(updateFile) language = languages.getLanguage(updateFile) updates.append(json.dumps({'Path': path, 'KB': kb, 'Version': osVersion, 'Type': osType, 'Language': language, 'Date': date})) return updates
def fromPath(aPath): folders = os.listdir(aPath) updates = [] for folder in folders: path = os.path.join(aPath, folder) try: updates.extend(fromPathAndDate(path, folder)) except: date = datetime.datetime.now() date = core.dates.toString(date) updates.append(json.dumps({'Path': folder, 'KB': core.kb.getKB(folder), 'Version': Versions().getVersion(folder), 'Type': Types().getType(folder), 'Language': Languages().getLanguage(folder), 'Date': date})) return updates
def updates4Target(aStorage, aVersion, aPlatform, aLanguage, aPathToReport): KBs = core.kb.getKBsFromReportFile( aPathToReport) if None != aPathToReport else None version = Versions().getVersion('{0}{1}{0}'.format( os.sep, aVersion.replace(' ', ''))) platform = Types().getType('{0}{1}{0}'.format(os.sep, aPlatform)) language = Languages().getLanguage('{0}{1}{0}'.format(os.sep, aLanguage)) query = {} if None != KBs and KBs != []: query['KB'] = KBs if not isinstance(version, dict): query['Version'] = version if not isinstance(platform, dict): query['Type'] = platform if not isinstance(language, dict): query['Language'] = language updates = aStorage.get(query) Updates.sortByFieldUpToDown(updates, 'Path') return (updates, version, platform, language, KBs)
import os import sys import core.dirs from core.storage import Uif from core.types import Types from core.updates import Updates from core.versions import Versions from core.languages import Languages versions = Versions() types = Types() languages = Languages() versions.mVersions['WindowsXP'] = versions.WinXP versions.mVersions['WindowsServer2003'] = versions.Win2k3 versions.mVersions['Windows6.0'] = versions.Vista versions.mVersions['Windows6.1'] = versions.Seven versions.mVersions['Windows8-RT'] = versions.Eight versions.mVersions['Windows8.1'] = versions.EightDotOne types.mTypes['x86'] = types.x86 types.mTypes['x64'] = types.x64 types.mTypes['arm'] = types.ARM types.mTypes['ia64'] = types.IA64 languages.mLanguages = {} languages.mLanguages['NEU'] = languages.Neutral languages.mLanguages['ARA'] = languages.Arabic languages.mLanguages['CHS'] = languages.Chinese_Simplified languages.mLanguages['CHT'] = languages.Chinese_Traditional languages.mLanguages['CSY'] = languages.Czech