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