def convert(self,): """ Convert external service to gpkg. """ from eventkit_cloud.tasks.task_process import TaskProcess conf_dict, seed_configuration, mapproxy_configuration = self.get_check_config() # Customizations... mapproxy.seed.seeder.exp_backoff = get_custom_exp_backoff(max_repeat=int(conf_dict.get('max_repeat', 5))) mapproxy.cache.geopackage.GeopackageCache.load_tile_metadata = load_tile_metadata logger.info("Beginning seeding to {0}".format(self.gpkgfile)) try: auth_requests.patch_https(self.name) auth_requests.patch_mapproxy_opener_cache(slug=self.name) progress_store = get_progress_store(self.gpkgfile) progress_logger = CustomLogger(verbose=True, task_uid=self.task_uid, progress_store=progress_store) task_process = TaskProcess(task_uid=self.task_uid) task_process.start_process(billiard=True, target=seeder.seed, kwargs={"tasks": seed_configuration.seeds(['seed']), "concurrency": get_concurrency(conf_dict), "progress_logger": progress_logger}) check_zoom_levels(self.gpkgfile, mapproxy_configuration) remove_empty_zoom_levels(self.gpkgfile) set_gpkg_contents_bounds(self.gpkgfile, self.layer, self.bbox) if task_process.exitcode != 0: raise Exception("The Raster Service failed to complete, please contact an administrator.") except Exception: logger.error("Export failed for url {}.".format(self.service_url)) raise finally: connections.close_all() return self.gpkgfile
def convert(self): """ Convert external service to gpkg. """ from eventkit_cloud.tasks.task_process import TaskProcess conf_dict, seed_configuration, mapproxy_configuration = self.get_check_config() # Customizations... mapproxy.seed.seeder.exp_backoff = get_custom_exp_backoff( max_repeat=int(conf_dict.get("max_repeat", 5)), task_uid=self.task_uid ) logger.info("Beginning seeding to {0}".format(self.gpkgfile)) try: conf = yaml.safe_load(self.config) or dict() cert_info = conf.get("cert_info") auth_requests.patch_https(cert_info=cert_info) cred_var = conf.get("cred_var") auth_requests.patch_mapproxy_opener_cache(slug=self.name, cred_var=cred_var) progress_store = get_progress_store(self.gpkgfile) progress_logger = CustomLogger( task_uid=self.task_uid, progress_store=progress_store, verbose=log_settings.get("verbose"), silent=log_settings.get("silent"), ) task_process = TaskProcess(task_uid=self.task_uid) task_process.start_process( lambda: seeder.seed( tasks=seed_configuration.seeds(["seed"]), concurrency=get_concurrency(conf_dict), progress_logger=progress_logger, ) ) check_zoom_levels(self.gpkgfile, mapproxy_configuration) remove_empty_zoom_levels(self.gpkgfile) set_gpkg_contents_bounds(self.gpkgfile, self.layer, self.bbox) except CancelException: raise except Exception as e: logger.error("Export failed for url {}.".format(self.service_url)) logger.error(e) raise finally: connections.close_all() return self.gpkgfile
def test_set_gpkg_contents_bounds(self, sqlite3): table_name = "test1" gpkg = "/test/file.gpkg" bbox = [-1, 0, 2, 1] sqlite3.connect().__enter__().execute.return_value = Mock(rowcount=1) set_gpkg_contents_bounds(gpkg, table_name, bbox) sqlite3.connect().__enter__().execute.assert_called_once_with( "UPDATE gpkg_contents SET min_x = {0}, min_y = {1}, max_x = {2}, max_y = {3} WHERE table_name = '{4}';".format( bbox[0], bbox[1], bbox[2], bbox[3], table_name)) with self.assertRaises(Exception): sqlite3.connect().__enter__().execute.return_value = Mock(rowcount=0) set_gpkg_contents_bounds(gpkg, table_name, bbox)
def convert(self, ): """ Convert external service to gpkg. """ from eventkit_cloud.tasks.task_process import TaskProcess conf_dict, seed_configuration, mapproxy_configuration = self.get_check_config( ) # Customizations... mapproxy.seed.seeder.exp_backoff = get_custom_exp_backoff( max_repeat=int(conf_dict.get('max_repeat', 5))) mapproxy.cache.geopackage.GeopackageCache.load_tile_metadata = load_tile_metadata logger.info("Beginning seeding to {0}".format(self.gpkgfile)) try: auth_requests.patch_https(self.name) auth_requests.patch_mapproxy_opener_cache(slug=self.name) progress_store = get_progress_store(self.gpkgfile) progress_logger = CustomLogger(verbose=True, task_uid=self.task_uid, progress_store=progress_store) task_process = TaskProcess(task_uid=self.task_uid) task_process.start_process(billiard=True, target=seeder.seed, kwargs={ "tasks": seed_configuration.seeds(['seed']), "concurrency": get_concurrency(conf_dict), "progress_logger": progress_logger }) check_zoom_levels(self.gpkgfile, mapproxy_configuration) remove_empty_zoom_levels(self.gpkgfile) set_gpkg_contents_bounds(self.gpkgfile, self.layer, self.bbox) if task_process.exitcode != 0: raise Exception( "The Raster Service failed to complete, please contact an administrator." ) except Exception: logger.error("Export failed for url {}.".format(self.service_url)) raise finally: connections.close_all() return self.gpkgfile