Example #1
0
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')
Example #4
0
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)