Update environment.go

This commit is contained in:
qiaofeng1227 2023-10-18 19:56:55 +08:00 committed by GitHub
parent 186019c8f4
commit 899a20e6c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,97 +1,105 @@
// package main
// import (
// "bytes"
// "encoding/json"
// "fmt"
// "io/ioutil"
// "net/http"
// "os"
// "time"
// )
// const (
// AdminUser = "admin"
// EndpointURL = "http://localhost:9000/api/endpoints"
// CredentialLoc = "/data/credential"
// )
// type Endpoint struct {
// Name string `json:"Name"`
// URL string `json:"URL"`
// }
// func main() {
// var password string
// for {
// if _, err := os.Stat(CredentialLoc); os.IsNotExist(err) {
// fmt.Printf("%s does not exist, waiting for 3 seconds...\n", CredentialLoc)
// time.Sleep(3 * time.Second)
// } else {
// fmt.Printf("%s exists, proceeding...\n", CredentialLoc)
// data, err := ioutil.ReadFile(CredentialLoc)
// if err != nil {
// fmt.Println("Failed to read file:", err)
// return
// }
// password = string(data)
// break
// }
// }
// client := &http.Client{}
// req, err := http.NewRequest("GET", EndpointURL, nil)
// req.SetBasicAuth(AdminUser, password)
// resp, err := client.Do(req)
// if err != nil {
// fmt.Println("Failed to make request:", err)
// return
// }
// defer resp.Body.Close()
// body, err := ioutil.ReadAll(resp.Body)
// if err != nil {
// fmt.Println("Failed to read response:", err)
// return
// }
// var endpoints []Endpoint
// err = json.Unmarshal(body, &endpoints)
// if err != nil {
// fmt.Println("Failed to parse JSON:", err)
// return
// }
// for _, endpoint := range endpoints {
// if endpoint.Name == "local" && endpoint.URL == "/var/run/docker.sock" {
// fmt.Println("Endpoint exists, exiting...")
// return
// }
// }
// fmt.Println("Endpoint does not exist, creating...")
// endpoint := Endpoint{
// Name: "local",
// URL: "/var/run/docker.sock",
// }
// data, err := json.Marshal(endpoint)
// if err != nil {
// fmt.Println("Failed to encode JSON:", err)
// return
// }
// req, err = http.NewRequest("POST", EndpointURL, bytes.NewBuffer(data))
// req.SetBasicAuth(AdminUser, password)
// resp, err = client.Do(req)
// if err != nil {
// fmt.Println("Failed to make request:", err)
// return
// }
// if resp.StatusCode != http.StatusCreated {
// fmt.Println("Failed to create endpoint:", resp.Status)
// } else {
// fmt.Println("Endpoint created successfully")
// }
// }
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"os"
"time"
)
const (
AdminUser = "admin"
EndpointURL = "http://localhost:9000/api/endpoints"
CredentialLoc = "/data/credential"
)
type Endpoint struct {
Name string `json:"Name"`
URL string `json:"URL"`
}
import "fmt"
func main() {
var password string
for {
if _, err := os.Stat(CredentialLoc); os.IsNotExist(err) {
fmt.Printf("%s does not exist, waiting for 3 seconds...\n", CredentialLoc)
time.Sleep(3 * time.Second)
} else {
fmt.Printf("%s exists, proceeding...\n", CredentialLoc)
data, err := ioutil.ReadFile(CredentialLoc)
if err != nil {
fmt.Println("Failed to read file:", err)
return
}
password = string(data)
break
}
}
client := &http.Client{}
req, err := http.NewRequest("GET", EndpointURL, nil)
req.SetBasicAuth(AdminUser, password)
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failed to make request:", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Failed to read response:", err)
return
}
var endpoints []Endpoint
err = json.Unmarshal(body, &endpoints)
if err != nil {
fmt.Println("Failed to parse JSON:", err)
return
}
for _, endpoint := range endpoints {
if endpoint.Name == "local" && endpoint.URL == "/var/run/docker.sock" {
fmt.Println("Endpoint exists, exiting...")
return
}
}
fmt.Println("Endpoint does not exist, creating...")
endpoint := Endpoint{
Name: "local",
URL: "/var/run/docker.sock",
}
data, err := json.Marshal(endpoint)
if err != nil {
fmt.Println("Failed to encode JSON:", err)
return
}
req, err = http.NewRequest("POST", EndpointURL, bytes.NewBuffer(data))
req.SetBasicAuth(AdminUser, password)
resp, err = client.Do(req)
if err != nil {
fmt.Println("Failed to make request:", err)
return
}
if resp.StatusCode != http.StatusCreated {
fmt.Println("Failed to create endpoint:", resp.Status)
} else {
fmt.Println("Endpoint created successfully")
}
fmt.Println("Hello World")
}