uffizzi_core 2.2.8 → 2.2.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aa1e129072e6e9fec7ec5a98b2a36bbfd1c380ecec75ff6b95eb6deabaaece31
4
- data.tar.gz: a537b20a32116e3434fb7490dc400b29967853ba92be2e2703e9af1d78859a61
3
+ metadata.gz: 9419a80d61cb906e699b4096f7ed6f10fc01f32a6718a977c38387d04af04cb9
4
+ data.tar.gz: 279eda26ef9283fc173d93f5b7fc166780ffaa51e2dd83b0be7fbea1ba7862cc
5
5
  SHA512:
6
- metadata.gz: d80fd105f4ce95f38e11121c9e9bb6e8f88f349cff8f7331148cbbbe294f87f4e6ae0c9d56709eeadac738c0c5cf37246ffc07a8a7d4a8806ca704466d1d7afb
7
- data.tar.gz: e7cdcda1ac2c4167bf64aa86694c0db87f574b099d3995a68ad774d0f6bc5c04e3a96a8d1f91e83764afca03539f69484c6393fa3e81f44aa5e67a2352be77f0
6
+ metadata.gz: 646d0199efbd24eddd77def2b0f8a629e16f81b3f6f871a9961b2cde46f37b5609fbc6662eec3f5e74e74a879ddba1cf504776a767c738ab8127eb28a555e9a5
7
+ data.tar.gz: 98c028198257d7bd268b4c6bfaa7a6663be35530f6ed1218d2108e7d6602a43122538a6c54cec92d5ff0d7c247d2e6f1a50a32885600e43a13554a15d514235a
@@ -73,6 +73,12 @@ module UffizziCore::DependencyInjectionConcern
73
73
  module_class(:controller_settings)
74
74
  end
75
75
 
76
+ def ci_module
77
+ return unless module_exists?(:ci_module)
78
+
79
+ module_class(:ci_module)
80
+ end
81
+
76
82
  private
77
83
 
78
84
  def module_exists?(module_name)
@@ -9,8 +9,9 @@ class UffizziCore::Api::Cli::V1::Projects::ClustersController < UffizziCore::Api
9
9
 
10
10
  def index
11
11
  clusters = resource_project.clusters.enabled
12
+ return respond_with clusters if request_by_admin? || valid_request_from_ci_workflow?
12
13
 
13
- respond_with clusters
14
+ respond_with clusters.deployed_by_user(current_user)
14
15
  end
15
16
 
16
17
  def create
@@ -37,7 +38,20 @@ class UffizziCore::Api::Cli::V1::Projects::ClustersController < UffizziCore::Api
37
38
  private
38
39
 
39
40
  def resource_cluster
40
- @resource_cluster ||= resource_project.clusters.enabled.find_by!(name: params[:name])
41
+ active_project_clusters = resource_project.clusters.enabled
42
+ @resource_cluster ||= if request_by_admin? || valid_request_from_ci_workflow?
43
+ active_project_clusters.find_by!(name: params[:name])
44
+ else
45
+ active_project_clusters.deployed_by_user(current_user).find_by!(name: params[:name])
46
+ end
47
+ end
48
+
49
+ def request_by_admin?
50
+ current_user.admin_access_to_project?(resource_project)
51
+ end
52
+
53
+ def valid_request_from_ci_workflow?
54
+ ci_module.valid_request_from_ci_workflow?(params)
41
55
  end
42
56
 
43
57
  def cluster_params
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class UffizziCore::Cluster::DeleteJob < UffizziCore::ApplicationJob
4
- sidekiq_options queue: :deployments, retry: 5
4
+ sidekiq_options queue: :clusters,
5
+ lock: :until_executed,
6
+ retry: Settings.default_job_retry_count
5
7
 
6
8
  def perform(id)
7
9
  Rails.logger.info("DEPLOYMENT_PROCESS cluster_id=#{id} DeleteJob")
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class UffizziCore::Cluster::DeployJob < UffizziCore::ApplicationJob
4
- sidekiq_options queue: :deployments, retry: 5
4
+ sidekiq_options queue: :clusters, retry: Settings.default_job_retry_count
5
5
 
6
6
  def perform(id)
7
7
  cluster = UffizziCore::Cluster.find(id)
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class UffizziCore::Cluster::ManageDeployingJob < UffizziCore::ApplicationJob
4
- sidekiq_options queue: :deployments, retry: 5
4
+ sidekiq_options queue: :clusters, retry: Settings.default_job_retry_count
5
5
 
6
6
  def perform(id, try = 1)
