Skip to content

Commit 08511e2

Browse files
Account for gitea credentials in cache and watchers
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
1 parent b4e92a6 commit 08511e2

File tree

6 files changed

+24
-12
lines changed

6 files changed

+24
-12
lines changed

apiserver/events/params.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ func (f Filter) Validate() error {
1414
case common.RepositoryEntityType, common.OrganizationEntityType, common.EnterpriseEntityType,
1515
common.PoolEntityType, common.UserEntityType, common.InstanceEntityType,
1616
common.JobEntityType, common.ControllerEntityType, common.GithubCredentialsEntityType,
17-
common.GithubEndpointEntityType:
17+
common.GiteaCredentialsEntityType, common.ScaleSetEntityType, common.GithubEndpointEntityType:
1818
default:
1919
return common.ErrInvalidEntityType
2020
}

cache/entity_cache.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,13 +231,17 @@ func (e *EntityCache) GetEntityScaleSets(entityID string) []params.ScaleSet {
231231
return nil
232232
}
233233

234-
func (e *EntityCache) GetEntitiesUsingGredentials(credsID uint) []params.ForgeEntity {
234+
func (e *EntityCache) GetEntitiesUsingCredentials(creds params.ForgeCredentials) []params.ForgeEntity {
235235
e.mux.Lock()
236236
defer e.mux.Unlock()
237237

238238
var entities []params.ForgeEntity
239239
for _, cache := range e.entities {
240-
if cache.Entity.Credentials.GetID() == credsID {
240+
if cache.Entity.Credentials.ForgeType != creds.ForgeType {
241+
continue
242+
}
243+
244+
if cache.Entity.Credentials.GetID() == creds.GetID() {
241245
entities = append(entities, cache.Entity)
242246
}
243247
}
@@ -357,8 +361,8 @@ func UpdateCredentialsInAffectedEntities(creds params.ForgeCredentials) {
357361
entityCache.UpdateCredentialsInAffectedEntities(creds)
358362
}
359363

360-
func GetEntitiesUsingGredentials(credsID uint) []params.ForgeEntity {
361-
return entityCache.GetEntitiesUsingGredentials(credsID)
364+
func GetEntitiesUsingCredentials(creds params.ForgeCredentials) []params.ForgeEntity {
365+
return entityCache.GetEntitiesUsingCredentials(creds)
362366
}
363367

364368
func GetAllEntities() []params.ForgeEntity {

database/watcher/filters.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ func WithForgeCredentialsFilter(creds params.ForgeCredentials) dbCommon.PayloadF
188188
var idGetter params.IDGetter
189189
var ok bool
190190
switch payload.EntityType {
191-
case dbCommon.GithubCredentialsEntityType:
191+
case dbCommon.GithubCredentialsEntityType, dbCommon.GiteaCredentialsEntityType:
192192
idGetter, ok = payload.Payload.(params.ForgeCredentials)
193193
default:
194194
return false

runner/pool/watcher.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ func (r *basePoolManager) handleCredentialsUpdate(credentials params.ForgeCreden
124124
func (r *basePoolManager) handleWatcherEvent(event common.ChangePayload) {
125125
dbEntityType := common.DatabaseEntityType(r.entity.EntityType)
126126
switch event.EntityType {
127-
case common.GithubCredentialsEntityType:
127+
case common.GithubCredentialsEntityType, common.GiteaCredentialsEntityType:
128128
credentials, ok := event.Payload.(params.ForgeCredentials)
129129
if !ok {
130130
slog.ErrorContext(r.ctx, "failed to cast payload to github credentials")

workers/cache/cache.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -386,8 +386,16 @@ func (w *Worker) handleCredentialsEvent(event common.ChangePayload) {
386386
}
387387
switch event.Operation {
388388
case common.CreateOperation, common.UpdateOperation:
389-
cache.SetGithubCredentials(credentials)
390-
entities := cache.GetEntitiesUsingGredentials(credentials.ID)
389+
switch credentials.ForgeType {
390+
case params.GithubEndpointType:
391+
cache.SetGithubCredentials(credentials)
392+
case params.GiteaEndpointType:
393+
cache.SetGiteaCredentials(credentials)
394+
default:
395+
slog.DebugContext(w.ctx, "invalid credentials type", "credentials_type", credentials.ForgeType)
396+
return
397+
}
398+
entities := cache.GetEntitiesUsingCredentials(credentials)
391399
for _, entity := range entities {
392400
worker, ok := w.toolsWorkes[entity.ID]
393401
if ok {
@@ -414,7 +422,7 @@ func (w *Worker) handleEvent(event common.ChangePayload) {
414422
w.handleOrgEvent(event)
415423
case common.EnterpriseEntityType:
416424
w.handleEnterpriseEvent(event)
417-
case common.GithubCredentialsEntityType:
425+
case common.GithubCredentialsEntityType, common.GiteaCredentialsEntityType:
418426
w.handleCredentialsEvent(event)
419427
default:
420428
slog.DebugContext(w.ctx, "unknown entity type", "entity_type", event.EntityType)

workers/entity/worker_watcher.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func (w *Worker) handleWorkerWatcherEvent(event dbCommon.ChangePayload) {
1717
case entityType:
1818
w.handleEntityEventPayload(event)
1919
return
20-
case dbCommon.GithubCredentialsEntityType:
20+
case dbCommon.GithubCredentialsEntityType, dbCommon.GiteaCredentialsEntityType:
2121
slog.DebugContext(w.ctx, "got github credentials payload event")
2222
w.handleEntityCredentialsEventPayload(event)
2323
default:
@@ -66,7 +66,7 @@ func (w *Worker) handleEntityCredentialsEventPayload(event dbCommon.ChangePayloa
6666
var creds params.ForgeCredentials
6767
var ok bool
6868
switch event.EntityType {
69-
case dbCommon.GithubCredentialsEntityType:
69+
case dbCommon.GithubCredentialsEntityType, dbCommon.GiteaCredentialsEntityType:
7070
creds, ok = event.Payload.(params.ForgeCredentials)
7171
default:
7272
slog.ErrorContext(w.ctx, "invalid entity type", "entity_type", event.EntityType)

0 commit comments

Comments
 (0)