def __init__(self, config, progress, restart): self.logger = logging.getLogger(self.__class__.__name__) self.progress = progress self.basedir = None self.random = config.get('randomization', False) if 'devices' not in config: raise ConfigError('"device" is required in the configuration') adb_path = config.get('adb_path', 'adb') self.devices = Devices(config['devices'], adb_path=adb_path, devices_spec=config.get('devices_spec')) self.replications = Tests.is_integer(config.get('replications', 1)) self.paths = config.get('paths', []) self.profilers = Profilers(config.get('profilers', {}), config) monkeyrunner_path = config.get('monkeyrunner_path', 'monkeyrunner') self.scripts = Scripts(config.get('scripts', {}), monkeyrunner_path=monkeyrunner_path) self.time_between_run = Tests.is_integer( config.get('time_between_run', 0)) Tests.check_dependencies(self.devices, self.profilers.dependencies()) self.output_root = paths.OUTPUT_DIR self.result_file_structure = None if restart: for device in self.devices: self.prepare_device(device, restart=True)
def __init__(self, id): self.id = id from States import States self._addObject(States('states')) from Transitions import Transitions self._addObject(Transitions('transitions')) from Variables import Variables self._addObject(Variables('variables')) from Worklists import Worklists self._addObject(Worklists('worklists')) from Scripts import Scripts self._addObject(Scripts('scripts'))
def __init__(self, config): self.logger = logging.getLogger(self.__class__.__name__) self.basedir = None if 'devices' not in config: raise ConfigError('"device" is required in the configuration') adb_path = config.get('adb_path', 'adb') self.devices = Devices(config['devices'], adb_path=adb_path) self.replications = Tests.is_integer(config.get('replications', 1)) self.paths = config.get('paths', []) self.profilers = Profilers(config.get('profilers', {})) monkeyrunner_path = config.get('monkeyrunner_path', 'monkeyrunner') self.scripts = Scripts(config.get('scripts', {}), monkeyrunner_path=monkeyrunner_path) self.time_between_run = Tests.is_integer( config.get('time_between_run', 0)) Tests.check_dependencies(self.devices, self.profilers.dependencies()) self.output_root = paths.OUTPUT_DIR
def __init__(self, main_instance): AbstractRole.__init__(self, main_instance) self.sessions = {} self.locked_sessions = [] self.sessions_spooler = MPQueue.Queue() self.sessions_spooler2 = MPQueue.Queue() self.sessions_sync = MPQueue.Queue() self.logging_queue = MPQueue.Queue() self.manager = Manager(self.main_instance.smRequestManager) self.threads = [] self.applications = {} self.applications_id_SM = {} self.applications_mutex = threading.Lock() self.static_apps = ApplicationsStatic( self.main_instance.smRequestManager) self.static_apps_must_synced = False self.static_apps_lock = threading.Lock() self.scripts = Scripts(self.main_instance.smRequestManager) self.scripts_lock = threading.Lock() self.scripts_must_synced = False
class Session: Ulteo_apps = ["startovdapp", "UlteoOVDIntegratedLauncher"] SESSION_STATUS_UNKNOWN = "unknown" SESSION_STATUS_ERROR = "error" SESSION_STATUS_INIT = "init" SESSION_STATUS_INITED = "ready" SESSION_STATUS_ACTIVE = "logged" SESSION_STATUS_INACTIVE = "disconnected" SESSION_STATUS_WAIT_DESTROY = "wait_destroy" SESSION_STATUS_DESTROYED = "destroyed" SESSION_END_STATUS_NORMAL = "logout" SESSION_END_STATUS_SHUTDOWN = "shutdown" SESSION_END_STATUS_ERROR = "internal" MODE_DESKTOP = "desktop" MODE_APPLICATIONS = "applications" def __init__(self, id_, mode_, user_, parameters_, applications_): self.id = id_ self.user = user_ self.mode = mode_ self.parameters = parameters_ self.profile = None self.applications = applications_ self.instanceDirectory = None self.used_applications = {} self.shellNode = None self.end_status = None self.user_session_dir = None self.locked = False self.domain = None self.log = SessionLogger() self.switch_status(Session.SESSION_STATUS_INIT) def init(self): raise NotImplementedError() def init_user_session_dir(self, user_session_dir): self.user_session_dir = user_session_dir if os.path.isdir(self.user_session_dir): System.DeleteDirectory(self.user_session_dir) try: os.makedirs(self.user_session_dir) except WindowsError, e: if e[0] == 183: # The directory already exist Logger.debug("The directory %s already exist" % (self.user_session_dir)) self.instanceDirectory = os.path.join(self.user_session_dir, "instances") self.matchingDirectory = os.path.join(self.user_session_dir, "matching") self.shortcutDirectory = os.path.join(self.user_session_dir, "shortcuts") os.mkdir(self.instanceDirectory) os.mkdir(self.matchingDirectory) os.mkdir(self.shortcutDirectory) for application in self.applications: cmd = ApplicationsDetection.getExec(application["filename"]) if cmd is None: Logger.error( "Session::install_client unable to extract command from app_id %s (%s)" % (application["id"], application["filename"])) continue f = file(os.path.join(self.matchingDirectory, application["id"]), "w") f.write(cmd) f.close() if self.shellNode is not None: # Push the OvdShell configuration self.shellNode.setAttribute("sm", Config.session_manager) scriptsNodes = self.shellNode.getElementsByTagName("script") script2start_dir = os.path.join(self.user_session_dir, 'scripts') scripts_aps = os.path.join(Config.spool_dir, "scripts") os.mkdir(script2start_dir) for node in scriptsNodes: scriptID = node.getAttribute("id") scriptName = node.getAttribute("name") scriptType = node.getAttribute("type") scriptExt = Scripts.type2ext(scriptType) node.setAttribute("name", scriptName + "." + scriptExt) apsname = os.path.join(scripts_aps, scriptID + "." + scriptExt) sessionname = os.path.join(script2start_dir, scriptName + "." + scriptExt) if os.path.isfile(apsname): shutil.copy(apsname, sessionname) f = open(os.path.join(self.user_session_dir, "shell.conf"), "w") f.write(self.shellNode.toprettyxml()) f.close()