Пример #1
0
def delete_deployment(dep_name, env_name=None):
    env_name = env_name if env_name else horton.cdcred.name
    try:
        return cd.DeploymentsApi(horton.cad).delete(environment=env_name,
                                                    deployment=dep_name)
    except ApiException as e:
        raise e
Пример #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
def get_deployment_status(dep_name=None, env_name=None):
    env_name = env_name if env_name else horton.cdcred.name
    dep_name = dep_name if dep_name else horton.cdcred.name
    #log.info("Fetching Deployment status for [%s]", dep_name)
    try:
        return cd.DeploymentsApi(horton.cad).get_status(environment=env_name,
                                                        deployment=dep_name)
    except ApiException as e:
        if e.status == 404:
            log.error("Deployment %s not found", dep_name)
            return None
        else:
            raise e
Пример #4
0
def get_deployment(dep_name=None, env_name=None):
    env_name = env_name if env_name else horton.cdcred.name
    dep_name = dep_name if dep_name else horton.cdcred.name
    log.info("Attempting to get deployment %s", dep_name)
    try:
        return cd.DeploymentsApi(horton.cad).get_redacted(environment=env_name,
                                                          deployment=dep_name)
    except ApiException as e:
        if e.status == 404:
            log.error("Deployment %s not found", dep_name)
            return []
        else:
            raise e
Пример #5
0
def list_deployments(env_name=None):
    env_name = env_name if env_name else horton.cdcred.name
    return cd.DeploymentsApi(horton.cad).list(environment=env_name)