7
7
  cluster = UffizziCore::Cluster.find(id)
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class UffizziCore::Deployment::DeleteJob < UffizziCore::ApplicationJob
4
- sidekiq_options queue: :deployments, retry: 5
4
+ sidekiq_options queue: :disable_deployments,
5
+ lock: :until_executed,
6
+ retry: Settings.default_job_retry_count
5
7
 
6
8
  def perform(id)
7
9
  Rails.logger.info("DEPLOYMENT_PROCESS deployment_id=#{id} DeleteJob")
@@ -24,8 +24,8 @@ module UffizziCore::Concerns::Models::Project
24
24
  has_many :host_volume_files, dependent: :destroy
25
25
  has_many :clusters, dependent: :destroy
26
26
 
27
- validates :name, presence: true, uniqueness: { scope: :account, message: 'Name already exists' }
28
- validates :slug, presence: true, uniqueness: { message: 'Project slug already taken' }
27
+ validates :name, presence: true, uniqueness: { scope: :account }
28
+ validates :slug, presence: true, uniqueness: true
29
29
 
30
30
  aasm(:state) do
31
31
  state :active, initial: true
@@ -53,7 +53,7 @@ module UffizziCore::Concerns::Models::User
53
53
  end
54
54
 
55
55
  def admin_access_to_project?(project)
56
- projects.by_ids(project).by_accounts(memberships.by_role_admin.select(:account_id)).exists?
56
+ project.user_projects.where(user_id: id, role: UffizziCore::UserProject.role.admin).exists?
57
57
  end
58
58
  end
59
59
  end
@@ -6,5 +6,6 @@ module UffizziCore::ClusterRepo
6
6
  included do
7
7
  scope :deployed, -> { where(state: UffizziCore::Cluster::STATE_DEPLOYED) }
8
8
  scope :enabled, -> { where.not(state: UffizziCore::Cluster::STATE_DISABLED) }
9
+ scope :deployed_by_user, ->(user) { where(deployed_by: user) }
9
10
  end
10
11
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UffizziCore::CiService
4
+ class << self
5
+ def valid_request_from_ci_workflow?(_params)
6
+ false
7
+ end
8
+ end
9
+ end
@@ -6,6 +6,10 @@ en:
6
6
  attributes:
7
7
  secret:
8
8
  not_found: There is no secret with name %{name}
9
+ name:
10
+ taken: "A project with the name '%{value}' already exists."
11
+ slug:
12
+ taken: "A project slug '%{value}' already taken."
9
13
  uffizzi_core/credential:
10
14
  attributes:
11
15
  registry_url:
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UffizziCore
4
- VERSION = '2.2.8'
4
+ VERSION = '2.2.10'
5
5
  end
data/lib/uffizzi_core.rb CHANGED
@@ -33,6 +33,7 @@ module UffizziCore
33
33
  deployment_memory_module: 'UffizziCore::Deployment::MemoryService',
34
34
  template_memory_module: 'UffizziCore::Template::MemoryService',
35
35
  controller_settings: 'UffizziCore::ControllerSettingsService',
36
+ ci_module: 'UffizziCore::CiService',
36
37
  }
37
38
  mattr_accessor :table_names, default: {
38
39
  accounts: :uffizzi_core_accounts,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uffizzi_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.8
4
+ version: 2.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Thurman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-07-31 00:00:00.000000000 Z
12
+ date: 2023-08-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aasm
@@ -423,6 +423,20 @@ dependencies:
423
423
  - - ">="
424
424
  - !ruby/object:Gem::Version
425
425
  version: '0'
426
+ - !ruby/object:Gem::Dependency
427
+ name: sidekiq-unique-jobs
428
+ requirement: !ruby/object:Gem::Requirement
429
+ requirements:
430
+ - - ">="
431
+ - !ruby/object:Gem::Version
432
+ version: '0'
433
+ type: :runtime
434
+ prerelease: false
435
+ version_requirements: !ruby/object:Gem::Requirement
436
+ requirements:
437
+ - - ">="
438
+ - !ruby/object:Gem::Version
439
+ version: '0'
426
440
  - !ruby/object:Gem::Dependency
427
441
  name: swagger_yard
428
442
  requirement: !ruby/object:Gem::Requirement
@@ -981,6 +995,7 @@ files:
981
995
  - app/serializers/uffizzi_core/controller/deploy_containers/host_volume_file_serializer.rb
982
996
  - app/services/uffizzi_core/account_service.rb
983
997
  - app/services/uffizzi_core/activity_item_service.rb
998
+ - app/services/uffizzi_core/ci_service.rb
984
999
  - app/services/uffizzi_core/cluster_service.rb
985
1000
  - app/services/uffizzi_core/compose_file/builders/container_builder_service.rb
986
1001
  - app/services/uffizzi_core/compose_file/builders/container_config_files_builder_service.rb