Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-09 23:05:40 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-09 23:05:40 +0300
commit3586a30ca5035c95943fd7b99809032bd0ef8505 (patch)
tree0af521d3b04633206da127d32df5168444e81fce /lib
parent9fc86114fb1d573d5b1b45986472f9beee83d50d (diff)
Add latest changes from gitlab-org/gitlab@12-6-stable-ee
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/ci/build/prerequisite/kubernetes_namespace.rb22
-rw-r--r--lib/gitlab/ci/config/entry/artifacts.rb5
-rw-r--r--lib/gitlab/kubernetes/cluster_role.rb29
-rw-r--r--lib/gitlab/kubernetes/kube_client.rb8
-rw-r--r--lib/gitlab/metrics.rb6
-rw-r--r--lib/gitlab/metrics/prometheus.rb18
-rw-r--r--lib/gitlab/plugin.rb12
7 files changed, 38 insertions, 62 deletions
diff --git a/lib/gitlab/ci/build/prerequisite/kubernetes_namespace.rb b/lib/gitlab/ci/build/prerequisite/kubernetes_namespace.rb
index 465877871ea..b64990d6a7a 100644
--- a/lib/gitlab/ci/build/prerequisite/kubernetes_namespace.rb
+++ b/lib/gitlab/ci/build/prerequisite/kubernetes_namespace.rb
@@ -8,7 +8,7 @@ module Gitlab
def unmet?
deployment_cluster.present? &&
deployment_cluster.managed? &&
- (missing_namespace? || need_knative_version_role_binding?)
+ missing_namespace?
end
def complete!
@@ -23,10 +23,6 @@ module Gitlab
kubernetes_namespace.nil? || kubernetes_namespace.service_account_token.blank?
end
- def need_knative_version_role_binding?
- !knative_serving_namespace.nil? && knative_version_role_binding.nil?
- end
-
def deployment_cluster
build.deployment&.cluster
end
@@ -35,22 +31,6 @@ module Gitlab
build.deployment.environment
end
- def knative_serving_namespace
- strong_memoize(:knative_serving_namespace) do
- Clusters::KnativeServingNamespaceFinder.new(
- deployment_cluster
- ).execute
- end
- end
-
- def knative_version_role_binding
- strong_memoize(:knative_version_role_binding) do
- Clusters::KnativeVersionRoleBindingFinder.new(
- deployment_cluster
- ).execute
- end
- end
-
def kubernetes_namespace
strong_memoize(:kubernetes_namespace) do
Clusters::KubernetesNamespaceFinder.new(
diff --git a/lib/gitlab/ci/config/entry/artifacts.rb b/lib/gitlab/ci/config/entry/artifacts.rb
index 9d8d7675234..aebc1675bec 100644
--- a/lib/gitlab/ci/config/entry/artifacts.rb
+++ b/lib/gitlab/ci/config/entry/artifacts.rb
@@ -54,6 +54,11 @@ module Gitlab
def expose_as_present?
return false unless Feature.enabled?(:ci_expose_arbitrary_artifacts_in_mr, default_enabled: true)
+ # This duplicates the `validates :config, type: Hash` above,
+ # but Validatable currently doesn't halt the validation
+ # chain if it encounters a validation error.
+ return false unless @config.is_a?(Hash)
+
!@config[:expose_as].nil?
end
end
diff --git a/lib/gitlab/kubernetes/cluster_role.rb b/lib/gitlab/kubernetes/cluster_role.rb
deleted file mode 100644
index 4d40736a0b5..00000000000
--- a/lib/gitlab/kubernetes/cluster_role.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-# frozen_string_literal: true
-
-module Gitlab
- module Kubernetes
- class ClusterRole
- attr_reader :name, :rules
-
- def initialize(name:, rules:)
- @name = name
- @rules = rules
- end
-
- def generate
- ::Kubeclient::Resource.new(
- metadata: metadata,
- rules: rules
- )
- end
-
- private
-
- def metadata
- {
- name: name
- }
- end
- end
- end
-end
diff --git a/lib/gitlab/kubernetes/kube_client.rb b/lib/gitlab/kubernetes/kube_client.rb
index b23ca095414..66c28a9b702 100644
--- a/lib/gitlab/kubernetes/kube_client.rb
+++ b/lib/gitlab/kubernetes/kube_client.rb
@@ -56,7 +56,6 @@ module Gitlab
# group client
delegate :create_cluster_role_binding,
:get_cluster_role_binding,
- :get_cluster_role_bindings,
:update_cluster_role_binding,
to: :rbac_client
@@ -69,13 +68,6 @@ module Gitlab
# RBAC methods delegates to the apis/rbac.authorization.k8s.io api
# group client
- delegate :create_cluster_role,
- :get_cluster_role,
- :update_cluster_role,
- to: :rbac_client
-
- # RBAC methods delegates to the apis/rbac.authorization.k8s.io api
- # group client
delegate :create_role_binding,
:get_role_binding,
:update_role_binding,
diff --git a/lib/gitlab/metrics.rb b/lib/gitlab/metrics.rb
index 61ed20ad623..d759ae24051 100644
--- a/lib/gitlab/metrics.rb
+++ b/lib/gitlab/metrics.rb
@@ -5,8 +5,14 @@ module Gitlab
include Gitlab::Metrics::InfluxDb
include Gitlab::Metrics::Prometheus
+ @error = false
+
def self.enabled?
influx_metrics_enabled? || prometheus_metrics_enabled?
end
+
+ def self.error?
+ @error
+ end
end
end
diff --git a/lib/gitlab/metrics/prometheus.rb b/lib/gitlab/metrics/prometheus.rb
index cab1edab48f..757762499a9 100644
--- a/lib/gitlab/metrics/prometheus.rb
+++ b/lib/gitlab/metrics/prometheus.rb
@@ -61,6 +61,22 @@ module Gitlab
safe_provide_metric(:histogram, name, docstring, base_labels, buckets)
end
+ def error_detected!
+ set_error!(true)
+ end
+
+ def clear_errors!
+ set_error!(false)
+ end
+
+ def set_error!(status)
+ clear_memoization(:prometheus_metrics_enabled)
+
+ PROVIDER_MUTEX.synchronize do
+ @error = status
+ end
+ end
+
private
def safe_provide_metric(method, name, *args)
@@ -81,7 +97,7 @@ module Gitlab
end
def prometheus_metrics_enabled_unmemoized
- metrics_folder_present? && Gitlab::CurrentSettings.prometheus_metrics_enabled || false
+ !error? && metrics_folder_present? && Gitlab::CurrentSettings.prometheus_metrics_enabled || false
end
end
end
diff --git a/lib/gitlab/plugin.rb b/lib/gitlab/plugin.rb
index 23353f36025..b6700f4733b 100644
--- a/lib/gitlab/plugin.rb
+++ b/lib/gitlab/plugin.rb
@@ -2,10 +2,16 @@
module Gitlab
module Plugin
+ def self.any?
+ plugin_glob.any? { |entry| File.file?(entry) }
+ end
+
def self.files
- Dir.glob(Rails.root.join('plugins/*')).select do |entry|
- File.file?(entry)
- end
+ plugin_glob.select { |entry| File.file?(entry) }
+ end
+
+ def self.plugin_glob
+ Dir.glob(Rails.root.join('plugins/*'))
end
def self.execute_all_async(data)