From 052db984ad73ddb0ba66237e93a48b5e120e6a4e Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期三, 31 五月 2023 20:13:58 +0800
Subject: [PATCH] 获取集群 tmp

---
 src/main/main.go       |   54 ++++++++++++++++-----------
 src/cluster/cluster.go |   45 +++++++++++++++++++++-
 src/rancher/rancher.go |    7 +--
 3 files changed, 76 insertions(+), 30 deletions(-)

diff --git a/src/cluster/cluster.go b/src/cluster/cluster.go
index 39e167d..82aa4bc 100644
--- a/src/cluster/cluster.go
+++ b/src/cluster/cluster.go
@@ -8,8 +8,8 @@
 	"net/http"
 	"strings"
 
-	"basic.com/aps/aps_deploy.git/src/util"
 	"basic.com/aps/aps_deploy.git/src/rancher"
+	"basic.com/aps/aps_deploy.git/src/util"
 )
 
 type Cluster struct {
@@ -146,6 +146,46 @@
 	return "", fmt.Errorf("cluster '%s' not found", clusterName)
 }
 
+func GetClusters(serverURL, bearerToken string) ([]string, error) {
+
+	url := fmt.Sprintf("%s/v3/clusters", serverURL)
+
+	req, err := http.NewRequest("GET", url, nil)
+	if err != nil {
+		return nil, fmt.Errorf("failed to get cluster list request: %v", err)
+	}
+
+	req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", bearerToken))
+
+	client := util.CreateHTTPClient()
+
+	resp, err := client.Do(req)
+	if err != nil {
+		return nil, fmt.Errorf("failed to get cluster list: %v", err)
+	}
+	defer resp.Body.Close()
+
+	if resp.StatusCode != http.StatusOK {
+		return nil, fmt.Errorf("failed to get cluster list: unexpected status code %d", resp.StatusCode)
+	}
+
+	// Parse the API response
+	var clustersResponse ClustersResponse
+	err = json.NewDecoder(resp.Body).Decode(&clustersResponse)
+	if err != nil {
+		return nil, fmt.Errorf("failed to decode cluster list response: %v", err)
+	}
+
+	var clusters = make([]string, 0)
+	// Print cluster names
+	for _, cluster := range clustersResponse.Data {
+		clusters = append(clusters, cluster.ID)
+		fmt.Printf("Cluster ID: %s, Name: %s\n", cluster.ID, cluster.Name)
+	}
+
+	return clusters, nil
+}
+
 type Node struct {
 	ClusterName string   `json:"clusterName"`
 	Roles       []string `json:"roles"`
@@ -154,7 +194,6 @@
 	SSHPassword string   `json:"sshPassword"`
 	SSHPort     int      `json:"sshPort"`
 }
