Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
feudal
feudalBackend
Commits
91feff66
Commit
91feff66
authored
Sep 25, 2020
by
lukas.burgey
Browse files
Implement the deletion of deployments which are in conflict with the deployment mode
parent
c1b50096
Pipeline
#110791
passed with stage
in 1 minute and 34 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
feudal/backend/views/rest.py
View file @
91feff66
...
...
@@ -10,6 +10,7 @@ from rest_framework.permissions import AllowAny
from
feudal.backend.views.renderers
import
PlainTextRenderer
from
feudal.backend.models
import
Service
from
feudal.backend.models.users
import
UserPreferences
from
feudal.backend.models.serializers
import
(
UserStateSerializer
,
ServiceSerializer
,
SSHPublicKeySerializer
,
DeploymentSerializer
,
DeploymentStateSerializer
,
...
...
@@ -94,10 +95,22 @@ class UserPreferencesView(generics.RetrieveUpdateAPIView):
def
perform_update
(
self
,
serializer
):
serializer
.
save
()
preferences
=
serializer
.
save
()
LOGGER
.
debug
(
self
.
request
.
user
.
msg
(
'Updated preferences'
))
if
preferences
.
deployment_mode
==
UserPreferences
.
DEPLOYMENT_MODE_SERVICES_ONLY
:
qs
=
self
.
request
.
user
.
deployments
.
instance_of
(
VODeployment
)
if
qs
.
exists
():
LOGGER
.
debug
(
self
.
request
.
user
.
msg
(
'Removing my VODeployments because of a new preference'
))
qs
.
delete
()
elif
preferences
.
deployment_mode
==
UserPreferences
.
DEPLOYMENT_MODE_VOS_ONLY
:
qs
=
self
.
request
.
user
.
deployments
.
instance_of
(
ServiceDeployment
)
if
qs
.
exists
():
LOGGER
.
debug
(
self
.
request
.
user
.
msg
(
'Removing my ServiceDeployments because of a new preference'
))
qs
.
delete
()
class
ServiceListView
(
generics
.
ListAPIView
):
permission_classes
=
PERMISSION_CLASSES
...
...
feudal/backend/views/tests/rest.py
View file @
91feff66
...
...
@@ -7,7 +7,7 @@ from django.urls import reverse
from
feudal.backend.models
import
Service
from
feudal.backend.models.users
import
SSHPublicKey
,
User
,
UserPreferences
from
feudal.backend.models.deployments
import
(
VODeployment
,
ServiceDeployment
,
DEPLOYED
,
NOT_DEPLOYED
,
QUESTIONNAIRE
Deployment
,
VODeployment
,
ServiceDeployment
,
DEPLOYED
,
NOT_DEPLOYED
,
QUESTIONNAIRE
)
LOGGER
=
logging
.
getLogger
(
__name__
)
...
...
@@ -41,7 +41,11 @@ def test_user_prefs_fetch(user_test_client, user):
assert
response
.
status_code
==
200
assert
response
.
json
()[
'deployment_mode'
]
==
user
.
preferences
.
deployment_mode
def
test_user_prefs_patch
(
user_test_client
):
def
test_user_pref_ddeployment_mode_services_only
(
user_test_client
,
deployed_vo_deployment
):
# default mode is 'both'
dep
,
_
=
deployed_vo_deployment
()
dep_pk
=
dep
.
pk
response
=
user_test_client
.
patch
(
reverse
(
'user-prefs'
),
{
...
...
@@ -51,6 +55,26 @@ def test_user_prefs_patch(user_test_client):
)
assert
response
.
status_code
==
200
# the deployment should've been deleted when we switched into a mode which prohibits its existence
assert
not
Deployment
.
objects
.
filter
(
pk
=
dep_pk
).
exists
()
def
test_user_pref_deployment_mode_vos_only
(
user_test_client
,
deployed_service_deployment
):
# default mode is 'both'
dep
,
_
=
deployed_service_deployment
()
dep_pk
=
dep
.
pk
response
=
user_test_client
.
patch
(
reverse
(
'user-prefs'
),
{
'deployment_mode'
:
UserPreferences
.
DEPLOYMENT_MODE_VOS_ONLY
,
},
format
=
'json'
,
)
assert
response
.
status_code
==
200
# the deployment should've been deleted when we switched into a mode which prohibits its existence
assert
not
Deployment
.
objects
.
filter
(
pk
=
dep_pk
).
exists
()
## SERVICES
def
test_service_list
(
user_test_client
,
user
):
...
...
Write
Preview
Supports
Markdown
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