MCPcopy Create free account
hub / github.com/cloudbase/garm / SetScaleSetDesiredRunnerCount

Method SetScaleSetDesiredRunnerCount

database/sql/scalesets.go:496–531  ·  view source on GitHub ↗
(_ context.Context, scaleSetID uint, desiredRunnerCount int)

Source from the content-addressed store, hash-verified

494}
495
496func (s *sqlDatabase) SetScaleSetDesiredRunnerCount(_ context.Context, scaleSetID uint, desiredRunnerCount int) (err error) {
497 var scaleSet params.ScaleSet
498 var rowsAffected int64
499 defer func() {
500 if err == nil && scaleSet.ID != 0 && rowsAffected > 0 {
501 s.sendNotify(common.ScaleSetEntityType, common.UpdateOperation, scaleSet)
502 }
503 }()
504 if err := s.conn.Transaction(func(tx *gorm.DB) error {
505 dbSet, err := s.getScaleSetByID(tx, scaleSetID, "Instances", "Enterprise", "Organization", "Repository")
506 if err != nil {
507 return fmt.Errorf("error fetching scale set: %w", err)
508 }
509 result := tx.Model(&dbSet).Updates(map[string]interface{}{
510 "desired_runner_count": desiredRunnerCount,
511 })
512 if result.Error != nil {
513 return fmt.Errorf("error saving database entry: %w", result.Error)
514 }
515 rowsAffected = result.RowsAffected
516
517 // Reload to get the updated value
518 dbSet, err = s.getScaleSetByID(tx, scaleSetID, "Instances", "Enterprise", "Organization", "Repository")
519 if err != nil {
520 return fmt.Errorf("error reloading scale set: %w", err)
521 }
522 scaleSet, err = s.sqlToCommonScaleSet(dbSet)
523 if err != nil {
524 return fmt.Errorf("error converting scale set: %w", err)
525 }
526 return nil
527 }); err != nil {
528 return fmt.Errorf("error setting desired runner count: %w", err)
529 }
530 return nil
531}

Callers

nothing calls this directly

Calls 3

sendNotifyMethod · 0.95
getScaleSetByIDMethod · 0.95
sqlToCommonScaleSetMethod · 0.95

Tested by

no test coverage detected