diff options
Diffstat (limited to 'pkg')
14 files changed, 749 insertions, 4 deletions
diff --git a/pkg/apis/k8s/v1alpha1/network_types.go b/pkg/apis/k8s/v1alpha1/network_types.go index a606dbb..0372eb4 100644 --- a/pkg/apis/k8s/v1alpha1/network_types.go +++ b/pkg/apis/k8s/v1alpha1/network_types.go @@ -58,7 +58,7 @@ type NetworkStatus struct { } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - +// +genclient // Network is the Schema for the networks API // +k8s:openapi-gen=true // +kubebuilder:subresource:status diff --git a/pkg/apis/k8s/v1alpha1/networkchaining_types.go b/pkg/apis/k8s/v1alpha1/networkchaining_types.go new file mode 100644 index 0000000..59a3816 --- /dev/null +++ b/pkg/apis/k8s/v1alpha1/networkchaining_types.go @@ -0,0 +1,66 @@ +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! +// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. + +// NetworkChainingSpec defines the desired state of NetworkChaining +// +k8s:openapi-gen=true +type NetworkChainingSpec struct { + ChainType string `json:"chainType"` // Currently only Routing type is supported + RoutingSpec RouteSpec `json:"routingSpec"` // Spec for Routing type + // Add other Chanining mechanisms here +} + +type RouteSpec struct { + LeftNetwork []RoutingNetwork `json:"leftNetwork"` // Info on Network on the left side + RightNetwork []RoutingNetwork `json:"rightNetwork"`// Info on Network on the right side + NetworkChain string `json:"networkChain"`// NetworkChain is a comma seprated list with format DeploymentName, middle Network Name, DeploymentName, ... + Namespace string `json:"namespace"` // Kubernetes namespace + } + + type RoutingNetwork struct { + NetworkName string `json:"networkName"` // Name of the network + GatewayIP string `json:"gatewayIp"` // Gateway IP Address + Subnet string `json:"subnet"` // Subnet + } + +// NetworkChainingStatus defines the observed state of NetworkChaining +// +k8s:openapi-gen=true +type NetworkChainingStatus struct { + State string `json:"state"` // Indicates if Network Chain is in "created" state +} + + +// NetworkChaining is the Schema for the networkchainings API +// +k8s:openapi-gen=true +// +kubebuilder:subresource:status +// +kubebuilder:resource:path=networkchainings,scope=Namespaced +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +type NetworkChaining struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec NetworkChainingSpec `json:"spec,omitempty"` + Status NetworkChainingStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NetworkChainingList contains a list of NetworkChaining +type NetworkChainingList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []NetworkChaining `json:"items"` +} + +func init() { + SchemeBuilder.Register(&NetworkChaining{}, &NetworkChainingList{}) +} + + + diff --git a/pkg/apis/k8s/v1alpha1/providernetwork_types.go b/pkg/apis/k8s/v1alpha1/providernetwork_types.go index 3f8444f..573a107 100644 --- a/pkg/apis/k8s/v1alpha1/providernetwork_types.go +++ b/pkg/apis/k8s/v1alpha1/providernetwork_types.go @@ -44,6 +44,7 @@ type ProviderNetworkStatus struct { // ProviderNetwork is the Schema for the providernetworks API // +k8s:openapi-gen=true // +kubebuilder:subresource:status +// +genclient type ProviderNetwork struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go index 69f190e..cf716cd 100644 --- a/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/k8s/v1alpha1/zz_generated.deepcopy.go @@ -100,6 +100,100 @@ func (in *Network) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkChaining) DeepCopyInto(out *NetworkChaining) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkChaining. +func (in *NetworkChaining) DeepCopy() *NetworkChaining { + if in == nil { + return nil + } + out := new(NetworkChaining) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NetworkChaining) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkChainingList) DeepCopyInto(out *NetworkChainingList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]NetworkChaining, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkChainingList. +func (in *NetworkChainingList) DeepCopy() *NetworkChainingList { + if in == nil { + return nil + } + out := new(NetworkChainingList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NetworkChainingList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkChainingSpec) DeepCopyInto(out *NetworkChainingSpec) { + *out = *in + in.RoutingSpec.DeepCopyInto(&out.RoutingSpec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkChainingSpec. +func (in *NetworkChainingSpec) DeepCopy() *NetworkChainingSpec { + if in == nil { + return nil + } + out := new(NetworkChainingSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkChainingStatus) DeepCopyInto(out *NetworkChainingStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkChainingStatus. +func (in *NetworkChainingStatus) DeepCopy() *NetworkChainingStatus { + if in == nil { + return nil + } + out := new(NetworkChainingStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NetworkList) DeepCopyInto(out *NetworkList) { *out = *in out.TypeMeta = in.TypeMeta @@ -307,6 +401,48 @@ func (in *Route) DeepCopy() *Route { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteSpec) DeepCopyInto(out *RouteSpec) { + *out = *in + if in.LeftNetwork != nil { + in, out := &in.LeftNetwork, &out.LeftNetwork + *out = make([]RoutingNetwork, len(*in)) + copy(*out, *in) + } + if in.RightNetwork != nil { + in, out := &in.RightNetwork, &out.RightNetwork + *out = make([]RoutingNetwork, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteSpec. +func (in *RouteSpec) DeepCopy() *RouteSpec { + if in == nil { + return nil + } + out := new(RouteSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoutingNetwork) DeepCopyInto(out *RoutingNetwork) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutingNetwork. +func (in *RoutingNetwork) DeepCopy() *RoutingNetwork { + if in == nil { + return nil + } + out := new(RoutingNetwork) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *VlanSpec) DeepCopyInto(out *VlanSpec) { *out = *in if in.NodeLabelList != nil { diff --git a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_k8s_client.go b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_k8s_client.go index da5a09a..481177b 100644 --- a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_k8s_client.go +++ b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_k8s_client.go @@ -33,6 +33,10 @@ func (c *FakeK8sV1alpha1) Networks(namespace string) v1alpha1.NetworkInterface { return &FakeNetworks{c, namespace} } +func (c *FakeK8sV1alpha1) NetworkChainings(namespace string) v1alpha1.NetworkChainingInterface { + return &FakeNetworkChainings{c, namespace} +} + func (c *FakeK8sV1alpha1) ProviderNetworks(namespace string) v1alpha1.ProviderNetworkInterface { return &FakeProviderNetworks{c, namespace} } diff --git a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_networkchaining.go b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_networkchaining.go new file mode 100644 index 0000000..7dce774 --- /dev/null +++ b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/fake/fake_networkchaining.go @@ -0,0 +1,141 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1alpha1 "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1" + + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeNetworkChainings implements NetworkChainingInterface +type FakeNetworkChainings struct { + Fake *FakeK8sV1alpha1 + ns string +} + +var networkchainingsResource = schema.GroupVersionResource{Group: "k8s.plugin.opnfv.org", Version: "v1alpha1", Resource: "networkchainings"} + +var networkchainingsKind = schema.GroupVersionKind{Group: "k8s.plugin.opnfv.org", Version: "v1alpha1", Kind: "NetworkChaining"} + +// Get takes name of the networkChaining, and returns the corresponding networkChaining object, and an error if there is any. +func (c *FakeNetworkChainings) Get(name string, options v1.GetOptions) (result *v1alpha1.NetworkChaining, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(networkchainingsResource, c.ns, name), &v1alpha1.NetworkChaining{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkChaining), err +} + +// List takes label and field selectors, and returns the list of NetworkChainings that match those selectors. +func (c *FakeNetworkChainings) List(opts v1.ListOptions) (result *v1alpha1.NetworkChainingList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(networkchainingsResource, networkchainingsKind, c.ns, opts), &v1alpha1.NetworkChainingList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1alpha1.NetworkChainingList{ListMeta: obj.(*v1alpha1.NetworkChainingList).ListMeta} + for _, item := range obj.(*v1alpha1.NetworkChainingList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested networkChainings. +func (c *FakeNetworkChainings) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(networkchainingsResource, c.ns, opts)) + +} + +// Create takes the representation of a networkChaining and creates it. Returns the server's representation of the networkChaining, and an error, if there is any. +func (c *FakeNetworkChainings) Create(networkChaining *v1alpha1.NetworkChaining) (result *v1alpha1.NetworkChaining, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(networkchainingsResource, c.ns, networkChaining), &v1alpha1.NetworkChaining{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkChaining), err +} + +// Update takes the representation of a networkChaining and updates it. Returns the server's representation of the networkChaining, and an error, if there is any. +func (c *FakeNetworkChainings) Update(networkChaining *v1alpha1.NetworkChaining) (result *v1alpha1.NetworkChaining, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(networkchainingsResource, c.ns, networkChaining), &v1alpha1.NetworkChaining{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkChaining), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeNetworkChainings) UpdateStatus(networkChaining *v1alpha1.NetworkChaining) (*v1alpha1.NetworkChaining, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(networkchainingsResource, "status", c.ns, networkChaining), &v1alpha1.NetworkChaining{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkChaining), err +} + +// Delete takes name of the networkChaining and deletes it. Returns an error if one occurs. +func (c *FakeNetworkChainings) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(networkchainingsResource, c.ns, name), &v1alpha1.NetworkChaining{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeNetworkChainings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(networkchainingsResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &v1alpha1.NetworkChainingList{}) + return err +} + +// Patch applies the patch and returns the patched networkChaining. +func (c *FakeNetworkChainings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.NetworkChaining, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(networkchainingsResource, c.ns, name, pt, data, subresources...), &v1alpha1.NetworkChaining{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkChaining), err +} diff --git a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/generated_expansion.go b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/generated_expansion.go index 5d2ad85..564c8dc 100644 --- a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/generated_expansion.go +++ b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/generated_expansion.go @@ -20,4 +20,6 @@ package v1alpha1 type NetworkExpansion interface{} +type NetworkChainingExpansion interface{} + type ProviderNetworkExpansion interface{} diff --git a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/k8s_client.go b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/k8s_client.go index 3eba88c..00c601e 100644 --- a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/k8s_client.go +++ b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/k8s_client.go @@ -19,7 +19,6 @@ limitations under the License. package v1alpha1 import ( - "k8s.io/apimachinery/pkg/runtime/serializer" v1alpha1 "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1" "ovn4nfv-k8s-plugin/pkg/generated/clientset/versioned/scheme" @@ -29,6 +28,7 @@ import ( type K8sV1alpha1Interface interface { RESTClient() rest.Interface NetworksGetter + NetworkChainingsGetter ProviderNetworksGetter } @@ -41,6 +41,10 @@ func (c *K8sV1alpha1Client) Networks(namespace string) NetworkInterface { return newNetworks(c, namespace) } +func (c *K8sV1alpha1Client) NetworkChainings(namespace string) NetworkChainingInterface { + return newNetworkChainings(c, namespace) +} + func (c *K8sV1alpha1Client) ProviderNetworks(namespace string) ProviderNetworkInterface { return newProviderNetworks(c, namespace) } @@ -77,8 +81,7 @@ func setConfigDefaults(config *rest.Config) error { gv := v1alpha1.SchemeGroupVersion config.GroupVersion = &gv config.APIPath = "/apis" - //config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() - config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs} + config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() if config.UserAgent == "" { config.UserAgent = rest.DefaultKubernetesUserAgent() diff --git a/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/networkchaining.go b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/networkchaining.go new file mode 100644 index 0000000..97bba42 --- /dev/null +++ b/pkg/generated/clientset/versioned/typed/k8s/v1alpha1/networkchaining.go @@ -0,0 +1,191 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1" + scheme "ovn4nfv-k8s-plugin/pkg/generated/clientset/versioned/scheme" + "time" + + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// NetworkChainingsGetter has a method to return a NetworkChainingInterface. +// A group's client should implement this interface. +type NetworkChainingsGetter interface { + NetworkChainings(namespace string) NetworkChainingInterface +} + +// NetworkChainingInterface has methods to work with NetworkChaining resources. +type NetworkChainingInterface interface { + Create(*v1alpha1.NetworkChaining) (*v1alpha1.NetworkChaining, error) + Update(*v1alpha1.NetworkChaining) (*v1alpha1.NetworkChaining, error) + UpdateStatus(*v1alpha1.NetworkChaining) (*v1alpha1.NetworkChaining, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1alpha1.NetworkChaining, error) + List(opts v1.ListOptions) (*v1alpha1.NetworkChainingList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.NetworkChaining, err error) + NetworkChainingExpansion +} + +// networkChainings implements NetworkChainingInterface +type networkChainings struct { + client rest.Interface + ns string +} + +// newNetworkChainings returns a NetworkChainings +func newNetworkChainings(c *K8sV1alpha1Client, namespace string) *networkChainings { + return &networkChainings{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the networkChaining, and returns the corresponding networkChaining object, and an error if there is any. +func (c *networkChainings) Get(name string, options v1.GetOptions) (result *v1alpha1.NetworkChaining, err error) { + result = &v1alpha1.NetworkChaining{} + err = c.client.Get(). + Namespace(c.ns). + Resource("networkchainings"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of NetworkChainings that match those selectors. +func (c *networkChainings) List(opts v1.ListOptions) (result *v1alpha1.NetworkChainingList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1alpha1.NetworkChainingList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("networkchainings"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested networkChainings. +func (c *networkChainings) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("networkchainings"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch() +} + +// Create takes the representation of a networkChaining and creates it. Returns the server's representation of the networkChaining, and an error, if there is any. +func (c *networkChainings) Create(networkChaining *v1alpha1.NetworkChaining) (result *v1alpha1.NetworkChaining, err error) { + result = &v1alpha1.NetworkChaining{} + err = c.client.Post(). + Namespace(c.ns). + Resource("networkchainings"). + Body(networkChaining). + Do(). + Into(result) + return +} + +// Update takes the representation of a networkChaining and updates it. Returns the server's representation of the networkChaining, and an error, if there is any. +func (c *networkChainings) Update(networkChaining *v1alpha1.NetworkChaining) (result *v1alpha1.NetworkChaining, err error) { + result = &v1alpha1.NetworkChaining{} + err = c.client.Put(). + Namespace(c.ns). + Resource("networkchainings"). + Name(networkChaining.Name). + Body(networkChaining). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *networkChainings) UpdateStatus(networkChaining *v1alpha1.NetworkChaining) (result *v1alpha1.NetworkChaining, err error) { + result = &v1alpha1.NetworkChaining{} + err = c.client.Put(). + Namespace(c.ns). + Resource("networkchainings"). + Name(networkChaining.Name). + SubResource("status"). + Body(networkChaining). + Do(). + Into(result) + return +} + +// Delete takes name of the networkChaining and deletes it. Returns an error if one occurs. +func (c *networkChainings) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("networkchainings"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *networkChainings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("networkchainings"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched networkChaining. +func (c *networkChainings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.NetworkChaining, err error) { + result = &v1alpha1.NetworkChaining{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("networkchainings"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/pkg/generated/informers/externalversions/generic.go b/pkg/generated/informers/externalversions/generic.go index badc74f..4579982 100644 --- a/pkg/generated/informers/externalversions/generic.go +++ b/pkg/generated/informers/externalversions/generic.go @@ -55,6 +55,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource // Group=k8s.plugin.opnfv.org, Version=v1alpha1 case v1alpha1.SchemeGroupVersion.WithResource("networks"): return &genericInformer{resource: resource.GroupResource(), informer: f.K8s().V1alpha1().Networks().Informer()}, nil + case v1alpha1.SchemeGroupVersion.WithResource("networkchainings"): + return &genericInformer{resource: resource.GroupResource(), informer: f.K8s().V1alpha1().NetworkChainings().Informer()}, nil case v1alpha1.SchemeGroupVersion.WithResource("providernetworks"): return &genericInformer{resource: resource.GroupResource(), informer: f.K8s().V1alpha1().ProviderNetworks().Informer()}, nil diff --git a/pkg/generated/informers/externalversions/k8s/v1alpha1/interface.go b/pkg/generated/informers/externalversions/k8s/v1alpha1/interface.go index cef0e40..a7d9f6d 100644 --- a/pkg/generated/informers/externalversions/k8s/v1alpha1/interface.go +++ b/pkg/generated/informers/externalversions/k8s/v1alpha1/interface.go @@ -26,6 +26,8 @@ import ( type Interface interface { // Networks returns a NetworkInformer. Networks() NetworkInformer + // NetworkChainings returns a NetworkChainingInformer. + NetworkChainings() NetworkChainingInformer // ProviderNetworks returns a ProviderNetworkInformer. ProviderNetworks() ProviderNetworkInformer } @@ -46,6 +48,11 @@ func (v *version) Networks() NetworkInformer { return &networkInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } +// NetworkChainings returns a NetworkChainingInformer. +func (v *version) NetworkChainings() NetworkChainingInformer { + return &networkChainingInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + // ProviderNetworks returns a ProviderNetworkInformer. func (v *version) ProviderNetworks() ProviderNetworkInformer { return &providerNetworkInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} diff --git a/pkg/generated/informers/externalversions/k8s/v1alpha1/networkchaining.go b/pkg/generated/informers/externalversions/k8s/v1alpha1/networkchaining.go new file mode 100644 index 0000000..70f7839 --- /dev/null +++ b/pkg/generated/informers/externalversions/k8s/v1alpha1/networkchaining.go @@ -0,0 +1,89 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + k8sv1alpha1 "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1" + versioned "ovn4nfv-k8s-plugin/pkg/generated/clientset/versioned" + internalinterfaces "ovn4nfv-k8s-plugin/pkg/generated/informers/externalversions/internalinterfaces" + v1alpha1 "ovn4nfv-k8s-plugin/pkg/generated/listers/k8s/v1alpha1" + time "time" + + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// NetworkChainingInformer provides access to a shared informer and lister for +// NetworkChainings. +type NetworkChainingInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1alpha1.NetworkChainingLister +} + +type networkChainingInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewNetworkChainingInformer constructs a new informer for NetworkChaining type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewNetworkChainingInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredNetworkChainingInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredNetworkChainingInformer constructs a new informer for NetworkChaining type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredNetworkChainingInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.K8sV1alpha1().NetworkChainings(namespace).List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.K8sV1alpha1().NetworkChainings(namespace).Watch(options) + }, + }, + &k8sv1alpha1.NetworkChaining{}, + resyncPeriod, + indexers, + ) +} + +func (f *networkChainingInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredNetworkChainingInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *networkChainingInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&k8sv1alpha1.NetworkChaining{}, f.defaultInformer) +} + +func (f *networkChainingInformer) Lister() v1alpha1.NetworkChainingLister { + return v1alpha1.NewNetworkChainingLister(f.Informer().GetIndexer()) +} diff --git a/pkg/generated/listers/k8s/v1alpha1/expansion_generated.go b/pkg/generated/listers/k8s/v1alpha1/expansion_generated.go index 78871af..5fe0caa 100644 --- a/pkg/generated/listers/k8s/v1alpha1/expansion_generated.go +++ b/pkg/generated/listers/k8s/v1alpha1/expansion_generated.go @@ -26,6 +26,14 @@ type NetworkListerExpansion interface{} // NetworkNamespaceLister. type NetworkNamespaceListerExpansion interface{} +// NetworkChainingListerExpansion allows custom methods to be added to +// NetworkChainingLister. +type NetworkChainingListerExpansion interface{} + +// NetworkChainingNamespaceListerExpansion allows custom methods to be added to +// NetworkChainingNamespaceLister. +type NetworkChainingNamespaceListerExpansion interface{} + // ProviderNetworkListerExpansion allows custom methods to be added to // ProviderNetworkLister. type ProviderNetworkListerExpansion interface{} diff --git a/pkg/generated/listers/k8s/v1alpha1/networkchaining.go b/pkg/generated/listers/k8s/v1alpha1/networkchaining.go new file mode 100644 index 0000000..cea5ac7 --- /dev/null +++ b/pkg/generated/listers/k8s/v1alpha1/networkchaining.go @@ -0,0 +1,95 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "ovn4nfv-k8s-plugin/pkg/apis/k8s/v1alpha1" + + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// NetworkChainingLister helps list NetworkChainings. +type NetworkChainingLister interface { + // List lists all NetworkChainings in the indexer. + List(selector labels.Selector) (ret []*v1alpha1.NetworkChaining, err error) + // NetworkChainings returns an object that can list and get NetworkChainings. + NetworkChainings(namespace string) NetworkChainingNamespaceLister + NetworkChainingListerExpansion +} + +// networkChainingLister implements the NetworkChainingLister interface. +type networkChainingLister struct { + indexer cache.Indexer +} + +// NewNetworkChainingLister returns a new NetworkChainingLister. +func NewNetworkChainingLister(indexer cache.Indexer) NetworkChainingLister { + return &networkChainingLister{indexer: indexer} +} + +// List lists all NetworkChainings in the indexer. +func (s *networkChainingLister) List(selector labels.Selector) (ret []*v1alpha1.NetworkChaining, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.NetworkChaining)) + }) + return ret, err +} + +// NetworkChainings returns an object that can list and get NetworkChainings. +func (s *networkChainingLister) NetworkChainings(namespace string) NetworkChainingNamespaceLister { + return networkChainingNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// NetworkChainingNamespaceLister helps list and get NetworkChainings. +type NetworkChainingNamespaceLister interface { + // List lists all NetworkChainings in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1alpha1.NetworkChaining, err error) + // Get retrieves the NetworkChaining from the indexer for a given namespace and name. + Get(name string) (*v1alpha1.NetworkChaining, error) + NetworkChainingNamespaceListerExpansion +} + +// networkChainingNamespaceLister implements the NetworkChainingNamespaceLister +// interface. +type networkChainingNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all NetworkChainings in the indexer for a given namespace. +func (s networkChainingNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.NetworkChaining, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.NetworkChaining)) + }) + return ret, err +} + +// Get retrieves the NetworkChaining from the indexer for a given namespace and name. +func (s networkChainingNamespaceLister) Get(name string) (*v1alpha1.NetworkChaining, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1alpha1.Resource("networkchaining"), name) + } + return obj.(*v1alpha1.NetworkChaining), nil +} |