diff --git a/azure/clusters.go b/azure/clusters.go index 070e8ae..a1f3190 100644 --- a/azure/clusters.go +++ b/azure/clusters.go @@ -5,6 +5,7 @@ import ( "net/http" "github.com/xinsnake/databricks-sdk-golang/azure/models" + "github.com/xinsnake/databricks-sdk-golang/azure/clusters" ) // ClustersAPI exposes the Clusters API @@ -18,21 +19,21 @@ func (a ClustersAPI) init(client DBClient) ClustersAPI { } // Create creates a new Spark cluster -func (a ClustersAPI) Create(cluster models.ClusterCreateReq) (models.ClusterCreateResp, error) { - var clusterResp models.ClusterCreateResp +func (a ClustersAPI) Create(cluster clusters.CreateReq) (clusters.CreateResp, error) { + var createResp clusters.CreateResp resp, err := a.Client.performQuery(http.MethodPost, "/clusters/create", cluster, nil) if err != nil { - return clusterResp, err + return createResp, err } - err = json.Unmarshal(resp, &clusterResp) - return clusterResp, err + err = json.Unmarshal(resp, &createResp) + return createResp, err } // Edit edits the configuration of a cluster to match the provided attributes and size -func (a ClustersAPI) Edit(clusterEditReq models.ClusterEditReq) error { - _, err := a.Client.performQuery(http.MethodPost, "/clusters/edit", clusterEditReq, nil) +func (a ClustersAPI) Edit(editReq clusters.EditReq) error { + _, err := a.Client.performQuery(http.MethodPost, "/clusters/edit", editReq, nil) return err } diff --git a/azure/models/ClusterCreateResp.go b/azure/clusters/Create.go similarity index 65% rename from azure/models/ClusterCreateResp.go rename to azure/clusters/Create.go index f60a214..6242aec 100644 --- a/azure/models/ClusterCreateResp.go +++ b/azure/clusters/Create.go @@ -1,17 +1,21 @@ -package models +package clusters -type ClusterCreateReq struct { +import ( + "github.com/xinsnake/databricks-sdk-golang/azure/models" +) + +type CreateReq struct { NumWorkers int32 `json:"num_workers,omitempty" url:"num_workers,omitempty"` - Autoscale *AutoScale `json:"autoscale,omitempty" url:"autoscale,omitempty"` + Autoscale *models.AutoScale `json:"autoscale,omitempty" url:"autoscale,omitempty"` ClusterName string `json:"cluster_name,omitempty" url:"cluster_name,omitempty"` SparkVersion string `json:"spark_version,omitempty" url:"spark_version,omitempty"` SparkConf map[string]string `json:"spark_conf,omitempty" url:"spark_conf,omitempty"` NodeTypeID string `json:"node_type_id,omitempty" url:"node_type_id,omitempty"` DriverNodeTypeID string `json:"driver_node_type_id,omitempty" url:"driver_node_type_id,omitempty"` - CustomTags []ClusterTag `json:"custom_tags,omitempty" url:"custom_tags,omitempty"` - ClusterLogConf *ClusterLogConf `json:"cluster_log_conf,omitempty" url:"cluster_log_conf,omitempty"` - InitScripts []InitScriptInfo `json:"init_scripts,omitempty" url:"init_scripts,omitempty"` - DockerImage DockerImage `json:"docker_image,omitempty" url:"docker_image,omitempty"` + CustomTags []models.ClusterTag `json:"custom_tags,omitempty" url:"custom_tags,omitempty"` + ClusterLogConf *models.ClusterLogConf `json:"cluster_log_conf,omitempty" url:"cluster_log_conf,omitempty"` + InitScripts []models.InitScriptInfo `json:"init_scripts,omitempty" url:"init_scripts,omitempty"` + DockerImage models.DockerImage `json:"docker_image,omitempty" url:"docker_image,omitempty"` SparkEnvVars map[string]string `json:"spark_env_vars,omitempty" url:"spark_env_vars,omitempty"` EnableElasticDisk bool `json:"enable_elastic_disk,omitempty" url:"enable_elastic_disk,omitempty"` AutoterminationMinutes int32 `json:"autotermination_minutes,omitempty" url:"autotermination_minutes,omitempty"` @@ -19,6 +23,6 @@ type ClusterCreateReq struct { IdempotencyToken string `json:"idempotency_token,omitempty" url:"idempotency_token,omitempty"` } -type ClusterCreateResp struct { +type CreateResp struct { ClusterID string `json:"cluster_id,omitempty" url:"cluster_id,omitempty"` } \ No newline at end of file diff --git a/azure/models/ClusterEdit.go b/azure/clusters/Edit.go similarity index 65% rename from azure/models/ClusterEdit.go rename to azure/clusters/Edit.go index 644fe89..789db7f 100644 --- a/azure/models/ClusterEdit.go +++ b/azure/clusters/Edit.go @@ -1,24 +1,28 @@ -package models +package clusters -type ClusterEditReq struct { +import ( + "github.com/xinsnake/databricks-sdk-golang/azure/models" +) + +type EditReq struct { NumWorkers int32 `json:"num_workers,omitempty" url:"num_workers,omitempty"` - AutoScale *AutoScale `json:"autoscale,omitempty" url:"autoscale,omitempty"` + AutoScale *models.AutoScale `json:"autoscale,omitempty" url:"autoscale,omitempty"` ClusterID string `json:"cluster_id,omitempty" url:"cluster_id,omitempty"` CreatorUserName string `json:"creator_user_name,omitempty" url:"creator_user_name,omitempty"` - Driver *SparkNode `json:"driver,omitempty" url:"driver,omitempty"` - Executors []SparkNode `json:"executors,omitempty" url:"executors,omitempty"` + Driver *models.SparkNode `json:"driver,omitempty" url:"driver,omitempty"` + Executors []models.SparkNode `json:"executors,omitempty" url:"executors,omitempty"` SparkContextID int64 `json:"spark_context_id,omitempty" url:"spark_context_id,omitempty"` JdbcPort int32 `json:"jdbc_port,omitempty" url:"jdbc_port,omitempty"` ClusterName string `json:"cluster_name,omitempty" url:"cluster_name,omitempty"` SparkVersion string `json:"spark_version,omitempty" url:"spark_version,omitempty"` - SparkConf *SparkConfPair `json:"spark_conf,omitempty" url:"spark_conf,omitempty"` + SparkConf *models.SparkConfPair `json:"spark_conf,omitempty" url:"spark_conf,omitempty"` NodeTypeID string `json:"node_type_id,omitempty" url:"node_type_id,omitempty"` DriverNodeTypeID string `json:"driver_node_type_id,omitempty" url:"driver_node_type_id,omitempty"` - ClusterLogConf *ClusterLogConf `json:"cluster_log_conf,omitempty" url:"cluster_log_conf,omitempty"` - InitScripts []InitScriptInfo `json:"init_scripts,omitempty" url:"init_scripts,omitempty"` + ClusterLogConf *models.ClusterLogConf `json:"cluster_log_conf,omitempty" url:"cluster_log_conf,omitempty"` + InitScripts []models.InitScriptInfo `json:"init_scripts,omitempty" url:"init_scripts,omitempty"` SparkEnvVars map[string]string `json:"spark_env_vars,omitempty" url:"spark_env_vars,omitempty"` AutoterminationMinutes int32 `json:"autotermination_minutes,omitempty" url:"autotermination_minutes,omitempty"` - State *ClusterState `json:"state,omitempty" url:"state,omitempty"` + State *models.ClusterState `json:"state,omitempty" url:"state,omitempty"` StateMessage string `json:"state_message,omitempty" url:"state_message,omitempty"` StartTime int64 `json:"start_time,omitempty" url:"start_time,omitempty"` TerminateTime int64 `json:"terminate_time,omitempty" url:"terminate_time,omitempty"` @@ -27,6 +31,6 @@ type ClusterEditReq struct { ClusterMemoryMb int64 `json:"cluster_memory_mb,omitempty" url:"cluster_memory_mb,omitempty"` ClusterCores float32 `json:"cluster_cores,omitempty" url:"cluster_cores,omitempty"` DefaultTags map[string]string `json:"default_tags,omitempty" url:"default_tags,omitempty"` - ClusterLogStatus *LogSyncStatus `json:"cluster_log_status,omitempty" url:"cluster_log_status,omitempty"` - TerminationReason *TerminationReason `json:"termination_reason,omitempty" url:"termination_reason,omitempty"` + ClusterLogStatus *models.LogSyncStatus `json:"cluster_log_status,omitempty" url:"cluster_log_status,omitempty"` + TerminationReason *models.TerminationReason `json:"termination_reason,omitempty" url:"termination_reason,omitempty"` }