Envtest based integration tests for Fission (#2858)
* skeleton for envtest fission * Refactor code and add CLI test * hack * Update server test * remove skip-ci for lint tests * Pass client go storagesvc * Add clientGen interface across code * Fix storagesvc test * Fix cmd client * add retry in server test * Fix concurrenct access to pool deployment * Remove old executor test * get rid of ginkgo/gomega * disable flaky test * flaky test * revert ci change * handle err from ParseBool --------- Signed-off-by: Sanket Sudake <sanketsudake@gmail.com> Co-authored-by: Pranoy Kundu <pranoy1998k@gmail.com>
This commit is contained in:
co-authored by
Pranoy Kundu
parent
15e16fcc82
commit
8a17d391c5
@@ -93,21 +93,26 @@ func makeHTTPTriggerSet(logger *zap.Logger, fmap *functionServiceMap, fissionCli
|
||||
return httpTriggerSet, nil
|
||||
}
|
||||
|
||||
func (ts *HTTPTriggerSet) subscribeRouter(ctx context.Context, mr *mutableRouter) {
|
||||
func (ts *HTTPTriggerSet) subscribeRouter(ctx context.Context, mr *mutableRouter) error {
|
||||
resolver := makeFunctionReferenceResolver(ts.logger, ts.funcInformer)
|
||||
ts.resolver = resolver
|
||||
ts.mutableRouter = mr
|
||||
|
||||
if ts.fissionClient == nil {
|
||||
// Used in tests only.
|
||||
mr.updateRouter(ts.getRouter(nil))
|
||||
router, err := ts.getRouter(nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
mr.updateRouter(router)
|
||||
ts.logger.Info("skipping continuous trigger updates")
|
||||
return
|
||||
return nil
|
||||
}
|
||||
go ts.updateRouter()
|
||||
go ts.syncTriggers()
|
||||
go ts.runInformer(ctx, ts.funcInformer)
|
||||
go ts.runInformer(ctx, ts.triggerInformer)
|
||||
return nil
|
||||
}
|
||||
|
||||
func defaultHomeHandler(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -133,9 +138,12 @@ func versionHandler(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
|
||||
func (ts *HTTPTriggerSet) getRouter(fnTimeoutMap map[types.UID]int) *mux.Router {
|
||||
func (ts *HTTPTriggerSet) getRouter(fnTimeoutMap map[types.UID]int) (*mux.Router, error) {
|
||||
|
||||
featureConfig, _ := config.GetFeatureConfig()
|
||||
featureConfig, err := config.GetFeatureConfig()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
muxRouter := mux.NewRouter()
|
||||
muxRouter.Use(metrics.HTTPMetricMiddleware)
|
||||
@@ -289,7 +297,7 @@ func (ts *HTTPTriggerSet) getRouter(fnTimeoutMap map[types.UID]int) *mux.Router
|
||||
// version of application.
|
||||
muxRouter.HandleFunc("/_version", versionHandler).Methods("GET")
|
||||
|
||||
return muxRouter
|
||||
return muxRouter, nil
|
||||
}
|
||||
|
||||
func (ts *HTTPTriggerSet) updateTriggerStatusFailed(ht *fv1.HTTPTrigger, err error) {
|
||||
@@ -408,6 +416,11 @@ func (ts *HTTPTriggerSet) updateRouter() {
|
||||
ts.functions = allfunctions
|
||||
|
||||
// make a new router and use it
|
||||
ts.mutableRouter.updateRouter(ts.getRouter(functionTimeout))
|
||||
router, err := ts.getRouter(functionTimeout)
|
||||
if err != nil {
|
||||
ts.logger.Error("error updating router", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
ts.mutableRouter.updateRouter(router)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user