mirror of https://github.com/kubernetes/kops.git
Fix panic in dryrun report
This commit is contained in:
parent
32d775b6ed
commit
3d2cd26eff
|
@ -76,7 +76,9 @@ go_test(
|
|||
embed = [":go_default_library"],
|
||||
deps = [
|
||||
"//pkg/apis/kops:go_default_library",
|
||||
"//pkg/assets:go_default_library",
|
||||
"//pkg/pki:go_default_library",
|
||||
"//util/pkg/vfs:go_default_library",
|
||||
"//vendor/github.com/stretchr/testify/assert:go_default_library",
|
||||
],
|
||||
)
|
||||
|
|
|
@ -312,17 +312,12 @@ func buildChangeList(a, e, changes Task) ([]change, error) {
|
|||
}
|
||||
|
||||
case reflect.String:
|
||||
changed = fieldValC.Interface().(string) != ""
|
||||
changed = fieldValC.Convert(reflect.TypeOf("")).Interface() != ""
|
||||
}
|
||||
if !changed {
|
||||
continue
|
||||
}
|
||||
|
||||
if fieldValC.Kind() == reflect.String && fieldValC.Interface().(string) == "" {
|
||||
// No change
|
||||
continue
|
||||
}
|
||||
|
||||
description := ""
|
||||
ignored := false
|
||||
if fieldValE.CanInterface() {
|
||||
|
|
|
@ -17,8 +17,13 @@ limitations under the License.
|
|||
package fi
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
api "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/assets"
|
||||
)
|
||||
|
||||
func Test_tryResourceAsString(t *testing.T) {
|
||||
|
@ -48,3 +53,45 @@ func Test_tryResourceAsString(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
type testTask struct {
|
||||
Name *string
|
||||
Lifecycle Lifecycle
|
||||
Tags map[string]string
|
||||
}
|
||||
|
||||
var _ Task = &testTask{}
|
||||
|
||||
func (*testTask) Run(_ *Context) error {
|
||||
panic("not implemented")
|
||||
}
|
||||
|
||||
func Test_DryrunTarget_PrintReport(t *testing.T) {
|
||||
builder := assets.NewAssetBuilder(&api.Cluster{
|
||||
Spec: api.ClusterSpec{
|
||||
KubernetesVersion: "1.17.3",
|
||||
},
|
||||
}, "'")
|
||||
var stdout bytes.Buffer
|
||||
target := NewDryRunTarget(builder, &stdout)
|
||||
tasks := map[string]Task{}
|
||||
a := &testTask{
|
||||
Name: String("TestName"),
|
||||
Lifecycle: LifecycleSync,
|
||||
Tags: map[string]string{"key": "value"},
|
||||
}
|
||||
e := &testTask{
|
||||
Name: String("TestName"),
|
||||
Lifecycle: LifecycleSync,
|
||||
Tags: map[string]string{"key": "value"},
|
||||
}
|
||||
changes := reflect.New(reflect.TypeOf(e).Elem()).Interface().(Task)
|
||||
_ = BuildChanges(a, e, changes)
|
||||
err := target.Render(a, e, changes)
|
||||
tasks[*e.Name] = e
|
||||
assert.NoError(t, err, "target.Render()")
|
||||
|
||||
var out bytes.Buffer
|
||||
err = target.PrintReport(tasks, &out)
|
||||
assert.NoError(t, err, "target.PrintReport()")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue