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"],
|
embed = [":go_default_library"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/apis/kops:go_default_library",
|
"//pkg/apis/kops:go_default_library",
|
||||||
|
"//pkg/assets:go_default_library",
|
||||||
"//pkg/pki:go_default_library",
|
"//pkg/pki:go_default_library",
|
||||||
"//util/pkg/vfs: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:
|
case reflect.String:
|
||||||
changed = fieldValC.Interface().(string) != ""
|
changed = fieldValC.Convert(reflect.TypeOf("")).Interface() != ""
|
||||||
}
|
}
|
||||||
if !changed {
|
if !changed {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if fieldValC.Kind() == reflect.String && fieldValC.Interface().(string) == "" {
|
|
||||||
// No change
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
description := ""
|
description := ""
|
||||||
ignored := false
|
ignored := false
|
||||||
if fieldValE.CanInterface() {
|
if fieldValE.CanInterface() {
|
||||||
|
|
|
@ -17,8 +17,13 @@ limitations under the License.
|
||||||
package fi
|
package fi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
api "k8s.io/kops/pkg/apis/kops"
|
||||||
|
"k8s.io/kops/pkg/assets"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test_tryResourceAsString(t *testing.T) {
|
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