Exemplo n.º 1
0
def test(cmdb, clear_cmdb):
    clear_cmdb()

    with mock.patch.dict(os.environ, {"ROOT_DIR": cmdb.ROOT_DIR}):

        tenant_id = conf["cmdb"]["tenant"]["tenant_id"]
        tenant_name = conf["cmdb"]["tenant"]["tenant_name"]
        account_id = conf["cmdb"]["account"]["account_id"]
        account_name = conf["cmdb"]["account"]["account_name"]
        product_id = conf["cmdb"]["product"]["product_id"]
        product_name = conf["cmdb"]["product"]["product_name"]

        with cmdb() as path:
            tenant.run(**conf["cmdb"]["tenant"], output_dir=path())
        with cmdb("accounts") as path:
            account.run(**conf["cmdb"]["account"], output_dir=path())
        with cmdb() as path:
            product.run(**conf["cmdb"]["product"], output_dir=path())
        with cmdb(product_name, "config") as path:
            e = Environment({"ACCOUNT": account_name})
            set_context(cwd=path(), environment_obj=e)

        with cmdb() as path:
            assert e.AID == account_id
            assert e.ACCOUNT == account_name
            assert e.ACCOUNT_DIR == os.path.join(
                path(), "accounts", account_name, "config"
            )
            assert e.TID == tenant_id
            assert e.TENANT == tenant_name
            assert e.TENANT_DIR == os.path.join(path(), "accounts", tenant_name)
            assert e.PID == product_id
            assert e.PRODUCT == product_name
            assert e.PRODUCT_DIR == os.path.join(path(), product_name, "config")
            print(e)
Exemplo n.º 2
0
def run(cmdb, clear_cmdb):
    clear_cmdb()
    with cmdb() as path:
        tenant.run(**conf["cmdb"]["tenant"], output_dir=path())
    with cmdb("accounts") as path:
        account.run(**conf["cmdb"]["account"], output_dir=path())
    with cmdb() as path:
        product.run(**conf["cmdb"]["product"], output_dir=path())
Exemplo n.º 3
0
def generate_account(**kwargs):
    """
    Creates an account cmdb within a tenant cmdb.

    The account template can be reused to create multiple accounts within a Tenant.
    This template should be run from a tenant directory
    """
    try:
        generate_account_backend.run(**kwargs)

    except OutputDirExistsException as e:
        raise CommandError(e)
def run(cmdb, clear_cmdb):
    clear_cmdb()
    with cmdb():
        os.mknod('root.json')
        tenant.run(**conf['cmdb']['tenant'])
    with cmdb('accounts'):
        account.run(**conf['cmdb']['account'])
    with cmdb():
        app_lifecycle_mgmt.run(**conf['cmdb']['product'])
    with cmdb('accounts', 'tenant'):
        with open('domains.json', 'rb') as domains_file:
            domains_json = json.load(domains_file)
        product_name = conf['cmdb']['product']['product_name']
        tenant_name = conf['cmdb']['tenant']['tenant_name']
        domains_json['Certificates'][product_name] = {'Domain': tenant_name}
        with open('domains.json', 'wt') as domains_file:
            json.dump(domains_json, domains_file, indent=4)
def test(cmdb, clear_cmdb):
    clear_cmdb()

    tenant_id = conf['cmdb']['tenant']['tenant_id']
    tenant_name = conf['cmdb']['tenant']['tenant_name']
    account_id = conf['cmdb']['account']['account_id']
    account_name = conf['cmdb']['account']['account_name']
    product_id = conf['cmdb']['product']['product_id']
    product_name = conf['cmdb']['product']['product_name']

    with cmdb():
        os.mknod('root.json')
        tenant.run(**conf['cmdb']['tenant'])
    with cmdb('accounts'):
        account.run(**conf['cmdb']['account'])
    with cmdb():
        base.run(**conf['cmdb']['product'])
    with cmdb('accounts', tenant_name):
        with open('domains.json', 'rb') as domains_file:
            domains_json = json.load(domains_file)
        domains_json['Certificates'][product_name] = {'Domain': tenant_name}
        with open('domains.json', 'wt') as domains_file:
            json.dump(domains_json, domains_file, indent=4)

    with cmdb(product_name, 'config') as path:
        e = Environment({'ACCOUNT': account_name})
        set_context(cwd=path(), environment_obj=e)

    with cmdb() as path:
        assert e.AID == account_id
        assert e.ACCOUNT == account_name
        assert e.ACCOUNT_DIR == os.path.join(path(), 'accounts', account_name, 'config')
        assert e.TID == tenant_id
        assert e.TENANT == tenant_name
        assert e.TENANT_DIR == os.path.join(path(), 'accounts', tenant_name)
        assert e.PID == product_id
        assert e.PRODUCT == product_name
        assert e.PRODUCT_DIR == os.path.join(path(), product_name, 'config')
        print(e)
