コード例 #1
0
def create_virtual_instance(tem_name=None, scripts=None):
    tem_name = tem_name if tem_name else horton.cdcred.name
    template = get_instance_template(tem_name=tem_name)
    if not template:
        create_instance_template(tem_name, scripts=scripts)
        while not template:
            sleep(2)
            template = get_instance_template(tem_name=tem_name)
    return cd.VirtualInstance(id=str(uuid.uuid4()), template=template)
コード例 #2
0
def create_deployment(cm_ver,
                      env_name=None,
                      tem_name=None,
                      dep_name=None,
                      tls_start=False,
                      csds=None):
    assert isinstance(cm_ver, six.string_types)
    env_name = env_name if env_name else horton.cdcred.name
    log.info("Using Environment [%s]", env_name)
    tem_name = tem_name if tem_name else dep_name if dep_name else horton.cdcred.name
    log.info("Using Virtual Template [%s]", tem_name)
    dep_name = dep_name if dep_name else env_name + '-' + str(cm_ver).replace(
        '.', '-')
    template = get_instance_template(tem_name=tem_name)
    if not template:
        log.info("Template [%s] not found, creating from defaults", tem_name)
        create_instance_template(tem_name=tem_name)
        while not template:
            sleep(2)
            template = get_instance_template(tem_name=tem_name)
    if cm_ver[0] == '6':
        repo = 'https://archive.cloudera.com/cm6/' + cm_ver + '/redhat7/yum/'
        repo_key = 'https://archive.cloudera.com/cm6/' + cm_ver +\
                   '/redhat7/yum/RPM-GPG-KEY-cloudera'
    elif cm_ver[0] == '5':
        repo = 'https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/' +\
               cm_ver + '/'
        repo_key = 'https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/' \
                   'RPM-GPG-KEY-cloudera'
    else:
        raise ValueError("Only CM 5 or 6 supported")
    try:
        log.info("Attempting to create Deployment [%s]", dep_name)
        return cd.DeploymentsApi(horton.cad).create(
            environment=env_name,
            deployment_template=cd.DeploymentTemplate(
                name=dep_name,
                manager_virtual_instance=cd.VirtualInstance(id=str(
                    uuid.uuid4()),
                                                            template=template),
                password=security.get_secret('ADMINPASSWORD'),
                enable_enterprise_trial=True,
                repository_key_url=repo_key,
                repository=repo,
                tls_enabled=tls_start,
                csds=csds,
                java_installation_strategy='NONE'))
    except ApiException as e:
        if e.status == 409:
            log.warning('A deployment with the same name already exists')
        else:
            raise e
コード例 #3
0
ファイル: director.py プロジェクト: wcbdata/whoville
def create_virtual_instance(tem_name=None):
    tem_name = tem_name if tem_name else horton.cadcred.name
    return cd.VirtualInstance(
        id=str(uuid.uuid4()),
        template=get_instance_template(tem_name=tem_name))