(ctx context.Context, instance params.Instance)
| 1541 | } |
| 1542 | |
| 1543 | func (r *basePoolManager) deleteInstanceFromProvider(ctx context.Context, instance params.Instance) error { |
| 1544 | pool, err := r.store.GetEntityPool(r.ctx, r.entity, instance.PoolID) |
| 1545 | if err != nil { |
| 1546 | return fmt.Errorf("error fetching pool: %w", err) |
| 1547 | } |
| 1548 | |
| 1549 | provider, ok := r.providers[instance.ProviderName] |
| 1550 | if !ok { |
| 1551 | return fmt.Errorf("unknown provider %s for pool %s", instance.ProviderName, instance.PoolID) |
| 1552 | } |
| 1553 | |
| 1554 | identifier := instance.ProviderID |
| 1555 | if identifier == "" { |
| 1556 | // provider did not return a provider ID? |
| 1557 | // try with name |
| 1558 | identifier = instance.Name |
| 1559 | } |
| 1560 | |
| 1561 | slog.DebugContext( |
| 1562 | ctx, "calling delete instance on provider", |
| 1563 | "runner_name", instance.Name, |
| 1564 | "provider_id", identifier) |
| 1565 | |
| 1566 | deleteInstanceParams := common.DeleteInstanceParams{ |
| 1567 | DeleteInstanceV011: common.DeleteInstanceV011Params{ |
| 1568 | ProviderBaseParams: r.getProviderBaseParams(pool), |
| 1569 | }, |
| 1570 | } |
| 1571 | if err := provider.DeleteInstance(ctx, identifier, deleteInstanceParams); err != nil { |
| 1572 | return fmt.Errorf("error removing instance: %w", err) |
| 1573 | } |
| 1574 | |
| 1575 | return nil |
| 1576 | } |
| 1577 | |
| 1578 | func (r *basePoolManager) sleepWithCancel(sleepTime time.Duration) (canceled bool) { |
| 1579 | if sleepTime == 0 { |
no test coverage detected