don't reuse resource builder in describe

This commit is contained in:
Jordan Liggitt
2018-05-02 16:53:26 -04:00
parent 96a0df6413
commit ccd820d680
2 changed files with 7 additions and 7 deletions

View File

@@ -73,8 +73,8 @@ type DescribeOptions struct {
Selector string
Namespace string
Describer func(*meta.RESTMapping) (printers.Describer, error)
Builder *resource.Builder
Describer func(*meta.RESTMapping) (printers.Describer, error)
NewBuilder func() *resource.Builder
BuilderArgs []string
@@ -141,7 +141,7 @@ func (o *DescribeOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [
o.BuilderArgs = args
o.Describer = f.Describer
o.Builder = f.NewBuilder()
o.NewBuilder = f.NewBuilder
// include the uninitialized objects by default
// unless user explicitly set --include-uninitialized=false
@@ -154,7 +154,7 @@ func (o *DescribeOptions) Validate(args []string) error {
}
func (o *DescribeOptions) Run() error {
r := o.Builder.
r := o.NewBuilder().
Unstructured().
ContinueOnError().
NamespaceParam(o.Namespace).DefaultNamespace().AllNamespaces(o.AllNamespaces).
@@ -212,7 +212,7 @@ func (o *DescribeOptions) Run() error {
}
func (o *DescribeOptions) DescribeMatchingResources(originalError error, resource, prefix string) error {
r := o.Builder.
r := o.NewBuilder().
Unstructured().
NamespaceParam(o.Namespace).DefaultNamespace().
ResourceTypeOrNameArgs(true, resource).

View File

@@ -198,7 +198,7 @@ func (b *Builder) Unstructured() *Builder {
b.errs = append(b.errs, fmt.Errorf("no unstructured mapper provided"))
return b
}
if b.mapper != nil {
if b.mapper != nil && b.mapper != b.unstructured {
b.errs = append(b.errs, fmt.Errorf("another mapper was already selected, cannot use unstructured types"))
return b
}
@@ -219,7 +219,7 @@ func (b *Builder) Internal(typer runtime.ObjectTyper) *Builder {
b.errs = append(b.errs, fmt.Errorf("no internal mapper provided"))
return b
}
if b.mapper != nil {
if b.mapper != nil && b.mapper != b.internal {
b.errs = append(b.errs, fmt.Errorf("another mapper was already selected, cannot use internal types"))
return b
}