Use code-generator to generate clientset/informer/lister (#1492)
To reduce maintenance effort and avoid writing duplicate informer code, use code-generator to generate clientset/informer/lister code.
This commit is contained in:
@@ -5,6 +5,7 @@ ignore:
|
||||
- "examples"
|
||||
- "test"
|
||||
- "tools"
|
||||
- "pkg/apis/genclient"
|
||||
coverage:
|
||||
status:
|
||||
project:
|
||||
|
||||
@@ -90,7 +90,7 @@ func (client *PreUpgradeTaskClient) VerifyFunctionSpecReferences() {
|
||||
var fList *fv1.FunctionList
|
||||
|
||||
for i := 0; i < maxRetries; i++ {
|
||||
fList, err = client.fissionClient.Functions(metav1.NamespaceAll).List(metav1.ListOptions{})
|
||||
fList, err = client.fissionClient.V1().Functions(metav1.NamespaceAll).List(metav1.ListOptions{})
|
||||
if err == nil {
|
||||
break
|
||||
}
|
||||
@@ -108,20 +108,20 @@ func (client *PreUpgradeTaskClient) VerifyFunctionSpecReferences() {
|
||||
for _, fn := range fList.Items {
|
||||
secrets := fn.Spec.Secrets
|
||||
for _, secret := range secrets {
|
||||
if secret.Namespace != fn.Metadata.Namespace {
|
||||
errs = multierror.Append(errs, fmt.Errorf("function : %s.%s cannot reference a secret : %s in namespace : %s", fn.Metadata.Name, fn.Metadata.Namespace, secret.Name, secret.Namespace))
|
||||
if secret.Namespace != fn.ObjectMeta.Namespace {
|
||||
errs = multierror.Append(errs, fmt.Errorf("function : %s.%s cannot reference a secret : %s in namespace : %s", fn.ObjectMeta.Name, fn.ObjectMeta.Namespace, secret.Name, secret.Namespace))
|
||||
}
|
||||
}
|
||||
|
||||
configmaps := fn.Spec.ConfigMaps
|
||||
for _, configmap := range configmaps {
|
||||
if configmap.Namespace != fn.Metadata.Namespace {
|
||||
errs = multierror.Append(errs, fmt.Errorf("function : %s.%s cannot reference a configmap : %s in namespace : %s", fn.Metadata.Name, fn.Metadata.Namespace, configmap.Name, configmap.Namespace))
|
||||
if configmap.Namespace != fn.ObjectMeta.Namespace {
|
||||
errs = multierror.Append(errs, fmt.Errorf("function : %s.%s cannot reference a configmap : %s in namespace : %s", fn.ObjectMeta.Name, fn.ObjectMeta.Namespace, configmap.Name, configmap.Namespace))
|
||||
}
|
||||
}
|
||||
|
||||
if fn.Spec.Package.PackageRef.Namespace != fn.Metadata.Namespace {
|
||||
errs = multierror.Append(errs, fmt.Errorf("function : %s.%s cannot reference a package : %s in namespace : %s", fn.Metadata.Name, fn.Metadata.Namespace, fn.Spec.Package.PackageRef.Name, fn.Spec.Package.PackageRef.Namespace))
|
||||
if fn.Spec.Package.PackageRef.Namespace != fn.ObjectMeta.Namespace {
|
||||
errs = multierror.Append(errs, fmt.Errorf("function : %s.%s cannot reference a package : %s in namespace : %s", fn.ObjectMeta.Name, fn.ObjectMeta.Namespace, fn.Spec.Package.PackageRef.Name, fn.Spec.Package.PackageRef.Namespace))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,12 +168,12 @@ func (client *PreUpgradeTaskClient) RemoveClusterAdminRolesForFissionSAs() {
|
||||
// This is because, we just deleted the ClusterRoleBindings for these service accounts in the previous function and
|
||||
// for the existing functions to work, we need to give these SAs the right privileges
|
||||
func (client *PreUpgradeTaskClient) NeedRoleBindings() bool {
|
||||
pkgList, err := client.fissionClient.Packages(metav1.NamespaceDefault).List(metav1.ListOptions{})
|
||||
pkgList, err := client.fissionClient.V1().Packages(metav1.NamespaceDefault).List(metav1.ListOptions{})
|
||||
if err == nil && len(pkgList.Items) > 0 {
|
||||
return true
|
||||
}
|
||||
|
||||
fnList, err := client.fissionClient.Functions(metav1.NamespaceDefault).List(metav1.ListOptions{})
|
||||
fnList, err := client.fissionClient.V1().Functions(metav1.NamespaceDefault).List(metav1.ListOptions{})
|
||||
if err == nil && len(fnList.Items) > 0 {
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -25,8 +25,6 @@ require (
|
||||
github.com/gogo/protobuf v1.2.1 // indirect
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef // indirect
|
||||
github.com/golang/protobuf v1.3.1
|
||||
github.com/gomodule/redigo v0.0.0-20180627144507-2cd21d9966bf
|
||||
github.com/google/gofuzz v1.0.0 // indirect
|
||||
github.com/googleapis/gnostic v0.3.0 // indirect
|
||||
github.com/gophercloud/gophercloud v0.2.0 // indirect
|
||||
@@ -63,7 +61,6 @@ require (
|
||||
github.com/spf13/pflag v1.0.5
|
||||
github.com/stretchr/testify v1.3.0
|
||||
github.com/ulikunitz/xz v0.0.0-20180703112113-636d36a76670 // indirect
|
||||
github.com/urfave/cli v1.20.0
|
||||
github.com/wcharczuk/go-chart v2.0.1+incompatible
|
||||
go.etcd.io/bbolt v1.3.2 // indirect
|
||||
go.opencensus.io v0.22.0
|
||||
|
||||
@@ -90,6 +90,7 @@ github.com/emicklei/go-restful v2.9.6+incompatible h1:tfrHha8zJ01ywiOEC1miGY8st1
|
||||
github.com/emicklei/go-restful v2.9.6+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||
github.com/emicklei/go-restful-openapi v1.2.0 h1:ohRZ1yEZERGzqaozBgxa3A0lt6c6KF14xhs3IL9ECwg=
|
||||
github.com/emicklei/go-restful-openapi v1.2.0/go.mod h1:cy7o3Ge8ZWZ5E90mpEY81sJZZFs2pkuYcLvfngYy1l0=
|
||||
github.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550 h1:mV9jbLoSW/8m4VK16ZkHTozJa8sesK5u5kTMFysTYac=
|
||||
github.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
@@ -149,8 +150,6 @@ github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w=
|
||||
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/gomodule/redigo v0.0.0-20180627144507-2cd21d9966bf h1:QiyWcEIeOkPTyeLwN4mguSULP/PWjmejPsU9elZAOeY=
|
||||
github.com/gomodule/redigo v0.0.0-20180627144507-2cd21d9966bf/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
||||
github.com/google/btree v0.0.0-20160524151835-7d79101e329e/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
@@ -333,8 +332,6 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1
|
||||
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
|
||||
github.com/ulikunitz/xz v0.0.0-20180703112113-636d36a76670 h1:HQWT4ta3wW5GZ790GaqLCS+w1dvuA3rMfEQxLi+UOYU=
|
||||
github.com/ulikunitz/xz v0.0.0-20180703112113-636d36a76670/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8=
|
||||
github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw=
|
||||
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
||||
github.com/wcharczuk/go-chart v2.0.1+incompatible h1:0pz39ZAycJFF7ju/1mepnk26RLVLBCWz1STcD3doU0A=
|
||||
github.com/wcharczuk/go-chart v2.0.1+incompatible/go.mod h1:PF5tmL4EIx/7Wf+hEkpCqYi5He4u90sw+0+6FhrryuE=
|
||||
github.com/xiang90/probing v0.0.0-20160813154853-07dd2e8dfe18/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||
@@ -504,6 +501,7 @@ k8s.io/gengo v0.0.0-20190116091435-f8a0810f38af/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8
|
||||
k8s.io/klog v0.3.1/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||
k8s.io/klog v0.3.3 h1:niceAagH1tzskmaie/icWd7ci1wbG7Bf2c6YGcQv+3c=
|
||||
k8s.io/klog v0.3.3/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||
k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30 h1:TRb4wNWoBVrH9plmkp2q86FIDppkbrEXdXlxU3a3BMI=
|
||||
k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=
|
||||
k8s.io/utils v0.0.0-20190221042446-c2654d5206da h1:ElyM7RPonbKnQqOcw7dG2IK5uvQQn3b/WPHqD5mBvP4=
|
||||
k8s.io/utils v0.0.0-20190221042446-c2654d5206da/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=
|
||||
|
||||
@@ -4,4 +4,4 @@ set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
go vet -v $(go list ./...| grep -v "vendor" | grep -v "examples" | grep -v "demos" | grep -v "test")
|
||||
go vet -v $(go list ./...| grep -v "vendor" | grep -v "examples" | grep -v "genclient" | grep -v "demos" | grep -v "test")
|
||||
|
||||
@@ -4,4 +4,4 @@ set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
go list ./...| grep -v vendor | grep -v "examples" | grep -v "demos" | grep -v "test" | xargs -I@ staticcheck @
|
||||
go list ./...| grep -v vendor | grep -v "examples" | grep -v "demos" | grep -v "genclient" | grep -v "test" | xargs -I@ staticcheck @
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Fission CRD generation
|
||||
|
||||
* Clone https://github.com/fission/code-generator to generate fission CRD object deepcopy and client methods.
|
||||
* MUST run code-generator in the fission root directory.
|
||||
|
||||
``` bash
|
||||
$ cd $GOPATH/src/github.com/fission/fission/
|
||||
$ $GOPATH/src/k8s.io/code-generator/generate-groups.sh \
|
||||
all \
|
||||
github.com/fission/fission/pkg/apis/genclient/v1 \
|
||||
github.com/fission/fission/pkg/apis \
|
||||
fission.io:v1 \
|
||||
--go-header-file $GOPATH/src/github.com/fission/fission/pkg/apis/boilerplate.txt
|
||||
```
|
||||
|
||||
# Reference
|
||||
|
||||
* https://blog.openshift.com/kubernetes-deep-dive-code-generation-customresources/
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
Copyright The Fission 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.
|
||||
*/
|
||||
@@ -1,14 +0,0 @@
|
||||
# Fission CRD generation
|
||||
|
||||
* Use [code-generator](https://github.com/kubernetes/code-generator) to generate fission CRD object deepcopy and client methods.
|
||||
|
||||
``` bash
|
||||
$ vendor/k8s.io/code-generator/generate-groups.sh deepcopy \
|
||||
github.com/fission/fission/pkg/client \
|
||||
github.com/fission/fission/pkg/apis \
|
||||
fission.io:v1
|
||||
```
|
||||
|
||||
# Reference
|
||||
|
||||
* https://blog.openshift.com/kubernetes-deep-dive-code-generation-customresources/
|
||||
@@ -17,13 +17,13 @@ limitations under the License.
|
||||
// This file tells deepcopy-gen to generate deepcopy methods for all structs in the package.
|
||||
// For more details, please visit https://blog.openshift.com/kubernetes-deep-dive-code-generation-customresources/
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +groupName=fission.io
|
||||
// +groupGoName=V1
|
||||
package v1
|
||||
|
||||
const (
|
||||
CRD_VERSION = "fission.io/v1"
|
||||
|
||||
CRD_VERSION = "fission.io/v1"
|
||||
CRD_NAME_ENVIRONMENT = "Environment"
|
||||
)
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
Copyright 2019 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.
|
||||
*/
|
||||
|
||||
// The file comes from Kubernetes code-generator repo with custom modification.
|
||||
// https://github.com/kubernetes/code-generator/blob/0826954c61ed88ac5d75e771ade6aae646ca5268/_examples/HyphenGroup/apis/example/v1/register.go
|
||||
|
||||
package v1
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
)
|
||||
|
||||
var SchemeGroupVersion = schema.GroupVersion{Group: "fission.io", Version: "v1"}
|
||||
|
||||
var (
|
||||
// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.
|
||||
// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
|
||||
SchemeBuilder runtime.SchemeBuilder
|
||||
localSchemeBuilder = &SchemeBuilder
|
||||
AddToScheme = localSchemeBuilder.AddToScheme
|
||||
)
|
||||
|
||||
func init() {
|
||||
// We only register manually written functions here. The registration of the
|
||||
// generated functions takes place in the generated files. The separation
|
||||
// makes the code compile even when the generated files are missing.
|
||||
localSchemeBuilder.Register(addKnownTypes)
|
||||
}
|
||||
|
||||
// Resource takes an unqualified resource and returns a Group qualified GroupResource
|
||||
func Resource(resource string) schema.GroupResource {
|
||||
return SchemeGroupVersion.WithResource(resource).GroupResource()
|
||||
}
|
||||
|
||||
// Adds the list of known types to the given scheme.
|
||||
func addKnownTypes(scheme *runtime.Scheme) error {
|
||||
scheme.AddKnownTypes(
|
||||
SchemeGroupVersion,
|
||||
&Function{},
|
||||
&FunctionList{},
|
||||
&Environment{},
|
||||
&EnvironmentList{},
|
||||
&HTTPTrigger{},
|
||||
&HTTPTriggerList{},
|
||||
&KubernetesWatchTrigger{},
|
||||
&KubernetesWatchTriggerList{},
|
||||
&TimeTrigger{},
|
||||
&TimeTriggerList{},
|
||||
&MessageQueueTrigger{},
|
||||
&MessageQueueTriggerList{},
|
||||
&Package{},
|
||||
&PackageList{},
|
||||
&CanaryConfig{},
|
||||
&CanaryConfigList{},
|
||||
)
|
||||
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
|
||||
return nil
|
||||
}
|
||||
@@ -1,266 +0,0 @@
|
||||
/*
|
||||
Copyright 2019 The Fission 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.
|
||||
*/
|
||||
|
||||
package v1
|
||||
|
||||
import (
|
||||
"github.com/hashicorp/go-multierror"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
)
|
||||
|
||||
// Each CRD type needs:
|
||||
// GetObjectKind (to satisfy the Object interface)
|
||||
//
|
||||
// In addition, each singular CRD type needs:
|
||||
// GetObjectMeta (to satisfy the ObjectMetaAccessor interface)
|
||||
//
|
||||
// And each list CRD type needs:
|
||||
// GetListMeta (to satisfy the ListMetaAccessor interface)
|
||||
|
||||
func (f *Function) GetObjectKind() schema.ObjectKind {
|
||||
return &f.TypeMeta
|
||||
}
|
||||
func (e *Environment) GetObjectKind() schema.ObjectKind {
|
||||
return &e.TypeMeta
|
||||
}
|
||||
func (ht *HTTPTrigger) GetObjectKind() schema.ObjectKind {
|
||||
return &ht.TypeMeta
|
||||
}
|
||||
func (w *KubernetesWatchTrigger) GetObjectKind() schema.ObjectKind {
|
||||
return &w.TypeMeta
|
||||
}
|
||||
func (t *TimeTrigger) GetObjectKind() schema.ObjectKind {
|
||||
return &t.TypeMeta
|
||||
}
|
||||
func (m *MessageQueueTrigger) GetObjectKind() schema.ObjectKind {
|
||||
return &m.TypeMeta
|
||||
}
|
||||
func (p *Package) GetObjectKind() schema.ObjectKind {
|
||||
return &p.TypeMeta
|
||||
}
|
||||
func (c *CanaryConfig) GetObjectKind() schema.ObjectKind {
|
||||
return &c.TypeMeta
|
||||
}
|
||||
|
||||
func (f *Function) GetObjectMeta() metav1.Object {
|
||||
return &f.Metadata
|
||||
}
|
||||
func (e *Environment) GetObjectMeta() metav1.Object {
|
||||
return &e.Metadata
|
||||
}
|
||||
func (ht *HTTPTrigger) GetObjectMeta() metav1.Object {
|
||||
return &ht.Metadata
|
||||
}
|
||||
func (w *KubernetesWatchTrigger) GetObjectMeta() metav1.Object {
|
||||
return &w.Metadata
|
||||
}
|
||||
func (t *TimeTrigger) GetObjectMeta() metav1.Object {
|
||||
return &t.Metadata
|
||||
}
|
||||
func (m *MessageQueueTrigger) GetObjectMeta() metav1.Object {
|
||||
return &m.Metadata
|
||||
}
|
||||
func (p *Package) GetObjectMeta() metav1.Object {
|
||||
return &p.Metadata
|
||||
}
|
||||
func (c *CanaryConfig) GetObjectMeta() metav1.Object {
|
||||
return &c.Metadata
|
||||
}
|
||||
|
||||
func (fl *FunctionList) GetObjectKind() schema.ObjectKind {
|
||||
return &fl.TypeMeta
|
||||
}
|
||||
func (el *EnvironmentList) GetObjectKind() schema.ObjectKind {
|
||||
return &el.TypeMeta
|
||||
}
|
||||
func (hl *HTTPTriggerList) GetObjectKind() schema.ObjectKind {
|
||||
return &hl.TypeMeta
|
||||
}
|
||||
func (wl *KubernetesWatchTriggerList) GetObjectKind() schema.ObjectKind {
|
||||
return &wl.TypeMeta
|
||||
}
|
||||
func (wl *TimeTriggerList) GetObjectKind() schema.ObjectKind {
|
||||
return &wl.TypeMeta
|
||||
}
|
||||
func (ml *MessageQueueTriggerList) GetObjectKind() schema.ObjectKind {
|
||||
return &ml.TypeMeta
|
||||
}
|
||||
func (pl *PackageList) GetObjectKind() schema.ObjectKind {
|
||||
return &pl.TypeMeta
|
||||
}
|
||||
|
||||
func (cl *CanaryConfigList) GetObjectKind() schema.ObjectKind {
|
||||
return &cl.TypeMeta
|
||||
}
|
||||
|
||||
func (fl *FunctionList) GetListMeta() metav1.ListInterface {
|
||||
return &fl.Metadata
|
||||
}
|
||||
func (el *EnvironmentList) GetListMeta() metav1.ListInterface {
|
||||
return &el.Metadata
|
||||
}
|
||||
func (hl *HTTPTriggerList) GetListMeta() metav1.ListInterface {
|
||||
return &hl.Metadata
|
||||
}
|
||||
func (wl *KubernetesWatchTriggerList) GetListMeta() metav1.ListInterface {
|
||||
return &wl.Metadata
|
||||
}
|
||||
func (wl *TimeTriggerList) GetListMeta() metav1.ListInterface {
|
||||
return &wl.Metadata
|
||||
}
|
||||
func (ml *MessageQueueTriggerList) GetListMeta() metav1.ListInterface {
|
||||
return &ml.Metadata
|
||||
}
|
||||
func (pl *PackageList) GetListMeta() metav1.ListInterface {
|
||||
return &pl.Metadata
|
||||
}
|
||||
|
||||
func (cl *CanaryConfigList) GetListMeta() metav1.ListInterface {
|
||||
return &cl.Metadata
|
||||
}
|
||||
|
||||
func validateMetadata(field string, m metav1.ObjectMeta) error {
|
||||
return ValidateKubeReference(field, m.Name, m.Namespace)
|
||||
}
|
||||
|
||||
func (p *Package) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("Package", p.Metadata),
|
||||
p.Spec.Validate(),
|
||||
p.Status.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (pl *PackageList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
// not validate ListMeta
|
||||
for _, p := range pl.Items {
|
||||
result = multierror.Append(result, p.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (f *Function) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("Function", f.Metadata),
|
||||
f.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (fl *FunctionList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, f := range fl.Items {
|
||||
result = multierror.Append(result, f.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (e *Environment) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("Environment", e.Metadata),
|
||||
e.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (el *EnvironmentList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, e := range el.Items {
|
||||
result = multierror.Append(result, e.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (h *HTTPTrigger) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("HTTPTrigger", h.Metadata),
|
||||
h.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (hl *HTTPTriggerList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, h := range hl.Items {
|
||||
result = multierror.Append(result, h.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (k *KubernetesWatchTrigger) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("KubernetesWatchTrigger", k.Metadata),
|
||||
k.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (kl *KubernetesWatchTriggerList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, k := range kl.Items {
|
||||
result = multierror.Append(result, k.Validate())
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func (t *TimeTrigger) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("TimeTrigger", t.Metadata),
|
||||
t.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (tl *TimeTriggerList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, t := range tl.Items {
|
||||
result = multierror.Append(result, t.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (m *MessageQueueTrigger) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("MessageQueueTrigger", m.Metadata),
|
||||
m.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (ml *MessageQueueTriggerList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, m := range ml.Items {
|
||||
result = multierror.Append(result, m.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
@@ -17,14 +17,10 @@ limitations under the License.
|
||||
package v1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
apiv1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
//
|
||||
// To add a Fission CRD type:
|
||||
// 1. Create a "spec" type, for everything in the type except metadata
|
||||
@@ -42,11 +38,13 @@ import (
|
||||
type (
|
||||
|
||||
// Packages. Think of these as function-level images.
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
Package struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ObjectMeta `json:"metadata"`
|
||||
Spec PackageSpec `json:"spec"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata"`
|
||||
|
||||
Spec PackageSpec `json:"spec"`
|
||||
|
||||
// Status indicates the build status of package.
|
||||
Status PackageStatus `json:"status"`
|
||||
@@ -56,121 +54,130 @@ type (
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
PackageList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ListMeta `json:"metadata"`
|
||||
Items []Package `json:"items"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []Package `json:"items"`
|
||||
}
|
||||
|
||||
// Function is function runs within environment runtime with given package and secrets/configmaps.
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
Function struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ObjectMeta `json:"metadata"`
|
||||
Spec FunctionSpec `json:"spec"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata"`
|
||||
Spec FunctionSpec `json:"spec"`
|
||||
}
|
||||
|
||||
// FunctionList is a list of Functions.
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
FunctionList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ListMeta `json:"metadata"`
|
||||
Items []Function `json:"items"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []Function `json:"items"`
|
||||
}
|
||||
|
||||
// Environment is environment for building and running user functions.
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
Environment struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ObjectMeta `json:"metadata"`
|
||||
Spec EnvironmentSpec `json:"spec"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata"`
|
||||
Spec EnvironmentSpec `json:"spec"`
|
||||
}
|
||||
|
||||
// EnvironmentList is a list of Environments.
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
EnvironmentList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ListMeta `json:"metadata"`
|
||||
Items []Environment `json:"items"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []Environment `json:"items"`
|
||||
}
|
||||
|
||||
// HTTPTrigger is the trigger invokes user functions when receiving HTTP requests.
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
HTTPTrigger struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ObjectMeta `json:"metadata"`
|
||||
Spec HTTPTriggerSpec `json:"spec"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata"`
|
||||
Spec HTTPTriggerSpec `json:"spec"`
|
||||
}
|
||||
|
||||
// HTTPTriggerList is a list of HTTPTriggers
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
HTTPTriggerList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ListMeta `json:"metadata"`
|
||||
Items []HTTPTrigger `json:"items"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []HTTPTrigger `json:"items"`
|
||||
}
|
||||
|
||||
// KubernetesWatchTrigger watches kubernetes resource events and invokes functions.
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
KubernetesWatchTrigger struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ObjectMeta `json:"metadata"`
|
||||
Spec KubernetesWatchTriggerSpec `json:"spec"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata"`
|
||||
Spec KubernetesWatchTriggerSpec `json:"spec"`
|
||||
}
|
||||
|
||||
// KubernetesWatchTriggerList is a list of KubernetesWatchTriggers
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
KubernetesWatchTriggerList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ListMeta `json:"metadata"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []KubernetesWatchTrigger `json:"items"`
|
||||
}
|
||||
|
||||
// TimeTrigger invokes functions based on given cron schedule.
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
TimeTrigger struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ObjectMeta `json:"metadata"`
|
||||
Spec TimeTriggerSpec `json:"spec"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata"`
|
||||
|
||||
Spec TimeTriggerSpec `json:"spec"`
|
||||
}
|
||||
|
||||
// TimeTriggerList is a list of TimeTriggers.
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
TimeTriggerList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ListMeta `json:"metadata"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
|
||||
Items []TimeTrigger `json:"items"`
|
||||
}
|
||||
|
||||
// MessageQueueTrigger invokes functions when messages arrive to certain topic that trigger subscribes to.
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
MessageQueueTrigger struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ObjectMeta `json:"metadata"`
|
||||
Spec MessageQueueTriggerSpec `json:"spec"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata"`
|
||||
|
||||
Spec MessageQueueTriggerSpec `json:"spec"`
|
||||
}
|
||||
|
||||
// MessageQueueTriggerList is a list of MessageQueueTriggers.
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
MessageQueueTriggerList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ListMeta `json:"metadata"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []MessageQueueTrigger `json:"items"`
|
||||
}
|
||||
|
||||
// CanaryConfig is for canary deployment of two functions.
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
CanaryConfig struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ObjectMeta `json:"metadata"`
|
||||
Spec CanaryConfigSpec `json:"spec"`
|
||||
Status CanaryConfigStatus `json:"status"`
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata"`
|
||||
Spec CanaryConfigSpec `json:"spec"`
|
||||
Status CanaryConfigStatus `json:"status"`
|
||||
}
|
||||
|
||||
// CanaryConfigList is a list of CanaryConfigs.
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
CanaryConfigList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
Metadata metav1.ListMeta `json:"metadata"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
|
||||
Items []CanaryConfig `json:"items"`
|
||||
}
|
||||
@@ -267,7 +274,9 @@ type (
|
||||
BuildLog string `json:"buildlog,omitempty"` // output of the build (errors etc)
|
||||
|
||||
// LastUpdateTimestamp will store the timestamp the package was last updated
|
||||
LastUpdateTimestamp time.Time `json:"lastUpdateTimestamp,omitempty"`
|
||||
// metav1.Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON.
|
||||
// https://github.com/kubernetes/apimachinery/blob/44bd77c24ef93cd3a5eb6fef64e514025d10d44e/pkg/apis/meta/v1/time.go#L26-L35
|
||||
LastUpdateTimestamp metav1.Time `json:"lastUpdateTimestamp,omitempty"`
|
||||
}
|
||||
|
||||
// PackageRef is a reference to the package.
|
||||
|
||||
@@ -25,6 +25,7 @@ import (
|
||||
"github.com/hashicorp/go-multierror"
|
||||
nsUtil "github.com/nats-io/nats-streaming-server/util"
|
||||
"github.com/robfig/cron"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/validation"
|
||||
)
|
||||
|
||||
@@ -556,3 +557,135 @@ func (spec TimeTriggerSpec) Validate() error {
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func validateMetadata(field string, m metav1.ObjectMeta) error {
|
||||
return ValidateKubeReference(field, m.Name, m.Namespace)
|
||||
}
|
||||
|
||||
func (p *Package) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("Package", p.ObjectMeta),
|
||||
p.Spec.Validate(),
|
||||
p.Status.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (pl *PackageList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
// not validate ListMeta
|
||||
for _, p := range pl.Items {
|
||||
result = multierror.Append(result, p.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (f *Function) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("Function", f.ObjectMeta),
|
||||
f.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (fl *FunctionList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, f := range fl.Items {
|
||||
result = multierror.Append(result, f.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (e *Environment) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("Environment", e.ObjectMeta),
|
||||
e.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (el *EnvironmentList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, e := range el.Items {
|
||||
result = multierror.Append(result, e.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (h *HTTPTrigger) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("HTTPTrigger", h.ObjectMeta),
|
||||
h.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (hl *HTTPTriggerList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, h := range hl.Items {
|
||||
result = multierror.Append(result, h.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (k *KubernetesWatchTrigger) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("KubernetesWatchTrigger", k.ObjectMeta),
|
||||
k.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (kl *KubernetesWatchTriggerList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, k := range kl.Items {
|
||||
result = multierror.Append(result, k.Validate())
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func (t *TimeTrigger) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("TimeTrigger", t.ObjectMeta),
|
||||
t.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (tl *TimeTriggerList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, t := range tl.Items {
|
||||
result = multierror.Append(result, t.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (m *MessageQueueTrigger) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
|
||||
result = multierror.Append(result,
|
||||
validateMetadata("MessageQueueTrigger", m.ObjectMeta),
|
||||
m.Spec.Validate())
|
||||
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
func (ml *MessageQueueTriggerList) Validate() error {
|
||||
result := &multierror.Error{}
|
||||
for _, m := range ml.Items {
|
||||
result = multierror.Append(result, m.Validate())
|
||||
}
|
||||
return result.ErrorOrNil()
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright The Kubernetes Authors.
|
||||
Copyright The Fission Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -55,6 +55,11 @@ func (in *Builder) DeepCopyInto(out *Builder) {
|
||||
*out = new(corev1.Container)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.PodSpec != nil {
|
||||
in, out := &in.PodSpec, &out.PodSpec
|
||||
*out = new(corev1.PodSpec)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -72,7 +77,7 @@ func (in *Builder) DeepCopy() *Builder {
|
||||
func (in *CanaryConfig) DeepCopyInto(out *CanaryConfig) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.Metadata.DeepCopyInto(&out.Metadata)
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
out.Spec = in.Spec
|
||||
out.Status = in.Status
|
||||
return
|
||||
@@ -100,7 +105,7 @@ func (in *CanaryConfig) DeepCopyObject() runtime.Object {
|
||||
func (in *CanaryConfigList) DeepCopyInto(out *CanaryConfigList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.Metadata = in.Metadata
|
||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]CanaryConfig, len(*in))
|
||||
@@ -197,7 +202,7 @@ func (in *ConfigMapReference) DeepCopy() *ConfigMapReference {
|
||||
func (in *Environment) DeepCopyInto(out *Environment) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.Metadata.DeepCopyInto(&out.Metadata)
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
return
|
||||
}
|
||||
@@ -224,7 +229,7 @@ func (in *Environment) DeepCopyObject() runtime.Object {
|
||||
func (in *EnvironmentList) DeepCopyInto(out *EnvironmentList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.Metadata = in.Metadata
|
||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]Environment, len(*in))
|
||||
@@ -308,7 +313,7 @@ func (in *ExecutionStrategy) DeepCopy() *ExecutionStrategy {
|
||||
func (in *Function) DeepCopyInto(out *Function) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.Metadata.DeepCopyInto(&out.Metadata)
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
return
|
||||
}
|
||||
@@ -335,7 +340,7 @@ func (in *Function) DeepCopyObject() runtime.Object {
|
||||
func (in *FunctionList) DeepCopyInto(out *FunctionList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.Metadata = in.Metadata
|
||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]Function, len(*in))
|
||||
@@ -438,7 +443,7 @@ func (in *FunctionSpec) DeepCopy() *FunctionSpec {
|
||||
func (in *HTTPTrigger) DeepCopyInto(out *HTTPTrigger) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.Metadata.DeepCopyInto(&out.Metadata)
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
return
|
||||
}
|
||||
@@ -465,7 +470,7 @@ func (in *HTTPTrigger) DeepCopyObject() runtime.Object {
|
||||
func (in *HTTPTriggerList) DeepCopyInto(out *HTTPTriggerList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.Metadata = in.Metadata
|
||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]HTTPTrigger, len(*in))
|
||||
@@ -498,6 +503,7 @@ func (in *HTTPTriggerList) DeepCopyObject() runtime.Object {
|
||||
func (in *HTTPTriggerSpec) DeepCopyInto(out *HTTPTriggerSpec) {
|
||||
*out = *in
|
||||
in.FunctionReference.DeepCopyInto(&out.FunctionReference)
|
||||
in.IngressConfig.DeepCopyInto(&out.IngressConfig)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -511,6 +517,29 @@ func (in *HTTPTriggerSpec) DeepCopy() *HTTPTriggerSpec {
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *IngressConfig) DeepCopyInto(out *IngressConfig) {
|
||||
*out = *in
|
||||
if in.Annotations != nil {
|
||||
in, out := &in.Annotations, &out.Annotations
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressConfig.
|
||||
func (in *IngressConfig) DeepCopy() *IngressConfig {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(IngressConfig)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *InvokeStrategy) DeepCopyInto(out *InvokeStrategy) {
|
||||
*out = *in
|
||||
@@ -532,7 +561,7 @@ func (in *InvokeStrategy) DeepCopy() *InvokeStrategy {
|
||||
func (in *KubernetesWatchTrigger) DeepCopyInto(out *KubernetesWatchTrigger) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.Metadata.DeepCopyInto(&out.Metadata)
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
return
|
||||
}
|
||||
@@ -559,7 +588,7 @@ func (in *KubernetesWatchTrigger) DeepCopyObject() runtime.Object {
|
||||
func (in *KubernetesWatchTriggerList) DeepCopyInto(out *KubernetesWatchTriggerList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.Metadata = in.Metadata
|
||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]KubernetesWatchTrigger, len(*in))
|
||||
@@ -616,7 +645,7 @@ func (in *KubernetesWatchTriggerSpec) DeepCopy() *KubernetesWatchTriggerSpec {
|
||||
func (in *MessageQueueTrigger) DeepCopyInto(out *MessageQueueTrigger) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.Metadata.DeepCopyInto(&out.Metadata)
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
return
|
||||
}
|
||||
@@ -643,7 +672,7 @@ func (in *MessageQueueTrigger) DeepCopyObject() runtime.Object {
|
||||
func (in *MessageQueueTriggerList) DeepCopyInto(out *MessageQueueTriggerList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.Metadata = in.Metadata
|
||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]MessageQueueTrigger, len(*in))
|
||||
@@ -693,9 +722,9 @@ func (in *MessageQueueTriggerSpec) DeepCopy() *MessageQueueTriggerSpec {
|
||||
func (in *Package) DeepCopyInto(out *Package) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.Metadata.DeepCopyInto(&out.Metadata)
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
out.Status = in.Status
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -721,7 +750,7 @@ func (in *Package) DeepCopyObject() runtime.Object {
|
||||
func (in *PackageList) DeepCopyInto(out *PackageList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.Metadata = in.Metadata
|
||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]Package, len(*in))
|
||||
@@ -788,6 +817,7 @@ func (in *PackageSpec) DeepCopy() *PackageSpec {
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *PackageStatus) DeepCopyInto(out *PackageStatus) {
|
||||
*out = *in
|
||||
in.LastUpdateTimestamp.DeepCopyInto(&out.LastUpdateTimestamp)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -809,6 +839,11 @@ func (in *Runtime) DeepCopyInto(out *Runtime) {
|
||||
*out = new(corev1.Container)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.PodSpec != nil {
|
||||
in, out := &in.PodSpec, &out.PodSpec
|
||||
*out = new(corev1.PodSpec)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -842,7 +877,7 @@ func (in *SecretReference) DeepCopy() *SecretReference {
|
||||
func (in *TimeTrigger) DeepCopyInto(out *TimeTrigger) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.Metadata.DeepCopyInto(&out.Metadata)
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
return
|
||||
}
|
||||
@@ -869,7 +904,7 @@ func (in *TimeTrigger) DeepCopyObject() runtime.Object {
|
||||
func (in *TimeTriggerList) DeepCopyInto(out *TimeTriggerList) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
out.Metadata = in.Metadata
|
||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||
if in.Items != nil {
|
||||
in, out := &in.Items, &out.Items
|
||||
*out = make([]TimeTrigger, len(*in))
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
Copyright The Fission 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 versioned
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
v1v1 "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/typed/fission.io/v1"
|
||||
discovery "k8s.io/client-go/discovery"
|
||||
rest "k8s.io/client-go/rest"
|
||||
flowcontrol "k8s.io/client-go/util/flowcontrol"
|
||||
)
|
||||
|
||||
type Interface interface {
|
||||
Discovery() discovery.DiscoveryInterface
|
||||
V1V1() v1v1.V1V1Interface
|
||||
}
|
||||
|
||||
// Clientset contains the clients for groups. Each group has exactly one
|
||||
// version included in a Clientset.
|
||||
type Clientset struct {
|
||||
*discovery.DiscoveryClient
|
||||
v1V1 *v1v1.V1V1Client
|
||||
}
|
||||
|
||||
// V1V1 retrieves the V1V1Client
|
||||
func (c *Clientset) V1V1() v1v1.V1V1Interface {
|
||||
return c.v1V1
|
||||
}
|
||||
|
||||
// Discovery retrieves the DiscoveryClient
|
||||
func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.DiscoveryClient
|
||||
}
|
||||
|
||||
// NewForConfig creates a new Clientset for the given config.
|
||||
// If config's RateLimiter is not set and QPS and Burst are acceptable,
|
||||
// NewForConfig will generate a rate-limiter in configShallowCopy.
|
||||
func NewForConfig(c *rest.Config) (*Clientset, error) {
|
||||
configShallowCopy := *c
|
||||
if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 {
|
||||
if configShallowCopy.Burst <= 0 {
|
||||
return nil, fmt.Errorf("Burst is required to be greater than 0 when RateLimiter is not set and QPS is set to greater than 0")
|
||||
}
|
||||
configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst)
|
||||
}
|
||||
var cs Clientset
|
||||
var err error
|
||||
cs.v1V1, err = v1v1.NewForConfig(&configShallowCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &cs, nil
|
||||
}
|
||||
|
||||
// NewForConfigOrDie creates a new Clientset for the given config and
|
||||
// panics if there is an error in the config.
|
||||
func NewForConfigOrDie(c *rest.Config) *Clientset {
|
||||
var cs Clientset
|
||||
cs.v1V1 = v1v1.NewForConfigOrDie(c)
|
||||
|
||||
cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
|
||||
return &cs
|
||||
}
|
||||
|
||||
// New creates a new Clientset for the given RESTClient.
|
||||
func New(c rest.Interface) *Clientset {
|
||||
var cs Clientset
|
||||
cs.v1V1 = v1v1.New(c)
|
||||
|
||||
cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
||||
return &cs
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
Copyright The Fission 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.
|
||||
|
||||
// This package has the automatically generated clientset.
|
||||
package versioned
|
||||
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
Copyright The Fission 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 (
|
||||
clientset "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
v1v1 "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/typed/fission.io/v1"
|
||||
fakev1v1 "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/typed/fission.io/v1/fake"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/discovery"
|
||||
fakediscovery "k8s.io/client-go/discovery/fake"
|
||||
"k8s.io/client-go/testing"
|
||||
)
|
||||
|
||||
// NewSimpleClientset returns a clientset that will respond with the provided objects.
|
||||
// It's backed by a very simple object tracker that processes creates, updates and deletions as-is,
|
||||
// without applying any validations and/or defaults. It shouldn't be considered a replacement
|
||||
// for a real clientset and is mostly useful in simple unit tests.
|
||||
func NewSimpleClientset(objects ...runtime.Object) *Clientset {
|
||||
o := testing.NewObjectTracker(scheme, codecs.UniversalDecoder())
|
||||
for _, obj := range objects {
|
||||
if err := o.Add(obj); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
cs := &Clientset{tracker: o}
|
||||
cs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake}
|
||||
cs.AddReactor("*", "*", testing.ObjectReaction(o))
|
||||
cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) {
|
||||
gvr := action.GetResource()
|
||||
ns := action.GetNamespace()
|
||||
watch, err := o.Watch(gvr, ns)
|
||||
if err != nil {
|
||||
return false, nil, err
|
||||
}
|
||||
return true, watch, nil
|
||||
})
|
||||
|
||||
return cs
|
||||
}
|
||||
|
||||
// Clientset implements clientset.Interface. Meant to be embedded into a
|
||||
// struct to get a default implementation. This makes faking out just the method
|
||||
// you want to test easier.
|
||||
type Clientset struct {
|
||||
testing.Fake
|
||||
discovery *fakediscovery.FakeDiscovery
|
||||
tracker testing.ObjectTracker
|
||||
}
|
||||
|
||||
func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
||||
return c.discovery
|
||||
}
|
||||
|
||||
func (c *Clientset) Tracker() testing.ObjectTracker {
|
||||
return c.tracker
|
||||
}
|
||||
|
||||
var _ clientset.Interface = &Clientset{}
|
||||
|
||||
// V1V1 retrieves the V1V1Client
|
||||
func (c *Clientset) V1V1() v1v1.V1V1Interface {
|
||||
return &fakev1v1.FakeV1V1{Fake: &c.Fake}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
Copyright The Fission 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.
|
||||
|
||||
// This package has the automatically generated fake clientset.
|
||||
package fake
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
Copyright The Fission 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 (
|
||||
v1v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||
)
|
||||
|
||||
var scheme = runtime.NewScheme()
|
||||
var codecs = serializer.NewCodecFactory(scheme)
|
||||
var parameterCodec = runtime.NewParameterCodec(scheme)
|
||||
var localSchemeBuilder = runtime.SchemeBuilder{
|
||||
v1v1.AddToScheme,
|
||||
}
|
||||
|
||||
// AddToScheme adds all types of this clientset into the given scheme. This allows composition
|
||||
// of clientsets, like in:
|
||||
//
|
||||
// import (
|
||||
// "k8s.io/client-go/kubernetes"
|
||||
// clientsetscheme "k8s.io/client-go/kubernetes/scheme"
|
||||
// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme"
|
||||
// )
|
||||
//
|
||||
// kclientset, _ := kubernetes.NewForConfig(c)
|
||||
// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)
|
||||
//
|
||||
// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types
|
||||
// correctly.
|
||||
var AddToScheme = localSchemeBuilder.AddToScheme
|
||||
|
||||
func init() {
|
||||
v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"})
|
||||
utilruntime.Must(AddToScheme(scheme))
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
Copyright The Fission 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.
|
||||
|
||||
// This package contains the scheme of the automatically generated clientset.
|
||||
package scheme
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
Copyright The Fission 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 scheme
|
||||
|
||||
import (
|
||||
v1v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||
)
|
||||
|
||||
var Scheme = runtime.NewScheme()
|
||||
var Codecs = serializer.NewCodecFactory(Scheme)
|
||||
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
||||
var localSchemeBuilder = runtime.SchemeBuilder{
|
||||
v1v1.AddToScheme,
|
||||
}
|
||||
|
||||
// AddToScheme adds all types of this clientset into the given scheme. This allows composition
|
||||
// of clientsets, like in:
|
||||
//
|
||||
// import (
|
||||
// "k8s.io/client-go/kubernetes"
|
||||
// clientsetscheme "k8s.io/client-go/kubernetes/scheme"
|
||||
// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme"
|
||||
// )
|
||||
//
|
||||
// kclientset, _ := kubernetes.NewForConfig(c)
|
||||
// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)
|
||||
//
|
||||
// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types
|
||||
// correctly.
|
||||
var AddToScheme = localSchemeBuilder.AddToScheme
|
||||
|
||||
func init() {
|
||||
v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"})
|
||||
utilruntime.Must(AddToScheme(Scheme))
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
scheme "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/scheme"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// CanaryConfigsGetter has a method to return a CanaryConfigInterface.
|
||||
// A group's client should implement this interface.
|
||||
type CanaryConfigsGetter interface {
|
||||
CanaryConfigs(namespace string) CanaryConfigInterface
|
||||
}
|
||||
|
||||
// CanaryConfigInterface has methods to work with CanaryConfig resources.
|
||||
type CanaryConfigInterface interface {
|
||||
Create(*v1.CanaryConfig) (*v1.CanaryConfig, error)
|
||||
Update(*v1.CanaryConfig) (*v1.CanaryConfig, error)
|
||||
UpdateStatus(*v1.CanaryConfig) (*v1.CanaryConfig, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(name string, options metav1.GetOptions) (*v1.CanaryConfig, error)
|
||||
List(opts metav1.ListOptions) (*v1.CanaryConfigList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.CanaryConfig, err error)
|
||||
CanaryConfigExpansion
|
||||
}
|
||||
|
||||
// canaryConfigs implements CanaryConfigInterface
|
||||
type canaryConfigs struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newCanaryConfigs returns a CanaryConfigs
|
||||
func newCanaryConfigs(c *V1V1Client, namespace string) *canaryConfigs {
|
||||
return &canaryConfigs{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the _canaryConfig, and returns the corresponding canaryConfig object, and an error if there is any.
|
||||
func (c *canaryConfigs) Get(name string, options metav1.GetOptions) (result *v1.CanaryConfig, err error) {
|
||||
result = &v1.CanaryConfig{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("canaryconfigs").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of CanaryConfigs that match those selectors.
|
||||
func (c *canaryConfigs) List(opts metav1.ListOptions) (result *v1.CanaryConfigList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1.CanaryConfigList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("canaryconfigs").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested canaryConfigs.
|
||||
func (c *canaryConfigs) Watch(opts metav1.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("canaryconfigs").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a _canaryConfig and creates it. Returns the server's representation of the canaryConfig, and an error, if there is any.
|
||||
func (c *canaryConfigs) Create(_canaryConfig *v1.CanaryConfig) (result *v1.CanaryConfig, err error) {
|
||||
result = &v1.CanaryConfig{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("canaryconfigs").
|
||||
Body(_canaryConfig).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a _canaryConfig and updates it. Returns the server's representation of the canaryConfig, and an error, if there is any.
|
||||
func (c *canaryConfigs) Update(_canaryConfig *v1.CanaryConfig) (result *v1.CanaryConfig, err error) {
|
||||
result = &v1.CanaryConfig{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("canaryconfigs").
|
||||
Name(_canaryConfig.Name).
|
||||
Body(_canaryConfig).
|
||||
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 *canaryConfigs) UpdateStatus(_canaryConfig *v1.CanaryConfig) (result *v1.CanaryConfig, err error) {
|
||||
result = &v1.CanaryConfig{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("canaryconfigs").
|
||||
Name(_canaryConfig.Name).
|
||||
SubResource("status").
|
||||
Body(_canaryConfig).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the _canaryConfig and deletes it. Returns an error if one occurs.
|
||||
func (c *canaryConfigs) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("canaryconfigs").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *canaryConfigs) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.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("canaryconfigs").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched canaryConfig.
|
||||
func (c *canaryConfigs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.CanaryConfig, err error) {
|
||||
result = &v1.CanaryConfig{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("canaryconfigs").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
Copyright The Fission 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.
|
||||
|
||||
// This package has the automatically generated typed clients.
|
||||
package v1
|
||||
@@ -0,0 +1,174 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
scheme "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/scheme"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// EnvironmentsGetter has a method to return a EnvironmentInterface.
|
||||
// A group's client should implement this interface.
|
||||
type EnvironmentsGetter interface {
|
||||
Environments(namespace string) EnvironmentInterface
|
||||
}
|
||||
|
||||
// EnvironmentInterface has methods to work with Environment resources.
|
||||
type EnvironmentInterface interface {
|
||||
Create(*v1.Environment) (*v1.Environment, error)
|
||||
Update(*v1.Environment) (*v1.Environment, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(name string, options metav1.GetOptions) (*v1.Environment, error)
|
||||
List(opts metav1.ListOptions) (*v1.EnvironmentList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Environment, err error)
|
||||
EnvironmentExpansion
|
||||
}
|
||||
|
||||
// environments implements EnvironmentInterface
|
||||
type environments struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newEnvironments returns a Environments
|
||||
func newEnvironments(c *V1V1Client, namespace string) *environments {
|
||||
return &environments{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the _environment, and returns the corresponding environment object, and an error if there is any.
|
||||
func (c *environments) Get(name string, options metav1.GetOptions) (result *v1.Environment, err error) {
|
||||
result = &v1.Environment{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("environments").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of Environments that match those selectors.
|
||||
func (c *environments) List(opts metav1.ListOptions) (result *v1.EnvironmentList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1.EnvironmentList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("environments").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested environments.
|
||||
func (c *environments) Watch(opts metav1.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("environments").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a _environment and creates it. Returns the server's representation of the environment, and an error, if there is any.
|
||||
func (c *environments) Create(_environment *v1.Environment) (result *v1.Environment, err error) {
|
||||
result = &v1.Environment{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("environments").
|
||||
Body(_environment).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a _environment and updates it. Returns the server's representation of the environment, and an error, if there is any.
|
||||
func (c *environments) Update(_environment *v1.Environment) (result *v1.Environment, err error) {
|
||||
result = &v1.Environment{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("environments").
|
||||
Name(_environment.Name).
|
||||
Body(_environment).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the _environment and deletes it. Returns an error if one occurs.
|
||||
func (c *environments) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("environments").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *environments) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.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("environments").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched environment.
|
||||
func (c *environments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Environment, err error) {
|
||||
result = &v1.Environment{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("environments").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
Copyright The Fission 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 has the automatically generated clients.
|
||||
package fake
|
||||
+140
@@ -0,0 +1,140 @@
|
||||
/*
|
||||
Copyright The Fission 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 (
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
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"
|
||||
)
|
||||
|
||||
// FakeCanaryConfigs implements CanaryConfigInterface
|
||||
type FakeCanaryConfigs struct {
|
||||
Fake *FakeV1V1
|
||||
ns string
|
||||
}
|
||||
|
||||
var canaryconfigsResource = schema.GroupVersionResource{Group: "fission.io", Version: "v1", Resource: "canaryconfigs"}
|
||||
|
||||
var canaryconfigsKind = schema.GroupVersionKind{Group: "fission.io", Version: "v1", Kind: "CanaryConfig"}
|
||||
|
||||
// Get takes name of the _canaryConfig, and returns the corresponding canaryConfig object, and an error if there is any.
|
||||
func (c *FakeCanaryConfigs) Get(name string, options v1.GetOptions) (result *fissioniov1.CanaryConfig, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewGetAction(canaryconfigsResource, c.ns, name), &fissioniov1.CanaryConfig{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.CanaryConfig), err
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of CanaryConfigs that match those selectors.
|
||||
func (c *FakeCanaryConfigs) List(opts v1.ListOptions) (result *fissioniov1.CanaryConfigList, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewListAction(canaryconfigsResource, canaryconfigsKind, c.ns, opts), &fissioniov1.CanaryConfigList{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||
if label == nil {
|
||||
label = labels.Everything()
|
||||
}
|
||||
list := &fissioniov1.CanaryConfigList{ListMeta: obj.(*fissioniov1.CanaryConfigList).ListMeta}
|
||||
for _, item := range obj.(*fissioniov1.CanaryConfigList).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 canaryConfigs.
|
||||
func (c *FakeCanaryConfigs) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
return c.Fake.
|
||||
InvokesWatch(testing.NewWatchAction(canaryconfigsResource, c.ns, opts))
|
||||
|
||||
}
|
||||
|
||||
// Create takes the representation of a _canaryConfig and creates it. Returns the server's representation of the canaryConfig, and an error, if there is any.
|
||||
func (c *FakeCanaryConfigs) Create(_canaryConfig *fissioniov1.CanaryConfig) (result *fissioniov1.CanaryConfig, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewCreateAction(canaryconfigsResource, c.ns, _canaryConfig), &fissioniov1.CanaryConfig{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.CanaryConfig), err
|
||||
}
|
||||
|
||||
// Update takes the representation of a _canaryConfig and updates it. Returns the server's representation of the canaryConfig, and an error, if there is any.
|
||||
func (c *FakeCanaryConfigs) Update(_canaryConfig *fissioniov1.CanaryConfig) (result *fissioniov1.CanaryConfig, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateAction(canaryconfigsResource, c.ns, _canaryConfig), &fissioniov1.CanaryConfig{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.CanaryConfig), 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 *FakeCanaryConfigs) UpdateStatus(_canaryConfig *fissioniov1.CanaryConfig) (*fissioniov1.CanaryConfig, error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateSubresourceAction(canaryconfigsResource, "status", c.ns, _canaryConfig), &fissioniov1.CanaryConfig{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.CanaryConfig), err
|
||||
}
|
||||
|
||||
// Delete takes name of the _canaryConfig and deletes it. Returns an error if one occurs.
|
||||
func (c *FakeCanaryConfigs) Delete(name string, options *v1.DeleteOptions) error {
|
||||
_, err := c.Fake.
|
||||
Invokes(testing.NewDeleteAction(canaryconfigsResource, c.ns, name), &fissioniov1.CanaryConfig{})
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *FakeCanaryConfigs) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
action := testing.NewDeleteCollectionAction(canaryconfigsResource, c.ns, listOptions)
|
||||
|
||||
_, err := c.Fake.Invokes(action, &fissioniov1.CanaryConfigList{})
|
||||
return err
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched canaryConfig.
|
||||
func (c *FakeCanaryConfigs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *fissioniov1.CanaryConfig, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewPatchSubresourceAction(canaryconfigsResource, c.ns, name, pt, data, subresources...), &fissioniov1.CanaryConfig{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.CanaryConfig), err
|
||||
}
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
Copyright The Fission 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 (
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
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"
|
||||
)
|
||||
|
||||
// FakeEnvironments implements EnvironmentInterface
|
||||
type FakeEnvironments struct {
|
||||
Fake *FakeV1V1
|
||||
ns string
|
||||
}
|
||||
|
||||
var environmentsResource = schema.GroupVersionResource{Group: "fission.io", Version: "v1", Resource: "environments"}
|
||||
|
||||
var environmentsKind = schema.GroupVersionKind{Group: "fission.io", Version: "v1", Kind: "Environment"}
|
||||
|
||||
// Get takes name of the _environment, and returns the corresponding environment object, and an error if there is any.
|
||||
func (c *FakeEnvironments) Get(name string, options v1.GetOptions) (result *fissioniov1.Environment, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewGetAction(environmentsResource, c.ns, name), &fissioniov1.Environment{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Environment), err
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of Environments that match those selectors.
|
||||
func (c *FakeEnvironments) List(opts v1.ListOptions) (result *fissioniov1.EnvironmentList, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewListAction(environmentsResource, environmentsKind, c.ns, opts), &fissioniov1.EnvironmentList{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||
if label == nil {
|
||||
label = labels.Everything()
|
||||
}
|
||||
list := &fissioniov1.EnvironmentList{ListMeta: obj.(*fissioniov1.EnvironmentList).ListMeta}
|
||||
for _, item := range obj.(*fissioniov1.EnvironmentList).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 environments.
|
||||
func (c *FakeEnvironments) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
return c.Fake.
|
||||
InvokesWatch(testing.NewWatchAction(environmentsResource, c.ns, opts))
|
||||
|
||||
}
|
||||
|
||||
// Create takes the representation of a _environment and creates it. Returns the server's representation of the environment, and an error, if there is any.
|
||||
func (c *FakeEnvironments) Create(_environment *fissioniov1.Environment) (result *fissioniov1.Environment, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewCreateAction(environmentsResource, c.ns, _environment), &fissioniov1.Environment{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Environment), err
|
||||
}
|
||||
|
||||
// Update takes the representation of a _environment and updates it. Returns the server's representation of the environment, and an error, if there is any.
|
||||
func (c *FakeEnvironments) Update(_environment *fissioniov1.Environment) (result *fissioniov1.Environment, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateAction(environmentsResource, c.ns, _environment), &fissioniov1.Environment{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Environment), err
|
||||
}
|
||||
|
||||
// Delete takes name of the _environment and deletes it. Returns an error if one occurs.
|
||||
func (c *FakeEnvironments) Delete(name string, options *v1.DeleteOptions) error {
|
||||
_, err := c.Fake.
|
||||
Invokes(testing.NewDeleteAction(environmentsResource, c.ns, name), &fissioniov1.Environment{})
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *FakeEnvironments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
action := testing.NewDeleteCollectionAction(environmentsResource, c.ns, listOptions)
|
||||
|
||||
_, err := c.Fake.Invokes(action, &fissioniov1.EnvironmentList{})
|
||||
return err
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched environment.
|
||||
func (c *FakeEnvironments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *fissioniov1.Environment, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewPatchSubresourceAction(environmentsResource, c.ns, name, pt, data, subresources...), &fissioniov1.Environment{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Environment), err
|
||||
}
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
Copyright The Fission 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 (
|
||||
v1 "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/typed/fission.io/v1"
|
||||
rest "k8s.io/client-go/rest"
|
||||
testing "k8s.io/client-go/testing"
|
||||
)
|
||||
|
||||
type FakeV1V1 struct {
|
||||
*testing.Fake
|
||||
}
|
||||
|
||||
func (c *FakeV1V1) CanaryConfigs(namespace string) v1.CanaryConfigInterface {
|
||||
return &FakeCanaryConfigs{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeV1V1) Environments(namespace string) v1.EnvironmentInterface {
|
||||
return &FakeEnvironments{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeV1V1) Functions(namespace string) v1.FunctionInterface {
|
||||
return &FakeFunctions{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeV1V1) HTTPTriggers(namespace string) v1.HTTPTriggerInterface {
|
||||
return &FakeHTTPTriggers{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeV1V1) KubernetesWatchTriggers(namespace string) v1.KubernetesWatchTriggerInterface {
|
||||
return &FakeKubernetesWatchTriggers{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeV1V1) MessageQueueTriggers(namespace string) v1.MessageQueueTriggerInterface {
|
||||
return &FakeMessageQueueTriggers{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeV1V1) Packages(namespace string) v1.PackageInterface {
|
||||
return &FakePackages{c, namespace}
|
||||
}
|
||||
|
||||
func (c *FakeV1V1) TimeTriggers(namespace string) v1.TimeTriggerInterface {
|
||||
return &FakeTimeTriggers{c, namespace}
|
||||
}
|
||||
|
||||
// RESTClient returns a RESTClient that is used to communicate
|
||||
// with API server by this client implementation.
|
||||
func (c *FakeV1V1) RESTClient() rest.Interface {
|
||||
var ret *rest.RESTClient
|
||||
return ret
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
Copyright The Fission 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 (
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
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"
|
||||
)
|
||||
|
||||
// FakeFunctions implements FunctionInterface
|
||||
type FakeFunctions struct {
|
||||
Fake *FakeV1V1
|
||||
ns string
|
||||
}
|
||||
|
||||
var functionsResource = schema.GroupVersionResource{Group: "fission.io", Version: "v1", Resource: "functions"}
|
||||
|
||||
var functionsKind = schema.GroupVersionKind{Group: "fission.io", Version: "v1", Kind: "Function"}
|
||||
|
||||
// Get takes name of the _function, and returns the corresponding function object, and an error if there is any.
|
||||
func (c *FakeFunctions) Get(name string, options v1.GetOptions) (result *fissioniov1.Function, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewGetAction(functionsResource, c.ns, name), &fissioniov1.Function{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Function), err
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of Functions that match those selectors.
|
||||
func (c *FakeFunctions) List(opts v1.ListOptions) (result *fissioniov1.FunctionList, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewListAction(functionsResource, functionsKind, c.ns, opts), &fissioniov1.FunctionList{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||
if label == nil {
|
||||
label = labels.Everything()
|
||||
}
|
||||
list := &fissioniov1.FunctionList{ListMeta: obj.(*fissioniov1.FunctionList).ListMeta}
|
||||
for _, item := range obj.(*fissioniov1.FunctionList).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 functions.
|
||||
func (c *FakeFunctions) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
return c.Fake.
|
||||
InvokesWatch(testing.NewWatchAction(functionsResource, c.ns, opts))
|
||||
|
||||
}
|
||||
|
||||
// Create takes the representation of a _function and creates it. Returns the server's representation of the function, and an error, if there is any.
|
||||
func (c *FakeFunctions) Create(_function *fissioniov1.Function) (result *fissioniov1.Function, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewCreateAction(functionsResource, c.ns, _function), &fissioniov1.Function{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Function), err
|
||||
}
|
||||
|
||||
// Update takes the representation of a _function and updates it. Returns the server's representation of the function, and an error, if there is any.
|
||||
func (c *FakeFunctions) Update(_function *fissioniov1.Function) (result *fissioniov1.Function, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateAction(functionsResource, c.ns, _function), &fissioniov1.Function{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Function), err
|
||||
}
|
||||
|
||||
// Delete takes name of the _function and deletes it. Returns an error if one occurs.
|
||||
func (c *FakeFunctions) Delete(name string, options *v1.DeleteOptions) error {
|
||||
_, err := c.Fake.
|
||||
Invokes(testing.NewDeleteAction(functionsResource, c.ns, name), &fissioniov1.Function{})
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *FakeFunctions) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
action := testing.NewDeleteCollectionAction(functionsResource, c.ns, listOptions)
|
||||
|
||||
_, err := c.Fake.Invokes(action, &fissioniov1.FunctionList{})
|
||||
return err
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched function.
|
||||
func (c *FakeFunctions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *fissioniov1.Function, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewPatchSubresourceAction(functionsResource, c.ns, name, pt, data, subresources...), &fissioniov1.Function{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Function), err
|
||||
}
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
Copyright The Fission 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 (
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
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"
|
||||
)
|
||||
|
||||
// FakeHTTPTriggers implements HTTPTriggerInterface
|
||||
type FakeHTTPTriggers struct {
|
||||
Fake *FakeV1V1
|
||||
ns string
|
||||
}
|
||||
|
||||
var httptriggersResource = schema.GroupVersionResource{Group: "fission.io", Version: "v1", Resource: "httptriggers"}
|
||||
|
||||
var httptriggersKind = schema.GroupVersionKind{Group: "fission.io", Version: "v1", Kind: "HTTPTrigger"}
|
||||
|
||||
// Get takes name of the _hTTPTrigger, and returns the corresponding hTTPTrigger object, and an error if there is any.
|
||||
func (c *FakeHTTPTriggers) Get(name string, options v1.GetOptions) (result *fissioniov1.HTTPTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewGetAction(httptriggersResource, c.ns, name), &fissioniov1.HTTPTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.HTTPTrigger), err
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of HTTPTriggers that match those selectors.
|
||||
func (c *FakeHTTPTriggers) List(opts v1.ListOptions) (result *fissioniov1.HTTPTriggerList, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewListAction(httptriggersResource, httptriggersKind, c.ns, opts), &fissioniov1.HTTPTriggerList{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||
if label == nil {
|
||||
label = labels.Everything()
|
||||
}
|
||||
list := &fissioniov1.HTTPTriggerList{ListMeta: obj.(*fissioniov1.HTTPTriggerList).ListMeta}
|
||||
for _, item := range obj.(*fissioniov1.HTTPTriggerList).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 hTTPTriggers.
|
||||
func (c *FakeHTTPTriggers) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
return c.Fake.
|
||||
InvokesWatch(testing.NewWatchAction(httptriggersResource, c.ns, opts))
|
||||
|
||||
}
|
||||
|
||||
// Create takes the representation of a _hTTPTrigger and creates it. Returns the server's representation of the hTTPTrigger, and an error, if there is any.
|
||||
func (c *FakeHTTPTriggers) Create(_hTTPTrigger *fissioniov1.HTTPTrigger) (result *fissioniov1.HTTPTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewCreateAction(httptriggersResource, c.ns, _hTTPTrigger), &fissioniov1.HTTPTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.HTTPTrigger), err
|
||||
}
|
||||
|
||||
// Update takes the representation of a _hTTPTrigger and updates it. Returns the server's representation of the hTTPTrigger, and an error, if there is any.
|
||||
func (c *FakeHTTPTriggers) Update(_hTTPTrigger *fissioniov1.HTTPTrigger) (result *fissioniov1.HTTPTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateAction(httptriggersResource, c.ns, _hTTPTrigger), &fissioniov1.HTTPTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.HTTPTrigger), err
|
||||
}
|
||||
|
||||
// Delete takes name of the _hTTPTrigger and deletes it. Returns an error if one occurs.
|
||||
func (c *FakeHTTPTriggers) Delete(name string, options *v1.DeleteOptions) error {
|
||||
_, err := c.Fake.
|
||||
Invokes(testing.NewDeleteAction(httptriggersResource, c.ns, name), &fissioniov1.HTTPTrigger{})
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *FakeHTTPTriggers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
action := testing.NewDeleteCollectionAction(httptriggersResource, c.ns, listOptions)
|
||||
|
||||
_, err := c.Fake.Invokes(action, &fissioniov1.HTTPTriggerList{})
|
||||
return err
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched hTTPTrigger.
|
||||
func (c *FakeHTTPTriggers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *fissioniov1.HTTPTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewPatchSubresourceAction(httptriggersResource, c.ns, name, pt, data, subresources...), &fissioniov1.HTTPTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.HTTPTrigger), err
|
||||
}
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
Copyright The Fission 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 (
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
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"
|
||||
)
|
||||
|
||||
// FakeKubernetesWatchTriggers implements KubernetesWatchTriggerInterface
|
||||
type FakeKubernetesWatchTriggers struct {
|
||||
Fake *FakeV1V1
|
||||
ns string
|
||||
}
|
||||
|
||||
var kuberneteswatchtriggersResource = schema.GroupVersionResource{Group: "fission.io", Version: "v1", Resource: "kuberneteswatchtriggers"}
|
||||
|
||||
var kuberneteswatchtriggersKind = schema.GroupVersionKind{Group: "fission.io", Version: "v1", Kind: "KubernetesWatchTrigger"}
|
||||
|
||||
// Get takes name of the _kubernetesWatchTrigger, and returns the corresponding kubernetesWatchTrigger object, and an error if there is any.
|
||||
func (c *FakeKubernetesWatchTriggers) Get(name string, options v1.GetOptions) (result *fissioniov1.KubernetesWatchTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewGetAction(kuberneteswatchtriggersResource, c.ns, name), &fissioniov1.KubernetesWatchTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.KubernetesWatchTrigger), err
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of KubernetesWatchTriggers that match those selectors.
|
||||
func (c *FakeKubernetesWatchTriggers) List(opts v1.ListOptions) (result *fissioniov1.KubernetesWatchTriggerList, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewListAction(kuberneteswatchtriggersResource, kuberneteswatchtriggersKind, c.ns, opts), &fissioniov1.KubernetesWatchTriggerList{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||
if label == nil {
|
||||
label = labels.Everything()
|
||||
}
|
||||
list := &fissioniov1.KubernetesWatchTriggerList{ListMeta: obj.(*fissioniov1.KubernetesWatchTriggerList).ListMeta}
|
||||
for _, item := range obj.(*fissioniov1.KubernetesWatchTriggerList).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 kubernetesWatchTriggers.
|
||||
func (c *FakeKubernetesWatchTriggers) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
return c.Fake.
|
||||
InvokesWatch(testing.NewWatchAction(kuberneteswatchtriggersResource, c.ns, opts))
|
||||
|
||||
}
|
||||
|
||||
// Create takes the representation of a _kubernetesWatchTrigger and creates it. Returns the server's representation of the kubernetesWatchTrigger, and an error, if there is any.
|
||||
func (c *FakeKubernetesWatchTriggers) Create(_kubernetesWatchTrigger *fissioniov1.KubernetesWatchTrigger) (result *fissioniov1.KubernetesWatchTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewCreateAction(kuberneteswatchtriggersResource, c.ns, _kubernetesWatchTrigger), &fissioniov1.KubernetesWatchTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.KubernetesWatchTrigger), err
|
||||
}
|
||||
|
||||
// Update takes the representation of a _kubernetesWatchTrigger and updates it. Returns the server's representation of the kubernetesWatchTrigger, and an error, if there is any.
|
||||
func (c *FakeKubernetesWatchTriggers) Update(_kubernetesWatchTrigger *fissioniov1.KubernetesWatchTrigger) (result *fissioniov1.KubernetesWatchTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateAction(kuberneteswatchtriggersResource, c.ns, _kubernetesWatchTrigger), &fissioniov1.KubernetesWatchTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.KubernetesWatchTrigger), err
|
||||
}
|
||||
|
||||
// Delete takes name of the _kubernetesWatchTrigger and deletes it. Returns an error if one occurs.
|
||||
func (c *FakeKubernetesWatchTriggers) Delete(name string, options *v1.DeleteOptions) error {
|
||||
_, err := c.Fake.
|
||||
Invokes(testing.NewDeleteAction(kuberneteswatchtriggersResource, c.ns, name), &fissioniov1.KubernetesWatchTrigger{})
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *FakeKubernetesWatchTriggers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
action := testing.NewDeleteCollectionAction(kuberneteswatchtriggersResource, c.ns, listOptions)
|
||||
|
||||
_, err := c.Fake.Invokes(action, &fissioniov1.KubernetesWatchTriggerList{})
|
||||
return err
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched kubernetesWatchTrigger.
|
||||
func (c *FakeKubernetesWatchTriggers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *fissioniov1.KubernetesWatchTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewPatchSubresourceAction(kuberneteswatchtriggersResource, c.ns, name, pt, data, subresources...), &fissioniov1.KubernetesWatchTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.KubernetesWatchTrigger), err
|
||||
}
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
Copyright The Fission 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 (
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
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"
|
||||
)
|
||||
|
||||
// FakeMessageQueueTriggers implements MessageQueueTriggerInterface
|
||||
type FakeMessageQueueTriggers struct {
|
||||
Fake *FakeV1V1
|
||||
ns string
|
||||
}
|
||||
|
||||
var messagequeuetriggersResource = schema.GroupVersionResource{Group: "fission.io", Version: "v1", Resource: "messagequeuetriggers"}
|
||||
|
||||
var messagequeuetriggersKind = schema.GroupVersionKind{Group: "fission.io", Version: "v1", Kind: "MessageQueueTrigger"}
|
||||
|
||||
// Get takes name of the _messageQueueTrigger, and returns the corresponding messageQueueTrigger object, and an error if there is any.
|
||||
func (c *FakeMessageQueueTriggers) Get(name string, options v1.GetOptions) (result *fissioniov1.MessageQueueTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewGetAction(messagequeuetriggersResource, c.ns, name), &fissioniov1.MessageQueueTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.MessageQueueTrigger), err
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of MessageQueueTriggers that match those selectors.
|
||||
func (c *FakeMessageQueueTriggers) List(opts v1.ListOptions) (result *fissioniov1.MessageQueueTriggerList, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewListAction(messagequeuetriggersResource, messagequeuetriggersKind, c.ns, opts), &fissioniov1.MessageQueueTriggerList{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||
if label == nil {
|
||||
label = labels.Everything()
|
||||
}
|
||||
list := &fissioniov1.MessageQueueTriggerList{ListMeta: obj.(*fissioniov1.MessageQueueTriggerList).ListMeta}
|
||||
for _, item := range obj.(*fissioniov1.MessageQueueTriggerList).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 messageQueueTriggers.
|
||||
func (c *FakeMessageQueueTriggers) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
return c.Fake.
|
||||
InvokesWatch(testing.NewWatchAction(messagequeuetriggersResource, c.ns, opts))
|
||||
|
||||
}
|
||||
|
||||
// Create takes the representation of a _messageQueueTrigger and creates it. Returns the server's representation of the messageQueueTrigger, and an error, if there is any.
|
||||
func (c *FakeMessageQueueTriggers) Create(_messageQueueTrigger *fissioniov1.MessageQueueTrigger) (result *fissioniov1.MessageQueueTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewCreateAction(messagequeuetriggersResource, c.ns, _messageQueueTrigger), &fissioniov1.MessageQueueTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.MessageQueueTrigger), err
|
||||
}
|
||||
|
||||
// Update takes the representation of a _messageQueueTrigger and updates it. Returns the server's representation of the messageQueueTrigger, and an error, if there is any.
|
||||
func (c *FakeMessageQueueTriggers) Update(_messageQueueTrigger *fissioniov1.MessageQueueTrigger) (result *fissioniov1.MessageQueueTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateAction(messagequeuetriggersResource, c.ns, _messageQueueTrigger), &fissioniov1.MessageQueueTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.MessageQueueTrigger), err
|
||||
}
|
||||
|
||||
// Delete takes name of the _messageQueueTrigger and deletes it. Returns an error if one occurs.
|
||||
func (c *FakeMessageQueueTriggers) Delete(name string, options *v1.DeleteOptions) error {
|
||||
_, err := c.Fake.
|
||||
Invokes(testing.NewDeleteAction(messagequeuetriggersResource, c.ns, name), &fissioniov1.MessageQueueTrigger{})
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *FakeMessageQueueTriggers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
action := testing.NewDeleteCollectionAction(messagequeuetriggersResource, c.ns, listOptions)
|
||||
|
||||
_, err := c.Fake.Invokes(action, &fissioniov1.MessageQueueTriggerList{})
|
||||
return err
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched messageQueueTrigger.
|
||||
func (c *FakeMessageQueueTriggers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *fissioniov1.MessageQueueTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewPatchSubresourceAction(messagequeuetriggersResource, c.ns, name, pt, data, subresources...), &fissioniov1.MessageQueueTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.MessageQueueTrigger), err
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
/*
|
||||
Copyright The Fission 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 (
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
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"
|
||||
)
|
||||
|
||||
// FakePackages implements PackageInterface
|
||||
type FakePackages struct {
|
||||
Fake *FakeV1V1
|
||||
ns string
|
||||
}
|
||||
|
||||
var packagesResource = schema.GroupVersionResource{Group: "fission.io", Version: "v1", Resource: "packages"}
|
||||
|
||||
var packagesKind = schema.GroupVersionKind{Group: "fission.io", Version: "v1", Kind: "Package"}
|
||||
|
||||
// Get takes name of the _package, and returns the corresponding package object, and an error if there is any.
|
||||
func (c *FakePackages) Get(name string, options v1.GetOptions) (result *fissioniov1.Package, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewGetAction(packagesResource, c.ns, name), &fissioniov1.Package{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Package), err
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of Packages that match those selectors.
|
||||
func (c *FakePackages) List(opts v1.ListOptions) (result *fissioniov1.PackageList, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewListAction(packagesResource, packagesKind, c.ns, opts), &fissioniov1.PackageList{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||
if label == nil {
|
||||
label = labels.Everything()
|
||||
}
|
||||
list := &fissioniov1.PackageList{ListMeta: obj.(*fissioniov1.PackageList).ListMeta}
|
||||
for _, item := range obj.(*fissioniov1.PackageList).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 packages.
|
||||
func (c *FakePackages) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
return c.Fake.
|
||||
InvokesWatch(testing.NewWatchAction(packagesResource, c.ns, opts))
|
||||
|
||||
}
|
||||
|
||||
// Create takes the representation of a _package and creates it. Returns the server's representation of the package, and an error, if there is any.
|
||||
func (c *FakePackages) Create(_package *fissioniov1.Package) (result *fissioniov1.Package, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewCreateAction(packagesResource, c.ns, _package), &fissioniov1.Package{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Package), err
|
||||
}
|
||||
|
||||
// Update takes the representation of a _package and updates it. Returns the server's representation of the package, and an error, if there is any.
|
||||
func (c *FakePackages) Update(_package *fissioniov1.Package) (result *fissioniov1.Package, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateAction(packagesResource, c.ns, _package), &fissioniov1.Package{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Package), 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 *FakePackages) UpdateStatus(_package *fissioniov1.Package) (*fissioniov1.Package, error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateSubresourceAction(packagesResource, "status", c.ns, _package), &fissioniov1.Package{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Package), err
|
||||
}
|
||||
|
||||
// Delete takes name of the _package and deletes it. Returns an error if one occurs.
|
||||
func (c *FakePackages) Delete(name string, options *v1.DeleteOptions) error {
|
||||
_, err := c.Fake.
|
||||
Invokes(testing.NewDeleteAction(packagesResource, c.ns, name), &fissioniov1.Package{})
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *FakePackages) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
action := testing.NewDeleteCollectionAction(packagesResource, c.ns, listOptions)
|
||||
|
||||
_, err := c.Fake.Invokes(action, &fissioniov1.PackageList{})
|
||||
return err
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched package.
|
||||
func (c *FakePackages) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *fissioniov1.Package, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewPatchSubresourceAction(packagesResource, c.ns, name, pt, data, subresources...), &fissioniov1.Package{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.Package), err
|
||||
}
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
Copyright The Fission 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 (
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
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"
|
||||
)
|
||||
|
||||
// FakeTimeTriggers implements TimeTriggerInterface
|
||||
type FakeTimeTriggers struct {
|
||||
Fake *FakeV1V1
|
||||
ns string
|
||||
}
|
||||
|
||||
var timetriggersResource = schema.GroupVersionResource{Group: "fission.io", Version: "v1", Resource: "timetriggers"}
|
||||
|
||||
var timetriggersKind = schema.GroupVersionKind{Group: "fission.io", Version: "v1", Kind: "TimeTrigger"}
|
||||
|
||||
// Get takes name of the _timeTrigger, and returns the corresponding timeTrigger object, and an error if there is any.
|
||||
func (c *FakeTimeTriggers) Get(name string, options v1.GetOptions) (result *fissioniov1.TimeTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewGetAction(timetriggersResource, c.ns, name), &fissioniov1.TimeTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.TimeTrigger), err
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of TimeTriggers that match those selectors.
|
||||
func (c *FakeTimeTriggers) List(opts v1.ListOptions) (result *fissioniov1.TimeTriggerList, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewListAction(timetriggersResource, timetriggersKind, c.ns, opts), &fissioniov1.TimeTriggerList{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||
if label == nil {
|
||||
label = labels.Everything()
|
||||
}
|
||||
list := &fissioniov1.TimeTriggerList{ListMeta: obj.(*fissioniov1.TimeTriggerList).ListMeta}
|
||||
for _, item := range obj.(*fissioniov1.TimeTriggerList).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 timeTriggers.
|
||||
func (c *FakeTimeTriggers) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||
return c.Fake.
|
||||
InvokesWatch(testing.NewWatchAction(timetriggersResource, c.ns, opts))
|
||||
|
||||
}
|
||||
|
||||
// Create takes the representation of a _timeTrigger and creates it. Returns the server's representation of the timeTrigger, and an error, if there is any.
|
||||
func (c *FakeTimeTriggers) Create(_timeTrigger *fissioniov1.TimeTrigger) (result *fissioniov1.TimeTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewCreateAction(timetriggersResource, c.ns, _timeTrigger), &fissioniov1.TimeTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.TimeTrigger), err
|
||||
}
|
||||
|
||||
// Update takes the representation of a _timeTrigger and updates it. Returns the server's representation of the timeTrigger, and an error, if there is any.
|
||||
func (c *FakeTimeTriggers) Update(_timeTrigger *fissioniov1.TimeTrigger) (result *fissioniov1.TimeTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateAction(timetriggersResource, c.ns, _timeTrigger), &fissioniov1.TimeTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.TimeTrigger), err
|
||||
}
|
||||
|
||||
// Delete takes name of the _timeTrigger and deletes it. Returns an error if one occurs.
|
||||
func (c *FakeTimeTriggers) Delete(name string, options *v1.DeleteOptions) error {
|
||||
_, err := c.Fake.
|
||||
Invokes(testing.NewDeleteAction(timetriggersResource, c.ns, name), &fissioniov1.TimeTrigger{})
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *FakeTimeTriggers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||
action := testing.NewDeleteCollectionAction(timetriggersResource, c.ns, listOptions)
|
||||
|
||||
_, err := c.Fake.Invokes(action, &fissioniov1.TimeTriggerList{})
|
||||
return err
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched timeTrigger.
|
||||
func (c *FakeTimeTriggers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *fissioniov1.TimeTrigger, err error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewPatchSubresourceAction(timetriggersResource, c.ns, name, pt, data, subresources...), &fissioniov1.TimeTrigger{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*fissioniov1.TimeTrigger), err
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
"github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/scheme"
|
||||
rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
type V1V1Interface interface {
|
||||
RESTClient() rest.Interface
|
||||
CanaryConfigsGetter
|
||||
EnvironmentsGetter
|
||||
FunctionsGetter
|
||||
HTTPTriggersGetter
|
||||
KubernetesWatchTriggersGetter
|
||||
MessageQueueTriggersGetter
|
||||
PackagesGetter
|
||||
TimeTriggersGetter
|
||||
}
|
||||
|
||||
// V1V1Client is used to interact with features provided by the fission.io group.
|
||||
type V1V1Client struct {
|
||||
restClient rest.Interface
|
||||
}
|
||||
|
||||
func (c *V1V1Client) CanaryConfigs(namespace string) CanaryConfigInterface {
|
||||
return newCanaryConfigs(c, namespace)
|
||||
}
|
||||
|
||||
func (c *V1V1Client) Environments(namespace string) EnvironmentInterface {
|
||||
return newEnvironments(c, namespace)
|
||||
}
|
||||
|
||||
func (c *V1V1Client) Functions(namespace string) FunctionInterface {
|
||||
return newFunctions(c, namespace)
|
||||
}
|
||||
|
||||
func (c *V1V1Client) HTTPTriggers(namespace string) HTTPTriggerInterface {
|
||||
return newHTTPTriggers(c, namespace)
|
||||
}
|
||||
|
||||
func (c *V1V1Client) KubernetesWatchTriggers(namespace string) KubernetesWatchTriggerInterface {
|
||||
return newKubernetesWatchTriggers(c, namespace)
|
||||
}
|
||||
|
||||
func (c *V1V1Client) MessageQueueTriggers(namespace string) MessageQueueTriggerInterface {
|
||||
return newMessageQueueTriggers(c, namespace)
|
||||
}
|
||||
|
||||
func (c *V1V1Client) Packages(namespace string) PackageInterface {
|
||||
return newPackages(c, namespace)
|
||||
}
|
||||
|
||||
func (c *V1V1Client) TimeTriggers(namespace string) TimeTriggerInterface {
|
||||
return newTimeTriggers(c, namespace)
|
||||
}
|
||||
|
||||
// NewForConfig creates a new V1V1Client for the given config.
|
||||
func NewForConfig(c *rest.Config) (*V1V1Client, error) {
|
||||
config := *c
|
||||
if err := setConfigDefaults(&config); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
client, err := rest.RESTClientFor(&config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &V1V1Client{client}, nil
|
||||
}
|
||||
|
||||
// NewForConfigOrDie creates a new V1V1Client for the given config and
|
||||
// panics if there is an error in the config.
|
||||
func NewForConfigOrDie(c *rest.Config) *V1V1Client {
|
||||
client, err := NewForConfig(c)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return client
|
||||
}
|
||||
|
||||
// New creates a new V1V1Client for the given RESTClient.
|
||||
func New(c rest.Interface) *V1V1Client {
|
||||
return &V1V1Client{c}
|
||||
}
|
||||
|
||||
func setConfigDefaults(config *rest.Config) error {
|
||||
gv := v1.SchemeGroupVersion
|
||||
config.GroupVersion = &gv
|
||||
config.APIPath = "/apis"
|
||||
config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
|
||||
|
||||
if config.UserAgent == "" {
|
||||
config.UserAgent = rest.DefaultKubernetesUserAgent()
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// RESTClient returns a RESTClient that is used to communicate
|
||||
// with API server by this client implementation.
|
||||
func (c *V1V1Client) RESTClient() rest.Interface {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
return c.restClient
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
scheme "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/scheme"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// FunctionsGetter has a method to return a FunctionInterface.
|
||||
// A group's client should implement this interface.
|
||||
type FunctionsGetter interface {
|
||||
Functions(namespace string) FunctionInterface
|
||||
}
|
||||
|
||||
// FunctionInterface has methods to work with Function resources.
|
||||
type FunctionInterface interface {
|
||||
Create(*v1.Function) (*v1.Function, error)
|
||||
Update(*v1.Function) (*v1.Function, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(name string, options metav1.GetOptions) (*v1.Function, error)
|
||||
List(opts metav1.ListOptions) (*v1.FunctionList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Function, err error)
|
||||
FunctionExpansion
|
||||
}
|
||||
|
||||
// functions implements FunctionInterface
|
||||
type functions struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newFunctions returns a Functions
|
||||
func newFunctions(c *V1V1Client, namespace string) *functions {
|
||||
return &functions{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the _function, and returns the corresponding function object, and an error if there is any.
|
||||
func (c *functions) Get(name string, options metav1.GetOptions) (result *v1.Function, err error) {
|
||||
result = &v1.Function{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("functions").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of Functions that match those selectors.
|
||||
func (c *functions) List(opts metav1.ListOptions) (result *v1.FunctionList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1.FunctionList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("functions").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested functions.
|
||||
func (c *functions) Watch(opts metav1.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("functions").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a _function and creates it. Returns the server's representation of the function, and an error, if there is any.
|
||||
func (c *functions) Create(_function *v1.Function) (result *v1.Function, err error) {
|
||||
result = &v1.Function{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("functions").
|
||||
Body(_function).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a _function and updates it. Returns the server's representation of the function, and an error, if there is any.
|
||||
func (c *functions) Update(_function *v1.Function) (result *v1.Function, err error) {
|
||||
result = &v1.Function{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("functions").
|
||||
Name(_function.Name).
|
||||
Body(_function).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the _function and deletes it. Returns an error if one occurs.
|
||||
func (c *functions) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("functions").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *functions) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.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("functions").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched function.
|
||||
func (c *functions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Function, err error) {
|
||||
result = &v1.Function{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("functions").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
type CanaryConfigExpansion interface{}
|
||||
|
||||
type EnvironmentExpansion interface{}
|
||||
|
||||
type FunctionExpansion interface{}
|
||||
|
||||
type HTTPTriggerExpansion interface{}
|
||||
|
||||
type KubernetesWatchTriggerExpansion interface{}
|
||||
|
||||
type MessageQueueTriggerExpansion interface{}
|
||||
|
||||
type PackageExpansion interface{}
|
||||
|
||||
type TimeTriggerExpansion interface{}
|
||||
@@ -0,0 +1,174 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
scheme "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/scheme"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// HTTPTriggersGetter has a method to return a HTTPTriggerInterface.
|
||||
// A group's client should implement this interface.
|
||||
type HTTPTriggersGetter interface {
|
||||
HTTPTriggers(namespace string) HTTPTriggerInterface
|
||||
}
|
||||
|
||||
// HTTPTriggerInterface has methods to work with HTTPTrigger resources.
|
||||
type HTTPTriggerInterface interface {
|
||||
Create(*v1.HTTPTrigger) (*v1.HTTPTrigger, error)
|
||||
Update(*v1.HTTPTrigger) (*v1.HTTPTrigger, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(name string, options metav1.GetOptions) (*v1.HTTPTrigger, error)
|
||||
List(opts metav1.ListOptions) (*v1.HTTPTriggerList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.HTTPTrigger, err error)
|
||||
HTTPTriggerExpansion
|
||||
}
|
||||
|
||||
// hTTPTriggers implements HTTPTriggerInterface
|
||||
type hTTPTriggers struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newHTTPTriggers returns a HTTPTriggers
|
||||
func newHTTPTriggers(c *V1V1Client, namespace string) *hTTPTriggers {
|
||||
return &hTTPTriggers{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the _hTTPTrigger, and returns the corresponding hTTPTrigger object, and an error if there is any.
|
||||
func (c *hTTPTriggers) Get(name string, options metav1.GetOptions) (result *v1.HTTPTrigger, err error) {
|
||||
result = &v1.HTTPTrigger{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("httptriggers").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of HTTPTriggers that match those selectors.
|
||||
func (c *hTTPTriggers) List(opts metav1.ListOptions) (result *v1.HTTPTriggerList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1.HTTPTriggerList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("httptriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested hTTPTriggers.
|
||||
func (c *hTTPTriggers) Watch(opts metav1.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("httptriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a _hTTPTrigger and creates it. Returns the server's representation of the hTTPTrigger, and an error, if there is any.
|
||||
func (c *hTTPTriggers) Create(_hTTPTrigger *v1.HTTPTrigger) (result *v1.HTTPTrigger, err error) {
|
||||
result = &v1.HTTPTrigger{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("httptriggers").
|
||||
Body(_hTTPTrigger).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a _hTTPTrigger and updates it. Returns the server's representation of the hTTPTrigger, and an error, if there is any.
|
||||
func (c *hTTPTriggers) Update(_hTTPTrigger *v1.HTTPTrigger) (result *v1.HTTPTrigger, err error) {
|
||||
result = &v1.HTTPTrigger{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("httptriggers").
|
||||
Name(_hTTPTrigger.Name).
|
||||
Body(_hTTPTrigger).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the _hTTPTrigger and deletes it. Returns an error if one occurs.
|
||||
func (c *hTTPTriggers) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("httptriggers").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *hTTPTriggers) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.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("httptriggers").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched hTTPTrigger.
|
||||
func (c *hTTPTriggers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.HTTPTrigger, err error) {
|
||||
result = &v1.HTTPTrigger{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("httptriggers").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
+174
@@ -0,0 +1,174 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
scheme "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/scheme"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// KubernetesWatchTriggersGetter has a method to return a KubernetesWatchTriggerInterface.
|
||||
// A group's client should implement this interface.
|
||||
type KubernetesWatchTriggersGetter interface {
|
||||
KubernetesWatchTriggers(namespace string) KubernetesWatchTriggerInterface
|
||||
}
|
||||
|
||||
// KubernetesWatchTriggerInterface has methods to work with KubernetesWatchTrigger resources.
|
||||
type KubernetesWatchTriggerInterface interface {
|
||||
Create(*v1.KubernetesWatchTrigger) (*v1.KubernetesWatchTrigger, error)
|
||||
Update(*v1.KubernetesWatchTrigger) (*v1.KubernetesWatchTrigger, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(name string, options metav1.GetOptions) (*v1.KubernetesWatchTrigger, error)
|
||||
List(opts metav1.ListOptions) (*v1.KubernetesWatchTriggerList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.KubernetesWatchTrigger, err error)
|
||||
KubernetesWatchTriggerExpansion
|
||||
}
|
||||
|
||||
// kubernetesWatchTriggers implements KubernetesWatchTriggerInterface
|
||||
type kubernetesWatchTriggers struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newKubernetesWatchTriggers returns a KubernetesWatchTriggers
|
||||
func newKubernetesWatchTriggers(c *V1V1Client, namespace string) *kubernetesWatchTriggers {
|
||||
return &kubernetesWatchTriggers{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the _kubernetesWatchTrigger, and returns the corresponding kubernetesWatchTrigger object, and an error if there is any.
|
||||
func (c *kubernetesWatchTriggers) Get(name string, options metav1.GetOptions) (result *v1.KubernetesWatchTrigger, err error) {
|
||||
result = &v1.KubernetesWatchTrigger{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("kuberneteswatchtriggers").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of KubernetesWatchTriggers that match those selectors.
|
||||
func (c *kubernetesWatchTriggers) List(opts metav1.ListOptions) (result *v1.KubernetesWatchTriggerList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1.KubernetesWatchTriggerList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("kuberneteswatchtriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested kubernetesWatchTriggers.
|
||||
func (c *kubernetesWatchTriggers) Watch(opts metav1.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("kuberneteswatchtriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a _kubernetesWatchTrigger and creates it. Returns the server's representation of the kubernetesWatchTrigger, and an error, if there is any.
|
||||
func (c *kubernetesWatchTriggers) Create(_kubernetesWatchTrigger *v1.KubernetesWatchTrigger) (result *v1.KubernetesWatchTrigger, err error) {
|
||||
result = &v1.KubernetesWatchTrigger{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("kuberneteswatchtriggers").
|
||||
Body(_kubernetesWatchTrigger).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a _kubernetesWatchTrigger and updates it. Returns the server's representation of the kubernetesWatchTrigger, and an error, if there is any.
|
||||
func (c *kubernetesWatchTriggers) Update(_kubernetesWatchTrigger *v1.KubernetesWatchTrigger) (result *v1.KubernetesWatchTrigger, err error) {
|
||||
result = &v1.KubernetesWatchTrigger{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("kuberneteswatchtriggers").
|
||||
Name(_kubernetesWatchTrigger.Name).
|
||||
Body(_kubernetesWatchTrigger).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the _kubernetesWatchTrigger and deletes it. Returns an error if one occurs.
|
||||
func (c *kubernetesWatchTriggers) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("kuberneteswatchtriggers").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *kubernetesWatchTriggers) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.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("kuberneteswatchtriggers").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched kubernetesWatchTrigger.
|
||||
func (c *kubernetesWatchTriggers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.KubernetesWatchTrigger, err error) {
|
||||
result = &v1.KubernetesWatchTrigger{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("kuberneteswatchtriggers").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
scheme "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/scheme"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// MessageQueueTriggersGetter has a method to return a MessageQueueTriggerInterface.
|
||||
// A group's client should implement this interface.
|
||||
type MessageQueueTriggersGetter interface {
|
||||
MessageQueueTriggers(namespace string) MessageQueueTriggerInterface
|
||||
}
|
||||
|
||||
// MessageQueueTriggerInterface has methods to work with MessageQueueTrigger resources.
|
||||
type MessageQueueTriggerInterface interface {
|
||||
Create(*v1.MessageQueueTrigger) (*v1.MessageQueueTrigger, error)
|
||||
Update(*v1.MessageQueueTrigger) (*v1.MessageQueueTrigger, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(name string, options metav1.GetOptions) (*v1.MessageQueueTrigger, error)
|
||||
List(opts metav1.ListOptions) (*v1.MessageQueueTriggerList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.MessageQueueTrigger, err error)
|
||||
MessageQueueTriggerExpansion
|
||||
}
|
||||
|
||||
// messageQueueTriggers implements MessageQueueTriggerInterface
|
||||
type messageQueueTriggers struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newMessageQueueTriggers returns a MessageQueueTriggers
|
||||
func newMessageQueueTriggers(c *V1V1Client, namespace string) *messageQueueTriggers {
|
||||
return &messageQueueTriggers{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the _messageQueueTrigger, and returns the corresponding messageQueueTrigger object, and an error if there is any.
|
||||
func (c *messageQueueTriggers) Get(name string, options metav1.GetOptions) (result *v1.MessageQueueTrigger, err error) {
|
||||
result = &v1.MessageQueueTrigger{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("messagequeuetriggers").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of MessageQueueTriggers that match those selectors.
|
||||
func (c *messageQueueTriggers) List(opts metav1.ListOptions) (result *v1.MessageQueueTriggerList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1.MessageQueueTriggerList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("messagequeuetriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested messageQueueTriggers.
|
||||
func (c *messageQueueTriggers) Watch(opts metav1.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("messagequeuetriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a _messageQueueTrigger and creates it. Returns the server's representation of the messageQueueTrigger, and an error, if there is any.
|
||||
func (c *messageQueueTriggers) Create(_messageQueueTrigger *v1.MessageQueueTrigger) (result *v1.MessageQueueTrigger, err error) {
|
||||
result = &v1.MessageQueueTrigger{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("messagequeuetriggers").
|
||||
Body(_messageQueueTrigger).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a _messageQueueTrigger and updates it. Returns the server's representation of the messageQueueTrigger, and an error, if there is any.
|
||||
func (c *messageQueueTriggers) Update(_messageQueueTrigger *v1.MessageQueueTrigger) (result *v1.MessageQueueTrigger, err error) {
|
||||
result = &v1.MessageQueueTrigger{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("messagequeuetriggers").
|
||||
Name(_messageQueueTrigger.Name).
|
||||
Body(_messageQueueTrigger).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the _messageQueueTrigger and deletes it. Returns an error if one occurs.
|
||||
func (c *messageQueueTriggers) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("messagequeuetriggers").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *messageQueueTriggers) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.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("messagequeuetriggers").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched messageQueueTrigger.
|
||||
func (c *messageQueueTriggers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.MessageQueueTrigger, err error) {
|
||||
result = &v1.MessageQueueTrigger{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("messagequeuetriggers").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
scheme "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/scheme"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// PackagesGetter has a method to return a PackageInterface.
|
||||
// A group's client should implement this interface.
|
||||
type PackagesGetter interface {
|
||||
Packages(namespace string) PackageInterface
|
||||
}
|
||||
|
||||
// PackageInterface has methods to work with Package resources.
|
||||
type PackageInterface interface {
|
||||
Create(*v1.Package) (*v1.Package, error)
|
||||
Update(*v1.Package) (*v1.Package, error)
|
||||
UpdateStatus(*v1.Package) (*v1.Package, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(name string, options metav1.GetOptions) (*v1.Package, error)
|
||||
List(opts metav1.ListOptions) (*v1.PackageList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Package, err error)
|
||||
PackageExpansion
|
||||
}
|
||||
|
||||
// packages implements PackageInterface
|
||||
type packages struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newPackages returns a Packages
|
||||
func newPackages(c *V1V1Client, namespace string) *packages {
|
||||
return &packages{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the _package, and returns the corresponding package object, and an error if there is any.
|
||||
func (c *packages) Get(name string, options metav1.GetOptions) (result *v1.Package, err error) {
|
||||
result = &v1.Package{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("packages").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of Packages that match those selectors.
|
||||
func (c *packages) List(opts metav1.ListOptions) (result *v1.PackageList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1.PackageList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("packages").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested packages.
|
||||
func (c *packages) Watch(opts metav1.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("packages").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a _package and creates it. Returns the server's representation of the package, and an error, if there is any.
|
||||
func (c *packages) Create(_package *v1.Package) (result *v1.Package, err error) {
|
||||
result = &v1.Package{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("packages").
|
||||
Body(_package).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a _package and updates it. Returns the server's representation of the package, and an error, if there is any.
|
||||
func (c *packages) Update(_package *v1.Package) (result *v1.Package, err error) {
|
||||
result = &v1.Package{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("packages").
|
||||
Name(_package.Name).
|
||||
Body(_package).
|
||||
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 *packages) UpdateStatus(_package *v1.Package) (result *v1.Package, err error) {
|
||||
result = &v1.Package{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("packages").
|
||||
Name(_package.Name).
|
||||
SubResource("status").
|
||||
Body(_package).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the _package and deletes it. Returns an error if one occurs.
|
||||
func (c *packages) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("packages").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *packages) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.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("packages").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched package.
|
||||
func (c *packages) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Package, err error) {
|
||||
result = &v1.Package{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("packages").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
scheme "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/scheme"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// TimeTriggersGetter has a method to return a TimeTriggerInterface.
|
||||
// A group's client should implement this interface.
|
||||
type TimeTriggersGetter interface {
|
||||
TimeTriggers(namespace string) TimeTriggerInterface
|
||||
}
|
||||
|
||||
// TimeTriggerInterface has methods to work with TimeTrigger resources.
|
||||
type TimeTriggerInterface interface {
|
||||
Create(*v1.TimeTrigger) (*v1.TimeTrigger, error)
|
||||
Update(*v1.TimeTrigger) (*v1.TimeTrigger, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error
|
||||
Get(name string, options metav1.GetOptions) (*v1.TimeTrigger, error)
|
||||
List(opts metav1.ListOptions) (*v1.TimeTriggerList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.TimeTrigger, err error)
|
||||
TimeTriggerExpansion
|
||||
}
|
||||
|
||||
// timeTriggers implements TimeTriggerInterface
|
||||
type timeTriggers struct {
|
||||
client rest.Interface
|
||||
ns string
|
||||
}
|
||||
|
||||
// newTimeTriggers returns a TimeTriggers
|
||||
func newTimeTriggers(c *V1V1Client, namespace string) *timeTriggers {
|
||||
return &timeTriggers{
|
||||
client: c.RESTClient(),
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
// Get takes name of the _timeTrigger, and returns the corresponding timeTrigger object, and an error if there is any.
|
||||
func (c *timeTriggers) Get(name string, options metav1.GetOptions) (result *v1.TimeTrigger, err error) {
|
||||
result = &v1.TimeTrigger{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("timetriggers").
|
||||
Name(name).
|
||||
VersionedParams(&options, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// List takes label and field selectors, and returns the list of TimeTriggers that match those selectors.
|
||||
func (c *timeTriggers) List(opts metav1.ListOptions) (result *v1.TimeTriggerList, err error) {
|
||||
var timeout time.Duration
|
||||
if opts.TimeoutSeconds != nil {
|
||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||
}
|
||||
result = &v1.TimeTriggerList{}
|
||||
err = c.client.Get().
|
||||
Namespace(c.ns).
|
||||
Resource("timetriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Watch returns a watch.Interface that watches the requested timeTriggers.
|
||||
func (c *timeTriggers) Watch(opts metav1.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("timetriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Watch()
|
||||
}
|
||||
|
||||
// Create takes the representation of a _timeTrigger and creates it. Returns the server's representation of the timeTrigger, and an error, if there is any.
|
||||
func (c *timeTriggers) Create(_timeTrigger *v1.TimeTrigger) (result *v1.TimeTrigger, err error) {
|
||||
result = &v1.TimeTrigger{}
|
||||
err = c.client.Post().
|
||||
Namespace(c.ns).
|
||||
Resource("timetriggers").
|
||||
Body(_timeTrigger).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Update takes the representation of a _timeTrigger and updates it. Returns the server's representation of the timeTrigger, and an error, if there is any.
|
||||
func (c *timeTriggers) Update(_timeTrigger *v1.TimeTrigger) (result *v1.TimeTrigger, err error) {
|
||||
result = &v1.TimeTrigger{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("timetriggers").
|
||||
Name(_timeTrigger.Name).
|
||||
Body(_timeTrigger).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the _timeTrigger and deletes it. Returns an error if one occurs.
|
||||
func (c *timeTriggers) Delete(name string, options *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.ns).
|
||||
Resource("timetriggers").
|
||||
Name(name).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// DeleteCollection deletes a collection of objects.
|
||||
func (c *timeTriggers) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.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("timetriggers").
|
||||
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||
Timeout(timeout).
|
||||
Body(options).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
// Patch applies the patch and returns the patched timeTrigger.
|
||||
func (c *timeTriggers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.TimeTrigger, err error) {
|
||||
result = &v1.TimeTrigger{}
|
||||
err = c.client.Patch(pt).
|
||||
Namespace(c.ns).
|
||||
Resource("timetriggers").
|
||||
SubResource(subresources...).
|
||||
Name(name).
|
||||
Body(data).
|
||||
Do().
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
/*
|
||||
Copyright The Fission 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 externalversions
|
||||
|
||||
import (
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
time "time"
|
||||
|
||||
versioned "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
fissionio "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/fission.io"
|
||||
internalinterfaces "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/internalinterfaces"
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||
cache "k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// SharedInformerOption defines the functional option type for SharedInformerFactory.
|
||||
type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory
|
||||
|
||||
type sharedInformerFactory struct {
|
||||
client versioned.Interface
|
||||
namespace string
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
lock sync.Mutex
|
||||
defaultResync time.Duration
|
||||
customResync map[reflect.Type]time.Duration
|
||||
|
||||
informers map[reflect.Type]cache.SharedIndexInformer
|
||||
// startedInformers is used for tracking which informers have been started.
|
||||
// This allows Start() to be called multiple times safely.
|
||||
startedInformers map[reflect.Type]bool
|
||||
}
|
||||
|
||||
// WithCustomResyncConfig sets a custom resync period for the specified informer types.
|
||||
func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption {
|
||||
return func(factory *sharedInformerFactory) *sharedInformerFactory {
|
||||
for k, v := range resyncConfig {
|
||||
factory.customResync[reflect.TypeOf(k)] = v
|
||||
}
|
||||
return factory
|
||||
}
|
||||
}
|
||||
|
||||
// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory.
|
||||
func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption {
|
||||
return func(factory *sharedInformerFactory) *sharedInformerFactory {
|
||||
factory.tweakListOptions = tweakListOptions
|
||||
return factory
|
||||
}
|
||||
}
|
||||
|
||||
// WithNamespace limits the SharedInformerFactory to the specified namespace.
|
||||
func WithNamespace(namespace string) SharedInformerOption {
|
||||
return func(factory *sharedInformerFactory) *sharedInformerFactory {
|
||||
factory.namespace = namespace
|
||||
return factory
|
||||
}
|
||||
}
|
||||
|
||||
// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces.
|
||||
func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory {
|
||||
return NewSharedInformerFactoryWithOptions(client, defaultResync)
|
||||
}
|
||||
|
||||
// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory.
|
||||
// Listers obtained via this SharedInformerFactory will be subject to the same filters
|
||||
// as specified here.
|
||||
// Deprecated: Please use NewSharedInformerFactoryWithOptions instead
|
||||
func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory {
|
||||
return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions))
|
||||
}
|
||||
|
||||
// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options.
|
||||
func NewSharedInformerFactoryWithOptions(client versioned.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory {
|
||||
factory := &sharedInformerFactory{
|
||||
client: client,
|
||||
namespace: v1.NamespaceAll,
|
||||
defaultResync: defaultResync,
|
||||
informers: make(map[reflect.Type]cache.SharedIndexInformer),
|
||||
startedInformers: make(map[reflect.Type]bool),
|
||||
customResync: make(map[reflect.Type]time.Duration),
|
||||
}
|
||||
|
||||
// Apply all options
|
||||
for _, opt := range options {
|
||||
factory = opt(factory)
|
||||
}
|
||||
|
||||
return factory
|
||||
}
|
||||
|
||||
// Start initializes all requested informers.
|
||||
func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
for informerType, informer := range f.informers {
|
||||
if !f.startedInformers[informerType] {
|
||||
go informer.Run(stopCh)
|
||||
f.startedInformers[informerType] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// WaitForCacheSync waits for all started informers' cache were synced.
|
||||
func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool {
|
||||
informers := func() map[reflect.Type]cache.SharedIndexInformer {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
informers := map[reflect.Type]cache.SharedIndexInformer{}
|
||||
for informerType, informer := range f.informers {
|
||||
if f.startedInformers[informerType] {
|
||||
informers[informerType] = informer
|
||||
}
|
||||
}
|
||||
return informers
|
||||
}()
|
||||
|
||||
res := map[reflect.Type]bool{}
|
||||
for informType, informer := range informers {
|
||||
res[informType] = cache.WaitForCacheSync(stopCh, informer.HasSynced)
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
// InternalInformerFor returns the SharedIndexInformer for obj using an internal
|
||||
// client.
|
||||
func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
informerType := reflect.TypeOf(obj)
|
||||
informer, exists := f.informers[informerType]
|
||||
if exists {
|
||||
return informer
|
||||
}
|
||||
|
||||
resyncPeriod, exists := f.customResync[informerType]
|
||||
if !exists {
|
||||
resyncPeriod = f.defaultResync
|
||||
}
|
||||
|
||||
informer = newFunc(f.client, resyncPeriod)
|
||||
f.informers[informerType] = informer
|
||||
|
||||
return informer
|
||||
}
|
||||
|
||||
// SharedInformerFactory provides shared informers for resources in all known
|
||||
// API group versions.
|
||||
type SharedInformerFactory interface {
|
||||
internalinterfaces.SharedInformerFactory
|
||||
ForResource(resource schema.GroupVersionResource) (GenericInformer, error)
|
||||
WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool
|
||||
|
||||
V1() fissionio.Interface
|
||||
}
|
||||
|
||||
func (f *sharedInformerFactory) V1() fissionio.Interface {
|
||||
return fissionio.New(f, f.namespace, f.tweakListOptions)
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
Copyright The Fission 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 fission
|
||||
|
||||
import (
|
||||
v1 "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/fission.io/v1"
|
||||
internalinterfaces "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/internalinterfaces"
|
||||
)
|
||||
|
||||
// Interface provides access to each of this group's versions.
|
||||
type Interface interface {
|
||||
// V1 provides access to shared informers for resources in V1.
|
||||
V1() v1.Interface
|
||||
}
|
||||
|
||||
type group struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
namespace string
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
}
|
||||
|
||||
// New returns a new Interface.
|
||||
func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
|
||||
return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
|
||||
}
|
||||
|
||||
// V1 returns a new v1.Interface.
|
||||
func (g *group) V1() v1.Interface {
|
||||
return v1.New(g.factory, g.namespace, g.tweakListOptions)
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
time "time"
|
||||
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
versioned "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
internalinterfaces "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/internalinterfaces"
|
||||
v1 "github.com/fission/fission/pkg/apis/genclient/v1/listers/fission.io/v1"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// CanaryConfigInformer provides access to a shared informer and lister for
|
||||
// CanaryConfigs.
|
||||
type CanaryConfigInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() v1.CanaryConfigLister
|
||||
}
|
||||
|
||||
type _canaryConfigInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
}
|
||||
|
||||
// NewCanaryConfigInformer constructs a new informer for CanaryConfig 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 NewCanaryConfigInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewFilteredCanaryConfigInformer(client, namespace, resyncPeriod, indexers, nil)
|
||||
}
|
||||
|
||||
// NewFilteredCanaryConfigInformer constructs a new informer for CanaryConfig 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 NewFilteredCanaryConfigInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return cache.NewSharedIndexInformer(
|
||||
&cache.ListWatch{
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().CanaryConfigs(namespace).List(options)
|
||||
},
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().CanaryConfigs(namespace).Watch(options)
|
||||
},
|
||||
},
|
||||
&fissioniov1.CanaryConfig{},
|
||||
resyncPeriod,
|
||||
indexers,
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_canaryConfigInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredCanaryConfigInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_canaryConfigInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&fissioniov1.CanaryConfig{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_canaryConfigInformer) Lister() v1.CanaryConfigLister {
|
||||
return v1.NewCanaryConfigLister(f.Informer().GetIndexer())
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
time "time"
|
||||
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
versioned "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
internalinterfaces "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/internalinterfaces"
|
||||
v1 "github.com/fission/fission/pkg/apis/genclient/v1/listers/fission.io/v1"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// EnvironmentInformer provides access to a shared informer and lister for
|
||||
// Environments.
|
||||
type EnvironmentInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() v1.EnvironmentLister
|
||||
}
|
||||
|
||||
type _environmentInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
}
|
||||
|
||||
// NewEnvironmentInformer constructs a new informer for Environment 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 NewEnvironmentInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewFilteredEnvironmentInformer(client, namespace, resyncPeriod, indexers, nil)
|
||||
}
|
||||
|
||||
// NewFilteredEnvironmentInformer constructs a new informer for Environment 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 NewFilteredEnvironmentInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return cache.NewSharedIndexInformer(
|
||||
&cache.ListWatch{
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().Environments(namespace).List(options)
|
||||
},
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().Environments(namespace).Watch(options)
|
||||
},
|
||||
},
|
||||
&fissioniov1.Environment{},
|
||||
resyncPeriod,
|
||||
indexers,
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_environmentInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredEnvironmentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_environmentInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&fissioniov1.Environment{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_environmentInformer) Lister() v1.EnvironmentLister {
|
||||
return v1.NewEnvironmentLister(f.Informer().GetIndexer())
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
time "time"
|
||||
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
versioned "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
internalinterfaces "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/internalinterfaces"
|
||||
v1 "github.com/fission/fission/pkg/apis/genclient/v1/listers/fission.io/v1"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// FunctionInformer provides access to a shared informer and lister for
|
||||
// Functions.
|
||||
type FunctionInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() v1.FunctionLister
|
||||
}
|
||||
|
||||
type _functionInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
}
|
||||
|
||||
// NewFunctionInformer constructs a new informer for Function 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 NewFunctionInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewFilteredFunctionInformer(client, namespace, resyncPeriod, indexers, nil)
|
||||
}
|
||||
|
||||
// NewFilteredFunctionInformer constructs a new informer for Function 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 NewFilteredFunctionInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return cache.NewSharedIndexInformer(
|
||||
&cache.ListWatch{
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().Functions(namespace).List(options)
|
||||
},
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().Functions(namespace).Watch(options)
|
||||
},
|
||||
},
|
||||
&fissioniov1.Function{},
|
||||
resyncPeriod,
|
||||
indexers,
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_functionInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredFunctionInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_functionInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&fissioniov1.Function{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_functionInformer) Lister() v1.FunctionLister {
|
||||
return v1.NewFunctionLister(f.Informer().GetIndexer())
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
time "time"
|
||||
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
versioned "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
internalinterfaces "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/internalinterfaces"
|
||||
v1 "github.com/fission/fission/pkg/apis/genclient/v1/listers/fission.io/v1"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// HTTPTriggerInformer provides access to a shared informer and lister for
|
||||
// HTTPTriggers.
|
||||
type HTTPTriggerInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() v1.HTTPTriggerLister
|
||||
}
|
||||
|
||||
type _hTTPTriggerInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
}
|
||||
|
||||
// NewHTTPTriggerInformer constructs a new informer for HTTPTrigger 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 NewHTTPTriggerInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewFilteredHTTPTriggerInformer(client, namespace, resyncPeriod, indexers, nil)
|
||||
}
|
||||
|
||||
// NewFilteredHTTPTriggerInformer constructs a new informer for HTTPTrigger 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 NewFilteredHTTPTriggerInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return cache.NewSharedIndexInformer(
|
||||
&cache.ListWatch{
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().HTTPTriggers(namespace).List(options)
|
||||
},
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().HTTPTriggers(namespace).Watch(options)
|
||||
},
|
||||
},
|
||||
&fissioniov1.HTTPTrigger{},
|
||||
resyncPeriod,
|
||||
indexers,
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_hTTPTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredHTTPTriggerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_hTTPTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&fissioniov1.HTTPTrigger{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_hTTPTriggerInformer) Lister() v1.HTTPTriggerLister {
|
||||
return v1.NewHTTPTriggerLister(f.Informer().GetIndexer())
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
internalinterfaces "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/internalinterfaces"
|
||||
)
|
||||
|
||||
// Interface provides access to all the informers in this group version.
|
||||
type Interface interface {
|
||||
// CanaryConfigs returns a CanaryConfigInformer.
|
||||
CanaryConfigs() CanaryConfigInformer
|
||||
// Environments returns a EnvironmentInformer.
|
||||
Environments() EnvironmentInformer
|
||||
// Functions returns a FunctionInformer.
|
||||
Functions() FunctionInformer
|
||||
// HTTPTriggers returns a HTTPTriggerInformer.
|
||||
HTTPTriggers() HTTPTriggerInformer
|
||||
// KubernetesWatchTriggers returns a KubernetesWatchTriggerInformer.
|
||||
KubernetesWatchTriggers() KubernetesWatchTriggerInformer
|
||||
// MessageQueueTriggers returns a MessageQueueTriggerInformer.
|
||||
MessageQueueTriggers() MessageQueueTriggerInformer
|
||||
// Packages returns a PackageInformer.
|
||||
Packages() PackageInformer
|
||||
// TimeTriggers returns a TimeTriggerInformer.
|
||||
TimeTriggers() TimeTriggerInformer
|
||||
}
|
||||
|
||||
type version struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
namespace string
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
}
|
||||
|
||||
// New returns a new Interface.
|
||||
func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
|
||||
return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
|
||||
}
|
||||
|
||||
// CanaryConfigs returns a CanaryConfigInformer.
|
||||
func (v *version) CanaryConfigs() CanaryConfigInformer {
|
||||
return &_canaryConfigInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// Environments returns a EnvironmentInformer.
|
||||
func (v *version) Environments() EnvironmentInformer {
|
||||
return &_environmentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// Functions returns a FunctionInformer.
|
||||
func (v *version) Functions() FunctionInformer {
|
||||
return &_functionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// HTTPTriggers returns a HTTPTriggerInformer.
|
||||
func (v *version) HTTPTriggers() HTTPTriggerInformer {
|
||||
return &_hTTPTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// KubernetesWatchTriggers returns a KubernetesWatchTriggerInformer.
|
||||
func (v *version) KubernetesWatchTriggers() KubernetesWatchTriggerInformer {
|
||||
return &_kubernetesWatchTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// MessageQueueTriggers returns a MessageQueueTriggerInformer.
|
||||
func (v *version) MessageQueueTriggers() MessageQueueTriggerInformer {
|
||||
return &_messageQueueTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// Packages returns a PackageInformer.
|
||||
func (v *version) Packages() PackageInformer {
|
||||
return &_packageInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// TimeTriggers returns a TimeTriggerInformer.
|
||||
func (v *version) TimeTriggers() TimeTriggerInformer {
|
||||
return &_timeTriggerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
time "time"
|
||||
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
versioned "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
internalinterfaces "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/internalinterfaces"
|
||||
v1 "github.com/fission/fission/pkg/apis/genclient/v1/listers/fission.io/v1"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// KubernetesWatchTriggerInformer provides access to a shared informer and lister for
|
||||
// KubernetesWatchTriggers.
|
||||
type KubernetesWatchTriggerInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() v1.KubernetesWatchTriggerLister
|
||||
}
|
||||
|
||||
type _kubernetesWatchTriggerInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
}
|
||||
|
||||
// NewKubernetesWatchTriggerInformer constructs a new informer for KubernetesWatchTrigger 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 NewKubernetesWatchTriggerInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewFilteredKubernetesWatchTriggerInformer(client, namespace, resyncPeriod, indexers, nil)
|
||||
}
|
||||
|
||||
// NewFilteredKubernetesWatchTriggerInformer constructs a new informer for KubernetesWatchTrigger 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 NewFilteredKubernetesWatchTriggerInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return cache.NewSharedIndexInformer(
|
||||
&cache.ListWatch{
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().KubernetesWatchTriggers(namespace).List(options)
|
||||
},
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().KubernetesWatchTriggers(namespace).Watch(options)
|
||||
},
|
||||
},
|
||||
&fissioniov1.KubernetesWatchTrigger{},
|
||||
resyncPeriod,
|
||||
indexers,
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_kubernetesWatchTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredKubernetesWatchTriggerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_kubernetesWatchTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&fissioniov1.KubernetesWatchTrigger{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_kubernetesWatchTriggerInformer) Lister() v1.KubernetesWatchTriggerLister {
|
||||
return v1.NewKubernetesWatchTriggerLister(f.Informer().GetIndexer())
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
time "time"
|
||||
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
versioned "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
internalinterfaces "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/internalinterfaces"
|
||||
v1 "github.com/fission/fission/pkg/apis/genclient/v1/listers/fission.io/v1"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// MessageQueueTriggerInformer provides access to a shared informer and lister for
|
||||
// MessageQueueTriggers.
|
||||
type MessageQueueTriggerInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() v1.MessageQueueTriggerLister
|
||||
}
|
||||
|
||||
type _messageQueueTriggerInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
}
|
||||
|
||||
// NewMessageQueueTriggerInformer constructs a new informer for MessageQueueTrigger 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 NewMessageQueueTriggerInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewFilteredMessageQueueTriggerInformer(client, namespace, resyncPeriod, indexers, nil)
|
||||
}
|
||||
|
||||
// NewFilteredMessageQueueTriggerInformer constructs a new informer for MessageQueueTrigger 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 NewFilteredMessageQueueTriggerInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return cache.NewSharedIndexInformer(
|
||||
&cache.ListWatch{
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().MessageQueueTriggers(namespace).List(options)
|
||||
},
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().MessageQueueTriggers(namespace).Watch(options)
|
||||
},
|
||||
},
|
||||
&fissioniov1.MessageQueueTrigger{},
|
||||
resyncPeriod,
|
||||
indexers,
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_messageQueueTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredMessageQueueTriggerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_messageQueueTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&fissioniov1.MessageQueueTrigger{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_messageQueueTriggerInformer) Lister() v1.MessageQueueTriggerLister {
|
||||
return v1.NewMessageQueueTriggerLister(f.Informer().GetIndexer())
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
time "time"
|
||||
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
versioned "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
internalinterfaces "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/internalinterfaces"
|
||||
v1 "github.com/fission/fission/pkg/apis/genclient/v1/listers/fission.io/v1"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// PackageInformer provides access to a shared informer and lister for
|
||||
// Packages.
|
||||
type PackageInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() v1.PackageLister
|
||||
}
|
||||
|
||||
type _packageInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
}
|
||||
|
||||
// NewPackageInformer constructs a new informer for Package 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 NewPackageInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewFilteredPackageInformer(client, namespace, resyncPeriod, indexers, nil)
|
||||
}
|
||||
|
||||
// NewFilteredPackageInformer constructs a new informer for Package 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 NewFilteredPackageInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return cache.NewSharedIndexInformer(
|
||||
&cache.ListWatch{
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().Packages(namespace).List(options)
|
||||
},
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().Packages(namespace).Watch(options)
|
||||
},
|
||||
},
|
||||
&fissioniov1.Package{},
|
||||
resyncPeriod,
|
||||
indexers,
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_packageInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredPackageInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_packageInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&fissioniov1.Package{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_packageInformer) Lister() v1.PackageLister {
|
||||
return v1.NewPackageLister(f.Informer().GetIndexer())
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
time "time"
|
||||
|
||||
fissioniov1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
versioned "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
internalinterfaces "github.com/fission/fission/pkg/apis/genclient/v1/informers/externalversions/internalinterfaces"
|
||||
v1 "github.com/fission/fission/pkg/apis/genclient/v1/listers/fission.io/v1"
|
||||
metav1 "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"
|
||||
)
|
||||
|
||||
// TimeTriggerInformer provides access to a shared informer and lister for
|
||||
// TimeTriggers.
|
||||
type TimeTriggerInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() v1.TimeTriggerLister
|
||||
}
|
||||
|
||||
type _timeTriggerInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
namespace string
|
||||
}
|
||||
|
||||
// NewTimeTriggerInformer constructs a new informer for TimeTrigger 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 NewTimeTriggerInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewFilteredTimeTriggerInformer(client, namespace, resyncPeriod, indexers, nil)
|
||||
}
|
||||
|
||||
// NewFilteredTimeTriggerInformer constructs a new informer for TimeTrigger 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 NewFilteredTimeTriggerInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return cache.NewSharedIndexInformer(
|
||||
&cache.ListWatch{
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().TimeTriggers(namespace).List(options)
|
||||
},
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
if tweakListOptions != nil {
|
||||
tweakListOptions(&options)
|
||||
}
|
||||
return client.V1V1().TimeTriggers(namespace).Watch(options)
|
||||
},
|
||||
},
|
||||
&fissioniov1.TimeTrigger{},
|
||||
resyncPeriod,
|
||||
indexers,
|
||||
)
|
||||
}
|
||||
|
||||
func (f *_timeTriggerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewFilteredTimeTriggerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||
}
|
||||
|
||||
func (f *_timeTriggerInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&fissioniov1.TimeTrigger{}, f.defaultInformer)
|
||||
}
|
||||
|
||||
func (f *_timeTriggerInformer) Lister() v1.TimeTriggerLister {
|
||||
return v1.NewTimeTriggerLister(f.Informer().GetIndexer())
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
Copyright The Fission 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 externalversions
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||
cache "k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// GenericInformer is type of SharedIndexInformer which will locate and delegate to other
|
||||
// sharedInformers based on type
|
||||
type GenericInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() cache.GenericLister
|
||||
}
|
||||
|
||||
type genericInformer struct {
|
||||
informer cache.SharedIndexInformer
|
||||
resource schema.GroupResource
|
||||
}
|
||||
|
||||
// Informer returns the SharedIndexInformer.
|
||||
func (f *genericInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.informer
|
||||
}
|
||||
|
||||
// Lister returns the GenericLister.
|
||||
func (f *genericInformer) Lister() cache.GenericLister {
|
||||
return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource)
|
||||
}
|
||||
|
||||
// ForResource gives generic access to a shared informer of the matching type
|
||||
// TODO extend this to unknown resources with a client pool
|
||||
func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
|
||||
switch resource {
|
||||
// Group=fission.io, Version=v1
|
||||
case v1.SchemeGroupVersion.WithResource("canaryconfigs"):
|
||||
return &genericInformer{resource: resource.GroupResource(), informer: f.V1().V1().CanaryConfigs().Informer()}, nil
|
||||
case v1.SchemeGroupVersion.WithResource("environments"):
|
||||
return &genericInformer{resource: resource.GroupResource(), informer: f.V1().V1().Environments().Informer()}, nil
|
||||
case v1.SchemeGroupVersion.WithResource("functions"):
|
||||
return &genericInformer{resource: resource.GroupResource(), informer: f.V1().V1().Functions().Informer()}, nil
|
||||
case v1.SchemeGroupVersion.WithResource("httptriggers"):
|
||||
return &genericInformer{resource: resource.GroupResource(), informer: f.V1().V1().HTTPTriggers().Informer()}, nil
|
||||
case v1.SchemeGroupVersion.WithResource("kuberneteswatchtriggers"):
|
||||
return &genericInformer{resource: resource.GroupResource(), informer: f.V1().V1().KubernetesWatchTriggers().Informer()}, nil
|
||||
case v1.SchemeGroupVersion.WithResource("messagequeuetriggers"):
|
||||
return &genericInformer{resource: resource.GroupResource(), informer: f.V1().V1().MessageQueueTriggers().Informer()}, nil
|
||||
case v1.SchemeGroupVersion.WithResource("packages"):
|
||||
return &genericInformer{resource: resource.GroupResource(), informer: f.V1().V1().Packages().Informer()}, nil
|
||||
case v1.SchemeGroupVersion.WithResource("timetriggers"):
|
||||
return &genericInformer{resource: resource.GroupResource(), informer: f.V1().V1().TimeTriggers().Informer()}, nil
|
||||
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("no informer found for %v", resource)
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
Copyright The Fission 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 internalinterfaces
|
||||
|
||||
import (
|
||||
time "time"
|
||||
|
||||
versioned "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
cache "k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer.
|
||||
type NewInformerFunc func(versioned.Interface, time.Duration) cache.SharedIndexInformer
|
||||
|
||||
// SharedInformerFactory a small interface to allow for adding an informer without an import cycle
|
||||
type SharedInformerFactory interface {
|
||||
Start(stopCh <-chan struct{})
|
||||
InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer
|
||||
}
|
||||
|
||||
// TweakListOptionsFunc is a function that transforms a v1.ListOptions.
|
||||
type TweakListOptionsFunc func(*v1.ListOptions)
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// CanaryConfigLister helps list CanaryConfigs.
|
||||
type CanaryConfigLister interface {
|
||||
// List lists all CanaryConfigs in the indexer.
|
||||
List(selector labels.Selector) (ret []*v1.CanaryConfig, err error)
|
||||
// CanaryConfigs returns an object that can list and get CanaryConfigs.
|
||||
CanaryConfigs(namespace string) CanaryConfigNamespaceLister
|
||||
CanaryConfigListerExpansion
|
||||
}
|
||||
|
||||
// _canaryConfigLister implements the CanaryConfigLister interface.
|
||||
type _canaryConfigLister struct {
|
||||
indexer cache.Indexer
|
||||
}
|
||||
|
||||
// NewCanaryConfigLister returns a new CanaryConfigLister.
|
||||
func NewCanaryConfigLister(indexer cache.Indexer) CanaryConfigLister {
|
||||
return &_canaryConfigLister{indexer: indexer}
|
||||
}
|
||||
|
||||
// List lists all CanaryConfigs in the indexer.
|
||||
func (s *_canaryConfigLister) List(selector labels.Selector) (ret []*v1.CanaryConfig, err error) {
|
||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.CanaryConfig))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// CanaryConfigs returns an object that can list and get CanaryConfigs.
|
||||
func (s *_canaryConfigLister) CanaryConfigs(namespace string) CanaryConfigNamespaceLister {
|
||||
return _canaryConfigNamespaceLister{indexer: s.indexer, namespace: namespace}
|
||||
}
|
||||
|
||||
// CanaryConfigNamespaceLister helps list and get CanaryConfigs.
|
||||
type CanaryConfigNamespaceLister interface {
|
||||
// List lists all CanaryConfigs in the indexer for a given namespace.
|
||||
List(selector labels.Selector) (ret []*v1.CanaryConfig, err error)
|
||||
// Get retrieves the CanaryConfig from the indexer for a given namespace and name.
|
||||
Get(name string) (*v1.CanaryConfig, error)
|
||||
CanaryConfigNamespaceListerExpansion
|
||||
}
|
||||
|
||||
// _canaryConfigNamespaceLister implements the CanaryConfigNamespaceLister
|
||||
// interface.
|
||||
type _canaryConfigNamespaceLister struct {
|
||||
indexer cache.Indexer
|
||||
namespace string
|
||||
}
|
||||
|
||||
// List lists all CanaryConfigs in the indexer for a given namespace.
|
||||
func (s _canaryConfigNamespaceLister) List(selector labels.Selector) (ret []*v1.CanaryConfig, err error) {
|
||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.CanaryConfig))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Get retrieves the CanaryConfig from the indexer for a given namespace and name.
|
||||
func (s _canaryConfigNamespaceLister) Get(name string) (*v1.CanaryConfig, error) {
|
||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !exists {
|
||||
return nil, errors.NewNotFound(v1.Resource("canaryconfig"), name)
|
||||
}
|
||||
return obj.(*v1.CanaryConfig), nil
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// EnvironmentLister helps list Environments.
|
||||
type EnvironmentLister interface {
|
||||
// List lists all Environments in the indexer.
|
||||
List(selector labels.Selector) (ret []*v1.Environment, err error)
|
||||
// Environments returns an object that can list and get Environments.
|
||||
Environments(namespace string) EnvironmentNamespaceLister
|
||||
EnvironmentListerExpansion
|
||||
}
|
||||
|
||||
// _environmentLister implements the EnvironmentLister interface.
|
||||
type _environmentLister struct {
|
||||
indexer cache.Indexer
|
||||
}
|
||||
|
||||
// NewEnvironmentLister returns a new EnvironmentLister.
|
||||
func NewEnvironmentLister(indexer cache.Indexer) EnvironmentLister {
|
||||
return &_environmentLister{indexer: indexer}
|
||||
}
|
||||
|
||||
// List lists all Environments in the indexer.
|
||||
func (s *_environmentLister) List(selector labels.Selector) (ret []*v1.Environment, err error) {
|
||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.Environment))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Environments returns an object that can list and get Environments.
|
||||
func (s *_environmentLister) Environments(namespace string) EnvironmentNamespaceLister {
|
||||
return _environmentNamespaceLister{indexer: s.indexer, namespace: namespace}
|
||||
}
|
||||
|
||||
// EnvironmentNamespaceLister helps list and get Environments.
|
||||
type EnvironmentNamespaceLister interface {
|
||||
// List lists all Environments in the indexer for a given namespace.
|
||||
List(selector labels.Selector) (ret []*v1.Environment, err error)
|
||||
// Get retrieves the Environment from the indexer for a given namespace and name.
|
||||
Get(name string) (*v1.Environment, error)
|
||||
EnvironmentNamespaceListerExpansion
|
||||
}
|
||||
|
||||
// _environmentNamespaceLister implements the EnvironmentNamespaceLister
|
||||
// interface.
|
||||
type _environmentNamespaceLister struct {
|
||||
indexer cache.Indexer
|
||||
namespace string
|
||||
}
|
||||
|
||||
// List lists all Environments in the indexer for a given namespace.
|
||||
func (s _environmentNamespaceLister) List(selector labels.Selector) (ret []*v1.Environment, err error) {
|
||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.Environment))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Get retrieves the Environment from the indexer for a given namespace and name.
|
||||
func (s _environmentNamespaceLister) Get(name string) (*v1.Environment, error) {
|
||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !exists {
|
||||
return nil, errors.NewNotFound(v1.Resource("environment"), name)
|
||||
}
|
||||
return obj.(*v1.Environment), nil
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
// CanaryConfigListerExpansion allows custom methods to be added to
|
||||
// CanaryConfigLister.
|
||||
type CanaryConfigListerExpansion interface{}
|
||||
|
||||
// CanaryConfigNamespaceListerExpansion allows custom methods to be added to
|
||||
// CanaryConfigNamespaceLister.
|
||||
type CanaryConfigNamespaceListerExpansion interface{}
|
||||
|
||||
// EnvironmentListerExpansion allows custom methods to be added to
|
||||
// EnvironmentLister.
|
||||
type EnvironmentListerExpansion interface{}
|
||||
|
||||
// EnvironmentNamespaceListerExpansion allows custom methods to be added to
|
||||
// EnvironmentNamespaceLister.
|
||||
type EnvironmentNamespaceListerExpansion interface{}
|
||||
|
||||
// FunctionListerExpansion allows custom methods to be added to
|
||||
// FunctionLister.
|
||||
type FunctionListerExpansion interface{}
|
||||
|
||||
// FunctionNamespaceListerExpansion allows custom methods to be added to
|
||||
// FunctionNamespaceLister.
|
||||
type FunctionNamespaceListerExpansion interface{}
|
||||
|
||||
// HTTPTriggerListerExpansion allows custom methods to be added to
|
||||
// HTTPTriggerLister.
|
||||
type HTTPTriggerListerExpansion interface{}
|
||||
|
||||
// HTTPTriggerNamespaceListerExpansion allows custom methods to be added to
|
||||
// HTTPTriggerNamespaceLister.
|
||||
type HTTPTriggerNamespaceListerExpansion interface{}
|
||||
|
||||
// KubernetesWatchTriggerListerExpansion allows custom methods to be added to
|
||||
// KubernetesWatchTriggerLister.
|
||||
type KubernetesWatchTriggerListerExpansion interface{}
|
||||
|
||||
// KubernetesWatchTriggerNamespaceListerExpansion allows custom methods to be added to
|
||||
// KubernetesWatchTriggerNamespaceLister.
|
||||
type KubernetesWatchTriggerNamespaceListerExpansion interface{}
|
||||
|
||||
// MessageQueueTriggerListerExpansion allows custom methods to be added to
|
||||
// MessageQueueTriggerLister.
|
||||
type MessageQueueTriggerListerExpansion interface{}
|
||||
|
||||
// MessageQueueTriggerNamespaceListerExpansion allows custom methods to be added to
|
||||
// MessageQueueTriggerNamespaceLister.
|
||||
type MessageQueueTriggerNamespaceListerExpansion interface{}
|
||||
|
||||
// PackageListerExpansion allows custom methods to be added to
|
||||
// PackageLister.
|
||||
type PackageListerExpansion interface{}
|
||||
|
||||
// PackageNamespaceListerExpansion allows custom methods to be added to
|
||||
// PackageNamespaceLister.
|
||||
type PackageNamespaceListerExpansion interface{}
|
||||
|
||||
// TimeTriggerListerExpansion allows custom methods to be added to
|
||||
// TimeTriggerLister.
|
||||
type TimeTriggerListerExpansion interface{}
|
||||
|
||||
// TimeTriggerNamespaceListerExpansion allows custom methods to be added to
|
||||
// TimeTriggerNamespaceLister.
|
||||
type TimeTriggerNamespaceListerExpansion interface{}
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// FunctionLister helps list Functions.
|
||||
type FunctionLister interface {
|
||||
// List lists all Functions in the indexer.
|
||||
List(selector labels.Selector) (ret []*v1.Function, err error)
|
||||
// Functions returns an object that can list and get Functions.
|
||||
Functions(namespace string) FunctionNamespaceLister
|
||||
FunctionListerExpansion
|
||||
}
|
||||
|
||||
// _functionLister implements the FunctionLister interface.
|
||||
type _functionLister struct {
|
||||
indexer cache.Indexer
|
||||
}
|
||||
|
||||
// NewFunctionLister returns a new FunctionLister.
|
||||
func NewFunctionLister(indexer cache.Indexer) FunctionLister {
|
||||
return &_functionLister{indexer: indexer}
|
||||
}
|
||||
|
||||
// List lists all Functions in the indexer.
|
||||
func (s *_functionLister) List(selector labels.Selector) (ret []*v1.Function, err error) {
|
||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.Function))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Functions returns an object that can list and get Functions.
|
||||
func (s *_functionLister) Functions(namespace string) FunctionNamespaceLister {
|
||||
return _functionNamespaceLister{indexer: s.indexer, namespace: namespace}
|
||||
}
|
||||
|
||||
// FunctionNamespaceLister helps list and get Functions.
|
||||
type FunctionNamespaceLister interface {
|
||||
// List lists all Functions in the indexer for a given namespace.
|
||||
List(selector labels.Selector) (ret []*v1.Function, err error)
|
||||
// Get retrieves the Function from the indexer for a given namespace and name.
|
||||
Get(name string) (*v1.Function, error)
|
||||
FunctionNamespaceListerExpansion
|
||||
}
|
||||
|
||||
// _functionNamespaceLister implements the FunctionNamespaceLister
|
||||
// interface.
|
||||
type _functionNamespaceLister struct {
|
||||
indexer cache.Indexer
|
||||
namespace string
|
||||
}
|
||||
|
||||
// List lists all Functions in the indexer for a given namespace.
|
||||
func (s _functionNamespaceLister) List(selector labels.Selector) (ret []*v1.Function, err error) {
|
||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.Function))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Get retrieves the Function from the indexer for a given namespace and name.
|
||||
func (s _functionNamespaceLister) Get(name string) (*v1.Function, error) {
|
||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !exists {
|
||||
return nil, errors.NewNotFound(v1.Resource("function"), name)
|
||||
}
|
||||
return obj.(*v1.Function), nil
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// HTTPTriggerLister helps list HTTPTriggers.
|
||||
type HTTPTriggerLister interface {
|
||||
// List lists all HTTPTriggers in the indexer.
|
||||
List(selector labels.Selector) (ret []*v1.HTTPTrigger, err error)
|
||||
// HTTPTriggers returns an object that can list and get HTTPTriggers.
|
||||
HTTPTriggers(namespace string) HTTPTriggerNamespaceLister
|
||||
HTTPTriggerListerExpansion
|
||||
}
|
||||
|
||||
// _hTTPTriggerLister implements the HTTPTriggerLister interface.
|
||||
type _hTTPTriggerLister struct {
|
||||
indexer cache.Indexer
|
||||
}
|
||||
|
||||
// NewHTTPTriggerLister returns a new HTTPTriggerLister.
|
||||
func NewHTTPTriggerLister(indexer cache.Indexer) HTTPTriggerLister {
|
||||
return &_hTTPTriggerLister{indexer: indexer}
|
||||
}
|
||||
|
||||
// List lists all HTTPTriggers in the indexer.
|
||||
func (s *_hTTPTriggerLister) List(selector labels.Selector) (ret []*v1.HTTPTrigger, err error) {
|
||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.HTTPTrigger))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// HTTPTriggers returns an object that can list and get HTTPTriggers.
|
||||
func (s *_hTTPTriggerLister) HTTPTriggers(namespace string) HTTPTriggerNamespaceLister {
|
||||
return _hTTPTriggerNamespaceLister{indexer: s.indexer, namespace: namespace}
|
||||
}
|
||||
|
||||
// HTTPTriggerNamespaceLister helps list and get HTTPTriggers.
|
||||
type HTTPTriggerNamespaceLister interface {
|
||||
// List lists all HTTPTriggers in the indexer for a given namespace.
|
||||
List(selector labels.Selector) (ret []*v1.HTTPTrigger, err error)
|
||||
// Get retrieves the HTTPTrigger from the indexer for a given namespace and name.
|
||||
Get(name string) (*v1.HTTPTrigger, error)
|
||||
HTTPTriggerNamespaceListerExpansion
|
||||
}
|
||||
|
||||
// _hTTPTriggerNamespaceLister implements the HTTPTriggerNamespaceLister
|
||||
// interface.
|
||||
type _hTTPTriggerNamespaceLister struct {
|
||||
indexer cache.Indexer
|
||||
namespace string
|
||||
}
|
||||
|
||||
// List lists all HTTPTriggers in the indexer for a given namespace.
|
||||
func (s _hTTPTriggerNamespaceLister) List(selector labels.Selector) (ret []*v1.HTTPTrigger, err error) {
|
||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.HTTPTrigger))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Get retrieves the HTTPTrigger from the indexer for a given namespace and name.
|
||||
func (s _hTTPTriggerNamespaceLister) Get(name string) (*v1.HTTPTrigger, error) {
|
||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !exists {
|
||||
return nil, errors.NewNotFound(v1.Resource("httptrigger"), name)
|
||||
}
|
||||
return obj.(*v1.HTTPTrigger), nil
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// KubernetesWatchTriggerLister helps list KubernetesWatchTriggers.
|
||||
type KubernetesWatchTriggerLister interface {
|
||||
// List lists all KubernetesWatchTriggers in the indexer.
|
||||
List(selector labels.Selector) (ret []*v1.KubernetesWatchTrigger, err error)
|
||||
// KubernetesWatchTriggers returns an object that can list and get KubernetesWatchTriggers.
|
||||
KubernetesWatchTriggers(namespace string) KubernetesWatchTriggerNamespaceLister
|
||||
KubernetesWatchTriggerListerExpansion
|
||||
}
|
||||
|
||||
// _kubernetesWatchTriggerLister implements the KubernetesWatchTriggerLister interface.
|
||||
type _kubernetesWatchTriggerLister struct {
|
||||
indexer cache.Indexer
|
||||
}
|
||||
|
||||
// NewKubernetesWatchTriggerLister returns a new KubernetesWatchTriggerLister.
|
||||
func NewKubernetesWatchTriggerLister(indexer cache.Indexer) KubernetesWatchTriggerLister {
|
||||
return &_kubernetesWatchTriggerLister{indexer: indexer}
|
||||
}
|
||||
|
||||
// List lists all KubernetesWatchTriggers in the indexer.
|
||||
func (s *_kubernetesWatchTriggerLister) List(selector labels.Selector) (ret []*v1.KubernetesWatchTrigger, err error) {
|
||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.KubernetesWatchTrigger))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// KubernetesWatchTriggers returns an object that can list and get KubernetesWatchTriggers.
|
||||
func (s *_kubernetesWatchTriggerLister) KubernetesWatchTriggers(namespace string) KubernetesWatchTriggerNamespaceLister {
|
||||
return _kubernetesWatchTriggerNamespaceLister{indexer: s.indexer, namespace: namespace}
|
||||
}
|
||||
|
||||
// KubernetesWatchTriggerNamespaceLister helps list and get KubernetesWatchTriggers.
|
||||
type KubernetesWatchTriggerNamespaceLister interface {
|
||||
// List lists all KubernetesWatchTriggers in the indexer for a given namespace.
|
||||
List(selector labels.Selector) (ret []*v1.KubernetesWatchTrigger, err error)
|
||||
// Get retrieves the KubernetesWatchTrigger from the indexer for a given namespace and name.
|
||||
Get(name string) (*v1.KubernetesWatchTrigger, error)
|
||||
KubernetesWatchTriggerNamespaceListerExpansion
|
||||
}
|
||||
|
||||
// _kubernetesWatchTriggerNamespaceLister implements the KubernetesWatchTriggerNamespaceLister
|
||||
// interface.
|
||||
type _kubernetesWatchTriggerNamespaceLister struct {
|
||||
indexer cache.Indexer
|
||||
namespace string
|
||||
}
|
||||
|
||||
// List lists all KubernetesWatchTriggers in the indexer for a given namespace.
|
||||
func (s _kubernetesWatchTriggerNamespaceLister) List(selector labels.Selector) (ret []*v1.KubernetesWatchTrigger, err error) {
|
||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.KubernetesWatchTrigger))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Get retrieves the KubernetesWatchTrigger from the indexer for a given namespace and name.
|
||||
func (s _kubernetesWatchTriggerNamespaceLister) Get(name string) (*v1.KubernetesWatchTrigger, error) {
|
||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !exists {
|
||||
return nil, errors.NewNotFound(v1.Resource("kuberneteswatchtrigger"), name)
|
||||
}
|
||||
return obj.(*v1.KubernetesWatchTrigger), nil
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// MessageQueueTriggerLister helps list MessageQueueTriggers.
|
||||
type MessageQueueTriggerLister interface {
|
||||
// List lists all MessageQueueTriggers in the indexer.
|
||||
List(selector labels.Selector) (ret []*v1.MessageQueueTrigger, err error)
|
||||
// MessageQueueTriggers returns an object that can list and get MessageQueueTriggers.
|
||||
MessageQueueTriggers(namespace string) MessageQueueTriggerNamespaceLister
|
||||
MessageQueueTriggerListerExpansion
|
||||
}
|
||||
|
||||
// _messageQueueTriggerLister implements the MessageQueueTriggerLister interface.
|
||||
type _messageQueueTriggerLister struct {
|
||||
indexer cache.Indexer
|
||||
}
|
||||
|
||||
// NewMessageQueueTriggerLister returns a new MessageQueueTriggerLister.
|
||||
func NewMessageQueueTriggerLister(indexer cache.Indexer) MessageQueueTriggerLister {
|
||||
return &_messageQueueTriggerLister{indexer: indexer}
|
||||
}
|
||||
|
||||
// List lists all MessageQueueTriggers in the indexer.
|
||||
func (s *_messageQueueTriggerLister) List(selector labels.Selector) (ret []*v1.MessageQueueTrigger, err error) {
|
||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.MessageQueueTrigger))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// MessageQueueTriggers returns an object that can list and get MessageQueueTriggers.
|
||||
func (s *_messageQueueTriggerLister) MessageQueueTriggers(namespace string) MessageQueueTriggerNamespaceLister {
|
||||
return _messageQueueTriggerNamespaceLister{indexer: s.indexer, namespace: namespace}
|
||||
}
|
||||
|
||||
// MessageQueueTriggerNamespaceLister helps list and get MessageQueueTriggers.
|
||||
type MessageQueueTriggerNamespaceLister interface {
|
||||
// List lists all MessageQueueTriggers in the indexer for a given namespace.
|
||||
List(selector labels.Selector) (ret []*v1.MessageQueueTrigger, err error)
|
||||
// Get retrieves the MessageQueueTrigger from the indexer for a given namespace and name.
|
||||
Get(name string) (*v1.MessageQueueTrigger, error)
|
||||
MessageQueueTriggerNamespaceListerExpansion
|
||||
}
|
||||
|
||||
// _messageQueueTriggerNamespaceLister implements the MessageQueueTriggerNamespaceLister
|
||||
// interface.
|
||||
type _messageQueueTriggerNamespaceLister struct {
|
||||
indexer cache.Indexer
|
||||
namespace string
|
||||
}
|
||||
|
||||
// List lists all MessageQueueTriggers in the indexer for a given namespace.
|
||||
func (s _messageQueueTriggerNamespaceLister) List(selector labels.Selector) (ret []*v1.MessageQueueTrigger, err error) {
|
||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.MessageQueueTrigger))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Get retrieves the MessageQueueTrigger from the indexer for a given namespace and name.
|
||||
func (s _messageQueueTriggerNamespaceLister) Get(name string) (*v1.MessageQueueTrigger, error) {
|
||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !exists {
|
||||
return nil, errors.NewNotFound(v1.Resource("messagequeuetrigger"), name)
|
||||
}
|
||||
return obj.(*v1.MessageQueueTrigger), nil
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// PackageLister helps list Packages.
|
||||
type PackageLister interface {
|
||||
// List lists all Packages in the indexer.
|
||||
List(selector labels.Selector) (ret []*v1.Package, err error)
|
||||
// Packages returns an object that can list and get Packages.
|
||||
Packages(namespace string) PackageNamespaceLister
|
||||
PackageListerExpansion
|
||||
}
|
||||
|
||||
// _packageLister implements the PackageLister interface.
|
||||
type _packageLister struct {
|
||||
indexer cache.Indexer
|
||||
}
|
||||
|
||||
// NewPackageLister returns a new PackageLister.
|
||||
func NewPackageLister(indexer cache.Indexer) PackageLister {
|
||||
return &_packageLister{indexer: indexer}
|
||||
}
|
||||
|
||||
// List lists all Packages in the indexer.
|
||||
func (s *_packageLister) List(selector labels.Selector) (ret []*v1.Package, err error) {
|
||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.Package))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Packages returns an object that can list and get Packages.
|
||||
func (s *_packageLister) Packages(namespace string) PackageNamespaceLister {
|
||||
return _packageNamespaceLister{indexer: s.indexer, namespace: namespace}
|
||||
}
|
||||
|
||||
// PackageNamespaceLister helps list and get Packages.
|
||||
type PackageNamespaceLister interface {
|
||||
// List lists all Packages in the indexer for a given namespace.
|
||||
List(selector labels.Selector) (ret []*v1.Package, err error)
|
||||
// Get retrieves the Package from the indexer for a given namespace and name.
|
||||
Get(name string) (*v1.Package, error)
|
||||
PackageNamespaceListerExpansion
|
||||
}
|
||||
|
||||
// _packageNamespaceLister implements the PackageNamespaceLister
|
||||
// interface.
|
||||
type _packageNamespaceLister struct {
|
||||
indexer cache.Indexer
|
||||
namespace string
|
||||
}
|
||||
|
||||
// List lists all Packages in the indexer for a given namespace.
|
||||
func (s _packageNamespaceLister) List(selector labels.Selector) (ret []*v1.Package, err error) {
|
||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.Package))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Get retrieves the Package from the indexer for a given namespace and name.
|
||||
func (s _packageNamespaceLister) Get(name string) (*v1.Package, error) {
|
||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !exists {
|
||||
return nil, errors.NewNotFound(v1.Resource("package"), name)
|
||||
}
|
||||
return obj.(*v1.Package), nil
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
Copyright The Fission 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 v1
|
||||
|
||||
import (
|
||||
v1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
)
|
||||
|
||||
// TimeTriggerLister helps list TimeTriggers.
|
||||
type TimeTriggerLister interface {
|
||||
// List lists all TimeTriggers in the indexer.
|
||||
List(selector labels.Selector) (ret []*v1.TimeTrigger, err error)
|
||||
// TimeTriggers returns an object that can list and get TimeTriggers.
|
||||
TimeTriggers(namespace string) TimeTriggerNamespaceLister
|
||||
TimeTriggerListerExpansion
|
||||
}
|
||||
|
||||
// _timeTriggerLister implements the TimeTriggerLister interface.
|
||||
type _timeTriggerLister struct {
|
||||
indexer cache.Indexer
|
||||
}
|
||||
|
||||
// NewTimeTriggerLister returns a new TimeTriggerLister.
|
||||
func NewTimeTriggerLister(indexer cache.Indexer) TimeTriggerLister {
|
||||
return &_timeTriggerLister{indexer: indexer}
|
||||
}
|
||||
|
||||
// List lists all TimeTriggers in the indexer.
|
||||
func (s *_timeTriggerLister) List(selector labels.Selector) (ret []*v1.TimeTrigger, err error) {
|
||||
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.TimeTrigger))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// TimeTriggers returns an object that can list and get TimeTriggers.
|
||||
func (s *_timeTriggerLister) TimeTriggers(namespace string) TimeTriggerNamespaceLister {
|
||||
return _timeTriggerNamespaceLister{indexer: s.indexer, namespace: namespace}
|
||||
}
|
||||
|
||||
// TimeTriggerNamespaceLister helps list and get TimeTriggers.
|
||||
type TimeTriggerNamespaceLister interface {
|
||||
// List lists all TimeTriggers in the indexer for a given namespace.
|
||||
List(selector labels.Selector) (ret []*v1.TimeTrigger, err error)
|
||||
// Get retrieves the TimeTrigger from the indexer for a given namespace and name.
|
||||
Get(name string) (*v1.TimeTrigger, error)
|
||||
TimeTriggerNamespaceListerExpansion
|
||||
}
|
||||
|
||||
// _timeTriggerNamespaceLister implements the TimeTriggerNamespaceLister
|
||||
// interface.
|
||||
type _timeTriggerNamespaceLister struct {
|
||||
indexer cache.Indexer
|
||||
namespace string
|
||||
}
|
||||
|
||||
// List lists all TimeTriggers in the indexer for a given namespace.
|
||||
func (s _timeTriggerNamespaceLister) List(selector labels.Selector) (ret []*v1.TimeTrigger, err error) {
|
||||
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
|
||||
ret = append(ret, m.(*v1.TimeTrigger))
|
||||
})
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Get retrieves the TimeTrigger from the indexer for a given namespace and name.
|
||||
func (s _timeTriggerNamespaceLister) Get(name string) (*v1.TimeTrigger, error) {
|
||||
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !exists {
|
||||
return nil, errors.NewNotFound(v1.Resource("timetrigger"), name)
|
||||
}
|
||||
return obj.(*v1.TimeTrigger), nil
|
||||
}
|
||||
@@ -19,6 +19,7 @@ package buildermgr
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -46,7 +47,7 @@ import (
|
||||
func buildPackage(ctx context.Context, logger *zap.Logger, fissionClient *crd.FissionClient, envBuilderNamespace string,
|
||||
storageSvcUrl string, pkg *fv1.Package) (uploadResp *types.ArchiveUploadResponse, buildLogs string, err error) {
|
||||
|
||||
env, err := fissionClient.Environments(pkg.Spec.Environment.Namespace).Get(pkg.Spec.Environment.Name)
|
||||
env, err := fissionClient.V1().Environments(pkg.Spec.Environment.Namespace).Get(pkg.Spec.Environment.Name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
e := "error getting environment CRD info"
|
||||
logger.Error(e, zap.Error(err))
|
||||
@@ -54,14 +55,14 @@ func buildPackage(ctx context.Context, logger *zap.Logger, fissionClient *crd.Fi
|
||||
return nil, e, ferror.MakeError(http.StatusInternalServerError, e)
|
||||
}
|
||||
|
||||
svcName := fmt.Sprintf("%v-%v.%v", env.Metadata.Name, env.Metadata.ResourceVersion, envBuilderNamespace)
|
||||
srcPkgFilename := fmt.Sprintf("%v-%v", pkg.Metadata.Name, strings.ToLower(uniuri.NewLen(6)))
|
||||
svcName := fmt.Sprintf("%v-%v.%v", env.ObjectMeta.Name, env.ObjectMeta.ResourceVersion, envBuilderNamespace)
|
||||
srcPkgFilename := fmt.Sprintf("%v-%v", pkg.ObjectMeta.Name, strings.ToLower(uniuri.NewLen(6)))
|
||||
fetcherC := fetcherClient.MakeClient(logger, fmt.Sprintf("http://%v:8000", svcName))
|
||||
builderC := builderClient.MakeClient(logger, fmt.Sprintf("http://%v:8001", svcName))
|
||||
|
||||
fetchReq := &types.FunctionFetchRequest{
|
||||
FetchType: types.FETCH_SOURCE,
|
||||
Package: pkg.Metadata,
|
||||
Package: pkg.ObjectMeta,
|
||||
Filename: srcPkgFilename,
|
||||
KeepArchive: false,
|
||||
}
|
||||
@@ -127,7 +128,7 @@ func updatePackage(logger *zap.Logger, fissionClient *crd.FissionClient,
|
||||
pkg.Status = fv1.PackageStatus{
|
||||
BuildStatus: status,
|
||||
BuildLog: buildLogs,
|
||||
LastUpdateTimestamp: time.Now().UTC(),
|
||||
LastUpdateTimestamp: metav1.Time{Time: time.Now().UTC()},
|
||||
}
|
||||
|
||||
if uploadResp != nil {
|
||||
@@ -139,7 +140,7 @@ func updatePackage(logger *zap.Logger, fissionClient *crd.FissionClient,
|
||||
}
|
||||
|
||||
// update package spec
|
||||
pkg, err := fissionClient.Packages(pkg.Metadata.Namespace).Update(pkg)
|
||||
pkg, err := fissionClient.V1().Packages(pkg.ObjectMeta.Namespace).Update(pkg)
|
||||
if err != nil {
|
||||
e := "error updating package"
|
||||
logger.Error(e, zap.Error(err))
|
||||
|
||||
@@ -148,7 +148,7 @@ func (envw *environmentWatcher) getLabels(envName string, envNamespace string, e
|
||||
func (envw *environmentWatcher) watchEnvironments() {
|
||||
rv := ""
|
||||
for {
|
||||
wi, err := envw.fissionClient.Environments(metav1.NamespaceAll).Watch(metav1.ListOptions{
|
||||
wi, err := envw.fissionClient.V1().Environments(metav1.NamespaceAll).Watch(metav1.ListOptions{
|
||||
ResourceVersion: rv,
|
||||
})
|
||||
if err != nil {
|
||||
@@ -173,7 +173,7 @@ func (envw *environmentWatcher) watchEnvironments() {
|
||||
break
|
||||
}
|
||||
env := ev.Object.(*fv1.Environment)
|
||||
rv = env.Metadata.ResourceVersion
|
||||
rv = env.ObjectMeta.ResourceVersion
|
||||
envw.sync()
|
||||
}
|
||||
}
|
||||
@@ -182,7 +182,7 @@ func (envw *environmentWatcher) watchEnvironments() {
|
||||
func (envw *environmentWatcher) sync() {
|
||||
maxRetries := 10
|
||||
for i := 0; i < maxRetries; i++ {
|
||||
envList, err := envw.fissionClient.Environments(metav1.NamespaceAll).List(metav1.ListOptions{})
|
||||
envList, err := envw.fissionClient.V1().Environments(metav1.NamespaceAll).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
if utils.IsNetworkError(err) {
|
||||
envw.logger.Error("error syncing environment CRD resources due to network error, retrying later", zap.Error(err))
|
||||
@@ -202,7 +202,7 @@ func (envw *environmentWatcher) sync() {
|
||||
}
|
||||
_, err := envw.getEnvBuilder(&env)
|
||||
if err != nil {
|
||||
envw.logger.Error("error creating builder", zap.Error(err), zap.String("builder_target", env.Metadata.Name))
|
||||
envw.logger.Error("error creating builder", zap.Error(err), zap.String("builder_target", env.ObjectMeta.Name))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -220,11 +220,11 @@ func (envw *environmentWatcher) service() {
|
||||
// In order to support backward compatibility, for all environments with builder image created in default env,
|
||||
// the pods will be created in fission-builder namespace
|
||||
ns := envw.builderNamespace
|
||||
if req.env.Metadata.Namespace != metav1.NamespaceDefault {
|
||||
ns = req.env.Metadata.Namespace
|
||||
if req.env.ObjectMeta.Namespace != metav1.NamespaceDefault {
|
||||
ns = req.env.ObjectMeta.Namespace
|
||||
}
|
||||
|
||||
key := envw.getCacheKey(req.env.Metadata.Name, ns, req.env.Metadata.ResourceVersion)
|
||||
key := envw.getCacheKey(req.env.ObjectMeta.Name, ns, req.env.ObjectMeta.ResourceVersion)
|
||||
builderInfo, ok := envw.cache[key]
|
||||
if !ok {
|
||||
builderInfo, err := envw.createBuilder(req.env, ns)
|
||||
@@ -243,10 +243,10 @@ func (envw *environmentWatcher) service() {
|
||||
// In order to support backward compatibility, for all builder images created in default
|
||||
// env, the pods are created in fission-builder namespace
|
||||
ns := envw.builderNamespace
|
||||
if env.Metadata.Namespace != metav1.NamespaceDefault {
|
||||
ns = env.Metadata.Namespace
|
||||
if env.ObjectMeta.Namespace != metav1.NamespaceDefault {
|
||||
ns = env.ObjectMeta.Namespace
|
||||
}
|
||||
key := envw.getCacheKey(env.Metadata.Name, ns, env.Metadata.ResourceVersion)
|
||||
key := envw.getCacheKey(env.ObjectMeta.Name, ns, env.ObjectMeta.ResourceVersion)
|
||||
latestEnvList[key] = &env
|
||||
}
|
||||
|
||||
@@ -321,7 +321,7 @@ func (envw *environmentWatcher) createBuilder(env *fv1.Environment, ns string) (
|
||||
var svc *apiv1.Service
|
||||
var deploy *appsv1.Deployment
|
||||
|
||||
sel := envw.getLabels(env.Metadata.Name, ns, env.Metadata.ResourceVersion)
|
||||
sel := envw.getLabels(env.ObjectMeta.Name, ns, env.ObjectMeta.ResourceVersion)
|
||||
|
||||
svcList, err := envw.getBuilderServiceList(sel, ns)
|
||||
if err != nil {
|
||||
@@ -336,7 +336,7 @@ func (envw *environmentWatcher) createBuilder(env *fv1.Environment, ns string) (
|
||||
} else if len(svcList) == 1 {
|
||||
svc = &svcList[0]
|
||||
} else {
|
||||
return nil, fmt.Errorf("found more than one builder service for environment %q", env.Metadata.Name)
|
||||
return nil, fmt.Errorf("found more than one builder service for environment %q", env.ObjectMeta.Name)
|
||||
}
|
||||
|
||||
deployList, err := envw.getBuilderDeploymentList(sel, ns)
|
||||
@@ -358,11 +358,11 @@ func (envw *environmentWatcher) createBuilder(env *fv1.Environment, ns string) (
|
||||
} else if len(deployList) == 1 {
|
||||
deploy = &deployList[0]
|
||||
} else {
|
||||
return nil, fmt.Errorf("found more than one builder deployment for environment %q", env.Metadata.Name)
|
||||
return nil, fmt.Errorf("found more than one builder deployment for environment %q", env.ObjectMeta.Name)
|
||||
}
|
||||
|
||||
return &builderInfo{
|
||||
envMetadata: &env.Metadata,
|
||||
envMetadata: &env.ObjectMeta,
|
||||
service: svc,
|
||||
deployment: deploy,
|
||||
}, nil
|
||||
@@ -400,8 +400,8 @@ func (envw *environmentWatcher) getBuilderServiceList(sel map[string]string, ns
|
||||
}
|
||||
|
||||
func (envw *environmentWatcher) createBuilderService(env *fv1.Environment, ns string) (*apiv1.Service, error) {
|
||||
name := fmt.Sprintf("%v-%v", env.Metadata.Name, env.Metadata.ResourceVersion)
|
||||
sel := envw.getLabels(env.Metadata.Name, ns, env.Metadata.ResourceVersion)
|
||||
name := fmt.Sprintf("%v-%v", env.ObjectMeta.Name, env.ObjectMeta.ResourceVersion)
|
||||
sel := envw.getLabels(env.ObjectMeta.Name, ns, env.ObjectMeta.ResourceVersion)
|
||||
service := apiv1.Service{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: ns,
|
||||
@@ -453,11 +453,11 @@ func (envw *environmentWatcher) getBuilderDeploymentList(sel map[string]string,
|
||||
}
|
||||
|
||||
func (envw *environmentWatcher) createBuilderDeployment(env *fv1.Environment, ns string) (*appsv1.Deployment, error) {
|
||||
name := fmt.Sprintf("%v-%v", env.Metadata.Name, env.Metadata.ResourceVersion)
|
||||
sel := envw.getLabels(env.Metadata.Name, ns, env.Metadata.ResourceVersion)
|
||||
name := fmt.Sprintf("%v-%v", env.ObjectMeta.Name, env.ObjectMeta.ResourceVersion)
|
||||
sel := envw.getLabels(env.ObjectMeta.Name, ns, env.ObjectMeta.ResourceVersion)
|
||||
var replicas int32 = 1
|
||||
|
||||
podAnnotations := env.Metadata.Annotations
|
||||
podAnnotations := env.ObjectMeta.Annotations
|
||||
if podAnnotations == nil {
|
||||
podAnnotations = make(map[string]string)
|
||||
}
|
||||
|
||||
@@ -83,14 +83,14 @@ func (pkgw *packageWatcher) build(buildCache *cache.Cache, srcpkg *fv1.Package)
|
||||
}
|
||||
|
||||
// Ignore duplicate build requests
|
||||
key := fmt.Sprintf("%v-%v", srcpkg.Metadata.Name, srcpkg.Metadata.ResourceVersion)
|
||||
key := fmt.Sprintf("%v-%v", srcpkg.ObjectMeta.Name, srcpkg.ObjectMeta.ResourceVersion)
|
||||
_, err := buildCache.Set(key, srcpkg)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
defer buildCache.Delete(key)
|
||||
|
||||
pkgw.logger.Info("starting build for package", zap.String("package_name", srcpkg.Metadata.Name), zap.String("resource_version", srcpkg.Metadata.ResourceVersion))
|
||||
pkgw.logger.Info("starting build for package", zap.String("package_name", srcpkg.ObjectMeta.Name), zap.String("resource_version", srcpkg.ObjectMeta.ResourceVersion))
|
||||
|
||||
pkg, err := updatePackage(pkgw.logger, pkgw.fissionClient, srcpkg, fv1.BuildStatusRunning, "", nil)
|
||||
if err != nil {
|
||||
@@ -98,7 +98,7 @@ func (pkgw *packageWatcher) build(buildCache *cache.Cache, srcpkg *fv1.Package)
|
||||
return
|
||||
}
|
||||
|
||||
env, err := pkgw.fissionClient.Environments(pkg.Spec.Environment.Namespace).Get(pkg.Spec.Environment.Name)
|
||||
env, err := pkgw.fissionClient.V1().Environments(pkg.Spec.Environment.Namespace).Get(pkg.Spec.Environment.Name, metav1.GetOptions{})
|
||||
if k8serrors.IsNotFound(err) {
|
||||
e := "environment does not exist"
|
||||
pkgw.logger.Error(e, zap.String("environment", pkg.Spec.Environment.Name))
|
||||
@@ -113,7 +113,7 @@ func (pkgw *packageWatcher) build(buildCache *cache.Cache, srcpkg *fv1.Package)
|
||||
// iterate all available environment builders.
|
||||
items := pkgw.podStore.List()
|
||||
if err != nil {
|
||||
pkgw.logger.Error("error retrieving pod information for environment", zap.Error(err), zap.String("environment", env.Metadata.Name))
|
||||
pkgw.logger.Error("error retrieving pod information for environment", zap.Error(err), zap.String("environment", env.ObjectMeta.Name))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -129,14 +129,14 @@ func (pkgw *packageWatcher) build(buildCache *cache.Cache, srcpkg *fv1.Package)
|
||||
// In order to support backward compatibility, for all builder images created in default env,
|
||||
// the pods will be created in fission-builder namespace
|
||||
builderNs := pkgw.builderNamespace
|
||||
if env.Metadata.Namespace != metav1.NamespaceDefault {
|
||||
builderNs = env.Metadata.Namespace
|
||||
if env.ObjectMeta.Namespace != metav1.NamespaceDefault {
|
||||
builderNs = env.ObjectMeta.Namespace
|
||||
}
|
||||
|
||||
// Filter non-matching pods
|
||||
if pod.ObjectMeta.Labels[LABEL_ENV_NAME] != env.Metadata.Name ||
|
||||
if pod.ObjectMeta.Labels[LABEL_ENV_NAME] != env.ObjectMeta.Name ||
|
||||
pod.ObjectMeta.Labels[LABEL_ENV_NAMESPACE] != builderNs ||
|
||||
pod.ObjectMeta.Labels[LABEL_ENV_RESOURCEVERSION] != env.Metadata.ResourceVersion {
|
||||
pod.ObjectMeta.Labels[LABEL_ENV_RESOURCEVERSION] != env.ObjectMeta.ResourceVersion {
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -157,31 +157,31 @@ func (pkgw *packageWatcher) build(buildCache *cache.Cache, srcpkg *fv1.Package)
|
||||
// Add the package getter rolebinding to builder sa
|
||||
// we continue here if role binding was not setup succeesffully. this is because without this, the fetcher wont be able to fetch the source pkg into the container and
|
||||
// the build will fail eventually
|
||||
err := utils.SetupRoleBinding(pkgw.logger, pkgw.k8sClient, types.PackageGetterRB, pkg.Metadata.Namespace, types.PackageGetterCR, types.ClusterRole, types.FissionBuilderSA, builderNs)
|
||||
err := utils.SetupRoleBinding(pkgw.logger, pkgw.k8sClient, types.PackageGetterRB, pkg.ObjectMeta.Namespace, types.PackageGetterCR, types.ClusterRole, types.FissionBuilderSA, builderNs)
|
||||
if err != nil {
|
||||
pkgw.logger.Error("error setting up role binding for package",
|
||||
zap.Error(err),
|
||||
zap.String("role_binding", types.PackageGetterRB),
|
||||
zap.String("package_name", pkg.Metadata.Name),
|
||||
zap.String("package_namespace", pkg.Metadata.Namespace))
|
||||
zap.String("package_name", pkg.ObjectMeta.Name),
|
||||
zap.String("package_namespace", pkg.ObjectMeta.Namespace))
|
||||
continue
|
||||
} else {
|
||||
pkgw.logger.Info("setup rolebinding for sa package",
|
||||
zap.String("sa", fmt.Sprintf("%s.%s", types.FissionBuilderSA, builderNs)),
|
||||
zap.String("package", fmt.Sprintf("%s.%s", pkg.Metadata.Name, pkg.Metadata.Namespace)))
|
||||
zap.String("package", fmt.Sprintf("%s.%s", pkg.ObjectMeta.Name, pkg.ObjectMeta.Namespace)))
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
uploadResp, buildLogs, err := buildPackage(ctx, pkgw.logger, pkgw.fissionClient, builderNs, pkgw.storageSvcUrl, pkg)
|
||||
if err != nil {
|
||||
pkgw.logger.Error("error building package", zap.Error(err), zap.String("package_name", pkg.Metadata.Name))
|
||||
pkgw.logger.Error("error building package", zap.Error(err), zap.String("package_name", pkg.ObjectMeta.Name))
|
||||
updatePackage(pkgw.logger, pkgw.fissionClient, pkg, types.BuildStatusFailed, buildLogs, nil)
|
||||
return
|
||||
}
|
||||
|
||||
pkgw.logger.Info("starting package info update", zap.String("package_name", pkg.Metadata.Name))
|
||||
pkgw.logger.Info("starting package info update", zap.String("package_name", pkg.ObjectMeta.Name))
|
||||
|
||||
fnList, err := pkgw.fissionClient.
|
||||
fnList, err := pkgw.fissionClient.V1().
|
||||
Functions(metav1.NamespaceAll).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
e := "error getting function list"
|
||||
@@ -193,12 +193,12 @@ func (pkgw *packageWatcher) build(buildCache *cache.Cache, srcpkg *fv1.Package)
|
||||
// A package may be used by multiple functions. Update
|
||||
// functions with old package resource version
|
||||
for _, fn := range fnList.Items {
|
||||
if fn.Spec.Package.PackageRef.Name == pkg.Metadata.Name &&
|
||||
fn.Spec.Package.PackageRef.Namespace == pkg.Metadata.Namespace &&
|
||||
fn.Spec.Package.PackageRef.ResourceVersion != pkg.Metadata.ResourceVersion {
|
||||
fn.Spec.Package.PackageRef.ResourceVersion = pkg.Metadata.ResourceVersion
|
||||
if fn.Spec.Package.PackageRef.Name == pkg.ObjectMeta.Name &&
|
||||
fn.Spec.Package.PackageRef.Namespace == pkg.ObjectMeta.Namespace &&
|
||||
fn.Spec.Package.PackageRef.ResourceVersion != pkg.ObjectMeta.ResourceVersion {
|
||||
fn.Spec.Package.PackageRef.ResourceVersion = pkg.ObjectMeta.ResourceVersion
|
||||
// update CRD
|
||||
_, err = pkgw.fissionClient.Functions(fn.Metadata.Namespace).Update(&fn)
|
||||
_, err = pkgw.fissionClient.V1().Functions(fn.ObjectMeta.Namespace).Update(&fn)
|
||||
if err != nil {
|
||||
e := "error updating function package resource version"
|
||||
pkgw.logger.Error(e, zap.Error(err))
|
||||
@@ -212,12 +212,12 @@ func (pkgw *packageWatcher) build(buildCache *cache.Cache, srcpkg *fv1.Package)
|
||||
_, err = updatePackage(pkgw.logger, pkgw.fissionClient, pkg,
|
||||
types.BuildStatusSucceeded, buildLogs, uploadResp)
|
||||
if err != nil {
|
||||
pkgw.logger.Error("error updating package info", zap.Error(err), zap.String("package_name", pkg.Metadata.Name))
|
||||
pkgw.logger.Error("error updating package info", zap.Error(err), zap.String("package_name", pkg.ObjectMeta.Name))
|
||||
updatePackage(pkgw.logger, pkgw.fissionClient, pkg, types.BuildStatusFailed, buildLogs, nil)
|
||||
return
|
||||
}
|
||||
|
||||
pkgw.logger.Info("completed package build request", zap.String("package_name", pkg.Metadata.Name))
|
||||
pkgw.logger.Info("completed package build request", zap.String("package_name", pkg.ObjectMeta.Name))
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -226,13 +226,13 @@ func (pkgw *packageWatcher) build(buildCache *cache.Cache, srcpkg *fv1.Package)
|
||||
types.BuildStatusFailed, "Build timeout due to environment builder not ready", nil)
|
||||
|
||||
pkgw.logger.Error("max retries exceeded in building source package, timeout due to environment builder not ready",
|
||||
zap.String("package", fmt.Sprintf("%s.%s", pkg.Metadata.Name, pkg.Metadata.Namespace)))
|
||||
zap.String("package", fmt.Sprintf("%s.%s", pkg.ObjectMeta.Name, pkg.ObjectMeta.Namespace)))
|
||||
}
|
||||
|
||||
func (pkgw *packageWatcher) watchPackages(fissionClient *crd.FissionClient,
|
||||
kubernetesClient *kubernetes.Clientset, builderNamespace string) {
|
||||
buildCache := cache.MakeCache(0, 0)
|
||||
lw := k8sCache.NewListWatchFromClient(pkgw.fissionClient.GetCrdClient(), "packages", apiv1.NamespaceAll, fields.Everything())
|
||||
lw := k8sCache.NewListWatchFromClient(pkgw.fissionClient.V1().RESTClient(), "packages", apiv1.NamespaceAll, fields.Everything())
|
||||
pkgStore, controller := k8sCache.NewInformer(lw, &fv1.Package{}, 60*time.Second, k8sCache.ResourceEventHandlerFuncs{
|
||||
AddFunc: func(obj interface{}) {
|
||||
pkg := obj.(*fv1.Package)
|
||||
|
||||
@@ -49,11 +49,11 @@ type canaryConfigMgr struct {
|
||||
canaryConfigStore k8sCache.Store
|
||||
canaryConfigController k8sCache.Controller
|
||||
promClient *PrometheusApiClient
|
||||
crdClient *rest.RESTClient
|
||||
crdClient rest.Interface
|
||||
canaryCfgCancelFuncMap *canaryConfigCancelFuncMap
|
||||
}
|
||||
|
||||
func MakeCanaryConfigMgr(logger *zap.Logger, fissionClient *crd.FissionClient, kubeClient *kubernetes.Clientset, crdClient *rest.RESTClient, prometheusSvc string) (*canaryConfigMgr, error) {
|
||||
func MakeCanaryConfigMgr(logger *zap.Logger, fissionClient *crd.FissionClient, kubeClient *kubernetes.Clientset, crdClient rest.Interface, prometheusSvc string) (*canaryConfigMgr, error) {
|
||||
if prometheusSvc == "" {
|
||||
logger.Info("try to retrieve prometheus server information from environment variables")
|
||||
|
||||
@@ -123,12 +123,12 @@ func (canaryCfgMgr *canaryConfigMgr) initCanaryConfigController() (k8sCache.Stor
|
||||
UpdateFunc: func(oldObj interface{}, newObj interface{}) {
|
||||
oldConfig := oldObj.(*fv1.CanaryConfig)
|
||||
newConfig := newObj.(*fv1.CanaryConfig)
|
||||
if oldConfig.Metadata.ResourceVersion != newConfig.Metadata.ResourceVersion &&
|
||||
if oldConfig.ObjectMeta.ResourceVersion != newConfig.ObjectMeta.ResourceVersion &&
|
||||
newConfig.Status.Status == types.CanaryConfigStatusPending {
|
||||
canaryCfgMgr.logger.Info("update canary config invoked",
|
||||
zap.String("name", newConfig.Metadata.Name),
|
||||
zap.String("namespace", newConfig.Metadata.Namespace),
|
||||
zap.String("version", newConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", newConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", newConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", newConfig.ObjectMeta.ResourceVersion))
|
||||
go canaryCfgMgr.updateCanaryConfig(oldConfig, newConfig)
|
||||
}
|
||||
go canaryCfgMgr.reSyncCanaryConfigs()
|
||||
@@ -145,7 +145,7 @@ func (canaryCfgMgr *canaryConfigMgr) Run(ctx context.Context) {
|
||||
}
|
||||
|
||||
func (canaryCfgMgr *canaryConfigMgr) addCanaryConfig(canaryConfig *fv1.CanaryConfig) {
|
||||
canaryCfgMgr.logger.Debug("addCanaryConfig called", zap.String("canary_config", canaryConfig.Metadata.Name))
|
||||
canaryCfgMgr.logger.Debug("addCanaryConfig called", zap.String("canary_config", canaryConfig.ObjectMeta.Name))
|
||||
|
||||
// for each canary config, create a ticker with increment interval
|
||||
interval, err := time.ParseDuration(canaryConfig.Spec.WeightIncrementDuration)
|
||||
@@ -153,9 +153,9 @@ func (canaryCfgMgr *canaryConfigMgr) addCanaryConfig(canaryConfig *fv1.CanaryCon
|
||||
canaryCfgMgr.logger.Error("error parsing duration - cant proceed with this canaryConfig",
|
||||
zap.Error(err),
|
||||
zap.String("duration", canaryConfig.Spec.WeightIncrementDuration),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
return
|
||||
}
|
||||
ticker := time.NewTicker(interval)
|
||||
@@ -168,13 +168,13 @@ func (canaryCfgMgr *canaryConfigMgr) addCanaryConfig(canaryConfig *fv1.CanaryCon
|
||||
CancelFunc: &cancel,
|
||||
Ticker: ticker,
|
||||
}
|
||||
err = canaryCfgMgr.canaryCfgCancelFuncMap.assign(&canaryConfig.Metadata, cacheValue)
|
||||
err = canaryCfgMgr.canaryCfgCancelFuncMap.assign(&canaryConfig.ObjectMeta, cacheValue)
|
||||
if err != nil {
|
||||
canaryCfgMgr.logger.Error("error caching canary config",
|
||||
zap.Error(err),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
return
|
||||
}
|
||||
canaryCfgMgr.processCanaryConfig(&ctx, canaryConfig, ticker)
|
||||
@@ -188,16 +188,16 @@ func (canaryCfgMgr *canaryConfigMgr) processCanaryConfig(ctx *context.Context, c
|
||||
case <-(*ctx).Done():
|
||||
// this case when someone deleted their canary config in the middle of it being processed
|
||||
canaryCfgMgr.logger.Info("cancel func called for canary config",
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
err := canaryCfgMgr.canaryCfgCancelFuncMap.remove(&canaryConfig.Metadata)
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
err := canaryCfgMgr.canaryCfgCancelFuncMap.remove(&canaryConfig.ObjectMeta)
|
||||
if err != nil {
|
||||
canaryCfgMgr.logger.Error("error removing canary config",
|
||||
zap.Error(err),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
}
|
||||
return
|
||||
|
||||
@@ -206,25 +206,25 @@ func (canaryCfgMgr *canaryConfigMgr) processCanaryConfig(ctx *context.Context, c
|
||||
// if yes, rollback.
|
||||
// else, increment the weight of new function and decrement old function by `weightIncrement`
|
||||
canaryCfgMgr.logger.Info("processing canary config",
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
canaryCfgMgr.RollForwardOrBack(canaryConfig, quit, ticker)
|
||||
|
||||
case <-quit:
|
||||
// we're done processing this canary config either because the new function receives 100% of the traffic
|
||||
// or we rolled back to send all 100% traffic to old function
|
||||
canaryCfgMgr.logger.Info("quit processing canaryConfig",
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
err := canaryCfgMgr.canaryCfgCancelFuncMap.remove(&canaryConfig.Metadata)
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
err := canaryCfgMgr.canaryCfgCancelFuncMap.remove(&canaryConfig.ObjectMeta)
|
||||
if err != nil {
|
||||
canaryCfgMgr.logger.Error("error removing canary config from map",
|
||||
zap.Error(err),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -233,26 +233,26 @@ func (canaryCfgMgr *canaryConfigMgr) processCanaryConfig(ctx *context.Context, c
|
||||
|
||||
func (canaryCfgMgr *canaryConfigMgr) RollForwardOrBack(canaryConfig *fv1.CanaryConfig, quit chan struct{}, ticker *time.Ticker) {
|
||||
// handle race between delete event and notification on ticker.C
|
||||
_, err := canaryCfgMgr.canaryCfgCancelFuncMap.lookup(&canaryConfig.Metadata)
|
||||
_, err := canaryCfgMgr.canaryCfgCancelFuncMap.lookup(&canaryConfig.ObjectMeta)
|
||||
if err != nil {
|
||||
canaryCfgMgr.logger.Info("no need of processing the config, not in cache anymore",
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
return
|
||||
}
|
||||
|
||||
// get the http trigger object associated with this canary config
|
||||
triggerObj, err := canaryCfgMgr.fissionClient.HTTPTriggers(canaryConfig.Metadata.Namespace).Get(canaryConfig.Spec.Trigger)
|
||||
triggerObj, err := canaryCfgMgr.fissionClient.V1().HTTPTriggers(canaryConfig.ObjectMeta.Namespace).Get(canaryConfig.Spec.Trigger, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
// if the http trigger is not found, then give up processing this config.
|
||||
if k8serrors.IsNotFound(err) {
|
||||
canaryCfgMgr.logger.Error("http trigger object for canary config missing",
|
||||
zap.Error(err),
|
||||
zap.String("trigger", canaryConfig.Spec.Trigger),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
close(quit)
|
||||
return
|
||||
}
|
||||
@@ -260,41 +260,41 @@ func (canaryCfgMgr *canaryConfigMgr) RollForwardOrBack(canaryConfig *fv1.CanaryC
|
||||
// just silently ignore. wait for next window to increment weight
|
||||
canaryCfgMgr.logger.Error("error fetching http trigger object for config",
|
||||
zap.Error(err),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
return
|
||||
}
|
||||
|
||||
// handle a race between ticker.Stop and receiving a notification on ticker.C
|
||||
if canaryConfig.Status.Status != types.CanaryConfigStatusPending {
|
||||
canaryCfgMgr.logger.Info("no need of processing the config, not pending anymore",
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
return
|
||||
}
|
||||
|
||||
if triggerObj.Spec.FunctionReference.Type == types.FunctionReferenceTypeFunctionWeights &&
|
||||
triggerObj.Spec.FunctionReference.FunctionWeights[canaryConfig.Spec.NewFunction] != 0 {
|
||||
failurePercent, err := canaryCfgMgr.promClient.GetFunctionFailurePercentage(triggerObj.Spec.RelativeURL, triggerObj.Spec.Method,
|
||||
canaryConfig.Spec.NewFunction, canaryConfig.Metadata.Namespace, canaryConfig.Spec.WeightIncrementDuration)
|
||||
canaryConfig.Spec.NewFunction, canaryConfig.ObjectMeta.Namespace, canaryConfig.Spec.WeightIncrementDuration)
|
||||
|
||||
if err != nil {
|
||||
// silently ignore. wait for next window to increment weight
|
||||
canaryCfgMgr.logger.Error("error calculating failure percentage",
|
||||
zap.Error(err),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
return
|
||||
}
|
||||
|
||||
canaryCfgMgr.logger.Info("failure percentage calculated for canaryConfig",
|
||||
zap.Float64("failure_percent", failurePercent),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
|
||||
if failurePercent == -1 {
|
||||
// this means there were no requests triggered to this url during this window. return here and check back
|
||||
@@ -307,17 +307,17 @@ func (canaryCfgMgr *canaryConfigMgr) RollForwardOrBack(canaryConfig *fv1.CanaryC
|
||||
canaryCfgMgr.logger.Error("failure percent crossed the threshold, so rolling back",
|
||||
zap.Float64("failure_percent", failurePercent),
|
||||
zap.Int("threshold", canaryConfig.Spec.FailureThreshold),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
ticker.Stop()
|
||||
err := canaryCfgMgr.rollback(canaryConfig, triggerObj)
|
||||
if err != nil {
|
||||
canaryCfgMgr.logger.Error("error rolling back canary config",
|
||||
zap.Error(err),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
}
|
||||
close(quit)
|
||||
return
|
||||
@@ -329,10 +329,10 @@ func (canaryCfgMgr *canaryConfigMgr) RollForwardOrBack(canaryConfig *fv1.CanaryC
|
||||
// just log the error and hope that next iteration will succeed
|
||||
canaryCfgMgr.logger.Error("error incrementing weights for trigger",
|
||||
zap.Error(err),
|
||||
zap.String("trigger", triggerObj.Metadata.Name),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("trigger", triggerObj.ObjectMeta.Name),
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -340,21 +340,21 @@ func (canaryCfgMgr *canaryConfigMgr) RollForwardOrBack(canaryConfig *fv1.CanaryC
|
||||
ticker.Stop()
|
||||
// update the status of canary config as done processing, we dont care if we arent able to update because
|
||||
// resync takes care of the update
|
||||
err = canaryCfgMgr.updateCanaryConfigStatusWithRetries(canaryConfig.Metadata.Name, canaryConfig.Metadata.Namespace,
|
||||
err = canaryCfgMgr.updateCanaryConfigStatusWithRetries(canaryConfig.ObjectMeta.Name, canaryConfig.ObjectMeta.Namespace,
|
||||
types.CanaryConfigStatusSucceeded)
|
||||
if err != nil {
|
||||
// cant do much after max retries other than logging it.
|
||||
canaryCfgMgr.logger.Error("error updating canary config after max retries",
|
||||
zap.Error(err),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
}
|
||||
|
||||
canaryCfgMgr.logger.Info("done processing canary config - the new function is receiving all the traffic",
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
close(quit)
|
||||
return
|
||||
}
|
||||
@@ -362,7 +362,7 @@ func (canaryCfgMgr *canaryConfigMgr) RollForwardOrBack(canaryConfig *fv1.CanaryC
|
||||
|
||||
func (canaryCfgMgr *canaryConfigMgr) updateHttpTriggerWithRetries(triggerName, triggerNamespace string, fnWeights map[string]int) (err error) {
|
||||
for i := 0; i < maxRetries; i++ {
|
||||
triggerObj, err := canaryCfgMgr.fissionClient.HTTPTriggers(triggerNamespace).Get(triggerName)
|
||||
triggerObj, err := canaryCfgMgr.fissionClient.V1().HTTPTriggers(triggerNamespace).Get(triggerName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
e := "error getting http trigger object"
|
||||
canaryCfgMgr.logger.Error(e, zap.Error(err), zap.String("trigger_name", triggerName), zap.String("trigger_namespace", triggerNamespace))
|
||||
@@ -371,7 +371,7 @@ func (canaryCfgMgr *canaryConfigMgr) updateHttpTriggerWithRetries(triggerName, t
|
||||
|
||||
triggerObj.Spec.FunctionReference.FunctionWeights = fnWeights
|
||||
|
||||
_, err = canaryCfgMgr.fissionClient.HTTPTriggers(triggerNamespace).Update(triggerObj)
|
||||
_, err = canaryCfgMgr.fissionClient.V1().HTTPTriggers(triggerNamespace).Update(triggerObj)
|
||||
switch {
|
||||
case err == nil:
|
||||
canaryCfgMgr.logger.Debug("updated http trigger", zap.String("trigger_name", triggerName), zap.String("trigger_namespace", triggerNamespace))
|
||||
@@ -397,7 +397,7 @@ func (canaryCfgMgr *canaryConfigMgr) updateHttpTriggerWithRetries(triggerName, t
|
||||
|
||||
func (canaryCfgMgr *canaryConfigMgr) updateCanaryConfigStatusWithRetries(cfgName, cfgNamespace string, status string) (err error) {
|
||||
for i := 0; i < maxRetries; i++ {
|
||||
canaryCfgObj, err := canaryCfgMgr.fissionClient.CanaryConfigs(cfgNamespace).Get(cfgName)
|
||||
canaryCfgObj, err := canaryCfgMgr.fissionClient.V1().CanaryConfigs(cfgNamespace).Get(cfgName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
e := "error getting http canary config object"
|
||||
canaryCfgMgr.logger.Error(e,
|
||||
@@ -415,7 +415,7 @@ func (canaryCfgMgr *canaryConfigMgr) updateCanaryConfigStatusWithRetries(cfgName
|
||||
|
||||
canaryCfgObj.Status.Status = status
|
||||
|
||||
_, err = canaryCfgMgr.fissionClient.CanaryConfigs(cfgNamespace).Update(canaryCfgObj)
|
||||
_, err = canaryCfgMgr.fissionClient.V1().CanaryConfigs(cfgNamespace).Update(canaryCfgObj)
|
||||
switch {
|
||||
case err == nil:
|
||||
canaryCfgMgr.logger.Info("updated canary config",
|
||||
@@ -446,12 +446,12 @@ func (canaryCfgMgr *canaryConfigMgr) rollback(canaryConfig *fv1.CanaryConfig, tr
|
||||
functionWeights[canaryConfig.Spec.NewFunction] = 0
|
||||
functionWeights[canaryConfig.Spec.OldFunction] = 100
|
||||
|
||||
err := canaryCfgMgr.updateHttpTriggerWithRetries(trigger.Metadata.Name, trigger.Metadata.Namespace, functionWeights)
|
||||
err := canaryCfgMgr.updateHttpTriggerWithRetries(trigger.ObjectMeta.Name, trigger.ObjectMeta.Namespace, functionWeights)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = canaryCfgMgr.updateCanaryConfigStatusWithRetries(canaryConfig.Metadata.Name, canaryConfig.Metadata.Namespace,
|
||||
err = canaryCfgMgr.updateCanaryConfigStatusWithRetries(canaryConfig.ObjectMeta.Name, canaryConfig.ObjectMeta.Namespace,
|
||||
types.CanaryConfigStatusFailed)
|
||||
|
||||
return err
|
||||
@@ -475,23 +475,23 @@ func (canaryCfgMgr *canaryConfigMgr) rollForward(canaryConfig *fv1.CanaryConfig,
|
||||
}
|
||||
|
||||
canaryCfgMgr.logger.Info("incremented functionWeights",
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.Any("function_weights", functionWeights))
|
||||
|
||||
err := canaryCfgMgr.updateHttpTriggerWithRetries(trigger.Metadata.Name, trigger.Metadata.Namespace, functionWeights)
|
||||
err := canaryCfgMgr.updateHttpTriggerWithRetries(trigger.ObjectMeta.Name, trigger.ObjectMeta.Namespace, functionWeights)
|
||||
return doneProcessingCanaryConfig, err
|
||||
}
|
||||
|
||||
func (canaryCfgMgr *canaryConfigMgr) reSyncCanaryConfigs() {
|
||||
for _, obj := range canaryCfgMgr.canaryConfigStore.List() {
|
||||
canaryConfig := obj.(*fv1.CanaryConfig)
|
||||
_, err := canaryCfgMgr.canaryCfgCancelFuncMap.lookup(&canaryConfig.Metadata)
|
||||
_, err := canaryCfgMgr.canaryCfgCancelFuncMap.lookup(&canaryConfig.ObjectMeta)
|
||||
if err != nil && canaryConfig.Status.Status == types.CanaryConfigStatusPending {
|
||||
canaryCfgMgr.logger.Debug("adding canary config from resync loop",
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
|
||||
// new canaryConfig detected, add it to our cache and start processing it
|
||||
go canaryCfgMgr.addCanaryConfig(canaryConfig)
|
||||
@@ -501,16 +501,16 @@ func (canaryCfgMgr *canaryConfigMgr) reSyncCanaryConfigs() {
|
||||
|
||||
func (canaryCfgMgr *canaryConfigMgr) deleteCanaryConfig(canaryConfig *fv1.CanaryConfig) {
|
||||
canaryCfgMgr.logger.Debug("delete event received for canary config",
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
canaryProcessingInfo, err := canaryCfgMgr.canaryCfgCancelFuncMap.lookup(&canaryConfig.Metadata)
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
canaryProcessingInfo, err := canaryCfgMgr.canaryCfgCancelFuncMap.lookup(&canaryConfig.ObjectMeta)
|
||||
if err != nil {
|
||||
canaryCfgMgr.logger.Error("lookup of canary config for deletion failed",
|
||||
zap.Error(err),
|
||||
zap.String("name", canaryConfig.Metadata.Name),
|
||||
zap.String("namespace", canaryConfig.Metadata.Namespace),
|
||||
zap.String("version", canaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", canaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", canaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", canaryConfig.ObjectMeta.ResourceVersion))
|
||||
return
|
||||
}
|
||||
// first stop the ticker
|
||||
@@ -523,13 +523,13 @@ func (canaryCfgMgr *canaryConfigMgr) updateCanaryConfig(oldCanaryConfig *fv1.Can
|
||||
// before removing the object from cache, we need to get it's cancel func and cancel it
|
||||
canaryCfgMgr.deleteCanaryConfig(oldCanaryConfig)
|
||||
|
||||
err := canaryCfgMgr.canaryCfgCancelFuncMap.remove(&oldCanaryConfig.Metadata)
|
||||
err := canaryCfgMgr.canaryCfgCancelFuncMap.remove(&oldCanaryConfig.ObjectMeta)
|
||||
if err != nil {
|
||||
canaryCfgMgr.logger.Error("error removing canary config from map",
|
||||
zap.Error(err),
|
||||
zap.String("name", oldCanaryConfig.Metadata.Name),
|
||||
zap.String("namespace", oldCanaryConfig.Metadata.Namespace),
|
||||
zap.String("version", oldCanaryConfig.Metadata.ResourceVersion))
|
||||
zap.String("name", oldCanaryConfig.ObjectMeta.Name),
|
||||
zap.String("namespace", oldCanaryConfig.ObjectMeta.Namespace),
|
||||
zap.String("version", oldCanaryConfig.ObjectMeta.ResourceVersion))
|
||||
return
|
||||
}
|
||||
canaryCfgMgr.addCanaryConfig(newCanaryConfig)
|
||||
|
||||
+23
-23
@@ -79,7 +79,7 @@ func assertCronSpecFails(err error) {
|
||||
|
||||
func TestFunctionApi(t *testing.T) {
|
||||
testFunc := &fv1.Function{
|
||||
Metadata: metav1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "foo",
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
},
|
||||
@@ -99,7 +99,7 @@ func TestFunctionApi(t *testing.T) {
|
||||
},
|
||||
}
|
||||
_, err := g.Client().V1().Function().Get(&metav1.ObjectMeta{
|
||||
Name: testFunc.Metadata.Name,
|
||||
Name: testFunc.ObjectMeta.Name,
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
})
|
||||
assertNotFoundFailure(err, "function")
|
||||
@@ -114,13 +114,13 @@ func TestFunctionApi(t *testing.T) {
|
||||
_, err = g.Client().V1().Function().Create(testFunc)
|
||||
assertNameReuseFailure(err, "function")
|
||||
|
||||
testFunc.Metadata.ResourceVersion = m.ResourceVersion
|
||||
testFunc.ObjectMeta.ResourceVersion = m.ResourceVersion
|
||||
testFunc.Spec.Package.FunctionName = "yyy"
|
||||
_, err = g.Client().V1().Function().Update(testFunc)
|
||||
panicIf(err)
|
||||
|
||||
testFunc.Metadata.ResourceVersion = ""
|
||||
testFunc.Metadata.Name = "bar"
|
||||
testFunc.ObjectMeta.ResourceVersion = ""
|
||||
testFunc.ObjectMeta.Name = "bar"
|
||||
m2, err := g.Client().V1().Function().Create(testFunc)
|
||||
panicIf(err)
|
||||
defer g.Client().V1().Function().Delete(m2)
|
||||
@@ -146,7 +146,7 @@ func TestFunctionApi(t *testing.T) {
|
||||
|
||||
func TestHTTPTriggerApi(t *testing.T) {
|
||||
testTrigger := &fv1.HTTPTrigger{
|
||||
Metadata: metav1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "foo",
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
},
|
||||
@@ -160,7 +160,7 @@ func TestHTTPTriggerApi(t *testing.T) {
|
||||
},
|
||||
}
|
||||
_, err := g.Client().V1().HTTPTrigger().Get(&metav1.ObjectMeta{
|
||||
Name: testTrigger.Metadata.Name,
|
||||
Name: testTrigger.ObjectMeta.Name,
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
})
|
||||
assertNotFoundFailure(err, "httptrigger")
|
||||
@@ -179,13 +179,13 @@ func TestHTTPTriggerApi(t *testing.T) {
|
||||
testTrigger.Spec.FunctionReference.Type == tr.Spec.FunctionReference.Type &&
|
||||
testTrigger.Spec.FunctionReference.Name == tr.Spec.FunctionReference.Name, "trigger should match after reading")
|
||||
|
||||
testTrigger.Metadata.ResourceVersion = m.ResourceVersion
|
||||
testTrigger.ObjectMeta.ResourceVersion = m.ResourceVersion
|
||||
testTrigger.Spec.RelativeURL = "/hi"
|
||||
_, err = g.Client().V1().HTTPTrigger().Update(testTrigger)
|
||||
panicIf(err)
|
||||
|
||||
testTrigger.Metadata.ResourceVersion = ""
|
||||
testTrigger.Metadata.Name = "yyy"
|
||||
testTrigger.ObjectMeta.ResourceVersion = ""
|
||||
testTrigger.ObjectMeta.Name = "yyy"
|
||||
_, err = g.Client().V1().HTTPTrigger().Create(testTrigger)
|
||||
assert(err != nil, "duplicate trigger should not be allowed")
|
||||
|
||||
@@ -202,7 +202,7 @@ func TestHTTPTriggerApi(t *testing.T) {
|
||||
func TestEnvironmentApi(t *testing.T) {
|
||||
|
||||
testEnv := &fv1.Environment{
|
||||
Metadata: metav1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "foo",
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
},
|
||||
@@ -215,7 +215,7 @@ func TestEnvironmentApi(t *testing.T) {
|
||||
},
|
||||
}
|
||||
_, err := g.Client().V1().Environment().Get(&metav1.ObjectMeta{
|
||||
Name: testEnv.Metadata.Name,
|
||||
Name: testEnv.ObjectMeta.Name,
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
})
|
||||
assertNotFoundFailure(err, "environment")
|
||||
@@ -231,13 +231,13 @@ func TestEnvironmentApi(t *testing.T) {
|
||||
panicIf(err)
|
||||
assert(reflect.DeepEqual(testEnv.Spec, e.Spec), "env should match after reading")
|
||||
|
||||
testEnv.Metadata.ResourceVersion = m.ResourceVersion
|
||||
testEnv.ObjectMeta.ResourceVersion = m.ResourceVersion
|
||||
testEnv.Spec.Runtime.Image = "another-img"
|
||||
_, err = g.Client().V1().Environment().Update(testEnv)
|
||||
panicIf(err)
|
||||
|
||||
testEnv.Metadata.ResourceVersion = ""
|
||||
testEnv.Metadata.Name = "bar"
|
||||
testEnv.ObjectMeta.ResourceVersion = ""
|
||||
testEnv.ObjectMeta.Name = "bar"
|
||||
|
||||
m2, err := g.Client().V1().Environment().Create(testEnv)
|
||||
panicIf(err)
|
||||
@@ -250,7 +250,7 @@ func TestEnvironmentApi(t *testing.T) {
|
||||
|
||||
func TestWatchApi(t *testing.T) {
|
||||
testWatch := &fv1.KubernetesWatchTrigger{
|
||||
Metadata: metav1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "xxx",
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
},
|
||||
@@ -264,7 +264,7 @@ func TestWatchApi(t *testing.T) {
|
||||
},
|
||||
}
|
||||
_, err := g.Client().V1().KubeWatcher().Get(&metav1.ObjectMeta{
|
||||
Name: testWatch.Metadata.Name,
|
||||
Name: testWatch.ObjectMeta.Name,
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
})
|
||||
assertNotFoundFailure(err, "watch")
|
||||
@@ -283,7 +283,7 @@ func TestWatchApi(t *testing.T) {
|
||||
testWatch.Spec.FunctionReference.Type == w.Spec.FunctionReference.Type &&
|
||||
testWatch.Spec.FunctionReference.Name == w.Spec.FunctionReference.Name, "watch should match after reading")
|
||||
|
||||
testWatch.Metadata.Name = "yyy"
|
||||
testWatch.ObjectMeta.Name = "yyy"
|
||||
m2, err := g.Client().V1().KubeWatcher().Create(testWatch)
|
||||
panicIf(err)
|
||||
defer g.Client().V1().KubeWatcher().Delete(m2)
|
||||
@@ -295,7 +295,7 @@ func TestWatchApi(t *testing.T) {
|
||||
|
||||
func TestTimeTriggerApi(t *testing.T) {
|
||||
testTrigger := &fv1.TimeTrigger{
|
||||
Metadata: metav1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "xxx",
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
},
|
||||
@@ -307,7 +307,7 @@ func TestTimeTriggerApi(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
_, err := g.Client().V1().TimeTrigger().Get(&metav1.ObjectMeta{Name: testTrigger.Metadata.Name})
|
||||
_, err := g.Client().V1().TimeTrigger().Get(&metav1.ObjectMeta{Name: testTrigger.ObjectMeta.Name})
|
||||
assertNotFoundFailure(err, "trigger")
|
||||
|
||||
m, err := g.Client().V1().TimeTrigger().Create(testTrigger)
|
||||
@@ -323,13 +323,13 @@ func TestTimeTriggerApi(t *testing.T) {
|
||||
testTrigger.Spec.FunctionReference.Type == tr.Spec.FunctionReference.Type &&
|
||||
testTrigger.Spec.FunctionReference.Name == tr.Spec.FunctionReference.Name, "trigger should match after reading")
|
||||
|
||||
testTrigger.Metadata.ResourceVersion = m.ResourceVersion
|
||||
testTrigger.ObjectMeta.ResourceVersion = m.ResourceVersion
|
||||
testTrigger.Spec.Cron = "@hourly"
|
||||
_, err = g.Client().V1().TimeTrigger().Update(testTrigger)
|
||||
panicIf(err)
|
||||
|
||||
testTrigger.Metadata.ResourceVersion = ""
|
||||
testTrigger.Metadata.Name = "yyy"
|
||||
testTrigger.ObjectMeta.ResourceVersion = ""
|
||||
testTrigger.ObjectMeta.Name = "yyy"
|
||||
testTrigger.Spec.Cron = "Not valid cron spec"
|
||||
_, err = g.Client().V1().TimeTrigger().Create(testTrigger)
|
||||
assertCronSpecFails(err)
|
||||
|
||||
@@ -60,7 +60,7 @@ func RegisterCanaryConfigRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.CanaryConfig{}).
|
||||
Writes(metav1.ObjectMeta{}).
|
||||
Returns(http.StatusCreated, "Metadata of created canaryConfig", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusCreated, "ObjectMeta of created canaryConfig", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.GET("/v2/canaryconfigs/{canaryConfig}").
|
||||
@@ -86,7 +86,7 @@ func RegisterCanaryConfigRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.CanaryConfig{}).
|
||||
Writes(metav1.ObjectMeta{}). // on the response
|
||||
Returns(http.StatusOK, "Metadata of updated canaryConfig", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusOK, "ObjectMeta of updated canaryConfig", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.DELETE("/v2/canaryconfigs/{canaryConfig}").
|
||||
@@ -122,13 +122,13 @@ func (a *API) CanaryConfigApiCreate(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
canaryCfgNew, err := a.fissionClient.CanaryConfigs(canaryCfg.Metadata.Namespace).Create(&canaryCfg)
|
||||
canaryCfgNew, err := a.fissionClient.V1().CanaryConfigs(canaryCfg.ObjectMeta.Namespace).Create(&canaryCfg)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(canaryCfgNew.Metadata)
|
||||
resp, err := json.Marshal(canaryCfgNew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -153,7 +153,7 @@ func (a *API) CanaryConfigApiGet(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
canaryCfg, err := a.fissionClient.CanaryConfigs(ns).Get(name)
|
||||
canaryCfg, err := a.fissionClient.V1().CanaryConfigs(ns).Get(name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -180,7 +180,7 @@ func (a *API) CanaryConfigApiList(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
canaryCfgs, err := a.fissionClient.CanaryConfigs(ns).List(metav1.ListOptions{})
|
||||
canaryCfgs, err := a.fissionClient.V1().CanaryConfigs(ns).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -215,13 +215,13 @@ func (a *API) CanaryConfigApiUpdate(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
canayCfgNew, err := a.fissionClient.CanaryConfigs(c.Metadata.Namespace).Update(&c)
|
||||
canayCfgNew, err := a.fissionClient.V1().CanaryConfigs(c.ObjectMeta.Namespace).Update(&c)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(canayCfgNew.Metadata)
|
||||
resp, err := json.Marshal(canayCfgNew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -244,7 +244,7 @@ func (a *API) CanaryConfigApiDelete(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
err := a.fissionClient.CanaryConfigs(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
err := a.fissionClient.V1().CanaryConfigs(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
|
||||
@@ -103,7 +103,7 @@ func (c *CanaryConfig) Update(canaryConf *fv1.CanaryConfig) (*metav1.ObjectMeta,
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relativeUrl := fmt.Sprintf("canaryconfigs/%v", canaryConf.Metadata.Name)
|
||||
relativeUrl := fmt.Sprintf("canaryconfigs/%v", canaryConf.ObjectMeta.Name)
|
||||
|
||||
resp, err := c.client.Put(relativeUrl, "application/json", reqbody)
|
||||
if err != nil {
|
||||
|
||||
@@ -114,7 +114,7 @@ func (c *Environment) Update(env *fv1.Environment) (*metav1.ObjectMeta, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
relativeUrl := fmt.Sprintf("environments/%v", env.Metadata.Name)
|
||||
relativeUrl := fmt.Sprintf("environments/%v", env.ObjectMeta.Name)
|
||||
|
||||
resp, err := c.client.Put(relativeUrl, "application/json", data)
|
||||
if err != nil {
|
||||
|
||||
@@ -128,7 +128,7 @@ func (c *Function) Update(f *fv1.Function) (*metav1.ObjectMeta, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relativeUrl := fmt.Sprintf("functions/%v", f.Metadata.Name)
|
||||
relativeUrl := fmt.Sprintf("functions/%v", f.ObjectMeta.Name)
|
||||
|
||||
resp, err := c.client.Put(relativeUrl, "application/json", reqbody)
|
||||
if err != nil {
|
||||
|
||||
@@ -113,7 +113,7 @@ func (c *HTTPTrigger) Update(t *fv1.HTTPTrigger) (*metav1.ObjectMeta, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relativeUrl := fmt.Sprintf("triggers/http/%v", t.Metadata.Name)
|
||||
relativeUrl := fmt.Sprintf("triggers/http/%v", t.ObjectMeta.Name)
|
||||
|
||||
resp, err := c.client.Put(relativeUrl, "application/json", reqbody)
|
||||
if err != nil {
|
||||
|
||||
@@ -113,7 +113,7 @@ func (c *MessageQueueTrigger) Update(mqTrigger *fv1.MessageQueueTrigger) (*metav
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relativeUrl := fmt.Sprintf("triggers/messagequeue/%v", mqTrigger.Metadata.Name)
|
||||
relativeUrl := fmt.Sprintf("triggers/messagequeue/%v", mqTrigger.ObjectMeta.Name)
|
||||
|
||||
resp, err := c.client.Put(relativeUrl, "application/json", reqbody)
|
||||
if err != nil {
|
||||
|
||||
@@ -113,7 +113,7 @@ func (c *Package) Update(f *fv1.Package) (*metav1.ObjectMeta, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relativeUrl := fmt.Sprintf("packages/%v", f.Metadata.Name)
|
||||
relativeUrl := fmt.Sprintf("packages/%v", f.ObjectMeta.Name)
|
||||
|
||||
resp, err := c.client.Put(relativeUrl, "application/json", reqbody)
|
||||
if err != nil {
|
||||
|
||||
@@ -113,7 +113,7 @@ func (c *TimeTrigger) Update(t *fv1.TimeTrigger) (*metav1.ObjectMeta, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relativeUrl := fmt.Sprintf("triggers/time/%v", t.Metadata.Name)
|
||||
relativeUrl := fmt.Sprintf("triggers/time/%v", t.ObjectMeta.Name)
|
||||
|
||||
resp, err := c.client.Put(relativeUrl, "application/json", reqbody)
|
||||
if err != nil {
|
||||
|
||||
@@ -31,7 +31,7 @@ import (
|
||||
func ConfigCanaryFeature(context context.Context, logger *zap.Logger, fissionClient *crd.FissionClient, kubeClient *kubernetes.Clientset, featureConfig *config.FeatureConfig, featureStatus map[string]string) error {
|
||||
// start the appropriate controller
|
||||
if featureConfig.CanaryConfig.IsEnabled {
|
||||
canaryCfgMgr, err := canaryconfigmgr.MakeCanaryConfigMgr(logger, fissionClient, kubeClient, fissionClient.GetCrdClient(),
|
||||
canaryCfgMgr, err := canaryconfigmgr.MakeCanaryConfigMgr(logger, fissionClient, kubeClient, fissionClient.V1().RESTClient(),
|
||||
featureConfig.CanaryConfig.PrometheusSvc)
|
||||
if err != nil {
|
||||
featureStatus[config.CanaryFeature] = err.Error()
|
||||
|
||||
@@ -58,7 +58,7 @@ func RegisterEnvironmentRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.Environment{}).
|
||||
Writes(metav1.ObjectMeta{}).
|
||||
Returns(http.StatusCreated, "Metadata of created environment", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusCreated, "ObjectMeta of created environment", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.GET("/v2/environments/{environment}").
|
||||
@@ -84,7 +84,7 @@ func RegisterEnvironmentRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.Environment{}).
|
||||
Writes(metav1.ObjectMeta{}). // on the response
|
||||
Returns(http.StatusOK, "Metadata of updated environment", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusOK, "ObjectMeta of updated environment", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.DELETE("/v2/environments/{environment}").
|
||||
@@ -105,7 +105,7 @@ func (a *API) EnvironmentApiList(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceAll
|
||||
}
|
||||
|
||||
envs, err := a.fissionClient.Environments(ns).List(metav1.ListOptions{})
|
||||
envs, err := a.fissionClient.V1().Environments(ns).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -136,19 +136,19 @@ func (a *API) EnvironmentApiCreate(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// check if namespace exists, if not create it.
|
||||
err = a.createNsIfNotExists(env.Metadata.Namespace)
|
||||
err = a.createNsIfNotExists(env.ObjectMeta.Namespace)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
enew, err := a.fissionClient.Environments(env.Metadata.Namespace).Create(&env)
|
||||
enew, err := a.fissionClient.V1().Environments(env.ObjectMeta.Namespace).Create(&env)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(enew.Metadata)
|
||||
resp, err := json.Marshal(enew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -167,7 +167,7 @@ func (a *API) EnvironmentApiGet(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
env, err := a.fissionClient.Environments(ns).Get(name)
|
||||
env, err := a.fissionClient.V1().Environments(ns).Get(name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -199,19 +199,19 @@ func (a *API) EnvironmentApiUpdate(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
if name != env.Metadata.Name {
|
||||
if name != env.ObjectMeta.Name {
|
||||
err = ferror.MakeError(ferror.ErrorInvalidArgument, "Environment name doesn't match URL")
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
enew, err := a.fissionClient.Environments(env.Metadata.Namespace).Update(&env)
|
||||
enew, err := a.fissionClient.V1().Environments(env.ObjectMeta.Namespace).Update(&env)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(enew.Metadata)
|
||||
resp, err := json.Marshal(enew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -229,7 +229,7 @@ func (a *API) EnvironmentApiDelete(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
err := a.fissionClient.Environments(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
err := a.fissionClient.V1().Environments(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
|
||||
@@ -70,7 +70,7 @@ func RegisterFunctionRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.Function{}).
|
||||
Writes(metav1.ObjectMeta{}).
|
||||
Returns(http.StatusOK, "Metadata of created function", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusOK, "ObjectMeta of created function", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.GET("/v2/functions/{function}").
|
||||
@@ -96,7 +96,7 @@ func RegisterFunctionRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.Function{}).
|
||||
Writes(metav1.ObjectMeta{}). // on the response
|
||||
Returns(http.StatusOK, "Metadata of updated function", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusOK, "ObjectMeta of updated function", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.DELETE("/v2/functions/{function}").
|
||||
@@ -117,7 +117,7 @@ func (a *API) FunctionApiList(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceAll
|
||||
}
|
||||
|
||||
funcs, err := a.fissionClient.Functions(ns).List(metav1.ListOptions{})
|
||||
funcs, err := a.fissionClient.V1().Functions(ns).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -147,19 +147,19 @@ func (a *API) FunctionApiCreate(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// check if namespace exists, if not create it.
|
||||
err = a.createNsIfNotExists(f.Metadata.Namespace)
|
||||
err = a.createNsIfNotExists(f.ObjectMeta.Namespace)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
fnew, err := a.fissionClient.Functions(f.Metadata.Namespace).Create(&f)
|
||||
fnew, err := a.fissionClient.V1().Functions(f.ObjectMeta.Namespace).Create(&f)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(fnew.Metadata)
|
||||
resp, err := json.Marshal(fnew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -177,7 +177,7 @@ func (a *API) FunctionApiGet(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
f, err := a.fissionClient.Functions(ns).Get(name)
|
||||
f, err := a.fissionClient.V1().Functions(ns).Get(name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -208,19 +208,19 @@ func (a *API) FunctionApiUpdate(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
if name != f.Metadata.Name {
|
||||
if name != f.ObjectMeta.Name {
|
||||
err = ferror.MakeError(ferror.ErrorInvalidArgument, "Function name doesn't match URL")
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
fnew, err := a.fissionClient.Functions(f.Metadata.Namespace).Update(&f)
|
||||
fnew, err := a.fissionClient.V1().Functions(f.ObjectMeta.Namespace).Update(&f)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(fnew.Metadata)
|
||||
resp, err := json.Marshal(fnew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -236,7 +236,7 @@ func (a *API) FunctionApiDelete(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
err := a.fissionClient.Functions(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
err := a.fissionClient.V1().Functions(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -299,7 +299,7 @@ func (a *API) FunctionPodLogs(w http.ResponseWriter, r *http.Request) {
|
||||
podNs = ns
|
||||
}
|
||||
|
||||
f, err := a.fissionClient.Functions(ns).Get(fnName)
|
||||
f, err := a.fissionClient.V1().Functions(ns).Get(fnName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -307,7 +307,7 @@ func (a *API) FunctionPodLogs(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// Get function Pods first
|
||||
selector := map[string]string{
|
||||
types.FUNCTION_UID: string(f.Metadata.UID),
|
||||
types.FUNCTION_UID: string(f.ObjectMeta.UID),
|
||||
types.ENVIRONMENT_NAME: f.Spec.Environment.Name,
|
||||
types.ENVIRONMENT_NAMESPACE: f.Spec.Environment.Namespace,
|
||||
}
|
||||
@@ -353,7 +353,7 @@ func getContainerLog(kubernetesClient *kubernetes.Clientset, w http.ResponseWrit
|
||||
}
|
||||
|
||||
msg := fmt.Sprintf("\n%v\nFunction: %v\nEnvironment: %v\nNamespace: %v\nPod: %v\nContainer: %v\nNode: %v\n%v\n", seq,
|
||||
fn.Metadata.Name, fn.Spec.Environment.Name, pod.Namespace, pod.Name, container.Name, pod.Spec.NodeName, seq)
|
||||
fn.ObjectMeta.Name, fn.Spec.Environment.Name, pod.Namespace, pod.Name, container.Name, pod.Spec.NodeName, seq)
|
||||
w.Write([]byte(msg))
|
||||
|
||||
_, err = io.Copy(w, podLogs)
|
||||
|
||||
@@ -58,7 +58,7 @@ func RegisterHTTPTriggerRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.HTTPTrigger{}).
|
||||
Writes(metav1.ObjectMeta{}).
|
||||
Returns(http.StatusCreated, "Metadata of created httpTrigger", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusCreated, "ObjectMeta of created httpTrigger", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.GET("/v2/triggers/http/{httpTrigger}").
|
||||
@@ -84,7 +84,7 @@ func RegisterHTTPTriggerRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.HTTPTrigger{}).
|
||||
Writes(metav1.ObjectMeta{}). // on the response
|
||||
Returns(http.StatusOK, "Metadata of updated httpTrigger", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusOK, "ObjectMeta of updated httpTrigger", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.DELETE("/v2/triggers/http/{httpTrigger}").
|
||||
@@ -105,7 +105,7 @@ func (a *API) HTTPTriggerApiList(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceAll
|
||||
}
|
||||
|
||||
triggers, err := a.fissionClient.HTTPTriggers(ns).List(metav1.ListOptions{})
|
||||
triggers, err := a.fissionClient.V1().HTTPTriggers(ns).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -122,19 +122,19 @@ func (a *API) HTTPTriggerApiList(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// checkHTTPTriggerDuplicates checks whether the tuple (Method, Host, URL) is duplicate or not.
|
||||
func (a *API) checkHTTPTriggerDuplicates(t *fv1.HTTPTrigger) error {
|
||||
triggers, err := a.fissionClient.HTTPTriggers(metav1.NamespaceAll).List(metav1.ListOptions{})
|
||||
triggers, err := a.fissionClient.V1().HTTPTriggers(metav1.NamespaceAll).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, ht := range triggers.Items {
|
||||
if ht.Metadata.UID == t.Metadata.UID {
|
||||
if ht.ObjectMeta.UID == t.ObjectMeta.UID {
|
||||
// Same resource. No need to check.
|
||||
continue
|
||||
}
|
||||
if ht.Spec.RelativeURL == t.Spec.RelativeURL && ht.Spec.Method == t.Spec.Method && ht.Spec.Host == t.Spec.Host {
|
||||
return ferror.MakeError(ferror.ErrorNameExists,
|
||||
fmt.Sprintf("HTTPTrigger with same Host, URL & method already exists (%v)",
|
||||
ht.Metadata.Name))
|
||||
ht.ObjectMeta.Name))
|
||||
}
|
||||
}
|
||||
return nil
|
||||
@@ -162,19 +162,19 @@ func (a *API) HTTPTriggerApiCreate(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// check if namespace exists, if not create it.
|
||||
err = a.createNsIfNotExists(t.Metadata.Namespace)
|
||||
err = a.createNsIfNotExists(t.ObjectMeta.Namespace)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
tnew, err := a.fissionClient.HTTPTriggers(t.Metadata.Namespace).Create(&t)
|
||||
tnew, err := a.fissionClient.V1().HTTPTriggers(t.ObjectMeta.Namespace).Create(&t)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(tnew.Metadata)
|
||||
resp, err := json.Marshal(tnew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -192,7 +192,7 @@ func (a *API) HTTPTriggerApiGet(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
t, err := a.fissionClient.HTTPTriggers(ns).Get(name)
|
||||
t, err := a.fissionClient.V1().HTTPTriggers(ns).Get(name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -224,7 +224,7 @@ func (a *API) HTTPTriggerApiUpdate(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
if name != t.Metadata.Name {
|
||||
if name != t.ObjectMeta.Name {
|
||||
err = ferror.MakeError(ferror.ErrorInvalidArgument, "HTTPTrigger name doesn't match URL")
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -236,13 +236,13 @@ func (a *API) HTTPTriggerApiUpdate(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
tnew, err := a.fissionClient.HTTPTriggers(t.Metadata.Namespace).Update(&t)
|
||||
tnew, err := a.fissionClient.V1().HTTPTriggers(t.ObjectMeta.Namespace).Update(&t)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(tnew.Metadata)
|
||||
resp, err := json.Marshal(tnew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -258,7 +258,7 @@ func (a *API) HTTPTriggerApiDelete(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
err := a.fissionClient.HTTPTriggers(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
err := a.fissionClient.V1().HTTPTriggers(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
|
||||
@@ -57,7 +57,7 @@ func RegisterMessageQueueTriggerRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.MessageQueueTrigger{}).
|
||||
Writes(metav1.ObjectMeta{}).
|
||||
Returns(http.StatusCreated, "Metadata of created messageQueueTrigger", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusCreated, "ObjectMeta of created messageQueueTrigger", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.GET("/v2/triggers/messagequeue/{mqTrigger}").
|
||||
@@ -83,7 +83,7 @@ func RegisterMessageQueueTriggerRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.MessageQueueTrigger{}).
|
||||
Writes(metav1.ObjectMeta{}). // on the response
|
||||
Returns(http.StatusOK, "Metadata of updated messageQueueTrigger", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusOK, "ObjectMeta of updated messageQueueTrigger", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.DELETE("/v2/triggers/messagequeue/{mqTrigger}").
|
||||
@@ -105,7 +105,7 @@ func (a *API) MessageQueueTriggerApiList(w http.ResponseWriter, r *http.Request)
|
||||
ns = metav1.NamespaceAll
|
||||
}
|
||||
|
||||
triggers, err := a.fissionClient.MessageQueueTriggers(ns).List(metav1.ListOptions{})
|
||||
triggers, err := a.fissionClient.V1().MessageQueueTriggers(ns).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -133,19 +133,19 @@ func (a *API) MessageQueueTriggerApiCreate(w http.ResponseWriter, r *http.Reques
|
||||
}
|
||||
|
||||
// check if namespace exists, if not create it.
|
||||
err = a.createNsIfNotExists(mqTrigger.Metadata.Namespace)
|
||||
err = a.createNsIfNotExists(mqTrigger.ObjectMeta.Namespace)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
tnew, err := a.fissionClient.MessageQueueTriggers(mqTrigger.Metadata.Namespace).Create(&mqTrigger)
|
||||
tnew, err := a.fissionClient.V1().MessageQueueTriggers(mqTrigger.ObjectMeta.Namespace).Create(&mqTrigger)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(tnew.Metadata)
|
||||
resp, err := json.Marshal(tnew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -162,7 +162,7 @@ func (a *API) MessageQueueTriggerApiGet(w http.ResponseWriter, r *http.Request)
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
mqTrigger, err := a.fissionClient.MessageQueueTriggers(ns).Get(name)
|
||||
mqTrigger, err := a.fissionClient.V1().MessageQueueTriggers(ns).Get(name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -192,19 +192,19 @@ func (a *API) MessageQueueTriggerApiUpdate(w http.ResponseWriter, r *http.Reques
|
||||
return
|
||||
}
|
||||
|
||||
if name != mqTrigger.Metadata.Name {
|
||||
if name != mqTrigger.ObjectMeta.Name {
|
||||
err = ferror.MakeError(ferror.ErrorInvalidArgument, "Message queue trigger name doesn't match URL")
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
tnew, err := a.fissionClient.MessageQueueTriggers(mqTrigger.Metadata.Namespace).Update(&mqTrigger)
|
||||
tnew, err := a.fissionClient.V1().MessageQueueTriggers(mqTrigger.ObjectMeta.Namespace).Update(&mqTrigger)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(tnew.Metadata)
|
||||
resp, err := json.Marshal(tnew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -220,7 +220,7 @@ func (a *API) MessageQueueTriggerApiDelete(w http.ResponseWriter, r *http.Reques
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
err := a.fissionClient.MessageQueueTriggers(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
err := a.fissionClient.V1().MessageQueueTriggers(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
|
||||
@@ -71,7 +71,7 @@ func enrichSwaggerObject(swo *spec.Swagger) {
|
||||
|
||||
var openapiDescription = `
|
||||
OpenAPI 2.0 document for fission controller
|
||||
* Metadata (v1.ObjectMeta) should be empty when creating a CRD resource. Kubernetes will assign it automatically.
|
||||
* ObjectMeta (v1.ObjectMeta) should be empty when creating a CRD resource. Kubernetes will assign it automatically.
|
||||
* Following semantic errors are known issues and won't affect the API accessibility.
|
||||
- Operations must have unique operationIds.
|
||||
- All scale semantic errors. (Due to go-restful exposes inner fields of k8s struct).
|
||||
|
||||
@@ -60,7 +60,7 @@ func RegisterPackageRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.Package{}).
|
||||
Writes(metav1.ObjectMeta{}).
|
||||
Returns(http.StatusCreated, "Metadata of created package", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusCreated, "ObjectMeta of created package", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.GET("/v2/packages/{package}").
|
||||
@@ -86,7 +86,7 @@ func RegisterPackageRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.Package{}).
|
||||
Writes(metav1.ObjectMeta{}). // on the response
|
||||
Returns(http.StatusOK, "Metadata of updated package", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusOK, "ObjectMeta of updated package", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.DELETE("/v2/packages/{package}").
|
||||
@@ -106,7 +106,7 @@ func (a *API) PackageApiList(w http.ResponseWriter, r *http.Request) {
|
||||
if len(ns) == 0 {
|
||||
ns = metav1.NamespaceAll
|
||||
}
|
||||
funcs, err := a.fissionClient.Packages(ns).List(metav1.ListOptions{})
|
||||
funcs, err := a.fissionClient.V1().Packages(ns).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -150,19 +150,19 @@ func (a *API) PackageApiCreate(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// check if namespace exists, if not create it.
|
||||
err = a.createNsIfNotExists(f.Metadata.Namespace)
|
||||
err = a.createNsIfNotExists(f.ObjectMeta.Namespace)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
fnew, err := a.fissionClient.Packages(f.Metadata.Namespace).Create(&f)
|
||||
fnew, err := a.fissionClient.V1().Packages(f.ObjectMeta.Namespace).Create(&f)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(fnew.Metadata)
|
||||
resp, err := json.Marshal(fnew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -181,7 +181,7 @@ func (a *API) PackageApiGet(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
raw := r.FormValue("raw") // just the deployment pkg
|
||||
|
||||
f, err := a.fissionClient.Packages(ns).Get(name)
|
||||
f, err := a.fissionClient.V1().Packages(ns).Get(name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -217,19 +217,19 @@ func (a *API) PackageApiUpdate(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
if name != f.Metadata.Name {
|
||||
if name != f.ObjectMeta.Name {
|
||||
err = ferror.MakeError(ferror.ErrorInvalidArgument, "Package name doesn't match URL")
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
fnew, err := a.fissionClient.Packages(f.Metadata.Namespace).Update(&f)
|
||||
fnew, err := a.fissionClient.V1().Packages(f.ObjectMeta.Namespace).Update(&f)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(fnew.Metadata)
|
||||
resp, err := json.Marshal(fnew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -245,7 +245,7 @@ func (a *API) PackageApiDelete(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
err := a.fissionClient.Packages(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
err := a.fissionClient.V1().Packages(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
|
||||
@@ -58,7 +58,7 @@ func RegisterTimeTriggerRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.TimeTrigger{}).
|
||||
Writes(metav1.ObjectMeta{}).
|
||||
Returns(http.StatusCreated, "Metadata of created timeTrigger", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusCreated, "ObjectMeta of created timeTrigger", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.GET("/v2/triggers/time/{timeTrigger}").
|
||||
@@ -84,7 +84,7 @@ func RegisterTimeTriggerRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.TimeTrigger{}).
|
||||
Writes(metav1.ObjectMeta{}). // on the response
|
||||
Returns(http.StatusOK, "Metadata of updated timeTrigger", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusOK, "ObjectMeta of updated timeTrigger", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.DELETE("/v2/triggers/time/{timeTrigger}").
|
||||
@@ -105,7 +105,7 @@ func (a *API) TimeTriggerApiList(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceAll
|
||||
}
|
||||
|
||||
triggers, err := a.fissionClient.TimeTriggers(ns).List(metav1.ListOptions{})
|
||||
triggers, err := a.fissionClient.V1().TimeTriggers(ns).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -143,19 +143,19 @@ func (a *API) TimeTriggerApiCreate(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// check if namespace exists, if not create it.
|
||||
err = a.createNsIfNotExists(t.Metadata.Namespace)
|
||||
err = a.createNsIfNotExists(t.ObjectMeta.Namespace)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
tnew, err := a.fissionClient.TimeTriggers(t.Metadata.Namespace).Create(&t)
|
||||
tnew, err := a.fissionClient.V1().TimeTriggers(t.ObjectMeta.Namespace).Create(&t)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(tnew.Metadata)
|
||||
resp, err := json.Marshal(tnew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -173,7 +173,7 @@ func (a *API) TimeTriggerApiGet(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
t, err := a.fissionClient.TimeTriggers(ns).Get(name)
|
||||
t, err := a.fissionClient.V1().TimeTriggers(ns).Get(name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -205,7 +205,7 @@ func (a *API) TimeTriggerApiUpdate(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
if name != t.Metadata.Name {
|
||||
if name != t.ObjectMeta.Name {
|
||||
err = ferror.MakeError(ferror.ErrorInvalidArgument, "TimeTrigger name doesn't match URL")
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -218,13 +218,13 @@ func (a *API) TimeTriggerApiUpdate(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
tnew, err := a.fissionClient.TimeTriggers(t.Metadata.Namespace).Update(&t)
|
||||
tnew, err := a.fissionClient.V1().TimeTriggers(t.ObjectMeta.Namespace).Update(&t)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(tnew.Metadata)
|
||||
resp, err := json.Marshal(tnew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -240,7 +240,7 @@ func (a *API) TimeTriggerApiDelete(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
err := a.fissionClient.TimeTriggers(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
err := a.fissionClient.V1().TimeTriggers(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
|
||||
@@ -57,7 +57,7 @@ func RegisterWatchRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.KubernetesWatchTrigger{}).
|
||||
Writes(metav1.ObjectMeta{}).
|
||||
Returns(http.StatusCreated, "Metadata of created kubernetesWatch", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusCreated, "ObjectMeta of created kubernetesWatch", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.GET("/v2/watches/{watch}").
|
||||
@@ -83,7 +83,7 @@ func RegisterWatchRoute(ws *restful.WebService) {
|
||||
Produces(restful.MIME_JSON).
|
||||
Reads(fv1.KubernetesWatchTrigger{}).
|
||||
Writes(metav1.ObjectMeta{}). // on the response
|
||||
Returns(http.StatusOK, "Metadata of updated kubernetesWatch", metav1.ObjectMeta{}))
|
||||
Returns(http.StatusOK, "ObjectMeta of updated kubernetesWatch", metav1.ObjectMeta{}))
|
||||
|
||||
ws.Route(
|
||||
ws.DELETE("/v2/watches/{watch}").
|
||||
@@ -104,7 +104,7 @@ func (a *API) WatchApiList(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceAll
|
||||
}
|
||||
|
||||
watches, err := a.fissionClient.KubernetesWatchTriggers(ns).List(metav1.ListOptions{})
|
||||
watches, err := a.fissionClient.V1().KubernetesWatchTriggers(ns).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -136,19 +136,19 @@ func (a *API) WatchApiCreate(w http.ResponseWriter, r *http.Request) {
|
||||
// TODO check for duplicate watches
|
||||
// TODO check for duplicate watches -> we probably wont need it?
|
||||
// check if namespace exists, if not create it.
|
||||
err = a.createNsIfNotExists(watch.Metadata.Namespace)
|
||||
err = a.createNsIfNotExists(watch.ObjectMeta.Namespace)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
wnew, err := a.fissionClient.KubernetesWatchTriggers(watch.Metadata.Namespace).Create(&watch)
|
||||
wnew, err := a.fissionClient.V1().KubernetesWatchTriggers(watch.ObjectMeta.Namespace).Create(&watch)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := json.Marshal(wnew.Metadata)
|
||||
resp, err := json.Marshal(wnew.ObjectMeta)
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -166,7 +166,7 @@ func (a *API) WatchApiGet(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
watch, err := a.fissionClient.KubernetesWatchTriggers(ns).Get(name)
|
||||
watch, err := a.fissionClient.V1().KubernetesWatchTriggers(ns).Get(name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
@@ -194,7 +194,7 @@ func (a *API) WatchApiDelete(w http.ResponseWriter, r *http.Request) {
|
||||
ns = metav1.NamespaceDefault
|
||||
}
|
||||
|
||||
err := a.fissionClient.KubernetesWatchTriggers(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
err := a.fissionClient.V1().KubernetesWatchTriggers(ns).Delete(name, &metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
a.respondWithError(w, err)
|
||||
return
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Fission 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.
|
||||
*/
|
||||
|
||||
package crd
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
)
|
||||
|
||||
type (
|
||||
CanaryConfigInterface interface {
|
||||
Create(*fv1.CanaryConfig) (*fv1.CanaryConfig, error)
|
||||
Get(name string) (*fv1.CanaryConfig, error)
|
||||
Update(*fv1.CanaryConfig) (*fv1.CanaryConfig, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
List(opts metav1.ListOptions) (*fv1.CanaryConfigList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
}
|
||||
|
||||
canaryConfigClient struct {
|
||||
client *rest.RESTClient
|
||||
namespace string
|
||||
}
|
||||
)
|
||||
|
||||
func MakeCanaryConfigInterface(crdClient *rest.RESTClient, namespace string) CanaryConfigInterface {
|
||||
return &canaryConfigClient{
|
||||
client: crdClient,
|
||||
namespace: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *canaryConfigClient) Create(f *fv1.CanaryConfig) (*fv1.CanaryConfig, error) {
|
||||
var result fv1.CanaryConfig
|
||||
err := c.client.Post().
|
||||
Resource("canaryconfigs").
|
||||
Namespace(c.namespace).
|
||||
Body(f).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *canaryConfigClient) Get(name string) (*fv1.CanaryConfig, error) {
|
||||
var result fv1.CanaryConfig
|
||||
err := c.client.Get().
|
||||
Resource("canaryconfigs").
|
||||
Namespace(c.namespace).
|
||||
Name(name).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *canaryConfigClient) Update(f *fv1.CanaryConfig) (*fv1.CanaryConfig, error) {
|
||||
var result fv1.CanaryConfig
|
||||
err := c.client.Put().
|
||||
Resource("canaryconfigs").
|
||||
Namespace(c.namespace).
|
||||
Name(f.Metadata.Name).
|
||||
Body(f).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *canaryConfigClient) Delete(name string, opts *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.namespace).
|
||||
Resource("canaryconfigs").
|
||||
Name(name).
|
||||
Body(opts).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
func (c *canaryConfigClient) List(opts metav1.ListOptions) (*fv1.CanaryConfigList, error) {
|
||||
var result fv1.CanaryConfigList
|
||||
err := c.client.Get().
|
||||
Namespace(c.namespace).
|
||||
Resource("canaryconfigs").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *canaryConfigClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
return c.client.Get().
|
||||
Prefix("watch").
|
||||
Namespace(c.namespace).
|
||||
Resource("canaryconfigs").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Watch()
|
||||
}
|
||||
+26
-140
@@ -23,21 +23,18 @@ import (
|
||||
|
||||
apiextensionsclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
_ "k8s.io/client-go/plugin/pkg/client/auth"
|
||||
"k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
clientset "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned"
|
||||
genv1 "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/typed/fission.io/v1"
|
||||
)
|
||||
|
||||
type (
|
||||
FissionClient struct {
|
||||
crdClient *rest.RESTClient
|
||||
crdClient clientset.Interface
|
||||
}
|
||||
)
|
||||
|
||||
@@ -77,100 +74,35 @@ func GetKubernetesClient() (*rest.Config, *kubernetes.Clientset, *apiextensionsc
|
||||
return config, clientset, apiExtClientset, nil
|
||||
}
|
||||
|
||||
// GetCrdClient gets a CRD client config
|
||||
func GetCrdClient(config *rest.Config) (*rest.RESTClient, error) {
|
||||
// mutate config to add our types
|
||||
configureClient(config)
|
||||
|
||||
// make a REST client with that config
|
||||
return rest.RESTClientFor(config)
|
||||
}
|
||||
|
||||
// configureClient sets up a REST client for Fission CRD types.
|
||||
//
|
||||
// This is copied from the client-go CRD example. (I don't understand
|
||||
// all of it completely.) It registers our types with the global API
|
||||
// "scheme" (api.Scheme), which keeps a directory of types [I guess so
|
||||
// it can use the string in the Kind field to make a Go object?]. It
|
||||
// also puts the fission CRD types under a "group version" which we
|
||||
// create for our CRDs types.
|
||||
func configureClient(config *rest.Config) {
|
||||
groupversion := schema.GroupVersion{
|
||||
Group: "fission.io",
|
||||
Version: "v1",
|
||||
func MakeFissionClient() (*FissionClient, *kubernetes.Clientset, *apiextensionsclient.Clientset, error) {
|
||||
config, kubeClient, apiExtClient, err := GetKubernetesClient()
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
config.GroupVersion = &groupversion
|
||||
config.APIPath = "/apis"
|
||||
config.ContentType = runtime.ContentTypeJSON
|
||||
config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}
|
||||
|
||||
schemeBuilder := runtime.NewSchemeBuilder(
|
||||
func(scheme *runtime.Scheme) error {
|
||||
scheme.AddKnownTypes(
|
||||
groupversion,
|
||||
&fv1.Function{},
|
||||
&fv1.FunctionList{},
|
||||
&metav1.ListOptions{},
|
||||
&metav1.DeleteOptions{},
|
||||
)
|
||||
scheme.AddKnownTypes(
|
||||
groupversion,
|
||||
&fv1.Environment{},
|
||||
&fv1.EnvironmentList{},
|
||||
&metav1.ListOptions{},
|
||||
&metav1.DeleteOptions{},
|
||||
)
|
||||
scheme.AddKnownTypes(
|
||||
groupversion,
|
||||
&fv1.HTTPTrigger{},
|
||||
&fv1.HTTPTriggerList{},
|
||||
&metav1.ListOptions{},
|
||||
&metav1.DeleteOptions{},
|
||||
)
|
||||
scheme.AddKnownTypes(
|
||||
groupversion,
|
||||
&fv1.KubernetesWatchTrigger{},
|
||||
&fv1.KubernetesWatchTriggerList{},
|
||||
&metav1.ListOptions{},
|
||||
&metav1.DeleteOptions{},
|
||||
)
|
||||
scheme.AddKnownTypes(
|
||||
groupversion,
|
||||
&fv1.TimeTrigger{},
|
||||
&fv1.TimeTriggerList{},
|
||||
&metav1.ListOptions{},
|
||||
&metav1.DeleteOptions{},
|
||||
)
|
||||
scheme.AddKnownTypes(
|
||||
groupversion,
|
||||
&fv1.MessageQueueTrigger{},
|
||||
&fv1.MessageQueueTriggerList{},
|
||||
&metav1.ListOptions{},
|
||||
&metav1.DeleteOptions{},
|
||||
)
|
||||
scheme.AddKnownTypes(
|
||||
groupversion,
|
||||
&fv1.Package{},
|
||||
&fv1.PackageList{},
|
||||
&metav1.ListOptions{},
|
||||
&metav1.DeleteOptions{},
|
||||
)
|
||||
scheme.AddKnownTypes(
|
||||
groupversion,
|
||||
&fv1.CanaryConfig{},
|
||||
&fv1.CanaryConfigList{},
|
||||
&metav1.ListOptions{},
|
||||
&metav1.DeleteOptions{},
|
||||
)
|
||||
return nil
|
||||
})
|
||||
schemeBuilder.AddToScheme(scheme.Scheme)
|
||||
// make a CRD REST client with the config
|
||||
crdClient, err := clientset.NewForConfig(config)
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
|
||||
fc := &FissionClient{
|
||||
crdClient: crdClient,
|
||||
}
|
||||
return fc, kubeClient, apiExtClient, nil
|
||||
}
|
||||
|
||||
func waitForCRDs(crdClient *rest.RESTClient) error {
|
||||
// V1 returns the instance of v1 rest client.
|
||||
// The only reason to have this function is to avoid
|
||||
// using V1V1() in codebase.
|
||||
func (fc *FissionClient) V1() genv1.V1V1Interface {
|
||||
return fc.crdClient.V1V1()
|
||||
}
|
||||
|
||||
func (fc *FissionClient) WaitForCRDs() error {
|
||||
start := time.Now()
|
||||
for {
|
||||
fi := MakeFunctionInterface(crdClient, metav1.NamespaceDefault)
|
||||
fi := fc.crdClient.V1V1().Functions(metav1.NamespaceDefault)
|
||||
_, err := fi.List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
@@ -183,49 +115,3 @@ func waitForCRDs(crdClient *rest.RESTClient) error {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func MakeFissionClient() (*FissionClient, *kubernetes.Clientset, *apiextensionsclient.Clientset, error) {
|
||||
config, kubeClient, apiExtClient, err := GetKubernetesClient()
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
crdClient, err := GetCrdClient(config)
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
fc := &FissionClient{
|
||||
crdClient: crdClient,
|
||||
}
|
||||
return fc, kubeClient, apiExtClient, nil
|
||||
}
|
||||
|
||||
func (fc *FissionClient) Functions(ns string) FunctionInterface {
|
||||
return MakeFunctionInterface(fc.crdClient, ns)
|
||||
}
|
||||
func (fc *FissionClient) Environments(ns string) EnvironmentInterface {
|
||||
return MakeEnvironmentInterface(fc.crdClient, ns)
|
||||
}
|
||||
func (fc *FissionClient) HTTPTriggers(ns string) HTTPTriggerInterface {
|
||||
return MakeHTTPTriggerInterface(fc.crdClient, ns)
|
||||
}
|
||||
func (fc *FissionClient) KubernetesWatchTriggers(ns string) KubernetesWatchTriggerInterface {
|
||||
return MakeKubernetesWatchTriggerInterface(fc.crdClient, ns)
|
||||
}
|
||||
func (fc *FissionClient) TimeTriggers(ns string) TimeTriggerInterface {
|
||||
return MakeTimeTriggerInterface(fc.crdClient, ns)
|
||||
}
|
||||
func (fc *FissionClient) MessageQueueTriggers(ns string) MessageQueueTriggerInterface {
|
||||
return MakeMessageQueueTriggerInterface(fc.crdClient, ns)
|
||||
}
|
||||
func (fc *FissionClient) Packages(ns string) PackageInterface {
|
||||
return MakePackageInterface(fc.crdClient, ns)
|
||||
}
|
||||
func (fc *FissionClient) CanaryConfigs(ns string) CanaryConfigInterface {
|
||||
return MakeCanaryConfigInterface(fc.crdClient, ns)
|
||||
}
|
||||
func (fc *FissionClient) WaitForCRDs() error {
|
||||
return waitForCRDs(fc.crdClient)
|
||||
}
|
||||
func (fc *FissionClient) GetCrdClient() *rest.RESTClient {
|
||||
return fc.crdClient
|
||||
}
|
||||
|
||||
+55
-58
@@ -24,9 +24,9 @@ import (
|
||||
|
||||
"go.uber.org/zap"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
genv1 "github.com/fission/fission/pkg/apis/genclient/v1/clientset/versioned/typed/fission.io/v1"
|
||||
)
|
||||
|
||||
func panicIf(err error) {
|
||||
@@ -35,14 +35,14 @@ func panicIf(err error) {
|
||||
}
|
||||
}
|
||||
|
||||
func functionTests(crdClient *rest.RESTClient) {
|
||||
func functionTests(crdClient genv1.V1V1Interface) {
|
||||
// sample function object
|
||||
function := &fv1.Function{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
Kind: "Function",
|
||||
APIVersion: "fission.io/v1",
|
||||
},
|
||||
Metadata: metav1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "hello",
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
},
|
||||
@@ -61,34 +61,34 @@ func functionTests(crdClient *rest.RESTClient) {
|
||||
}
|
||||
|
||||
// Test function CRUD
|
||||
fi := MakeFunctionInterface(crdClient, metav1.NamespaceDefault)
|
||||
fi := crdClient.Functions(metav1.NamespaceDefault)
|
||||
|
||||
// cleanup from old crashed tests, ignore errors
|
||||
fi.Delete(function.Metadata.Name, nil)
|
||||
fi.Delete(function.ObjectMeta.Name, nil)
|
||||
|
||||
// create
|
||||
f, err := fi.Create(function)
|
||||
panicIf(err)
|
||||
if f.Metadata.Name != function.Metadata.Name {
|
||||
if f.ObjectMeta.Name != function.ObjectMeta.Name {
|
||||
log.Panicf("Bad result from create: %v", f)
|
||||
}
|
||||
|
||||
// read
|
||||
f, err = fi.Get(function.Metadata.Name)
|
||||
f, err = fi.Get(function.ObjectMeta.Name, metav1.GetOptions{})
|
||||
panicIf(err)
|
||||
if f.Spec.Environment.Name != function.Spec.Environment.Name {
|
||||
log.Panicf("Bad result from Get: %v", f)
|
||||
}
|
||||
|
||||
log.Printf("f.Metadata = %#v", f.Metadata)
|
||||
log.Printf("f.ObjectMeta = %#v", f.ObjectMeta)
|
||||
|
||||
// update
|
||||
function.Metadata.ResourceVersion = f.Metadata.ResourceVersion
|
||||
function.ObjectMeta.ResourceVersion = f.ObjectMeta.ResourceVersion
|
||||
function.Spec.Environment.Name = "yyy"
|
||||
f, err = fi.Update(function)
|
||||
panicIf(err)
|
||||
|
||||
log.Printf("f.Metadata = %#v", f.Metadata)
|
||||
log.Printf("f.ObjectMeta = %#v", f.ObjectMeta)
|
||||
|
||||
// list
|
||||
fl, err := fi.List(metav1.ListOptions{})
|
||||
@@ -101,7 +101,7 @@ func functionTests(crdClient *rest.RESTClient) {
|
||||
}
|
||||
|
||||
// delete
|
||||
err = fi.Delete(f.Metadata.Name, nil)
|
||||
err = fi.Delete(f.ObjectMeta.Name, nil)
|
||||
panicIf(err)
|
||||
|
||||
// start a watch
|
||||
@@ -109,10 +109,10 @@ func functionTests(crdClient *rest.RESTClient) {
|
||||
panicIf(err)
|
||||
|
||||
start := time.Now()
|
||||
function.Metadata.ResourceVersion = ""
|
||||
function.ObjectMeta.ResourceVersion = ""
|
||||
f, err = fi.Create(function)
|
||||
panicIf(err)
|
||||
defer fi.Delete(f.Metadata.Name, nil)
|
||||
defer fi.Delete(f.ObjectMeta.Name, nil)
|
||||
|
||||
// assert that we get a watch event for the new function
|
||||
recvd := false
|
||||
@@ -135,14 +135,14 @@ func functionTests(crdClient *rest.RESTClient) {
|
||||
|
||||
}
|
||||
|
||||
func environmentTests(crdClient *rest.RESTClient) {
|
||||
func environmentTests(crdClient genv1.V1V1Interface) {
|
||||
// sample environment object
|
||||
environment := &fv1.Environment{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
Kind: "Environment",
|
||||
APIVersion: "fission.io/v1",
|
||||
},
|
||||
Metadata: metav1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "hello",
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
},
|
||||
@@ -159,27 +159,27 @@ func environmentTests(crdClient *rest.RESTClient) {
|
||||
}
|
||||
|
||||
// Test environment CRUD
|
||||
ei := MakeEnvironmentInterface(crdClient, metav1.NamespaceDefault)
|
||||
ei := crdClient.Environments(metav1.NamespaceDefault)
|
||||
|
||||
// cleanup from old crashed tests, ignore errors
|
||||
ei.Delete(environment.Metadata.Name, nil)
|
||||
ei.Delete(environment.ObjectMeta.Name, nil)
|
||||
|
||||
// create
|
||||
e, err := ei.Create(environment)
|
||||
panicIf(err)
|
||||
if e.Metadata.Name != environment.Metadata.Name {
|
||||
if e.ObjectMeta.Name != environment.ObjectMeta.Name {
|
||||
log.Panicf("Bad result from create: %v", e)
|
||||
}
|
||||
|
||||
// read
|
||||
e, err = ei.Get(environment.Metadata.Name)
|
||||
e, err = ei.Get(environment.ObjectMeta.Name, metav1.GetOptions{})
|
||||
panicIf(err)
|
||||
if len(e.Spec.Runtime.Image) != len(environment.Spec.Runtime.Image) {
|
||||
log.Panicf("Bad result from Get: %#v", e)
|
||||
}
|
||||
|
||||
// update
|
||||
environment.Metadata.ResourceVersion = e.Metadata.ResourceVersion
|
||||
environment.ObjectMeta.ResourceVersion = e.ObjectMeta.ResourceVersion
|
||||
environment.Spec.Runtime.Image = "www"
|
||||
e, err = ei.Update(environment)
|
||||
panicIf(err)
|
||||
@@ -195,7 +195,7 @@ func environmentTests(crdClient *rest.RESTClient) {
|
||||
}
|
||||
|
||||
// delete
|
||||
err = ei.Delete(e.Metadata.Name, nil)
|
||||
err = ei.Delete(e.ObjectMeta.Name, nil)
|
||||
panicIf(err)
|
||||
|
||||
// start a watch
|
||||
@@ -203,10 +203,10 @@ func environmentTests(crdClient *rest.RESTClient) {
|
||||
panicIf(err)
|
||||
|
||||
start := time.Now()
|
||||
environment.Metadata.ResourceVersion = ""
|
||||
environment.ObjectMeta.ResourceVersion = ""
|
||||
e, err = ei.Create(environment)
|
||||
panicIf(err)
|
||||
defer ei.Delete(e.Metadata.Name, nil)
|
||||
defer ei.Delete(e.ObjectMeta.Name, nil)
|
||||
|
||||
// assert that we get a watch event for the new environment
|
||||
recvd := false
|
||||
@@ -229,14 +229,14 @@ func environmentTests(crdClient *rest.RESTClient) {
|
||||
|
||||
}
|
||||
|
||||
func httpTriggerTests(crdClient *rest.RESTClient) {
|
||||
func httpTriggerTests(crdClient genv1.V1V1Interface) {
|
||||
// sample httpTrigger object
|
||||
httpTrigger := &fv1.HTTPTrigger{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
Kind: "HTTPTrigger",
|
||||
APIVersion: "fission.io/v1",
|
||||
},
|
||||
Metadata: metav1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "hello",
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
},
|
||||
@@ -251,27 +251,27 @@ func httpTriggerTests(crdClient *rest.RESTClient) {
|
||||
}
|
||||
|
||||
// Test httpTrigger CRUD
|
||||
ei := MakeHTTPTriggerInterface(crdClient, metav1.NamespaceDefault)
|
||||
ei := crdClient.HTTPTriggers(metav1.NamespaceDefault)
|
||||
|
||||
// cleanup from old crashed tests, ignore errors
|
||||
ei.Delete(httpTrigger.Metadata.Name, nil)
|
||||
ei.Delete(httpTrigger.ObjectMeta.Name, nil)
|
||||
|
||||
// create
|
||||
e, err := ei.Create(httpTrigger)
|
||||
panicIf(err)
|
||||
if e.Metadata.Name != httpTrigger.Metadata.Name {
|
||||
if e.ObjectMeta.Name != httpTrigger.ObjectMeta.Name {
|
||||
log.Panicf("Bad result from create: %v", e)
|
||||
}
|
||||
|
||||
// read
|
||||
e, err = ei.Get(httpTrigger.Metadata.Name)
|
||||
e, err = ei.Get(httpTrigger.ObjectMeta.Name, metav1.GetOptions{})
|
||||
panicIf(err)
|
||||
if len(e.Spec.Method) != len(httpTrigger.Spec.Method) {
|
||||
log.Panicf("Bad result from Get: %#v", e)
|
||||
}
|
||||
|
||||
// update
|
||||
httpTrigger.Metadata.ResourceVersion = e.Metadata.ResourceVersion
|
||||
httpTrigger.ObjectMeta.ResourceVersion = e.ObjectMeta.ResourceVersion
|
||||
httpTrigger.Spec.Method = "POST"
|
||||
e, err = ei.Update(httpTrigger)
|
||||
panicIf(err)
|
||||
@@ -287,7 +287,7 @@ func httpTriggerTests(crdClient *rest.RESTClient) {
|
||||
}
|
||||
|
||||
// delete
|
||||
err = ei.Delete(e.Metadata.Name, nil)
|
||||
err = ei.Delete(e.ObjectMeta.Name, nil)
|
||||
panicIf(err)
|
||||
|
||||
// start a watch
|
||||
@@ -295,10 +295,10 @@ func httpTriggerTests(crdClient *rest.RESTClient) {
|
||||
panicIf(err)
|
||||
|
||||
start := time.Now()
|
||||
httpTrigger.Metadata.ResourceVersion = ""
|
||||
httpTrigger.ObjectMeta.ResourceVersion = ""
|
||||
e, err = ei.Create(httpTrigger)
|
||||
panicIf(err)
|
||||
defer ei.Delete(e.Metadata.Name, nil)
|
||||
defer ei.Delete(e.ObjectMeta.Name, nil)
|
||||
|
||||
// assert that we get a watch event for the new httpTrigger
|
||||
recvd := false
|
||||
@@ -321,14 +321,14 @@ func httpTriggerTests(crdClient *rest.RESTClient) {
|
||||
|
||||
}
|
||||
|
||||
func kubernetesWatchTriggerTests(crdClient *rest.RESTClient) {
|
||||
func kubernetesWatchTriggerTests(crdClient genv1.V1V1Interface) {
|
||||
// sample kubernetesWatchTrigger object
|
||||
kubernetesWatchTrigger := &fv1.KubernetesWatchTrigger{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
Kind: "KubernetesWatchTrigger",
|
||||
APIVersion: "fission.io/v1",
|
||||
},
|
||||
Metadata: metav1.ObjectMeta{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "hello",
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
},
|
||||
@@ -346,27 +346,27 @@ func kubernetesWatchTriggerTests(crdClient *rest.RESTClient) {
|
||||
}
|
||||
|
||||
// Test kubernetesWatchTrigger CRUD
|
||||
ei := MakeKubernetesWatchTriggerInterface(crdClient, metav1.NamespaceDefault)
|
||||
ei := crdClient.KubernetesWatchTriggers(metav1.NamespaceDefault)
|
||||
|
||||
// cleanup from old crashed tests, ignore errors
|
||||
ei.Delete(kubernetesWatchTrigger.Metadata.Name, nil)
|
||||
ei.Delete(kubernetesWatchTrigger.ObjectMeta.Name, nil)
|
||||
|
||||
// create
|
||||
e, err := ei.Create(kubernetesWatchTrigger)
|
||||
panicIf(err)
|
||||
if e.Metadata.Name != kubernetesWatchTrigger.Metadata.Name {
|
||||
if e.ObjectMeta.Name != kubernetesWatchTrigger.ObjectMeta.Name {
|
||||
log.Panicf("Bad result from create: %v", e)
|
||||
}
|
||||
|
||||
// read
|
||||
e, err = ei.Get(kubernetesWatchTrigger.Metadata.Name)
|
||||
e, err = ei.Get(kubernetesWatchTrigger.ObjectMeta.Name, metav1.GetOptions{})
|
||||
panicIf(err)
|
||||
if e.Spec.Type != kubernetesWatchTrigger.Spec.Type {
|
||||
log.Panicf("Bad result from Get: %#v", e)
|
||||
}
|
||||
|
||||
// update
|
||||
kubernetesWatchTrigger.Metadata.ResourceVersion = e.Metadata.ResourceVersion
|
||||
kubernetesWatchTrigger.ObjectMeta.ResourceVersion = e.ObjectMeta.ResourceVersion
|
||||
kubernetesWatchTrigger.Spec.Type = "service"
|
||||
e, err = ei.Update(kubernetesWatchTrigger)
|
||||
panicIf(err)
|
||||
@@ -382,7 +382,7 @@ func kubernetesWatchTriggerTests(crdClient *rest.RESTClient) {
|
||||
}
|
||||
|
||||
// delete
|
||||
err = ei.Delete(e.Metadata.Name, nil)
|
||||
err = ei.Delete(e.ObjectMeta.Name, nil)
|
||||
panicIf(err)
|
||||
|
||||
// start a watch
|
||||
@@ -390,10 +390,10 @@ func kubernetesWatchTriggerTests(crdClient *rest.RESTClient) {
|
||||
panicIf(err)
|
||||
|
||||
start := time.Now()
|
||||
kubernetesWatchTrigger.Metadata.ResourceVersion = ""
|
||||
kubernetesWatchTrigger.ObjectMeta.ResourceVersion = ""
|
||||
e, err = ei.Create(kubernetesWatchTrigger)
|
||||
panicIf(err)
|
||||
defer ei.Delete(e.Metadata.Name, nil)
|
||||
defer ei.Delete(e.ObjectMeta.Name, nil)
|
||||
|
||||
// assert that we get a watch event for the new kubernetesWatchTrigger
|
||||
recvd := false
|
||||
@@ -424,27 +424,24 @@ func TestCrd(t *testing.T) {
|
||||
return
|
||||
}
|
||||
|
||||
// Create the client config. Needs the KUBECONFIG env var to
|
||||
// point at a valid kubeconfig.
|
||||
config, _, apiExtClient, err := GetKubernetesClient()
|
||||
panicIf(err)
|
||||
|
||||
logger, err := zap.NewDevelopment()
|
||||
panicIf(err)
|
||||
|
||||
fc, _, apiExtClient, err := MakeFissionClient()
|
||||
if err != nil {
|
||||
panicIf(err)
|
||||
}
|
||||
|
||||
// init our types
|
||||
err = EnsureFissionCRDs(logger, apiExtClient)
|
||||
panicIf(err)
|
||||
|
||||
err = fc.WaitForCRDs()
|
||||
panicIf(err)
|
||||
|
||||
// rest client with knowledge about our crd types
|
||||
crdClient, err := GetCrdClient(config)
|
||||
panicIf(err)
|
||||
|
||||
err = waitForCRDs(crdClient)
|
||||
panicIf(err)
|
||||
|
||||
functionTests(crdClient)
|
||||
environmentTests(crdClient)
|
||||
httpTriggerTests(crdClient)
|
||||
kubernetesWatchTriggerTests(crdClient)
|
||||
functionTests(fc.crdClient.V1V1())
|
||||
environmentTests(fc.crdClient.V1V1())
|
||||
httpTriggerTests(fc.crdClient.V1V1())
|
||||
kubernetesWatchTriggerTests(fc.crdClient.V1V1())
|
||||
}
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Fission 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.
|
||||
*/
|
||||
|
||||
package crd
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
)
|
||||
|
||||
type (
|
||||
EnvironmentInterface interface {
|
||||
Create(*fv1.Environment) (*fv1.Environment, error)
|
||||
Get(name string) (*fv1.Environment, error)
|
||||
Update(*fv1.Environment) (*fv1.Environment, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
List(opts metav1.ListOptions) (*fv1.EnvironmentList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
}
|
||||
|
||||
environmentClient struct {
|
||||
client *rest.RESTClient
|
||||
namespace string
|
||||
}
|
||||
)
|
||||
|
||||
func MakeEnvironmentInterface(crdClient *rest.RESTClient, namespace string) EnvironmentInterface {
|
||||
return &environmentClient{
|
||||
client: crdClient,
|
||||
namespace: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
func (ec *environmentClient) Create(e *fv1.Environment) (*fv1.Environment, error) {
|
||||
var result fv1.Environment
|
||||
err := ec.client.Post().
|
||||
Resource("environments").
|
||||
Namespace(ec.namespace).
|
||||
Body(e).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (ec *environmentClient) Get(name string) (*fv1.Environment, error) {
|
||||
var result fv1.Environment
|
||||
err := ec.client.Get().
|
||||
Resource("environments").
|
||||
Namespace(ec.namespace).
|
||||
Name(name).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (ec *environmentClient) Update(e *fv1.Environment) (*fv1.Environment, error) {
|
||||
var result fv1.Environment
|
||||
err := ec.client.Put().
|
||||
Resource("environments").
|
||||
Namespace(ec.namespace).
|
||||
Name(e.Metadata.Name).
|
||||
Body(e).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (ec *environmentClient) Delete(name string, opts *metav1.DeleteOptions) error {
|
||||
return ec.client.Delete().
|
||||
Namespace(ec.namespace).
|
||||
Resource("environments").
|
||||
Name(name).
|
||||
Body(opts).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
func (ec *environmentClient) List(opts metav1.ListOptions) (*fv1.EnvironmentList, error) {
|
||||
var result fv1.EnvironmentList
|
||||
err := ec.client.Get().
|
||||
Namespace(ec.namespace).
|
||||
Resource("environments").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (ec *environmentClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
return ec.client.Get().
|
||||
Prefix("watch").
|
||||
Namespace(ec.namespace).
|
||||
Resource("environments").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Watch()
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Fission 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.
|
||||
*/
|
||||
|
||||
package crd
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
)
|
||||
|
||||
type (
|
||||
FunctionInterface interface {
|
||||
Create(*fv1.Function) (*fv1.Function, error)
|
||||
Get(name string) (*fv1.Function, error)
|
||||
Update(*fv1.Function) (*fv1.Function, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
List(opts metav1.ListOptions) (*fv1.FunctionList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
}
|
||||
|
||||
functionClient struct {
|
||||
client *rest.RESTClient
|
||||
namespace string
|
||||
}
|
||||
)
|
||||
|
||||
func MakeFunctionInterface(crdClient *rest.RESTClient, namespace string) FunctionInterface {
|
||||
return &functionClient{
|
||||
client: crdClient,
|
||||
namespace: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
func (fc *functionClient) Create(f *fv1.Function) (*fv1.Function, error) {
|
||||
var result fv1.Function
|
||||
err := fc.client.Post().
|
||||
Resource("functions").
|
||||
Namespace(fc.namespace).
|
||||
Body(f).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *functionClient) Get(name string) (*fv1.Function, error) {
|
||||
var result fv1.Function
|
||||
err := fc.client.Get().
|
||||
Resource("functions").
|
||||
Namespace(fc.namespace).
|
||||
Name(name).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *functionClient) Update(f *fv1.Function) (*fv1.Function, error) {
|
||||
var result fv1.Function
|
||||
err := fc.client.Put().
|
||||
Resource("functions").
|
||||
Namespace(fc.namespace).
|
||||
Name(f.Metadata.Name).
|
||||
Body(f).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *functionClient) Delete(name string, opts *metav1.DeleteOptions) error {
|
||||
return fc.client.Delete().
|
||||
Namespace(fc.namespace).
|
||||
Resource("functions").
|
||||
Name(name).
|
||||
Body(opts).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
func (fc *functionClient) List(opts metav1.ListOptions) (*fv1.FunctionList, error) {
|
||||
var result fv1.FunctionList
|
||||
err := fc.client.Get().
|
||||
Namespace(fc.namespace).
|
||||
Resource("functions").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *functionClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
return fc.client.Get().
|
||||
Prefix("watch").
|
||||
Namespace(fc.namespace).
|
||||
Resource("functions").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Watch()
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Fission 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.
|
||||
*/
|
||||
|
||||
package crd
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
)
|
||||
|
||||
type (
|
||||
HTTPTriggerInterface interface {
|
||||
Create(*fv1.HTTPTrigger) (*fv1.HTTPTrigger, error)
|
||||
Get(name string) (*fv1.HTTPTrigger, error)
|
||||
Update(*fv1.HTTPTrigger) (*fv1.HTTPTrigger, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
List(opts metav1.ListOptions) (*fv1.HTTPTriggerList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
}
|
||||
|
||||
httpTriggerClient struct {
|
||||
client *rest.RESTClient
|
||||
namespace string
|
||||
}
|
||||
)
|
||||
|
||||
func MakeHTTPTriggerInterface(crdClient *rest.RESTClient, namespace string) HTTPTriggerInterface {
|
||||
return &httpTriggerClient{
|
||||
client: crdClient,
|
||||
namespace: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *httpTriggerClient) Create(obj *fv1.HTTPTrigger) (*fv1.HTTPTrigger, error) {
|
||||
var result fv1.HTTPTrigger
|
||||
err := c.client.Post().
|
||||
Resource("httptriggers").
|
||||
Namespace(c.namespace).
|
||||
Body(obj).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *httpTriggerClient) Get(name string) (*fv1.HTTPTrigger, error) {
|
||||
var result fv1.HTTPTrigger
|
||||
err := c.client.Get().
|
||||
Resource("httptriggers").
|
||||
Namespace(c.namespace).
|
||||
Name(name).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *httpTriggerClient) Update(obj *fv1.HTTPTrigger) (*fv1.HTTPTrigger, error) {
|
||||
var result fv1.HTTPTrigger
|
||||
err := c.client.Put().
|
||||
Resource("httptriggers").
|
||||
Namespace(c.namespace).
|
||||
Name(obj.Metadata.Name).
|
||||
Body(obj).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *httpTriggerClient) Delete(name string, opts *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.namespace).
|
||||
Resource("httptriggers").
|
||||
Name(name).
|
||||
Body(opts).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
func (c *httpTriggerClient) List(opts metav1.ListOptions) (*fv1.HTTPTriggerList, error) {
|
||||
var result fv1.HTTPTriggerList
|
||||
err := c.client.Get().
|
||||
Namespace(c.namespace).
|
||||
Resource("httptriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *httpTriggerClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
return c.client.Get().
|
||||
Prefix("watch").
|
||||
Namespace(c.namespace).
|
||||
Resource("httptriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Watch()
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Fission 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.
|
||||
*/
|
||||
|
||||
package crd
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
)
|
||||
|
||||
type (
|
||||
KubernetesWatchTriggerInterface interface {
|
||||
Create(*fv1.KubernetesWatchTrigger) (*fv1.KubernetesWatchTrigger, error)
|
||||
Get(name string) (*fv1.KubernetesWatchTrigger, error)
|
||||
Update(*fv1.KubernetesWatchTrigger) (*fv1.KubernetesWatchTrigger, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
List(opts metav1.ListOptions) (*fv1.KubernetesWatchTriggerList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
}
|
||||
|
||||
kubernetesWatchTriggerClient struct {
|
||||
client *rest.RESTClient
|
||||
namespace string
|
||||
}
|
||||
)
|
||||
|
||||
func MakeKubernetesWatchTriggerInterface(crdClient *rest.RESTClient, namespace string) KubernetesWatchTriggerInterface {
|
||||
return &kubernetesWatchTriggerClient{
|
||||
client: crdClient,
|
||||
namespace: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *kubernetesWatchTriggerClient) Create(obj *fv1.KubernetesWatchTrigger) (*fv1.KubernetesWatchTrigger, error) {
|
||||
var result fv1.KubernetesWatchTrigger
|
||||
err := c.client.Post().
|
||||
Resource("kuberneteswatchtriggers").
|
||||
Namespace(c.namespace).
|
||||
Body(obj).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *kubernetesWatchTriggerClient) Get(name string) (*fv1.KubernetesWatchTrigger, error) {
|
||||
var result fv1.KubernetesWatchTrigger
|
||||
err := c.client.Get().
|
||||
Resource("kuberneteswatchtriggers").
|
||||
Namespace(c.namespace).
|
||||
Name(name).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *kubernetesWatchTriggerClient) Update(obj *fv1.KubernetesWatchTrigger) (*fv1.KubernetesWatchTrigger, error) {
|
||||
var result fv1.KubernetesWatchTrigger
|
||||
err := c.client.Put().
|
||||
Resource("kuberneteswatchtriggers").
|
||||
Namespace(c.namespace).
|
||||
Name(obj.Metadata.Name).
|
||||
Body(obj).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *kubernetesWatchTriggerClient) Delete(name string, opts *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.namespace).
|
||||
Resource("kuberneteswatchtriggers").
|
||||
Name(name).
|
||||
Body(opts).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
func (c *kubernetesWatchTriggerClient) List(opts metav1.ListOptions) (*fv1.KubernetesWatchTriggerList, error) {
|
||||
var result fv1.KubernetesWatchTriggerList
|
||||
err := c.client.Get().
|
||||
Namespace(c.namespace).
|
||||
Resource("kuberneteswatchtriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *kubernetesWatchTriggerClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
return c.client.Get().
|
||||
Prefix("watch").
|
||||
Namespace(c.namespace).
|
||||
Resource("kuberneteswatchtriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Watch()
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Fission 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.
|
||||
*/
|
||||
|
||||
package crd
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
)
|
||||
|
||||
type (
|
||||
MessageQueueTriggerInterface interface {
|
||||
Create(*fv1.MessageQueueTrigger) (*fv1.MessageQueueTrigger, error)
|
||||
Get(name string) (*fv1.MessageQueueTrigger, error)
|
||||
Update(*fv1.MessageQueueTrigger) (*fv1.MessageQueueTrigger, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
List(opts metav1.ListOptions) (*fv1.MessageQueueTriggerList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
}
|
||||
|
||||
messageQueueTriggerClient struct {
|
||||
client *rest.RESTClient
|
||||
namespace string
|
||||
}
|
||||
)
|
||||
|
||||
func MakeMessageQueueTriggerInterface(crdClient *rest.RESTClient, namespace string) MessageQueueTriggerInterface {
|
||||
return &messageQueueTriggerClient{
|
||||
client: crdClient,
|
||||
namespace: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
func (fc *messageQueueTriggerClient) Create(f *fv1.MessageQueueTrigger) (*fv1.MessageQueueTrigger, error) {
|
||||
var result fv1.MessageQueueTrigger
|
||||
err := fc.client.Post().
|
||||
Resource("messagequeuetriggers").
|
||||
Namespace(fc.namespace).
|
||||
Body(f).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *messageQueueTriggerClient) Get(name string) (*fv1.MessageQueueTrigger, error) {
|
||||
var result fv1.MessageQueueTrigger
|
||||
err := fc.client.Get().
|
||||
Resource("messagequeuetriggers").
|
||||
Namespace(fc.namespace).
|
||||
Name(name).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *messageQueueTriggerClient) Update(f *fv1.MessageQueueTrigger) (*fv1.MessageQueueTrigger, error) {
|
||||
var result fv1.MessageQueueTrigger
|
||||
err := fc.client.Put().
|
||||
Resource("messagequeuetriggers").
|
||||
Namespace(fc.namespace).
|
||||
Name(f.Metadata.Name).
|
||||
Body(f).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *messageQueueTriggerClient) Delete(name string, opts *metav1.DeleteOptions) error {
|
||||
return fc.client.Delete().
|
||||
Namespace(fc.namespace).
|
||||
Resource("messagequeuetriggers").
|
||||
Name(name).
|
||||
Body(opts).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
func (fc *messageQueueTriggerClient) List(opts metav1.ListOptions) (*fv1.MessageQueueTriggerList, error) {
|
||||
var result fv1.MessageQueueTriggerList
|
||||
err := fc.client.Get().
|
||||
Namespace(fc.namespace).
|
||||
Resource("messagequeuetriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *messageQueueTriggerClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
return fc.client.Get().
|
||||
Prefix("watch").
|
||||
Namespace(fc.namespace).
|
||||
Resource("messagequeuetriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Watch()
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Fission 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.
|
||||
*/
|
||||
|
||||
package crd
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
)
|
||||
|
||||
type (
|
||||
PackageInterface interface {
|
||||
Create(*fv1.Package) (*fv1.Package, error)
|
||||
Get(name string) (*fv1.Package, error)
|
||||
Update(*fv1.Package) (*fv1.Package, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
List(opts metav1.ListOptions) (*fv1.PackageList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
}
|
||||
|
||||
packageClient struct {
|
||||
client *rest.RESTClient
|
||||
namespace string
|
||||
}
|
||||
)
|
||||
|
||||
func MakePackageInterface(crdClient *rest.RESTClient, namespace string) PackageInterface {
|
||||
return &packageClient{
|
||||
client: crdClient,
|
||||
namespace: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *packageClient) Create(f *fv1.Package) (*fv1.Package, error) {
|
||||
var result fv1.Package
|
||||
err := c.client.Post().
|
||||
Resource("packages").
|
||||
Namespace(c.namespace).
|
||||
Body(f).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *packageClient) Get(name string) (*fv1.Package, error) {
|
||||
var result fv1.Package
|
||||
err := c.client.Get().
|
||||
Resource("packages").
|
||||
Namespace(c.namespace).
|
||||
Name(name).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *packageClient) Update(f *fv1.Package) (*fv1.Package, error) {
|
||||
var result fv1.Package
|
||||
err := c.client.Put().
|
||||
Resource("packages").
|
||||
Namespace(c.namespace).
|
||||
Name(f.Metadata.Name).
|
||||
Body(f).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *packageClient) Delete(name string, opts *metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
Namespace(c.namespace).
|
||||
Resource("packages").
|
||||
Name(name).
|
||||
Body(opts).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
func (c *packageClient) List(opts metav1.ListOptions) (*fv1.PackageList, error) {
|
||||
var result fv1.PackageList
|
||||
err := c.client.Get().
|
||||
Namespace(c.namespace).
|
||||
Resource("packages").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (c *packageClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
return c.client.Get().
|
||||
Prefix("watch").
|
||||
Namespace(c.namespace).
|
||||
Resource("packages").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Watch()
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 The Fission 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.
|
||||
*/
|
||||
|
||||
package crd
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/fission.io/v1"
|
||||
)
|
||||
|
||||
type (
|
||||
TimeTriggerInterface interface {
|
||||
Create(*fv1.TimeTrigger) (*fv1.TimeTrigger, error)
|
||||
Get(name string) (*fv1.TimeTrigger, error)
|
||||
Update(*fv1.TimeTrigger) (*fv1.TimeTrigger, error)
|
||||
Delete(name string, options *metav1.DeleteOptions) error
|
||||
List(opts metav1.ListOptions) (*fv1.TimeTriggerList, error)
|
||||
Watch(opts metav1.ListOptions) (watch.Interface, error)
|
||||
}
|
||||
|
||||
timeTriggerClient struct {
|
||||
client *rest.RESTClient
|
||||
namespace string
|
||||
}
|
||||
)
|
||||
|
||||
func MakeTimeTriggerInterface(crdClient *rest.RESTClient, namespace string) TimeTriggerInterface {
|
||||
return &timeTriggerClient{
|
||||
client: crdClient,
|
||||
namespace: namespace,
|
||||
}
|
||||
}
|
||||
|
||||
func (fc *timeTriggerClient) Create(f *fv1.TimeTrigger) (*fv1.TimeTrigger, error) {
|
||||
var result fv1.TimeTrigger
|
||||
err := fc.client.Post().
|
||||
Resource("timetriggers").
|
||||
Namespace(fc.namespace).
|
||||
Body(f).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *timeTriggerClient) Get(name string) (*fv1.TimeTrigger, error) {
|
||||
var result fv1.TimeTrigger
|
||||
err := fc.client.Get().
|
||||
Resource("timetriggers").
|
||||
Namespace(fc.namespace).
|
||||
Name(name).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *timeTriggerClient) Update(f *fv1.TimeTrigger) (*fv1.TimeTrigger, error) {
|
||||
var result fv1.TimeTrigger
|
||||
err := fc.client.Put().
|
||||
Resource("timetriggers").
|
||||
Namespace(fc.namespace).
|
||||
Name(f.Metadata.Name).
|
||||
Body(f).
|
||||
Do().Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *timeTriggerClient) Delete(name string, opts *metav1.DeleteOptions) error {
|
||||
return fc.client.Delete().
|
||||
Namespace(fc.namespace).
|
||||
Resource("timetriggers").
|
||||
Name(name).
|
||||
Body(opts).
|
||||
Do().
|
||||
Error()
|
||||
}
|
||||
|
||||
func (fc *timeTriggerClient) List(opts metav1.ListOptions) (*fv1.TimeTriggerList, error) {
|
||||
var result fv1.TimeTriggerList
|
||||
err := fc.client.Get().
|
||||
Namespace(fc.namespace).
|
||||
Resource("timetriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Do().
|
||||
Into(&result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (fc *timeTriggerClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
||||
return fc.client.Get().
|
||||
Prefix("watch").
|
||||
Namespace(fc.namespace).
|
||||
Resource("timetriggers").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Watch()
|
||||
}
|
||||
+5
-5
@@ -51,7 +51,7 @@ func (executor *Executor) getServiceForFunctionApi(w http.ResponseWriter, r *htt
|
||||
return
|
||||
}
|
||||
|
||||
fn, err := executor.fissionClient.Functions(m.Namespace).Get(m.Name)
|
||||
fn, err := executor.fissionClient.V1().Functions(m.Namespace).Get(m.Name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
if k8serrors.IsNotFound(err) {
|
||||
http.Error(w, "Failed to find function", http.StatusNotFound)
|
||||
@@ -87,8 +87,8 @@ func (executor *Executor) getServiceForFunctionApi(w http.ResponseWriter, r *htt
|
||||
func (executor *Executor) getServiceForFunction(fn *fv1.Function) (string, error) {
|
||||
// Check function -> svc cache
|
||||
executor.logger.Debug("checking for cached function service",
|
||||
zap.String("function_name", fn.Metadata.Name),
|
||||
zap.String("function_namespace", fn.Metadata.Namespace))
|
||||
zap.String("function_name", fn.ObjectMeta.Name),
|
||||
zap.String("function_namespace", fn.ObjectMeta.Namespace))
|
||||
|
||||
t := fn.Spec.InvokeStrategy.ExecutionStrategy.ExecutorType
|
||||
et, exists := executor.executorTypes[t]
|
||||
@@ -103,8 +103,8 @@ func (executor *Executor) getServiceForFunction(fn *fv1.Function) (string, error
|
||||
return fsvc.Address, nil
|
||||
} else {
|
||||
executor.logger.Debug("deleting cache entry for invalid address",
|
||||
zap.String("function_name", fn.Metadata.Name),
|
||||
zap.String("function_namespace", fn.Metadata.Namespace),
|
||||
zap.String("function_name", fn.ObjectMeta.Name),
|
||||
zap.String("function_namespace", fn.ObjectMeta.Namespace),
|
||||
zap.String("address", fsvc.Address))
|
||||
et.DeleteFuncSvcFromCache(fsvc)
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ func initConfigmapController(logger *zap.Logger, fissionClient *crd.FissionClien
|
||||
}
|
||||
|
||||
func getConfigmapRelatedFuncs(logger *zap.Logger, m *metav1.ObjectMeta, fissionClient *crd.FissionClient) ([]fv1.Function, error) {
|
||||
funcList, err := fissionClient.Functions(metav1.NamespaceAll).List(metav1.ListOptions{})
|
||||
funcList, err := fissionClient.V1().Functions(metav1.NamespaceAll).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -140,7 +140,7 @@ func initSecretController(logger *zap.Logger, fissionClient *crd.FissionClient,
|
||||
}
|
||||
|
||||
func getSecretRelatedFuncs(logger *zap.Logger, m *metav1.ObjectMeta, fissionClient *crd.FissionClient) ([]fv1.Function, error) {
|
||||
funcList, err := fissionClient.Functions(metav1.NamespaceAll).List(metav1.ListOptions{})
|
||||
funcList, err := fissionClient.V1().Functions(metav1.NamespaceAll).List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ func MakeExecutor(logger *zap.Logger, cms *cms.ConfigSecretController,
|
||||
func (executor *Executor) serveCreateFuncServices() {
|
||||
for {
|
||||
req := <-executor.requestChan
|
||||
fnMetadata := &req.function.Metadata
|
||||
fnMetadata := &req.function.ObjectMeta
|
||||
|
||||
// Cache miss -- is this first one to request the func?
|
||||
wg, found := executor.fsCreateWg[crd.CacheKey(fnMetadata)]
|
||||
@@ -167,8 +167,8 @@ func (executor *Executor) serveCreateFuncServices() {
|
||||
|
||||
func (executor *Executor) createServiceForFunction(ctx context.Context, fn *fv1.Function) (*fscache.FuncSvc, error) {
|
||||
executor.logger.Debug("no cached function service found, creating one",
|
||||
zap.String("function_name", fn.Metadata.Name),
|
||||
zap.String("function_namespace", fn.Metadata.Namespace))
|
||||
zap.String("function_name", fn.ObjectMeta.Name),
|
||||
zap.String("function_namespace", fn.ObjectMeta.Namespace))
|
||||
|
||||
t := fn.Spec.InvokeStrategy.ExecutionStrategy.ExecutorType
|
||||
e, ok := executor.executorTypes[t]
|
||||
@@ -181,9 +181,9 @@ func (executor *Executor) createServiceForFunction(ctx context.Context, fn *fv1.
|
||||
e := "error creating service for function"
|
||||
executor.logger.Error(e,
|
||||
zap.Error(fsvcErr),
|
||||
zap.String("function_name", fn.Metadata.Name),
|
||||
zap.String("function_namespace", fn.Metadata.Namespace))
|
||||
fsvcErr = errors.Wrap(fsvcErr, fmt.Sprintf("[%s] %s", fn.Metadata.Name, e))
|
||||
zap.String("function_name", fn.ObjectMeta.Name),
|
||||
zap.String("function_namespace", fn.ObjectMeta.Namespace))
|
||||
fsvcErr = errors.Wrap(fsvcErr, fmt.Sprintf("[%s] %s", fn.ObjectMeta.Name, e))
|
||||
}
|
||||
|
||||
return fsvc, fsvcErr
|
||||
@@ -225,7 +225,6 @@ func StartExecutor(logger *zap.Logger, functionNamespace string, envBuilderNames
|
||||
return errors.Wrap(err, "Error making fetcher config")
|
||||
}
|
||||
|
||||
restClient := fissionClient.GetCrdClient()
|
||||
executorInstanceID := strings.ToLower(uniuri.NewLen(8))
|
||||
|
||||
logger.Info("Starting executor", zap.String("instanceID", executorInstanceID))
|
||||
@@ -237,7 +236,7 @@ func StartExecutor(logger *zap.Logger, functionNamespace string, envBuilderNames
|
||||
|
||||
ndm := newdeploy.MakeNewDeploy(
|
||||
logger,
|
||||
fissionClient, kubernetesClient, restClient,
|
||||
fissionClient, kubernetesClient, fissionClient.V1().RESTClient(),
|
||||
functionNamespace, fetcherConfig, executorInstanceID)
|
||||
|
||||
executorTypes := make(map[fv1.ExecutorType]executortype.ExecutorType)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user