Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
22e2cad9
Commit
22e2cad9
authored
6 years ago
by
Pawel Chojnacki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use deployment platform to find cluster with prometheus application
parent
57de968a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
12 additions
and
53 deletions
+12
-53
app/models/environment.rb
app/models/environment.rb
+3
-5
spec/models/environment_spec.rb
spec/models/environment_spec.rb
+9
-48
No files found.
app/models/environment.rb
View file @
22e2cad9
...
...
@@ -233,12 +233,10 @@ class Environment < ActiveRecord::Base
end
def
cluster_prometheus_adapter
# sort results by descending order based on environment_scope being longer
# thus more closely matching environment slug
clusters
=
project
.
clusters
.
enabled
.
for_environment
(
self
).
sort_by
{
|
c
|
c
.
environment_scope
&
.
length
}.
reverse!
cluster
=
project
.
deployment_platform
&
.
cluster
return
unless
cluster
&
.
application_prometheus
&
.
installed?
cluster
=
clusters
&
.
detect
{
|
cluster
|
cluster
.
application_prometheus
&
.
installed?
}
cluster
&
.
application_prometheus
cluster
.
application_prometheus
end
private
...
...
This diff is collapsed.
Click to expand it.
spec/models/environment_spec.rb
View file @
22e2cad9
require
'spec_helper'
describe
Environment
do
s
et
(
:project
)
{
create
(
:project
)
}
l
et
(
:project
)
{
create
(
:project
)
}
subject
(
:environment
)
{
create
(
:environment
,
project:
project
)
}
it
{
is_expected
.
to
belong_to
(
:project
)
}
...
...
@@ -623,10 +623,7 @@ describe Environment do
end
describe
'#prometheus_adapter'
do
let!
(
:cluster_for_all
)
{
create
(
:cluster
,
environment_scope:
'*'
,
projects:
[
project
])
}
let!
(
:cluster_for_dev
)
{
create
(
:cluster
,
environment_scope:
'dev'
,
projects:
[
project
])
}
let!
(
:prometheus_for_dev
)
{
create
(
:clusters_applications_prometheus
,
:installed
,
cluster:
cluster_for_dev
)
}
let
(
:cluster
)
{
create
(
:cluster
,
:provided_by_user
,
environment_scope:
'*'
,
projects:
[
project
])
}
context
'prometheus service can execute queries'
do
let
(
:prometheus_service
)
{
double
(
:prometheus_service
,
can_query?:
true
)
}
...
...
@@ -643,53 +640,17 @@ describe Environment do
context
"prometheus service can't execute queries"
do
let
(
:prometheus_service
)
{
double
(
:prometheus_service
,
can_query?:
false
)
}
context
'with cluster for all environments with prometheus installed'
do
let!
(
:prometheus_for_all
)
{
create
(
:clusters_applications_prometheus
,
:installed
,
cluster:
cluster_for_all
)
}
context
'without environment supplied'
do
it
'returns application handling all environments'
do
expect
(
environment
.
prometheus_adapter
).
to
eq
(
prometheus_for_all
)
end
end
context
'with dev environment supplied'
do
let!
(
:environment
)
{
create
(
:environment
,
project:
project
,
name:
'dev'
)
}
context
'with cluster with prometheus installed'
do
let!
(
:prometheus
)
{
create
(
:clusters_applications_prometheus
,
:installed
,
cluster:
cluster
)
}
it
'returns dev cluster prometheus application'
do
expect
(
environment
.
prometheus_adapter
).
to
eq
(
prometheus_for_dev
)
end
end
context
'with prod environment supplied'
do
let!
(
:environment
)
{
create
(
:environment
,
project:
project
,
name:
'prod'
)
}
it
'returns application handling all environments'
do
expect
(
environment
.
prometheus_adapter
).
to
eq
(
prometheus_for_all
)
end
it
'returns application handling all environments'
do
expect
(
environment
.
prometheus_adapter
).
to
eq
(
prometheus
)
end
end
context
'with cluster for all environments without prometheus installed'
do
context
'without environment supplied'
do
it
'returns nil'
do
expect
(
environment
.
prometheus_adapter
).
to
be_nil
end
end
context
'with dev environment supplied'
do
let!
(
:environment
)
{
create
(
:environment
,
project:
project
,
name:
'dev'
)
}
it
'returns dev cluster prometheus application'
do
expect
(
environment
.
prometheus_adapter
).
to
eq
(
prometheus_for_dev
)
end
end
context
'with prod environment supplied'
do
let!
(
:environment
)
{
create
(
:environment
,
project:
project
,
name:
'prod'
)
}
it
'returns nil'
do
expect
(
environment
.
prometheus_adapter
).
to
be_nil
end
context
'with cluster without prometheus installed'
do
it
'returns nil'
do
expect
(
environment
.
prometheus_adapter
).
to
be_nil
end
end
end
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment