(f cmdutil.Factory, cmd *cobra.Command, generator generate.Generator, names []generate.GeneratorParam, params map[string]interface{}, overrider *cmdutil.Overrider)
| 620 | } |
| 621 | |
| 622 | func (o *RunOptions) createGeneratedObject(f cmdutil.Factory, cmd *cobra.Command, generator generate.Generator, names []generate.GeneratorParam, params map[string]interface{}, overrider *cmdutil.Overrider) (*RunObject, error) { |
| 623 | err := generate.ValidateParams(names, params) |
| 624 | if err != nil { |
| 625 | return nil, err |
| 626 | } |
| 627 | |
| 628 | // TODO: Validate flag usage against selected generator. More tricky since --expose was added. |
| 629 | obj, err := generator.Generate(params) |
| 630 | if err != nil { |
| 631 | return nil, err |
| 632 | } |
| 633 | |
| 634 | mapper, err := f.ToRESTMapper() |
| 635 | if err != nil { |
| 636 | return nil, err |
| 637 | } |
| 638 | // run has compiled knowledge of the thing is creating |
| 639 | gvks, _, err := scheme.Scheme.ObjectKinds(obj) |
| 640 | if err != nil { |
| 641 | return nil, err |
| 642 | } |
| 643 | mapping, err := mapper.RESTMapping(gvks[0].GroupKind(), gvks[0].Version) |
| 644 | if err != nil { |
| 645 | return nil, err |
| 646 | } |
| 647 | |
| 648 | if overrider != nil { |
| 649 | obj, err = overrider.Apply(obj) |
| 650 | if err != nil { |
| 651 | return nil, err |
| 652 | } |
| 653 | } |
| 654 | |
| 655 | if err := o.Recorder.Record(obj); err != nil { |
| 656 | klog.V(4).Infof("error recording current command: %v", err) |
| 657 | } |
| 658 | |
| 659 | actualObj := obj |
| 660 | if o.DryRunStrategy != cmdutil.DryRunClient { |
| 661 | if err := util.CreateOrUpdateAnnotation(cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag), obj, scheme.DefaultJSONEncoder()); err != nil { |
| 662 | return nil, err |
| 663 | } |
| 664 | client, err := f.ClientForMapping(mapping) |
| 665 | if err != nil { |
| 666 | return nil, err |
| 667 | } |
| 668 | actualObj, err = resource. |
| 669 | NewHelper(client, mapping). |
| 670 | DryRun(o.DryRunStrategy == cmdutil.DryRunServer). |
| 671 | WithFieldManager(o.fieldManager). |
| 672 | Create(o.Namespace, false, obj) |
| 673 | if err != nil { |
| 674 | return nil, err |
| 675 | } |
| 676 | } else { |
| 677 | if meta, err := meta.Accessor(actualObj); err == nil && o.EnforceNamespace { |
| 678 | meta.SetNamespace(o.Namespace) |
| 679 | } |
no test coverage detected