Ensuring passing context across fission (#2555)

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
This commit is contained in:
Sanket Sudake
2022-09-26 16:05:45 +05:30
committed by GitHub
parent a8a81ef5be
commit 3fa0f4bde3
43 changed files with 301 additions and 300 deletions
+19 -19
View File
@@ -50,7 +50,7 @@ type Category struct {
type Checker struct {
successMsg string
check func() error
check func(ctx context.Context) error
}
type Options struct {
@@ -102,8 +102,8 @@ func (hc *HealthChecker) CheckKubeVersion() (err error) {
return nil
}
func (hc *HealthChecker) CheckServiceStatus(namespace string, name string) (err error) {
depl, err := hc.kubeAPI.AppsV1().Deployments(namespace).Get(context.TODO(), name, metav1.GetOptions{})
func (hc *HealthChecker) CheckServiceStatus(ctx context.Context, namespace string, name string) (err error) {
depl, err := hc.kubeAPI.AppsV1().Deployments(namespace).Get(ctx, name, metav1.GetOptions{})
if err != nil {
return fmt.Errorf("failed to get %s deployment status", name)
}
@@ -112,7 +112,7 @@ func (hc *HealthChecker) CheckServiceStatus(namespace string, name string) (err
return fmt.Errorf("%s deployment is not running", name)
}
_, err = hc.kubeAPI.CoreV1().Services(namespace).Get(context.TODO(), name, metav1.GetOptions{})
_, err = hc.kubeAPI.CoreV1().Services(namespace).Get(ctx, name, metav1.GetOptions{})
if err != nil {
return fmt.Errorf("failed to get %s service status", name)
}
@@ -120,8 +120,8 @@ func (hc *HealthChecker) CheckServiceStatus(namespace string, name string) (err
return nil
}
func (hc *HealthChecker) CheckFissionVersion() error {
ver := util.GetVersion(hc.FissionClient)
func (hc *HealthChecker) CheckFissionVersion(ctx context.Context) error {
ver := util.GetVersion(ctx, hc.FissionClient)
clientVersion := ver.Client["fission/core"].Version
serverVersion := ver.Server["fission/core"].Version
@@ -148,7 +148,7 @@ func (hc *HealthChecker) allCategories() []*Category {
[]Checker{
{
successMsg: "kubernetes version is compatible",
check: func() (err error) {
check: func(ctx context.Context) (err error) {
return hc.CheckKubeVersion()
},
},
@@ -160,26 +160,26 @@ func (hc *HealthChecker) allCategories() []*Category {
[]Checker{
{
successMsg: "controller is running fine",
check: func() error {
return hc.CheckServiceStatus(hc.fissionNamespace, "controller")
check: func(ctx context.Context) error {
return hc.CheckServiceStatus(ctx, hc.fissionNamespace, "controller")
},
},
{
successMsg: "executor is running fine",
check: func() error {
return hc.CheckServiceStatus(hc.fissionNamespace, "executor")
check: func(ctx context.Context) error {
return hc.CheckServiceStatus(ctx, hc.fissionNamespace, "executor")
},
},
{
successMsg: "router is running fine",
check: func() error {
return hc.CheckServiceStatus(hc.fissionNamespace, "router")
check: func(ctx context.Context) error {
return hc.CheckServiceStatus(ctx, hc.fissionNamespace, "router")
},
},
{
successMsg: "storagesvc is running fine",
check: func() error {
return hc.CheckServiceStatus(hc.fissionNamespace, "storagesvc")
check: func(ctx context.Context) error {
return hc.CheckServiceStatus(ctx, hc.fissionNamespace, "storagesvc")
},
},
},
@@ -190,8 +190,8 @@ func (hc *HealthChecker) allCategories() []*Category {
[]Checker{
{
successMsg: "fission is up-to-date",
check: func() error {
return hc.CheckFissionVersion()
check: func(ctx context.Context) error {
return hc.CheckFissionVersion(ctx)
},
},
},
@@ -224,13 +224,13 @@ func NewHealthChecker(categoryIDs []CategoryID, options *Options) *HealthChecker
return hc
}
func RunChecks(hc *HealthChecker) {
func RunChecks(ctx context.Context, hc *HealthChecker) {
for _, c := range hc.categories {
if c.enabled {
fmt.Println(c.ID)
fmt.Println(strings.Repeat("-", 20))
for _, checker := range c.checkers {
err := checker.check()
err := checker.check(ctx)
if err != nil {
fmt.Printf("%s %s\n", failStatus, err)
} else {