This is an automated email from the ASF dual-hosted git repository. DImuthuUpe pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/airavata-custos.git
commit 623760c7ecd139afb1ac894fc1213cb5fd7ea661 Author: lahiruj <[email protected]> AuthorDate: Thu May 21 16:46:42 2026 -0400 Drop compute_cluster_users.status field --- .../000016_compute_cluster_users_status.down.sql | 20 ------------- .../000016_compute_cluster_users_status.up.sql | 20 ------------- ...es.down.sql => 000016_user_identities.down.sql} | 0 ...tities.up.sql => 000016_user_identities.up.sql} | 0 internal/server/server.go | 15 ---------- internal/store/compute_cluster_user_store.go | 20 ++++--------- internal/store/store.go | 2 -- pkg/models/allocation.go | 9 +++--- pkg/service/compute_cluster_user.go | 33 ---------------------- 9 files changed, 10 insertions(+), 109 deletions(-) diff --git a/internal/db/migrations/000016_compute_cluster_users_status.down.sql b/internal/db/migrations/000016_compute_cluster_users_status.down.sql deleted file mode 100644 index fe9eea446..000000000 --- a/internal/db/migrations/000016_compute_cluster_users_status.down.sql +++ /dev/null @@ -1,20 +0,0 @@ --- Licensed to the Apache Software Foundation (ASF) under one --- or more contributor license agreements. See the NOTICE file --- distributed with this work for additional information --- regarding copyright ownership. The ASF licenses this file --- to you under the Apache License, Version 2.0 (the --- "License"); you may not use this file except in compliance --- with the License. You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, --- software distributed under the License is distributed on an --- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --- KIND, either express or implied. See the License for the --- specific language governing permissions and limitations --- under the License. - -ALTER TABLE compute_cluster_users - DROP KEY idx_compute_cluster_users_status, - DROP COLUMN status; diff --git a/internal/db/migrations/000016_compute_cluster_users_status.up.sql b/internal/db/migrations/000016_compute_cluster_users_status.up.sql deleted file mode 100644 index 5cbeae23e..000000000 --- a/internal/db/migrations/000016_compute_cluster_users_status.up.sql +++ /dev/null @@ -1,20 +0,0 @@ --- Licensed to the Apache Software Foundation (ASF) under one --- or more contributor license agreements. See the NOTICE file --- distributed with this work for additional information --- regarding copyright ownership. The ASF licenses this file --- to you under the Apache License, Version 2.0 (the --- "License"); you may not use this file except in compliance --- with the License. You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, --- software distributed under the License is distributed on an --- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --- KIND, either express or implied. See the License for the --- specific language governing permissions and limitations --- under the License. - -ALTER TABLE compute_cluster_users - ADD COLUMN status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' AFTER local_username, - ADD KEY idx_compute_cluster_users_status (status); diff --git a/internal/db/migrations/000017_user_identities.down.sql b/internal/db/migrations/000016_user_identities.down.sql similarity index 100% rename from internal/db/migrations/000017_user_identities.down.sql rename to internal/db/migrations/000016_user_identities.down.sql diff --git a/internal/db/migrations/000017_user_identities.up.sql b/internal/db/migrations/000016_user_identities.up.sql similarity index 100% rename from internal/db/migrations/000017_user_identities.up.sql rename to internal/db/migrations/000016_user_identities.up.sql diff --git a/internal/server/server.go b/internal/server/server.go index 9844b8d3a..086e8de64 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -70,7 +70,6 @@ func (s *Server) routes() { s.mux.HandleFunc("POST /compute-cluster-users", s.createComputeClusterUser) s.mux.HandleFunc("GET /compute-cluster-users/{id}", s.getComputeClusterUser) s.mux.HandleFunc("PUT /compute-cluster-users/{id}", s.updateComputeClusterUser) - s.mux.HandleFunc("PUT /compute-cluster-users/{id}/status", s.updateComputeClusterUserStatus) s.mux.HandleFunc("DELETE /compute-cluster-users/{id}", s.deleteComputeClusterUser) s.mux.HandleFunc("GET /compute-clusters/{id}/users", s.listComputeClusterUsersByCluster) s.mux.HandleFunc("GET /compute-clusters/{id}/users/{userId}", s.getComputeClusterUserByPair) @@ -907,20 +906,6 @@ func (s *Server) updateProjectStatus(w http.ResponseWriter, r *http.Request) { writeJSON(w, http.StatusOK, p) } -func (s *Server) updateComputeClusterUserStatus(w http.ResponseWriter, r *http.Request) { - var req statusUpdateRequest - if err := decodeJSON(r, &req); err != nil { - writeError(w, http.StatusBadRequest, err) - return - } - cu, err := s.svc.UpdateComputeClusterUserStatus(r.Context(), r.PathValue("id"), models.AllocationStatus(req.Status)) - if err != nil { - writeServiceError(w, err) - return - } - writeJSON(w, http.StatusOK, cu) -} - func (s *Server) createUserIdentity(w http.ResponseWriter, r *http.Request) { var e models.UserIdentity if err := decodeJSON(r, &e); err != nil { diff --git a/internal/store/compute_cluster_user_store.go b/internal/store/compute_cluster_user_store.go index c345d0330..8e56b0c60 100644 --- a/internal/store/compute_cluster_user_store.go +++ b/internal/store/compute_cluster_user_store.go @@ -36,7 +36,7 @@ func NewComputeClusterUserStore(db *sqlx.DB) ComputeClusterUserStore { return &mysqlComputeClusterUserStore{db: db} } -const computeClusterUserColumns = `id, compute_cluster_id, user_id, local_username, status` +const computeClusterUserColumns = `id, compute_cluster_id, user_id, local_username` func (s *mysqlComputeClusterUserStore) FindByID(ctx context.Context, id string) (*models.ComputeClusterUser, error) { var c models.ComputeClusterUser @@ -95,9 +95,9 @@ func (s *mysqlComputeClusterUserStore) FindByUser(ctx context.Context, userID st func (s *mysqlComputeClusterUserStore) Create(ctx context.Context, tx *sql.Tx, c *models.ComputeClusterUser) error { _, err := tx.ExecContext(ctx, - `INSERT INTO compute_cluster_users (id, compute_cluster_id, user_id, local_username, status) - VALUES (?, ?, ?, ?, ?)`, - c.ID, c.ComputeClusterID, c.UserID, c.LocalUsername, c.Status) + `INSERT INTO compute_cluster_users (id, compute_cluster_id, user_id, local_username) + VALUES (?, ?, ?, ?)`, + c.ID, c.ComputeClusterID, c.UserID, c.LocalUsername) return err } @@ -106,17 +106,9 @@ func (s *mysqlComputeClusterUserStore) Update(ctx context.Context, tx *sql.Tx, c `UPDATE compute_cluster_users SET compute_cluster_id = ?, user_id = ?, - local_username = ?, - status = ? + local_username = ? WHERE id = ?`, - c.ComputeClusterID, c.UserID, c.LocalUsername, c.Status, c.ID) - return err -} - -func (s *mysqlComputeClusterUserStore) UpdateStatus(ctx context.Context, tx *sql.Tx, id string, status models.AllocationStatus) error { - _, err := tx.ExecContext(ctx, - `UPDATE compute_cluster_users SET status = ? WHERE id = ?`, - status, id) + c.ComputeClusterID, c.UserID, c.LocalUsername, c.ID) return err } diff --git a/internal/store/store.go b/internal/store/store.go index f3a7a6b00..231393634 100644 --- a/internal/store/store.go +++ b/internal/store/store.go @@ -88,8 +88,6 @@ type ComputeClusterUserStore interface { Create(ctx context.Context, tx *sql.Tx, c *models.ComputeClusterUser) error // Update replaces mutable fields of an existing mapping within the provided transaction. Update(ctx context.Context, tx *sql.Tx, c *models.ComputeClusterUser) error - // UpdateStatus sets the lifecycle status of an existing mapping within the provided transaction. - UpdateStatus(ctx context.Context, tx *sql.Tx, id string, status models.AllocationStatus) error // ReassignUser moves every mapping owned by fromUserID over to toUserID, // dropping fromUserID's rows on clusters where toUserID already has one. ReassignUser(ctx context.Context, tx *sql.Tx, fromUserID, toUserID string) error diff --git a/pkg/models/allocation.go b/pkg/models/allocation.go index 9fb9e94f5..a8fcd3976 100644 --- a/pkg/models/allocation.go +++ b/pkg/models/allocation.go @@ -16,11 +16,10 @@ type ComputeCluster struct { } type ComputeClusterUser struct { - ID string `json:"id" db:"id"` - ComputeClusterID string `json:"compute_cluster_id" db:"compute_cluster_id"` - UserID string `json:"user_id" db:"user_id"` - LocalUsername string `json:"local_username" db:"local_username"` // The username of the user on the compute cluster, which may be different from their Airavata Custos username. - Status AllocationStatus `json:"status" db:"status"` + ID string `json:"id" db:"id"` + ComputeClusterID string `json:"compute_cluster_id" db:"compute_cluster_id"` + UserID string `json:"user_id" db:"user_id"` + LocalUsername string `json:"local_username" db:"local_username"` // The username of the user on the compute cluster, which may be different from their Airavata Custos username. } type ComputeAllocation struct { diff --git a/pkg/service/compute_cluster_user.go b/pkg/service/compute_cluster_user.go index b3b268ae4..b8311bbf4 100644 --- a/pkg/service/compute_cluster_user.go +++ b/pkg/service/compute_cluster_user.go @@ -45,9 +45,6 @@ func (s *Service) CreateComputeClusterUser(ctx context.Context, cu *models.Compu if cu.ID == "" { cu.ID = newID() } - if cu.Status == "" { - cu.Status = models.ACTIVE - } if cluster, err := s.clusters.FindByID(ctx, cu.ComputeClusterID); err != nil { return nil, fmt.Errorf("lookup compute cluster: %w", err) @@ -157,9 +154,6 @@ func (s *Service) UpdateComputeClusterUser(ctx context.Context, cu *models.Compu if cu.LocalUsername == "" { cu.LocalUsername = existing.LocalUsername } - if cu.Status == "" { - cu.Status = existing.Status - } if err := s.inTx(ctx, func(tx *sql.Tx) error { return s.clusterUsers.Update(ctx, tx, cu) }); err != nil { @@ -170,33 +164,6 @@ func (s *Service) UpdateComputeClusterUser(ctx context.Context, cu *models.Compu return nil } -// UpdateComputeClusterUserStatus sets the lifecycle status of the mapping -// identified by id. Other fields are preserved. -func (s *Service) UpdateComputeClusterUserStatus(ctx context.Context, id string, status models.AllocationStatus) (*models.ComputeClusterUser, error) { - if id == "" { - return nil, fmt.Errorf("%w: compute cluster user id is required", ErrInvalidInput) - } - if status == "" { - return nil, fmt.Errorf("%w: status is required", ErrInvalidInput) - } - existing, err := s.clusterUsers.FindByID(ctx, id) - if err != nil { - return nil, fmt.Errorf("lookup compute cluster user: %w", err) - } - if existing == nil { - return nil, ErrNotFound - } - if err := s.inTx(ctx, func(tx *sql.Tx) error { - return s.clusterUsers.UpdateStatus(ctx, tx, id, status) - }); err != nil { - return nil, fmt.Errorf("update compute cluster user status: %w", err) - } - existing.Status = status - - s.eventBus.Publish(events.ComputeClusterUserUpdateEvent, existing) - return existing, nil -} - // DeleteComputeClusterUser removes a compute-cluster user mapping by ID. func (s *Service) DeleteComputeClusterUser(ctx context.Context, id string) error { if id == "" {
