def appendRemoteRepo(): new_parcel_repo_urls = parcelsuri cm_api_instance = cm_client.ClouderaManagerResourceApi(api_client) cm_configs = cm_api_instance.get_config(view='full') old_parcel_repo_urls = None for cm_config in cm_configs.items: if cm_config.name == 'REMOTE_PARCEL_REPO_URLS': old_parcel_repo_urls = cm_config.value new_parcel_repo_urls = old_parcel_repo_urls + ',' + parcelsuri cm_api_instance = cm_client.ClouderaManagerResourceApi(api_client) cm_configs = cm_api_instance.get_config(view='full') new_cm_config = cm_client.ApiConfig(name='REMOTE_PARCEL_REPO_URLS', value=new_parcel_repo_urls) new_cm_configs = cm_client.ApiConfigList([new_cm_config]) updated_cm_configs = cm_api_instance.update_config(body=new_cm_configs)
def acceptTrial(): api_instance = cm_client.ClouderaManagerResourceApi(api_client) try: api_instance.begin_trial() except ApiException as e: print( "Exception when calling ClouderaManagerResourceApi->begin_trial: %s\n" % e)
def loadLocalRepo(): new_parcel_repo_urls = parcelsuri cm_api_instance = cm_client.ClouderaManagerResourceApi(api_client) cm_configs = cm_api_instance.get_config(view='full') new_cm_config = cm_client.ApiConfig(name='REMOTE_PARCEL_REPO_URLS', value=new_parcel_repo_urls) new_cm_configs = cm_client.ApiConfigList([new_cm_config]) updated_cm_configs = cm_api_instance.update_config(body=new_cm_configs)
def loadTemplateThenInstall(): # Load the updated cluster template with open('/tmp/cluster_template.json') as in_file: json_str = in_file.read() # Following step is used to deserialize from json to python API model object Response = namedtuple("Response", "data") dst_cluster_template = api_client.deserialize( response=Response(json_str), response_type=cm_client.ApiClusterTemplate) cm_api_instance = cm_client.ClouderaManagerResourceApi(api_client) command = cm_api_instance.import_cluster_template( body=dst_cluster_template)
def main(): cm_client.configuration.username = ADMIN_USER cm_client.configuration.password = ADMIN_PASS # Create an instance of the API class api_url = "http://{}:{}/api/{}".format(CM_HOST, CM_PORT, API_VERSION) api_client = cm_client.ApiClient(api_url) api_instance = cm_client.ClouderaManagerResourceApi(api_client) try: setup_logger.info("Activating Trial License...") api_instance.begin_trial() setup_logger.info("License Activated...") except: setup_logger.error("Failed to Activate License...")
return cmd else: time.sleep(min(SLEEP_SECS, deadline - now)) else: time.sleep(SLEEP_SECS) except ApiException as e: print( "Exception when calling ClouderaManagerResourceApi->import_cluster_template: %s\n" % e) cm_client.configuration.username = '******' cm_client.configuration.password = '******' api_client = cm_client.ApiClient("http://localhost:7180/api/v32") cm_api = cm_client.ClouderaManagerResourceApi(api_client) # accept trial licence cm_api.begin_trial() # Install CM Agent on host with open("/root/myRSAkey", "r") as f: key = f.read() instargs = cm_client.ApiHostInstallArguments( host_names=['YourHostname'], user_name='root', private_key=key, cm_repo_url='https://archive.cloudera.com/cm6/6.3.0', java_install_strategy='NONE', ssh_port=22,
def cm_api(self): if self._cm_api is None: self._cm_api = cm_client.ClouderaManagerResourceApi( self.api_client) return self._cm_api
import cm_client from cm_client.rest import ApiException from collections import namedtuple from pprint import pprint import json # Configure HTTP basic authorization for destination CM cm_client.configuration.username = '******' cm_client.configuration.password = '******' api_url = "http://10.209.239.13:7180/api/v17" api_client = cm_client.ApiClient(api_url) # Load the updated cluster template with open('/home/tpc/hs/tpcxBB-pipeline/12-aug-2019-cluster_template.json' ) as in_file: json_str = in_file.read() # Following step is used to deserialize from json to python API model object Response = namedtuple("Response", "data") dst_cluster_template = api_client.deserialize( response=Response(json_str), response_type=cm_client.ApiClusterTemplate) cm_api_instance = cm_client.ClouderaManagerResourceApi(api_client) command = cm_api_instance.import_cluster_template(body=dst_cluster_template)
def __init__(self, name, api_client): self.name = name self.cm_resource_api_client = cm_client.ClouderaManagerResourceApi( api_client) self.config = self._get_config() self.changed = False