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
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
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
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
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)