/
dbinstance.go
128 lines (112 loc) · 4.01 KB
/
dbinstance.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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package broker
import (
"reflect"
)
type DbInstance struct {
Id string `json:"id"`
Name string `json:"name"`
ProviderId string `json:"provider_id"`
Plan *ProviderPlan `json:"plan,omitempty"`
Username string `json:"username"`
Password string `json:"password"`
Endpoint string `json:"endpoint"`
Status string `json:"status"`
Ready bool `json:"ready"`
Engine string `json:"engine"`
EngineVersion string `json:"engine_version"`
Scheme string `json:"scheme"`
}
type DbEntry struct {
Id string
Name string
PlanId string
Claimed bool
Tasks int
Status string
Username string
Password string
Endpoint string
}
func (i *DbInstance) Match(other *DbInstance) bool {
return reflect.DeepEqual(i, other)
}
type DatabaseUrlSpec struct {
Username string
Password string
Endpoint string
Plan string
}
type DatabaseSpec struct {
Name string `json:"name"`
}
type DatabaseLogs struct {
Size *int64 `json:"size"`
Name *string `json:"name"`
Updated string `json:"updated_at"`
}
type DatabaseBackupSpec struct {
Database DatabaseSpec `json:"database"`
Id *string `json:"id"`
Progress *int64 `json:"progress"`
Status *string `json:"status"`
Created string `json:"created_at"`
}
func IsAvailable(status string) bool {
return status == "available" ||
// gcloud status
status == "RUNNABLE"
}
func IsReady(status string) bool {
return status == "available" ||
status == "configuring-enhanced-monitoring" ||
status == "storage-optimization" ||
status == "backing-up" ||
// gcloud states
status == "RUNNABLE" ||
status == "UNKNOWN_STATE"
}
func InProgress(status string) bool {
return status == "creating" || status == "starting" || status == "modifying" ||
status == "rebooting" || status == "moving-to-vpc" ||
status == "renaming" || status == "upgrading" || status == "backtracking" ||
status == "maintenance" || status == "resetting-master-credentials" ||
// gcloud states
status == "PENDING_CREATE" || status == "MAINTENANCE"
}
func CanGetBindings(status string) bool {
// Should we potentially add upgrading to this list?
return status != "creating" && status != "starting" &&
status != "stopping" && status != "stopped" && status != "deleting" &&
// gcloud states
status != "SUSPENDED" && status != "PENDING_CREATE" && status != "MAINTENANCE" &&
status != "FAILED" && status != "UNKNOWN_STATE"
}
func CanBeModified(status string) bool {
// aws states
return status != "creating" && status != "starting" && status != "modifying" &&
status != "rebooting" && status != "moving-to-vpc" && status != "backing-up" &&
status != "renaming" && status != "upgrading" && status != "backtracking" &&
status != "maintenance" && status != "resetting-master-credentials" &&
// gcloud states
status != "SUSPENDED" && status != "PENDING_CREATE" && status != "MAINTENANCE" &&
status != "FAILED" && status != "UNKNOWN_STATE"
}
func CanBeDeleted(status string) bool {
return status != "creating" && status != "starting" &&
status != "rebooting" && status != "moving-to-vpc" && status != "backing-up" &&
status != "renaming" && status != "upgrading" && status != "backtracking" &&
status != "maintenance" && status != "resetting-master-credentials" &&
status != "SUSPENDED" && status != "PENDING_CREATE" && status != "MAINTENANCE" &&
status != "FAILED" && status != "UNKNOWN_STATE"
}
/** gcloud settings **/
// State: The current serving state of the Cloud SQL instance. This can
// be one of the following.
// RUNNABLE: The instance is running, or is ready to run when
// accessed.
// SUSPENDED: The instance is not available, for example due to problems
// with billing.
// PENDING_CREATE: The instance is being created.
// MAINTENANCE: The instance is down for maintenance.
// FAILED: The instance creation failed.
// UNKNOWN_STATE: The state of the instance is unknown.