Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion Wire.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ import (
cluster2 "github.com/devtron-labs/devtron/client/argocdServer/cluster"
repository2 "github.com/devtron-labs/devtron/client/argocdServer/repository"
session2 "github.com/devtron-labs/devtron/client/argocdServer/session"
"github.com/devtron-labs/devtron/client/cron"
"github.com/devtron-labs/devtron/client/dashboard"
eClient "github.com/devtron-labs/devtron/client/events"
"github.com/devtron-labs/devtron/client/gitSensor"
Expand Down Expand Up @@ -603,7 +604,7 @@ func InitializeApp() (*App, error) {
wire.Bind(new(router.CommonRouter), new(*router.CommonRouterImpl)),
restHandler.NewCommonRestHanlderImpl,
wire.Bind(new(restHandler.CommonRestHanlder), new(*restHandler.CommonRestHanlderImpl)),

util.NewGitCliUtil,

router.NewTelemetryRouterImpl,
Expand Down Expand Up @@ -719,6 +720,8 @@ func InitializeApp() (*App, error) {
//plugin ends

// AuthWireSet,
cron.NewHelmApplicationStatusUpdateHandlerImpl,
wire.Bind(new(cron.HelmApplicationStatusUpdateHandler), new(*cron.HelmApplicationStatusUpdateHandlerImpl)),
)
return &App{}, nil
}
2 changes: 1 addition & 1 deletion api/router/pubsub/ApplicationStatusUpdateHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ func (impl *ApplicationStatusUpdateHandlerImpl) Subscribe() error {
} else if application.Status.OperationState != nil && application.Status.OperationState.Operation.Sync != nil {
gitHash = application.Status.OperationState.Operation.Sync.Revision
}
err = impl.workflowDagExecutor.HandleDeploymentSuccessEvent(gitHash)
err = impl.workflowDagExecutor.HandleDeploymentSuccessEvent(gitHash, 0)
if err != nil {
impl.logger.Errorw("deployment success event error", "gitHash", gitHash, "err", err)
return
Expand Down
246 changes: 125 additions & 121 deletions api/router/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import (
"github.com/devtron-labs/devtron/api/sso"
"github.com/devtron-labs/devtron/api/team"
"github.com/devtron-labs/devtron/api/user"
"github.com/devtron-labs/devtron/client/cron"
"github.com/devtron-labs/devtron/client/dashboard"
pubsub2 "github.com/devtron-labs/devtron/client/pubsub"
"github.com/devtron-labs/devtron/client/telemetry"
Expand All @@ -48,66 +49,67 @@ import (
)

type MuxRouter struct {
logger *zap.SugaredLogger
Router *mux.Router
HelmRouter HelmRouter
PipelineConfigRouter PipelineConfigRouter
MigrateDbRouter MigrateDbRouter
EnvironmentClusterMappingsRouter cluster.EnvironmentRouter
AppListingRouter AppListingRouter
ClusterRouter cluster.ClusterRouter
WebHookRouter WebhookRouter
UserAuthRouter user.UserAuthRouter
ApplicationRouter ApplicationRouter
CDRouter CDRouter
ProjectManagementRouter ProjectManagementRouter
GitProviderRouter GitProviderRouter
GitHostRouter GitHostRouter
DockerRegRouter DockerRegRouter
NotificationRouter NotificationRouter
TeamRouter team.TeamRouter
pubsubClient *pubsub2.PubSubClient
UserRouter user.UserRouter
gitWebhookHandler pubsub.GitWebhookHandler
workflowUpdateHandler pubsub.WorkflowStatusUpdateHandler
appUpdateHandler pubsub.ApplicationStatusUpdateHandler
ciEventHandler pubsub.CiEventHandler
cronBasedEventReceiver pubsub.CronBasedEventReceiver
ChartRefRouter ChartRefRouter
ConfigMapRouter ConfigMapRouter
AppStoreRouter appStore.AppStoreRouter
ChartRepositoryRouter chartRepo.ChartRepositoryRouter
ReleaseMetricsRouter ReleaseMetricsRouter
deploymentGroupRouter DeploymentGroupRouter
chartGroupRouter ChartGroupRouter
batchOperationRouter BatchOperationRouter
testSuitRouter TestSuitRouter
imageScanRouter ImageScanRouter
policyRouter PolicyRouter
gitOpsConfigRouter GitOpsConfigRouter
dashboardRouter dashboard.DashboardRouter
attributesRouter AttributesRouter
commonRouter CommonRouter
grafanaRouter GrafanaRouter
ssoLoginRouter sso.SsoLoginRouter
telemetryRouter TelemetryRouter
telemetryWatcher telemetry.TelemetryEventClient
bulkUpdateRouter BulkUpdateRouter
WebhookListenerRouter WebhookListenerRouter
appLabelsRouter AppLabelRouter
coreAppRouter CoreAppRouter
helmAppRouter client.HelmAppRouter
k8sApplicationRouter k8s.K8sApplicationRouter
pProfRouter PProfRouter
deploymentConfigRouter deployment.DeploymentConfigRouter
dashboardTelemetryRouter dashboardEvent.DashboardTelemetryRouter
commonDeploymentRouter appStoreDeployment.CommonDeploymentRouter
globalPluginRouter GlobalPluginRouter
externalLinkRouter externalLink.ExternalLinkRouter
selfRegistrationRolesRouter user.SelfRegistrationRolesRouter
moduleRouter module.ModuleRouter
serverRouter server.ServerRouter
apiTokenRouter apiToken.ApiTokenRouter
logger *zap.SugaredLogger
Router *mux.Router
HelmRouter HelmRouter
PipelineConfigRouter PipelineConfigRouter
MigrateDbRouter MigrateDbRouter
EnvironmentClusterMappingsRouter cluster.EnvironmentRouter
AppListingRouter AppListingRouter
ClusterRouter cluster.ClusterRouter
WebHookRouter WebhookRouter
UserAuthRouter user.UserAuthRouter
ApplicationRouter ApplicationRouter
CDRouter CDRouter
ProjectManagementRouter ProjectManagementRouter
GitProviderRouter GitProviderRouter
GitHostRouter GitHostRouter
DockerRegRouter DockerRegRouter
NotificationRouter NotificationRouter
TeamRouter team.TeamRouter
pubsubClient *pubsub2.PubSubClient
UserRouter user.UserRouter
gitWebhookHandler pubsub.GitWebhookHandler
workflowUpdateHandler pubsub.WorkflowStatusUpdateHandler
appUpdateHandler pubsub.ApplicationStatusUpdateHandler
ciEventHandler pubsub.CiEventHandler
cronBasedEventReceiver pubsub.CronBasedEventReceiver
ChartRefRouter ChartRefRouter
ConfigMapRouter ConfigMapRouter
AppStoreRouter appStore.AppStoreRouter
ChartRepositoryRouter chartRepo.ChartRepositoryRouter
ReleaseMetricsRouter ReleaseMetricsRouter
deploymentGroupRouter DeploymentGroupRouter
chartGroupRouter ChartGroupRouter
batchOperationRouter BatchOperationRouter
testSuitRouter TestSuitRouter
imageScanRouter ImageScanRouter
policyRouter PolicyRouter
gitOpsConfigRouter GitOpsConfigRouter
dashboardRouter dashboard.DashboardRouter
attributesRouter AttributesRouter
commonRouter CommonRouter
grafanaRouter GrafanaRouter
ssoLoginRouter sso.SsoLoginRouter
telemetryRouter TelemetryRouter
telemetryWatcher telemetry.TelemetryEventClient
bulkUpdateRouter BulkUpdateRouter
WebhookListenerRouter WebhookListenerRouter
appLabelsRouter AppLabelRouter
coreAppRouter CoreAppRouter
helmAppRouter client.HelmAppRouter
k8sApplicationRouter k8s.K8sApplicationRouter
pProfRouter PProfRouter
deploymentConfigRouter deployment.DeploymentConfigRouter
dashboardTelemetryRouter dashboardEvent.DashboardTelemetryRouter
commonDeploymentRouter appStoreDeployment.CommonDeploymentRouter
globalPluginRouter GlobalPluginRouter
externalLinkRouter externalLink.ExternalLinkRouter
selfRegistrationRolesRouter user.SelfRegistrationRolesRouter
moduleRouter module.ModuleRouter
serverRouter server.ServerRouter
apiTokenRouter apiToken.ApiTokenRouter
helmApplicationStatusUpdateHandler cron.HelmApplicationStatusUpdateHandler
}

func NewMuxRouter(logger *zap.SugaredLogger, HelmRouter HelmRouter, PipelineConfigRouter PipelineConfigRouter,
Expand All @@ -132,68 +134,70 @@ func NewMuxRouter(logger *zap.SugaredLogger, HelmRouter HelmRouter, PipelineConf
pProfRouter PProfRouter, deploymentConfigRouter deployment.DeploymentConfigRouter, dashboardTelemetryRouter dashboardEvent.DashboardTelemetryRouter,
commonDeploymentRouter appStoreDeployment.CommonDeploymentRouter, externalLinkRouter externalLink.ExternalLinkRouter,
globalPluginRouter GlobalPluginRouter, selfRegistrationRolesRouter user.SelfRegistrationRolesRouter, moduleRouter module.ModuleRouter,
serverRouter server.ServerRouter, apiTokenRouter apiToken.ApiTokenRouter) *MuxRouter {
serverRouter server.ServerRouter, apiTokenRouter apiToken.ApiTokenRouter,
helmApplicationStatusUpdateHandler cron.HelmApplicationStatusUpdateHandler) *MuxRouter {
r := &MuxRouter{
Router: mux.NewRouter(),
HelmRouter: HelmRouter,
PipelineConfigRouter: PipelineConfigRouter,
MigrateDbRouter: MigrateDbRouter,
EnvironmentClusterMappingsRouter: EnvironmentClusterMappingsRouter,
AppListingRouter: AppListingRouter,
ClusterRouter: ClusterRouter,
WebHookRouter: WebHookRouter,
UserAuthRouter: UserAuthRouter,
ApplicationRouter: ApplicationRouter,
CDRouter: CDRouter,
ProjectManagementRouter: ProjectManagementRouter,
DockerRegRouter: DockerRegRouter,
GitProviderRouter: GitProviderRouter,
GitHostRouter: GitHostRouter,
NotificationRouter: NotificationRouter,
TeamRouter: TeamRouter,
logger: logger,
gitWebhookHandler: gitWebhookHandler,
workflowUpdateHandler: workflowUpdateHandler,
appUpdateHandler: appUpdateHandler,
ciEventHandler: ciEventHandler,
pubsubClient: pubsubClient,
UserRouter: UserRouter,
cronBasedEventReceiver: cronBasedEventReceiver,
ChartRefRouter: ChartRefRouter,
ConfigMapRouter: ConfigMapRouter,
AppStoreRouter: AppStoreRouter,
ChartRepositoryRouter: chartRepositoryRouter,
ReleaseMetricsRouter: ReleaseMetricsRouter,
deploymentGroupRouter: deploymentGroupRouter,
batchOperationRouter: batchOperationRouter,
chartGroupRouter: chartGroupRouter,
testSuitRouter: testSuitRouter,
imageScanRouter: imageScanRouter,
policyRouter: policyRouter,
gitOpsConfigRouter: gitOpsConfigRouter,
attributesRouter: attributesRouter,
dashboardRouter: dashboardRouter,
commonRouter: commonRouter,
grafanaRouter: grafanaRouter,
ssoLoginRouter: ssoLoginRouter,
telemetryRouter: telemetryRouter,
telemetryWatcher: telemetryWatcher,
bulkUpdateRouter: bulkUpdateRouter,
WebhookListenerRouter: webhookListenerRouter,
appLabelsRouter: appLabelsRouter,
coreAppRouter: coreAppRouter,
helmAppRouter: helmAppRouter,
k8sApplicationRouter: k8sApplicationRouter,
pProfRouter: pProfRouter,
deploymentConfigRouter: deploymentConfigRouter,
dashboardTelemetryRouter: dashboardTelemetryRouter,
commonDeploymentRouter: commonDeploymentRouter,
externalLinkRouter: externalLinkRouter,
globalPluginRouter: globalPluginRouter,
selfRegistrationRolesRouter: selfRegistrationRolesRouter,
moduleRouter: moduleRouter,
serverRouter: serverRouter,
apiTokenRouter: apiTokenRouter,
Router: mux.NewRouter(),
HelmRouter: HelmRouter,
PipelineConfigRouter: PipelineConfigRouter,
MigrateDbRouter: MigrateDbRouter,
EnvironmentClusterMappingsRouter: EnvironmentClusterMappingsRouter,
AppListingRouter: AppListingRouter,
ClusterRouter: ClusterRouter,
WebHookRouter: WebHookRouter,
UserAuthRouter: UserAuthRouter,
ApplicationRouter: ApplicationRouter,
CDRouter: CDRouter,
ProjectManagementRouter: ProjectManagementRouter,
DockerRegRouter: DockerRegRouter,
GitProviderRouter: GitProviderRouter,
GitHostRouter: GitHostRouter,
NotificationRouter: NotificationRouter,
TeamRouter: TeamRouter,
logger: logger,
gitWebhookHandler: gitWebhookHandler,
workflowUpdateHandler: workflowUpdateHandler,
appUpdateHandler: appUpdateHandler,
ciEventHandler: ciEventHandler,
pubsubClient: pubsubClient,
UserRouter: UserRouter,
cronBasedEventReceiver: cronBasedEventReceiver,
ChartRefRouter: ChartRefRouter,
ConfigMapRouter: ConfigMapRouter,
AppStoreRouter: AppStoreRouter,
ChartRepositoryRouter: chartRepositoryRouter,
ReleaseMetricsRouter: ReleaseMetricsRouter,
deploymentGroupRouter: deploymentGroupRouter,
batchOperationRouter: batchOperationRouter,
chartGroupRouter: chartGroupRouter,
testSuitRouter: testSuitRouter,
imageScanRouter: imageScanRouter,
policyRouter: policyRouter,
gitOpsConfigRouter: gitOpsConfigRouter,
attributesRouter: attributesRouter,
dashboardRouter: dashboardRouter,
commonRouter: commonRouter,
grafanaRouter: grafanaRouter,
ssoLoginRouter: ssoLoginRouter,
telemetryRouter: telemetryRouter,
telemetryWatcher: telemetryWatcher,
bulkUpdateRouter: bulkUpdateRouter,
WebhookListenerRouter: webhookListenerRouter,
appLabelsRouter: appLabelsRouter,
coreAppRouter: coreAppRouter,
helmAppRouter: helmAppRouter,
k8sApplicationRouter: k8sApplicationRouter,
pProfRouter: pProfRouter,
deploymentConfigRouter: deploymentConfigRouter,
dashboardTelemetryRouter: dashboardTelemetryRouter,
commonDeploymentRouter: commonDeploymentRouter,
externalLinkRouter: externalLinkRouter,
globalPluginRouter: globalPluginRouter,
selfRegistrationRolesRouter: selfRegistrationRolesRouter,
moduleRouter: moduleRouter,
serverRouter: serverRouter,
apiTokenRouter: apiTokenRouter,
helmApplicationStatusUpdateHandler: helmApplicationStatusUpdateHandler,
}
return r
}
Expand Down
55 changes: 55 additions & 0 deletions client/cron/HelmApplicationStatusUpdateHandler.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package cron

import (
"github.com/devtron-labs/devtron/pkg/app"
"github.com/devtron-labs/devtron/pkg/appStore/deployment/service"
"github.com/devtron-labs/devtron/pkg/pipeline"
"github.com/robfig/cron/v3"
"go.uber.org/zap"
)

type HelmApplicationStatusUpdateHandler interface {
HelmApplicationStatusUpdate()
}

type HelmApplicationStatusUpdateHandlerImpl struct {
logger *zap.SugaredLogger
cron *cron.Cron
appService app.AppService
workflowDagExecutor pipeline.WorkflowDagExecutor
installedAppService service.InstalledAppService
CdHandler pipeline.CdHandler
}

const HelmAppStatusUpdateCronExpr string = "*/2 * * * *"

func NewHelmApplicationStatusUpdateHandlerImpl(logger *zap.SugaredLogger, appService app.AppService,
workflowDagExecutor pipeline.WorkflowDagExecutor, installedAppService service.InstalledAppService,
CdHandler pipeline.CdHandler) *HelmApplicationStatusUpdateHandlerImpl {
cron := cron.New(
cron.WithChain())
cron.Start()
impl := &HelmApplicationStatusUpdateHandlerImpl{
logger: logger,
cron: cron,
appService: appService,
workflowDagExecutor: workflowDagExecutor,
installedAppService: installedAppService,
CdHandler: CdHandler,
}
_, err := cron.AddFunc(HelmAppStatusUpdateCronExpr, impl.HelmApplicationStatusUpdate)
if err != nil {
logger.Errorw("error in starting helm application status update cron job", "err", err)
return nil
}
return impl
}

func (impl *HelmApplicationStatusUpdateHandlerImpl) HelmApplicationStatusUpdate() {
err := impl.CdHandler.CheckHelmAppStatusPeriodicallyAndUpdateInDb()
if err != nil {
impl.logger.Errorw("error helm app status update - cron job", "err", err)
return
}
return
}
Loading