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
86d85317
Commit
86d85317
authored
Nov 07, 2017
by
Alessio Caiazza
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove Clusters::Applications::FinalizeInstallationService
parent
a46d3241
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
36 additions
and
54 deletions
+36
-54
app/services/clusters/applications/check_installation_progress_service.rb
...sters/applications/check_installation_progress_service.rb
+23
-7
app/services/clusters/applications/finalize_installation_service.rb
...es/clusters/applications/finalize_installation_service.rb
+0
-11
spec/services/clusters/applications/check_installation_progress_service_spec.rb
.../applications/check_installation_progress_service_spec.rb
+13
-4
spec/services/clusters/applications/finalize_installation_service_spec.rb
...usters/applications/finalize_installation_service_spec.rb
+0
-32
No files found.
app/services/clusters/applications/check_installation_progress_service.rb
View file @
86d85317
...
...
@@ -6,7 +6,7 @@ module Clusters
case
installation_phase
when
Gitlab
::
Kubernetes
::
Pod
::
SUCCEEDED
finalize_installation
on_success
when
Gitlab
::
Kubernetes
::
Pod
::
FAILED
on_failed
else
...
...
@@ -18,23 +18,39 @@ module Clusters
private
def
on_success
app
.
make_installed!
ensure
remove_installation_pod
end
def
on_failed
app
.
make_errored!
(
installation_errors
||
'Installation silently failed'
)
finalize_installation
ensure
remove_installation_pod
end
def
check_timeout
if
Time
.
now
.
utc
-
app
.
updated_at
.
to_time
.
utc
>
ClusterWaitForAppInstallationWorker
::
TIMEOUT
app
.
make_errored!
(
'Installation timeouted'
)
finalize_installation
if
timeouted?
begin
app
.
make_errored!
(
'Installation timeouted'
)
ensure
remove_installation_pod
end
else
ClusterWaitForAppInstallationWorker
.
perform_in
(
ClusterWaitForAppInstallationWorker
::
INTERVAL
,
app
.
name
,
app
.
id
)
end
end
def
finalize_installation
FinalizeInstallationService
.
new
(
app
).
execute
def
timeouted?
Time
.
now
.
utc
-
app
.
updated_at
.
to_time
.
utc
>
ClusterWaitForAppInstallationWorker
::
TIMEOUT
end
def
remove_installation_pod
helm_api
.
delete_installation_pod!
(
app
)
rescue
# no-op
end
def
installation_phase
...
...
app/services/clusters/applications/finalize_installation_service.rb
deleted
100644 → 0
View file @
a46d3241
module
Clusters
module
Applications
class
FinalizeInstallationService
<
BaseHelmService
def
execute
helm_api
.
delete_installation_pod!
(
app
)
app
.
make_installed!
if
app
.
installing?
end
end
end
end
spec/services/clusters/applications/check_installation_progress_service_spec.rb
View file @
86d85317
...
...
@@ -9,8 +9,8 @@ describe Clusters::Applications::CheckInstallationProgressService do
let
(
:errors
)
{
nil
}
shared_examples
'a terminated installation'
do
it
'
finalize the installation
'
do
expect
(
service
).
to
receive
(
:
finalize_installation
).
once
it
'
removes the installation POD
'
do
expect
(
service
).
to
receive
(
:
remove_installation_pod
).
once
service
.
execute
end
...
...
@@ -23,7 +23,7 @@ describe Clusters::Applications::CheckInstallationProgressService do
context
'when not timeouted'
do
it
'reschedule a new check'
do
expect
(
ClusterWaitForAppInstallationWorker
).
to
receive
(
:perform_in
).
once
expect
(
service
).
not_to
receive
(
:
finalize_installation
)
expect
(
service
).
not_to
receive
(
:
remove_installation_pod
)
service
.
execute
...
...
@@ -53,7 +53,7 @@ describe Clusters::Applications::CheckInstallationProgressService do
expect
(
service
).
to
receive
(
:installation_phase
).
once
.
and_return
(
phase
)
allow
(
service
).
to
receive
(
:installation_errors
).
and_return
(
errors
)
allow
(
service
).
to
receive
(
:
finalize_installation
).
and_return
(
nil
)
allow
(
service
).
to
receive
(
:
remove_installation_pod
).
and_return
(
nil
)
end
describe
'#execute'
do
...
...
@@ -61,6 +61,15 @@ describe Clusters::Applications::CheckInstallationProgressService do
let
(
:phase
)
{
Gitlab
::
Kubernetes
::
Pod
::
SUCCEEDED
}
it_behaves_like
'a terminated installation'
it
'make the application installed'
do
expect
(
ClusterWaitForAppInstallationWorker
).
not_to
receive
(
:perform_in
)
service
.
execute
expect
(
application
).
to
be_installed
expect
(
application
.
status_reason
).
to
be_nil
end
end
context
'when installation POD failed'
do
...
...
spec/services/clusters/applications/finalize_installation_service_spec.rb
deleted
100644 → 0
View file @
a46d3241
require
'spec_helper'
describe
Clusters
::
Applications
::
FinalizeInstallationService
do
describe
'#execute'
do
let
(
:application
)
{
create
(
:applications_helm
,
:installing
)
}
let
(
:service
)
{
described_class
.
new
(
application
)
}
before
do
expect_any_instance_of
(
Gitlab
::
Kubernetes
::
Helm
).
to
receive
(
:delete_installation_pod!
).
with
(
application
)
end
context
'when installation POD succeeded'
do
it
'make the application installed'
do
service
.
execute
expect
(
application
).
to
be_installed
expect
(
application
.
status_reason
).
to
be_nil
end
end
context
'when installation POD failed'
do
let
(
:application
)
{
create
(
:applications_helm
,
:errored
)
}
it
'make the application errored'
do
service
.
execute
expect
(
application
).
to
be_errored
expect
(
application
.
status_reason
).
not_to
be_nil
end
end
end
end
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