-
 
 type ClusterCreateRequest struct {
 	Name                          string      `json:"name"`
@@ -249,7 +288,7 @@
 
 func CreateCluster(rancherClusterConfig rancher.RancherClusterConfig, clusterName string) error {
 	requestBody := createClusterData(clusterName)
-        fmt.Println(rancherClusterConfig.RancherURL)
+	fmt.Println(rancherClusterConfig.RancherURL)
 
 	url := fmt.Sprintf("%s/v3/clusters", rancherClusterConfig.RancherURL)
 	req, err := http.NewRequest("POST", url, bytes.NewBuffer(requestBody))
diff --git a/src/main/main.go b/src/main/main.go
index db889ec..8897078 100644
--- a/src/main/main.go
+++ b/src/main/main.go
@@ -27,7 +27,7 @@
 )
 
 func rancher_install_test(node rancher.Node) {
-/*	nodes := []Node{
+	/*	nodes := []Node{
 		{
 			Roles:       []string{"etcd", "controlplane", "worker"},
 			IP:          "192.168.20.189",
@@ -61,7 +61,7 @@
 	os.Exit(0)
 }
 
-func cluster_test(clusterName string,rancherClusterConfig rancher.RancherClusterConfig) {
+func cluster_test(clusterName string, rancherClusterConfig rancher.RancherClusterConfig) {
 
 	// Create the cluster
 	// Rancher configuration
@@ -70,9 +70,9 @@
 		BearerToken: "token-nnrsc:w68zdt8s47fnpjd5xqdl5hhzpz4j2d56kt5nx49nsswcbpdzc28kh5",
 	}*/
 
-        fmt.Println(rancherClusterConfig)
-        fmt.Println(rancherClusterConfig.RancherURL)
-        fmt.Println(rancherClusterConfig.BearerToken)
+	fmt.Println(rancherClusterConfig)
+	fmt.Println(rancherClusterConfig.RancherURL)
+	fmt.Println(rancherClusterConfig.BearerToken)
 	//	Deploy clusterId
 	clusterID, err := cluster.GetClusterID(rancherClusterConfig.RancherURL, rancherClusterConfig.BearerToken, clusterName)
 	if err != nil {
@@ -155,23 +155,33 @@
 	}
 
 	if rancherInstallCmd.Parsed() {
-		// 鍒濆鍖栭厤缃В鏋愬簱
-		viper.SetConfigName("config")
-		viper.SetConfigType("yaml")
-		viper.AddConfigPath("./config")
-
-		// 璇诲彇閰嶇疆鏂囦欢
-		err := viper.ReadInConfig()
-		if err != nil {
-			log.Fatalf("Failed to read config file: %v", err)
-		}
+		//// 鍒濆鍖栭厤缃В鏋愬簱
+		//viper.SetConfigName("config")
+		//viper.SetConfigType("yaml")
+		//viper.AddConfigPath("./config")
+		//
+		//// 璇诲彇閰嶇疆鏂囦欢
+		//err := viper.ReadInConfig()
+		//if err != nil {
+		//	log.Fatalf("Failed to read config file: %v", err)
+		//}
 
 		// 瑙f瀽閰嶇疆鏂囦欢涓殑瀛楁
-		var rancherClusterConfig  rancher.RancherClusterConfig
-		err = viper.Unmarshal(&rancherClusterConfig)
-		if err != nil {
-			log.Fatalf("Failed to unmarshal config: %v", err)
+		var rancherClusterConfig rancher.RancherClusterConfig
+		//err = viper.Unmarshal(&rancherClusterConfig)
+		//if err != nil {
+		//	log.Fatalf("Failed to unmarshal config: %v", err)
+		//}
+
+		rancherClusterConfig.Nodes = make([]rancher.Node, 3)
+		rancherClusterConfig.Nodes[0] = rancher.Node{
+			Roles:       []string{"worker"},
+			IP:          "192.168.20.189",
+			SSHUsername: "basic",
+			SSHPassword: "123",
+			SSHPort:     22,
 		}
+
 		rancher_install_test(rancherClusterConfig.Nodes[0])
 		os.Exit(1)
 	}
@@ -311,13 +321,13 @@
 		}
 
 		// 瑙f瀽閰嶇疆鏂囦欢涓殑瀛楁
-		var rancherClusterConfig  rancher.RancherClusterConfig
+		var rancherClusterConfig rancher.RancherClusterConfig
 		err = viper.Unmarshal(&rancherClusterConfig)
 		if err != nil {
 			log.Fatalf("Failed to unmarshal config: %v", err)
 		}
-        	clusterName := "kubernetus"
-                fmt.Println(rancherClusterConfig)
+		clusterName := "kubernetus"
+		fmt.Println(rancherClusterConfig)
 		cluster_test(clusterName, rancherClusterConfig)
 	}
 
diff --git a/src/rancher/rancher.go b/src/rancher/rancher.go
index 80b2662..2c32007 100644
--- a/src/rancher/rancher.go
+++ b/src/rancher/rancher.go
@@ -6,7 +6,6 @@
 	"basic.com/aps/aps_deploy.git/src/util"
 )
 
-
 type Node struct {
 	Roles       []string `json:"roles"`
 	IP          string   `json:"ip"`
@@ -15,14 +14,12 @@
 	SSHPort     int      `json:"sshPort"`
 }
 
-
 type RancherClusterConfig struct {
 	RancherURL  string `json:"rancherURL"`
 	BearerToken string `json:"bearerToken"`
-	ClusterName string   `mapstructure:"ClusterName"`
-	Nodes       []Node   `mapstructure:"Nodes"`
+	ClusterName string `mapstructure:"ClusterName"`
+	Nodes       []Node `mapstructure:"Nodes"`
 }
-
 
 func isRancherInstalled(ip, username, password string, sshPort int) (bool, error) {
 	// 妫�鏌ancher瀹瑰櫒鏄惁宸茶繍琛�

--
Gitblit v1.8.0