Skip to content

Commit a27e5ef

Browse files
author
Lars Maier
authored
Do not display scaling buttons if scaling is not possible. (#441)
* Do not display scaling buttons if scaling is not possible.
1 parent 443e291 commit a27e5ef

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Change Log
22

3+
- Disable scaling buttons if scaling is not possible.
4+
35
## [0.3.16](https://github.com/arangodb/kube-arangodb/tree/0.3.16) (2019-09-25)
46
- Revised helm charts.
57
- Use separate service account for operator.

pkg/deployment/cluster_scaling_integration.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,16 +204,32 @@ func (ci *clusterScalingIntegration) updateClusterServerCount(ctx context.Contex
204204
if err != nil {
205205
return false, maskAny(err)
206206
}
207+
208+
var coordinatorCountPtr *int
209+
var dbserverCountPtr *int
210+
207211
coordinatorCount := spec.Coordinators.GetCount()
208212
dbserverCount := spec.DBServers.GetCount()
209213

214+
if spec.Coordinators.GetMaxCount() == spec.Coordinators.GetMinCount() {
215+
coordinatorCountPtr = nil
216+
} else {
217+
coordinatorCountPtr = &coordinatorCount
218+
}
219+
220+
if spec.DBServers.GetMaxCount() == spec.DBServers.GetMinCount() {
221+
dbserverCountPtr = nil
222+
} else {
223+
dbserverCountPtr = &dbserverCount
224+
}
225+
210226
ci.lastNumberOfServers.mutex.Lock()
211227
lastNumberOfServers := ci.lastNumberOfServers.NumberOfServers
212228
ci.lastNumberOfServers.mutex.Unlock()
213229

214230
// This is to prevent unneseccary updates that may override some values written by the WebUI (in the case of a update loop)
215231
if coordinatorCount != lastNumberOfServers.GetCoordinators() || dbserverCount != lastNumberOfServers.GetDBServers() {
216-
if err := arangod.SetNumberOfServers(ctx, c.Connection(), coordinatorCount, dbserverCount); err != nil {
232+
if err := arangod.SetNumberOfServers(ctx, c.Connection(), coordinatorCountPtr, dbserverCountPtr); err != nil {
217233
if expectSuccess {
218234
log.Debug().Err(err).Msg("Failed to set number of servers")
219235
}

pkg/util/arangod/cluster.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,14 @@ func GetNumberOfServers(ctx context.Context, conn driver.Connection) (NumberOfSe
7171
}
7272

7373
// SetNumberOfServers updates the number of servers the cluster has.
74-
func SetNumberOfServers(ctx context.Context, conn driver.Connection, noCoordinators, noDBServers int) error {
74+
func SetNumberOfServers(ctx context.Context, conn driver.Connection, noCoordinators, noDBServers *int) error {
7575
req, err := conn.NewRequest("PUT", "_admin/cluster/numberOfServers")
7676
if err != nil {
7777
return maskAny(err)
7878
}
7979
input := NumberOfServers{
80-
Coordinators: &noCoordinators,
81-
DBServers: &noDBServers,
80+
Coordinators: noCoordinators,
81+
DBServers: noDBServers,
8282
}
8383
if _, err := req.SetBody(input); err != nil {
8484
return maskAny(err)

0 commit comments

Comments
 (0)