Exemplo n.º 6
0
def test_find_gen3_dirs(clear_cmdb, cmdb):
    clear_cmdb()

    tenant_name = conf["cmdb"]["tenant"]["tenant_name"]
    account_name = conf["cmdb"]["account"]["account_name"]
    product_name = conf["cmdb"]["product"]["product_name"]
    segment_name = conf["cmdb"]["product"]["segment_name"]
    environment_name = conf["cmdb"]["product"]["environment_name"]

    with mock.patch.dict(os.environ, {"ROOT_DIR": cmdb.ROOT_DIR}):

        with cmdb() as path:
            tenant.run(**conf["cmdb"]["tenant"], output_dir=path())
        with cmdb("accounts") as path:
            account.run(**conf["cmdb"]["account"], output_dir=path())
        with cmdb() as path:
            product.run(**conf["cmdb"]["product"], output_dir=path())

        with cmdb() as path:
            root_dir = path()
            assert root_dir == ct.find_gen3_root_dir(path())
            tenant_dir = os.path.join(root_dir, "accounts", tenant_name)
            assert tenant_dir == ct.find_gen3_tenant_dir(root_dir, tenant_name)
            account_base_dir = os.path.join(root_dir, "accounts", account_name)
            account_dir = os.path.join(account_base_dir, "config")
            account_state_dir = os.path.join(account_base_dir,
                                             "infrastructure")
            assert account_dir == ct.find_gen3_account_dir(
                root_dir, account_name)
            assert account_state_dir == ct.find_gen3_account_state_dir(
                root_dir, account_name)
            product_base_dir = os.path.join(root_dir, product_name)
            product_dir = os.path.join(product_base_dir, "config")
            product_infr_dir = os.path.join(product_base_dir, "infrastructure")
            environment_dir = os.path.join(product_dir, "solutionsv2",
                                           environment_name)
            assert product_dir == ct.find_gen3_product_dir(
                root_dir, product_name)
            assert product_infr_dir == ct.find_gen3_product_infrastructure_dir(
                root_dir, product_name)
            assert environment_dir == ct.find_gen3_environment_dir(
                root_dir, product_name, environment_name)
            e = Environment()
            ct.find_gen3_dirs(
                e,
                root_dir,
                tenant=tenant_name,
                account=account_name,
                product=product_name,
                environment=environment_name,
                segment=segment_name,
            )
            assert e.ROOT_DIR == root_dir
            assert e.TENANT_DIR == tenant_dir

            assert e.ACCOUNT_DIR == account_dir
            assert e.ACCOUNT_STATE_DIR == account_state_dir
            assert e.ACCOUNT_SETTINGS_DIR == os.path.join(
                account_dir, "settings")
            assert e.ACCOUNT_OPERATIONS_DIR == os.path.join(
                account_state_dir, "operations")
            product_settings_dir = os.path.join(product_dir, "settings")
            product_operations_dir = os.path.join(product_infr_dir,
                                                  "operations")
            product_solutions_dir = os.path.join(product_dir, "solutionsv2")
            environment_shared_operations_dir = os.path.join(
                product_infr_dir, "operations", environment_name)
            environment_shared_settings_dir = os.path.join(
                product_dir, "settings", environment_name)
            environment_shared_solutions_dir = os.path.join(
                product_dir, "solutionsv2", environment_name)
            segment_solutions_dir = os.path.join(product_dir, "solutionsv2",
                                                 environment_name,
                                                 segment_name)
            segment_settings_dir = os.path.join(product_dir, "settings",
                                                environment_name, segment_name)
            segment_operations_dir = os.path.join(product_infr_dir,
                                                  "operations",
                                                  environment_name,
                                                  segment_name)
            segment_builds_dir = segment_settings_dir
            segment_shared_settings_dir = os.path.join(product_dir, "settings",
                                                       "shared", segment_name)
            segment_shared_solutions_dir = os.path.join(
                product_dir, "solutionsv2", "shared", segment_name)
            segment_shared_operations_dir = os.path.join(
                product_infr_dir, "operations", "shared", segment_name)
            assert e.PRODUCT_DIR == product_dir
            assert e.PRODUCT_SETTINGS_DIR == product_settings_dir
            assert e.PRODUCT_INFRASTRUCTURE_DIR == product_infr_dir
            assert e.PRODUCT_OPERATIONS_DIR == product_operations_dir
            assert e.PRODUCT_SOLUTIONS_DIR == product_solutions_dir
            assert e.PRODUCT_SHARED_SETTINGS_DIR == os.path.join(
                product_settings_dir, "shared")
            assert e.PRODUCT_SHARED_OPERATIONS_DIR == os.path.join(
                product_operations_dir, "shared")
            assert e.PRODUCT_SHARED_SOLUTIONS_DIR == os.path.join(
                product_solutions_dir, "shared")
            assert e.ENVIRONMENT_SHARED_SETTINGS_DIR == environment_shared_settings_dir
            assert (e.ENVIRONMENT_SHARED_SOLUTIONS_DIR ==
                    environment_shared_solutions_dir)
            assert (e.ENVIRONMENT_SHARED_OPERATIONS_DIR ==
                    environment_shared_operations_dir)
            assert e.SEGMENT_SOLUTIONS_DIR == segment_solutions_dir
            assert e.SEGMENT_SETTINGS_DIR == segment_settings_dir
            assert e.SEGMENT_OPERATIONS_DIR == segment_operations_dir
            assert e.SEGMENT_BUILDS_DIR == segment_builds_dir
            assert e.SEGMENT_SHARED_SETTINGS_DIR == segment_shared_settings_dir
            assert e.SEGMENT_SHARED_SOLUTIONS_DIR == segment_shared_solutions_dir
            assert e.SEGMENT_SHARED_OPERATIONS_DIR == segment_shared_operations_dir
            print(e)
