def create_cluster(resource_root, name, version): """ Create a cluster @param resource_root: The root Resource object. @param name: Cluster name @param version: Cluster CDH version @return: An ApiCluster object """ apicluster = ApiCluster(resource_root, name, version) apicluster_list = ApiList([apicluster]) body = json.dumps(apicluster_list.to_json_dict()) resp = resource_root.post(CLUSTERS_PATH, data=body) # The server returns a list of created clusters (with size 1) return ApiList.from_json_dict(ApiCluster, resp, resource_root)[0]
def create_service(resource_root, name, service_type, cluster_name="default"): """ Create a service @param resource_root: The root Resource object. @param name: Service name @param service_type: Service type @param cluster_name: Cluster name @return: An ApiService object """ apiservice = ApiService(resource_root, name, service_type) apiservice_list = ApiList([apiservice]) body = json.dumps(apiservice_list.to_json_dict()) resp = resource_root.post(SERVICES_PATH % (cluster_name, ), data=body) # The server returns a list of created services (with size 1) return ApiList.from_json_dict(ApiService, resp, resource_root)[0]
def create_host(resource_root, host_id, name, ipaddr, rack_id=None): """ Create a host @param resource_root: The root Resource object. @param host_id: Host id @param name: Host name @param ipaddr: IP address @param rack_id: Rack id. Default None @return: An ApiHost object """ apihost = ApiHost(resource_root, host_id, name, ipaddr, rack_id) apihost_list = ApiList([apihost]) body = json.dumps(apihost_list.to_json_dict()) resp = resource_root.post(HOSTS_PATH, data=body) # The server returns a list of created hosts (with size 1) return ApiList.from_json_dict(ApiHost, resp, resource_root)[0]
def create_user(resource_root, username, password, roles): """ Create a user. @param resource_root: The root Resource object @param username: Username @param password: Password @param roles: List of roles for the user. This should be [] for a regular user, or ['ROLE_ADMIN'] for an admin. @return: An ApiUser object """ apiuser = ApiUser(resource_root, username, password=password, roles=roles) apiuser_list = ApiList([apiuser]) body = json.dumps(apiuser_list.to_json_dict()) resp = resource_root.post(USERS_PATH, data=body) return ApiList.from_json_dict(ApiUser, resp, resource_root)[0]
def create_role(resource_root, service_name, role_type, role_name, host_id, cluster_name="default"): """ Create a role @param resource_root: The root Resource object. @param service_name: Service name @param role_type: Role type @param role_name: Role name @param cluster_name: Cluster name @return: An ApiRole object """ apirole = ApiRole(resource_root, role_name, role_type, ApiHostRef(resource_root, host_id)) apirole_list = ApiList([apirole]) body = json.dumps(apirole_list.to_json_dict()) resp = resource_root.post(_get_roles_path(cluster_name, service_name), data=body) # The server returns a list of created roles (with size 1) return ApiList.from_json_dict(ApiRole, resp, resource_root)[0]