blob: 8b7ed1896e801ea9721c934332a42f33153fb3c9 [file]
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
package fe
import (
"testing"
dorisv1 "github.com/apache/doris-operator/api/doris/v1"
"github.com/apache/doris-operator/pkg/common/utils/resource"
appv1 "k8s.io/api/apps/v1"
)
func Test_safeScaleDown(t *testing.T) {
fc, _ := newFeController(t)
dcrs := []*dorisv1.DorisCluster{
{
Spec: dorisv1.DorisClusterSpec{
FeSpec: &dorisv1.FeSpec{
BaseSpec: dorisv1.BaseSpec{
Replicas: resource.GetInt32Pointer(3),
},
},
},
},
{
Spec: dorisv1.DorisClusterSpec{
FeSpec: &dorisv1.FeSpec{
BaseSpec: dorisv1.BaseSpec{
Replicas: resource.GetInt32Pointer(2),
},
},
},
},
{
Spec: dorisv1.DorisClusterSpec{
FeSpec: &dorisv1.FeSpec{
BaseSpec: dorisv1.BaseSpec{
Replicas: resource.GetInt32Pointer(4),
},
},
},
},
{
Spec: dorisv1.DorisClusterSpec{
FeSpec: &dorisv1.FeSpec{
BaseSpec: dorisv1.BaseSpec{
Replicas: resource.GetInt32Pointer(1),
},
},
},
},
}
osts := []*appv1.StatefulSet{
{
Spec: appv1.StatefulSetSpec{
Replicas: resource.GetInt32Pointer(3),
},
},
{
Spec: appv1.StatefulSetSpec{
Replicas: resource.GetInt32Pointer(3),
},
},
{
Spec: appv1.StatefulSetSpec{
Replicas: resource.GetInt32Pointer(5),
},
},
{
Spec: appv1.StatefulSetSpec{
Replicas: resource.GetInt32Pointer(2),
},
},
}
res := []int32{3, 3, 4, 2}
for i := 0; i < len(dcrs); i++ {
fc.safeScaleDown(dcrs[i], osts[i])
if *dcrs[i].Spec.FeSpec.Replicas != res[i] {
t.Errorf("Test_safeScaleDown failed, cluster fe replicas %d, expect result %d", *dcrs[i].Spec.FeSpec.Replicas, res[i])
}
}
}