def test_find_gen3_dirs(clear_cmdb, cmdb):
    clear_cmdb()

    tenant_name = conf['cmdb']['tenant']['tenant_name']
    account_name = conf['cmdb']['account']['account_name']
    product_name = conf['cmdb']['product']['product_name']
    segment_name = conf['cmdb']['product']['segment_name']
    environment_name = conf['cmdb']['product']['environment_name']

    with cmdb() as path:
        os.mknod('root.json')
        tenant.run(**conf['cmdb']['tenant'])
    with cmdb('accounts'):
        account.run(**conf['cmdb']['account'])
    with cmdb():
        base.run(**conf['cmdb']['product'])
    with cmdb('accounts', tenant_name):
        with open('domains.json', 'rb') as domains_file:
            domains_json = json.load(domains_file)
        domains_json['Certificates'][product_name] = {'Domain': tenant_name}
        with open('domains.json', 'wt') as domains_file:
            json.dump(domains_json, domains_file, indent=4)

    with cmdb() as path:
        root_dir = path()
        assert root_dir == ct.find_gen3_root_dir(path())
        tenant_dir = os.path.join(root_dir, 'accounts', tenant_name)
        assert tenant_dir == ct.find_gen3_tenant_dir(root_dir, tenant_name)
        account_base_dir = os.path.join(root_dir, 'accounts', account_name)
        account_dir = os.path.join(account_base_dir, 'config')
        account_infr_dir = os.path.join(account_base_dir, 'infrastructure')
        assert account_dir == ct.find_gen3_account_dir(root_dir, account_name)
        assert account_infr_dir == ct.find_gen3_account_infrastructure_dir(
            root_dir, account_name)
        product_base_dir = os.path.join(root_dir, product_name)
        product_dir = os.path.join(product_base_dir, 'config')
        product_infr_dir = os.path.join(product_base_dir, 'infrastructure')
        environment_dir = os.path.join(product_dir, 'solutionsv2',
                                       environment_name)
        assert product_dir == ct.find_gen3_product_dir(root_dir, product_name)
        assert product_infr_dir == ct.find_gen3_product_infrastructure_dir(
            root_dir, product_name)
        assert environment_dir == ct.find_gen3_environment_dir(
            root_dir, product_name, environment_name)
        e = Environment()
        ct.find_gen3_dirs(e,
                          root_dir,
                          tenant=tenant_name,
                          account=account_name,
                          product=product_name,
                          environment=environment_name,
                          segment=segment_name)
        assert e.ROOT_DIR == root_dir
        assert e.TENANT_DIR == tenant_dir

        assert e.ACCOUNT_DIR == account_dir
        assert e.ACCOUNT_INFRASTRUCTURE_DIR == account_infr_dir
        assert e.ACCOUNT_SETTINGS_DIR == os.path.join(account_dir, 'settings')
        assert e.ACCOUNT_OPERATIONS_DIR == os.path.join(
            account_infr_dir, 'operations')
        product_settings_dir = os.path.join(product_dir, 'settings')
        product_operations_dir = os.path.join(product_infr_dir, 'operations')
        product_solutions_dir = os.path.join(product_dir, 'solutionsv2')
        environment_shared_operations_dir = os.path.join(
            product_infr_dir, 'operations', environment_name)
        environment_shared_settings_dir = os.path.join(product_dir, 'settings',
                                                       environment_name)
        environment_shared_solutions_dir = os.path.join(
            product_dir, 'solutionsv2', environment_name)
        segment_solutions_dir = os.path.join(product_dir, 'solutionsv2',
                                             environment_name, segment_name)
        segment_settings_dir = os.path.join(product_dir, 'settings',
                                            environment_name, segment_name)
        segment_operations_dir = os.path.join(product_infr_dir, 'operations',
                                              environment_name, segment_name)
        segment_builds_dir = segment_settings_dir
        segment_shared_settings_dir = os.path.join(product_dir, 'settings',
                                                   'shared', segment_name)
        segment_shared_solutions_dir = os.path.join(product_dir, 'solutionsv2',
                                                    'shared', segment_name)
        segment_shared_operations_dir = os.path.join(product_infr_dir,
                                                     'operations', 'shared',
                                                     segment_name)
        assert e.PRODUCT_DIR == product_dir
        assert e.PRODUCT_SETTINGS_DIR == product_settings_dir
        assert e.PRODUCT_INFRASTRUCTURE_DIR == product_infr_dir
        assert e.PRODUCT_OPERATIONS_DIR == product_operations_dir
        assert e.PRODUCT_SOLUTIONS_DIR == product_solutions_dir
        assert e.PRODUCT_SHARED_SETTINGS_DIR == os.path.join(
            product_settings_dir, 'shared')
        assert e.PRODUCT_SHARED_OPERATIONS_DIR == os.path.join(
            product_operations_dir, 'shared')
        assert e.PRODUCT_SHARED_SOLUTIONS_DIR == os.path.join(
            product_solutions_dir, 'shared')
        assert e.ENVIRONMENT_SHARED_SETTINGS_DIR == environment_shared_settings_dir
        assert e.ENVIRONMENT_SHARED_SOLUTIONS_DIR == environment_shared_solutions_dir
        assert e.ENVIRONMENT_SHARED_OPERATIONS_DIR == environment_shared_operations_dir
        assert e.SEGMENT_SOLUTIONS_DIR == segment_solutions_dir
        assert e.SEGMENT_SETTINGS_DIR == segment_settings_dir
        assert e.SEGMENT_OPERATIONS_DIR == segment_operations_dir
        assert e.SEGMENT_BUILDS_DIR == segment_builds_dir
        assert e.SEGMENT_SHARED_SETTINGS_DIR == segment_shared_settings_dir
        assert e.SEGMENT_SHARED_SOLUTIONS_DIR == segment_shared_solutions_dir
        assert e.SEGMENT_SHARED_OPERATIONS_DIR == segment_shared_operations_dir
        print(e)