From 677d6b3fc61950af3f9f1f10aa8e5b6148c76674 Mon Sep 17 00:00:00 2001 From: GitLab Duo Date: Wed, 17 Sep 2025 14:28:11 +0000 Subject: [PATCH] Duo Workflow: Resolve issue #538166 --- ...aces_desired_config_generator_version_column.rb | 14 ++++++++++++++ .../types/remote_development/workspace_type.rb | 4 +--- ee/app/models/remote_development/workspace.rb | 5 ++--- .../desired_config_generator_version.rb | 13 +++---------- .../remote_development/workspace_type_spec.rb | 2 +- .../backfill_workspace_agentk_states_spec.rb | 6 ++---- .../input/actual_state_calculator_spec.rb | 3 +-- .../reconcile/main_integration_spec.rb | 3 +-- .../models/remote_development/workspace_spec.rb | 8 +------- ...kfill_user_provided_workspace_variables_spec.rb | 2 +- 10 files changed, 27 insertions(+), 33 deletions(-) create mode 100644 db/post_migrate/20250916130000_drop_workspaces_desired_config_generator_version_column.rb diff --git a/db/post_migrate/20250916130000_drop_workspaces_desired_config_generator_version_column.rb b/db/post_migrate/20250916130000_drop_workspaces_desired_config_generator_version_column.rb new file mode 100644 index 00000000000000..6bd73015e283df --- /dev/null +++ b/db/post_migrate/20250916130000_drop_workspaces_desired_config_generator_version_column.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class DropWorkspacesDesiredConfigGeneratorVersionColumn < Gitlab::Database::Migration[2.2] + milestone '18.5' + + def up + remove_column :workspaces, :desired_config_generator_version + end + + def down + add_column :workspaces, :desired_config_generator_version, :integer + add_check_constraint :workspaces, 'desired_config_generator_version IS NOT NULL', 'check_35e31ca320' + end +end \ No newline at end of file diff --git a/ee/app/graphql/types/remote_development/workspace_type.rb b/ee/app/graphql/types/remote_development/workspace_type.rb index 9e617c20503a58..7c22c988e8613b 100644 --- a/ee/app/graphql/types/remote_development/workspace_type.rb +++ b/ee/app/graphql/types/remote_development/workspace_type.rb @@ -87,9 +87,7 @@ class WorkspaceType < ::Types::BaseObject field :deployment_resource_version, GraphQL::Types::Int, null: true, description: 'Version of the deployment resource for the workspace.' - field :desired_config_generator_version, GraphQL::Types::Int, # rubocop:disable GraphQL/ExtractType -- We don't want to extract this to a type, its purpose is different than other 'desired' fields - experiment: { milestone: '17.6' }, - null: false, description: 'Version of the desired config generator for the workspace.' + field :workspaces_agent_config_version, GraphQL::Types::Int, experiment: { milestone: '17.6' }, diff --git a/ee/app/models/remote_development/workspace.rb b/ee/app/models/remote_development/workspace.rb index ae3b77e0763b1b..96a4b064dba158 100644 --- a/ee/app/models/remote_development/workspace.rb +++ b/ee/app/models/remote_development/workspace.rb @@ -15,8 +15,7 @@ class Workspace < ApplicationRecord belongs_to :agent, class_name: "Clusters::Agent", foreign_key: "cluster_agent_id", inverse_of: :workspaces belongs_to :personal_access_token, inverse_of: :workspace - attribute :desired_config_generator_version, - default: ::RemoteDevelopment::WorkspaceOperations::DesiredConfigGeneratorVersion::LATEST_VERSION + has_many :workspace_variables, class_name: "RemoteDevelopment::WorkspaceVariable", inverse_of: :workspace # Currently we only support :environment type for user provided variables @@ -29,7 +28,7 @@ class Workspace < ApplicationRecord validates :user, presence: true validates :agent, presence: true validates :personal_access_token, presence: true - validates :desired_config_generator_version, presence: true + validates :workspaces_agent_config_version, presence: true, if: -> do agent&.unversioned_latest_workspaces_agent_config end diff --git a/ee/lib/remote_development/workspace_operations/desired_config_generator_version.rb b/ee/lib/remote_development/workspace_operations/desired_config_generator_version.rb index 1c88b0040f8bf6..931ef6a856d981 100644 --- a/ee/lib/remote_development/workspace_operations/desired_config_generator_version.rb +++ b/ee/lib/remote_development/workspace_operations/desired_config_generator_version.rb @@ -1,10 +1,3 @@ -# frozen_string_literal: true - -module RemoteDevelopment - module WorkspaceOperations - module DesiredConfigGeneratorVersion - VERSION_3 = 3 - LATEST_VERSION = VERSION_3 - end - end -end +# This file has been removed as the desired_config_generator_version column +# has been dropped from the workspaces table. +# See: https://gitlab.com/gitlab-org/gitlab/-/issues/538166 diff --git a/ee/spec/graphql/types/remote_development/workspace_type_spec.rb b/ee/spec/graphql/types/remote_development/workspace_type_spec.rb index 25a6d95bf5b52e..bc30285423dba8 100644 --- a/ee/spec/graphql/types/remote_development/workspace_type_spec.rb +++ b/ee/spec/graphql/types/remote_development/workspace_type_spec.rb @@ -10,7 +10,7 @@ cluster_agent created_at deployment_resource_version - desired_config_generator_version + desired_state desired_state_updated_at devfile diff --git a/ee/spec/lib/ee/gitlab/background_migration/backfill_workspace_agentk_states_spec.rb b/ee/spec/lib/ee/gitlab/background_migration/backfill_workspace_agentk_states_spec.rb index 6267522e73fd87..3706c96871a474 100644 --- a/ee/spec/lib/ee/gitlab/background_migration/backfill_workspace_agentk_states_spec.rb +++ b/ee/spec/lib/ee/gitlab/background_migration/backfill_workspace_agentk_states_spec.rb @@ -27,8 +27,7 @@ url: "workspace-url", deployment_resource_version: "v1", personal_access_token_id: personal_access_token.id, - workspaces_agent_config_version: agent_config_version.id, - desired_config_generator_version: 3 + workspaces_agent_config_version: agent_config_version.id ) end @@ -51,8 +50,7 @@ url: "workspace-url", deployment_resource_version: "v1", personal_access_token_id: personal_access_token.id, - workspaces_agent_config_version: agent_config_version.id, - desired_config_generator_version: 3 + workspaces_agent_config_version: agent_config_version.id ) end diff --git a/ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb b/ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb index 8f30d8b71cb1ad..90d8ce67f2a024 100644 --- a/ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb +++ b/ee/spec/lib/remote_development/workspace_operations/reconcile/input/actual_state_calculator_spec.rb @@ -49,8 +49,7 @@ "RemoteDevelopment::Workspace", # rubocop:disable RSpec/VerifiedDoubleReference -- We're using the quoted version so we can use fast_spec_helper id: 1, name: 'name', namespace: 'namespace', agent: agent, actual_state: previous_actual_state, - desired_config_generator_version: - ::RemoteDevelopment::WorkspaceOperations::DesiredConfigGeneratorVersion::LATEST_VERSION + ) end diff --git a/ee/spec/lib/remote_development/workspace_operations/reconcile/main_integration_spec.rb b/ee/spec/lib/remote_development/workspace_operations/reconcile/main_integration_spec.rb index efadbca16eaa7f..eca6d0deb8d436 100644 --- a/ee/spec/lib/remote_development/workspace_operations/reconcile/main_integration_spec.rb +++ b/ee/spec/lib/remote_development/workspace_operations/reconcile/main_integration_spec.rb @@ -714,8 +714,7 @@ instance_double( "RemoteDevelopment::Workspace", # rubocop:disable RSpec/VerifiedDoubleReference -- We're using the quoted version so we can use fast_spec_helper id: 1, name: 'x', namespace: 'x', agent: agent, - desired_config_generator_version: - ::RemoteDevelopment::WorkspaceOperations::DesiredConfigGeneratorVersion::LATEST_VERSION + ) end diff --git a/ee/spec/models/remote_development/workspace_spec.rb b/ee/spec/models/remote_development/workspace_spec.rb index d4a545e0ff9d5b..8391da61c7de67 100644 --- a/ee/spec/models/remote_development/workspace_spec.rb +++ b/ee/spec/models/remote_development/workspace_spec.rb @@ -43,13 +43,7 @@ body: "", headers: {}) end - describe "default values" do - it "has correct default values" do - expect(workspace.desired_config_generator_version).to eq( - RemoteDevelopment::WorkspaceOperations::DesiredConfigGeneratorVersion::LATEST_VERSION - ) - end - end + describe "associations" do context "for has_many" do diff --git a/spec/migrations/20250114194610_backfill_user_provided_workspace_variables_spec.rb b/spec/migrations/20250114194610_backfill_user_provided_workspace_variables_spec.rb index eaa67992b0ddcb..0d091baf60fe7f 100644 --- a/spec/migrations/20250114194610_backfill_user_provided_workspace_variables_spec.rb +++ b/spec/migrations/20250114194610_backfill_user_provided_workspace_variables_spec.rb @@ -63,7 +63,7 @@ personal_access_token_id: personal_access_token.id, max_hours_before_termination: 5760, workspaces_agent_config_version: agent_config_version.id, - desired_config_generator_version: 3 + ) end -- GitLab