def _generate_thumbnail(self): thumbnail = os.path.join(config.get_screenshot_path(), '%s-%s.png' % (self.vm_uuid, str(uuid.uuid4()))) self._get_test_result() if stream_test_result is None: self._watch_stream_creation(thumbnail) elif stream_test_result: try: self._generate_scratch(thumbnail) except: wok_log.error("screenshot_creation: Unable to create " "screenshot image %s." % thumbnail) else: self._create_black_image(thumbnail) if os.path.getsize(thumbnail) == 0: self._create_black_image(thumbnail) else: im = Image.open(thumbnail) try: # Prevent Image lib from lazy load, # work around pic truncate validation in thumbnail generation im.thumbnail(self.THUMBNAIL_SIZE) except Exception as e: wok_log.warning("Image load with warning: %s." % e) im.save(thumbnail, "PNG") self.info['thumbnail'] = thumbnail
def __init__(self, args): self.vm_uuid = args['uuid'] args.setdefault('thumbnail', os.path.join(config.get_screenshot_path(), '%s-%s.png' % (self.vm_uuid, str(uuid.uuid4())))) self.info = args
def __init__(self, wok_options): if hasattr(wok_options, "model"): self.model = wok_options.model elif wok_options.test: self.model = mockmodel.MockModel() else: self.model = kimchiModel.Model() dev_env = wok_options.environment != 'production' super(KimchiRoot, self).__init__(self.model, dev_env) for ident, node in sub_nodes.items(): setattr(self, ident, node(self.model)) if isinstance(self.model, kimchiModel.Model): vnc_ws_proxy = vnc.new_ws_proxy() cherrypy.engine.subscribe('exit', vnc_ws_proxy.terminate) self.api_schema = json.load(open(os.path.join(os.path.dirname( os.path.abspath(__file__)), 'API.json'))) self.paths = config.kimchiPaths self.domain = 'kimchi' self.messages = messages make_dirs = [ os.path.abspath(config.get_distros_store()), os.path.abspath(config.get_debugreports_path()), os.path.abspath(config.get_screenshot_path()) ] for directory in make_dirs: if not os.path.isdir(directory): os.makedirs(directory)
def __init__(self, args): self.vm_uuid = args['uuid'] args.setdefault( 'thumbnail', os.path.join(config.get_screenshot_path(), '%s-%s.png' % (self.vm_uuid, str(uuid.uuid4())))) self.info = args
def _generate_thumbnail(self): thumbnail = os.path.join( config.get_screenshot_path(), '%s-%s.png' % (self.vm_uuid, str(uuid.uuid4()))) self._get_test_result() if stream_test_result is None: self._watch_stream_creation(thumbnail) elif stream_test_result: try: self._generate_scratch(thumbnail) except: wok_log.error("screenshot_creation: Unable to create " "screenshot image %s." % thumbnail) else: self._create_black_image(thumbnail) if os.path.getsize(thumbnail) == 0: self._create_black_image(thumbnail) else: im = Image.open(thumbnail) try: # Prevent Image lib from lazy load, # work around pic truncate validation in thumbnail generation im.thumbnail(self.THUMBNAIL_SIZE) except Exception as e: wok_log.warning("Image load with warning: %s." % e) im.save(thumbnail, "PNG") self.info['thumbnail'] = thumbnail
def __init__(self, options): make_dirs = [ os.path.dirname(os.path.abspath(options.access_log)), os.path.dirname(os.path.abspath(options.error_log)), os.path.dirname(os.path.abspath(config.get_object_store())), os.path.abspath(config.get_screenshot_path()), os.path.abspath(config.get_session_path()), os.path.abspath(config.get_distros_store()) ] for directory in make_dirs: if not os.path.isdir(directory): os.makedirs(directory) cherrypy.tools.nocache = cherrypy.Tool('on_end_resource', set_no_cache) cherrypy.tools.kimchiauth = cherrypy.Tool('before_handler', auth.kimchiauth) cherrypy.server.socket_host = options.host cherrypy.server.socket_port = options.port # SSL Server try: if options.ssl_port and options.ssl_port > 0: self._init_ssl(options) except AttributeError, e: pass
def _generate_thumbnail(self): thumbnail = os.path.join( config.get_screenshot_path(), '%s-%s.png' % (self.vm_name, str(uuid.uuid4()))) self._get_test_result() if stream_test_result is None: self._watch_stream_creation(thumbnail) elif stream_test_result: try: self._generate_scratch(thumbnail) except: kimchi_log.error("screenshot_creation: Unable to create " "screenshot image %s." % thumbnail) else: self._create_black_image(thumbnail) if os.path.getsize(thumbnail) == 0: self._create_black_image(thumbnail) else: im = Image.open(thumbnail) im.thumbnail(self.THUMBNAIL_SIZE) im.save(thumbnail, "PNG") self.info['thumbnail'] = thumbnail
def _generate_thumbnail(self): thumbnail = os.path.join(config.get_screenshot_path(), '%s-%s.png' % (self.vm_name, str(uuid.uuid4()))) self._generate_scratch(thumbnail) if os.path.getsize(thumbnail) == 0: image = Image.new("RGB", self.THUMBNAIL_SIZE, 'black') image.save(thumbnail) else: im = Image.open(thumbnail) im.thumbnail(self.THUMBNAIL_SIZE) im.save(thumbnail, "PNG") self.info['thumbnail'] = thumbnail
def _clean_extra(self, window=-1): """ Clear screenshots before time specified by window, Clear all screenshots if window is -1. """ try: now = time.time() clear_list = glob.glob("%s/%s-*.png" % (config.get_screenshot_path(), self.vm_name)) for f in clear_list: if now - os.path.getmtime(f) > window: os.unlink(f) except OSError: pass
def _clean_extra(self, window=-1): """ Clear screenshots before time specified by window, Clear all screenshots if window is -1. """ try: now = time.time() clear_list = glob.glob( "%s/%s-*.png" % (config.get_screenshot_path(), self.vm_uuid)) for f in clear_list: if now - os.path.getmtime(f) > window: os.unlink(f) except OSError: pass
def _generate_thumbnail(self): thumbnail = os.path.join(config.get_screenshot_path(), '%s-%s.png' % (self.vm_uuid, str(uuid.uuid4()))) self._get_test_result() if stream_test_result is None: self._watch_stream_creation(thumbnail) elif stream_test_result: try: self._generate_scratch(thumbnail) except: kimchi_log.error("screenshot_creation: Unable to create " "screenshot image %s." % thumbnail) else: self._create_black_image(thumbnail) if os.path.getsize(thumbnail) == 0: self._create_black_image(thumbnail) else: im = Image.open(thumbnail) im.thumbnail(self.THUMBNAIL_SIZE) im.save(thumbnail, "PNG") self.info['thumbnail'] = thumbnail