MCPcopy
hub / github.com/kubernetes/kubectl / createGeneratedObject

Method createGeneratedObject

pkg/cmd/run/run.go:622–686  ·  view source on GitHub ↗
(f cmdutil.Factory, cmd *cobra.Command, generator generate.Generator, names []generate.GeneratorParam, params map[string]interface{}, overrider *cmdutil.Overrider)

Source from the content-addressed store, hash-verified

620}
621
622func (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 }

Callers 2

RunMethod · 0.95
generateServiceMethod · 0.95

Calls 8

ValidateParamsFunction · 0.92
CreateOrUpdateAnnotationFunction · 0.92
DefaultJSONEncoderFunction · 0.92
RESTMappingMethod · 0.80
GenerateMethod · 0.65
ApplyMethod · 0.65
ClientForMappingMethod · 0.65
ToRESTMapperMethod · 0.45

Tested by

no test coverage detected