chore: build
This commit is contained in:
@@ -31,6 +31,7 @@ var adminUsernamePattern = regexp.MustCompile(`^[A-Za-z0-9]{3,64}$`)
|
||||
type Provisioner interface {
|
||||
ProvisionProject(spec demos.ProjectSpec) error
|
||||
TeardownProject(namespace string) error
|
||||
ProjectState(ctx context.Context, namespace string) (demos.ResourceState, error)
|
||||
}
|
||||
|
||||
// NoopProvisioner : aucun déploiement réel (dev en mémoire, tests).
|
||||
@@ -38,6 +39,9 @@ type NoopProvisioner struct{}
|
||||
|
||||
func (NoopProvisioner) ProvisionProject(demos.ProjectSpec) error { return nil }
|
||||
func (NoopProvisioner) TeardownProject(string) error { return nil }
|
||||
func (NoopProvisioner) ProjectState(context.Context, string) (demos.ResourceState, error) {
|
||||
return demos.ResourceState{}, nil
|
||||
}
|
||||
|
||||
// Config du service (injectable pour les tests).
|
||||
type Config struct {
|
||||
@@ -176,6 +180,24 @@ func (s *Service) Get(id string) (Project, error) {
|
||||
|
||||
func (s *Service) List() ([]Project, error) { return s.store.List() }
|
||||
|
||||
// State : état live des composants du projet (phase + CPU/mémoire). Un projet
|
||||
// qui n'a pas (ou plus) de pods (échec, suppression) renvoie un état vide sans
|
||||
// interroger le cluster.
|
||||
func (s *Service) State(ctx context.Context, id string) (Project, demos.ResourceState, error) {
|
||||
p, ok := s.store.Get(id)
|
||||
if !ok {
|
||||
return Project{}, demos.ResourceState{}, ErrNotFound
|
||||
}
|
||||
if p.Status != StatusProvisioning && p.Status != StatusReady {
|
||||
return p, demos.ResourceState{}, nil
|
||||
}
|
||||
state, err := s.prov.ProjectState(ctx, p.Namespace)
|
||||
if err != nil {
|
||||
return p, demos.ResourceState{}, err
|
||||
}
|
||||
return p, state, nil
|
||||
}
|
||||
|
||||
// Extend ajoute months mois à l'abonnement, à partir de l'échéance courante
|
||||
// (ou de maintenant si elle est dépassée).
|
||||
func (s *Service) Extend(id string, months int) (Project, error) {
|
||||
|
||||
Reference in New Issue
Block a user