-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdependon.go
94 lines (84 loc) · 3.69 KB
/
dependon.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package main
import (
"fmt"
"os"
"strconv"
"github.com/tidwall/gjson"
)
func Stop_deployment(deployment_name string) {
url := kubernetesBaseURL + os.Getenv("NAMESPACE") + "/deployments/" + deployment_name
data := `{"spec":{"replicas":0}}`
MakeReqPatch(url, data)
fmt.Println("Deployment " + deployment_name + " has been stopped.")
}
func Start_deployment(deployment_name string) {
url := kubernetesBaseURL + os.Getenv("NAMESPACE") + "/deployments/" + deployment_name
data := `{"spec":{"replicas":1}}`
MakeReqPatch(url, data)
fmt.Println("Deployment " + deployment_name + " has been started.")
}
func Stop_statefulset(statefulset_name string) {
url := kubernetesBaseURL + os.Getenv("NAMESPACE") + "/statefulset/" + statefulset_name
data := `{"spec":{"replicas":0}}`
MakeReqPatch(url, data)
fmt.Println("Statefulset " + statefulset_name + "has been stopped.")
}
func Start_statefulset(statefulset_name string) {
url := kubernetesBaseURL + os.Getenv("NAMESPACE") + "/statefulset/" + statefulset_name
data := `{"spec":{"replicas":1}}`
MakeReqPatch(url, data)
fmt.Println("Statefulset " + statefulset_name + " has been started.")
}
func Get_dependents(dependon_name string) ([]string, []string) {
var statefulsets, deployments []string
url := kubernetesDependonURL + os.Getenv("NAMESPACE") + "/dependons/" + dependon_name
dependon_info := MakeReqGet(url)
dependent_deployments := gjson.Get(dependon_info, "spec.dependents.deployments.#")
dependent_deployment_count := int(dependent_deployments.Int())
for i := 0; i < dependent_deployment_count; i++ {
count := strconv.Itoa(i)
deployment_name := gjson.Get(dependon_info, "spec.dependents.deployments."+count).String()
deployments = append(deployments, deployment_name)
}
dependent_statefulsets := gjson.Get(dependon_info, "spec.dependents.statefulsets.#")
dependent_statefulsets_count := int(dependent_statefulsets.Int())
for i := 0; i < dependent_statefulsets_count; i++ {
count := strconv.Itoa(i)
statefulset_name := gjson.Get(dependon_info, "spec.dependents.statefulsets."+count).String()
statefulsets = append(statefulsets, statefulset_name)
}
return statefulsets, deployments
}
func Get_centrals(dependon_name string) ([]string, []string) {
var statefulsets, deployments []string
url := kubernetesDependonURL + os.Getenv("NAMESPACE") + "/dependons/" + dependon_name
dependon_info := MakeReqGet(url)
central_deployments := gjson.Get(dependon_info, "spec.centrals.deployments.#")
dependon_deployment_count := int(central_deployments.Int())
for i := 0; i < dependon_deployment_count; i++ {
count := strconv.Itoa(i)
deployment_name := gjson.Get(dependon_info, "spec.centrals.deployments."+count).String()
deployments = append(deployments, deployment_name)
}
dependon_statefulsets := gjson.Get(dependon_info, "spec.centrals.statefulsets.#")
dependon_statefulsets_count := int(dependon_statefulsets.Int())
for i := 0; i < dependon_statefulsets_count; i++ {
count := strconv.Itoa(i)
statefulset_name := gjson.Get(dependon_info, "spec.centrals.statefulsets."+count).String()
statefulsets = append(statefulsets, statefulset_name)
}
return statefulsets, deployments
}
func Get_dependons() []string {
var dependon_names []string
url := kubernetesDependonURL + os.Getenv("NAMESPACE") + "/dependons/"
dependons_info := MakeReqGet(url)
dependons := gjson.Get(dependons_info, "items.#")
dependons_count := int(dependons.Int())
for i := 0; i < dependons_count; i++ {
count := strconv.Itoa(i)
dependon_name := gjson.Get(dependons_info, "items."+count+".metadata.name").String()
dependon_names = append(dependon_names, dependon_name)
}
return dependon_names
}