def _config_get(key=None, default=None, required=False, namespace=None, is_secret=False, suffix=None): providers_manager.config_get(PROVIDER_SUBMODULE, PROVIDER_ID, key=key, default=default, required=required, namespace=namespace, is_secret=is_secret, suffix=suffix)
def get_db_import_urls(old_site_id): import_backup = providers_manager.config_get( PROVIDER_SUBMODULE, key='gcloud-storage-import-bucket', suffix='deis-migration', required=True) instance_latest_datestring = None instance_latest_dt = None instance_latest_datastore_datestring = None instance_latest_datastore_dt = None for line in _gcloud().check_output( f"ls 'gs://{import_backup}/postgres/????????/*.sql'", gsutil=True).decode().splitlines(): # gs://viderum-deis-backups/postgres/20190122/nav.20190122.dump.sql datestring, filename = line.split('/')[4:] file_instance = '.'.join(filename.split('.')[:-3]) is_datastore = file_instance.endswith('-datastore') file_instance = file_instance.replace('-datastore', '') dt = datetime.datetime.strptime(datestring, '%Y%M%d') if file_instance == old_site_id: if is_datastore: if instance_latest_datastore_dt is None or instance_latest_datastore_dt < dt: instance_latest_datastore_datestring = datestring instance_latest_datastore_dt = dt elif instance_latest_dt is None or instance_latest_dt < dt: instance_latest_datestring = datestring instance_latest_dt = dt return ( f'gs://{import_backup}/postgres/{instance_latest_datestring}/{old_site_id}.{instance_latest_datestring}.dump.sql' if instance_latest_datestring else None, f'gs://{import_backup}/postgres/{instance_latest_datastore_datestring}/{old_site_id}-datastore.{instance_latest_datastore_datestring}.dump.sql' if instance_latest_datastore_datestring else None)
def initialize(log_kwargs=None, interactive=False): log_kwargs = log_kwargs or {} logs.info(f'Installing crds', **log_kwargs) crds_manager.install_crd(CRD_SINGULAR, CRD_PLURAL, CRD_KIND, hash_names=True) ckan_infra = CkanInfra(required=False) if interactive: providers_manager.config_interactive_set( PROVIDER_SUBMODULE, default_values={ 'gcloud-storage-import-bucket': ckan_infra.GCLOUD_SQL_DEIS_IMPORT_BUCKET }, suffix='deis-migration') else: if not providers_manager.config_get(PROVIDER_SUBMODULE, key='gcloud-storage-import-bucket', suffix='deis-migration', required=False): providers_manager.config_set( PROVIDER_SUBMODULE, values={ 'gcloud-storage-import-bucket': ckan_infra.GCLOUD_SQL_DEIS_IMPORT_BUCKET }, suffix='deis-migration')
def _config_get(key=None, default=None, required=False, namespace=None, is_secret=False, suffix=None): return providers_manager.config_get(PROVIDER_SUBMODULE, PROVIDER_ID, key=key, default=default, required=required, namespace=namespace, is_secret=is_secret, suffix=suffix) def _config_interactive_set(default_values, namespace=None, is_secret=False, suffix=None, from_file=False): providers_manager.config_interactive_set(PROVIDER_SUBMODULE, PROVIDER_ID, default_values, namespace, is_secret, suffix, from_file)