Adds tests for some config helpers

This commit is contained in:
Sam Chow 2018-08-29 14:29:15 -04:00
parent 9695c98e5f
commit 465e342aba
3 changed files with 151 additions and 3 deletions

View file

@ -1,3 +1,5 @@
import logging
from flask import request, make_response
from config_app.config_util.config import get_config_as_kube_secret
@ -7,6 +9,7 @@ from config_app.c_app import app, config_provider
from config_app.config_endpoints.api import resource, ApiResource, nickname, kubernetes_only, validate_json_request
from config_app.config_util.k8saccessor import KubernetesAccessorSingleton, K8sApiException
logger = logging.getLogger(__name__)
@resource('/v1/kubernetes/deployments/')
class SuperUserKubernetesDeployment(ApiResource):
@ -82,7 +85,7 @@ class QEDeploymentRollback(ApiResource):
deployment_names = request.get_json()['deploymentNames']
# To roll back a deployment, we must do 2 things:
# 1. Roll back the config secret to its old value (discarding changes we made in this session
# 1. Roll back the config secret to its old value (discarding changes we made in this session)
# 2. Trigger a rollback to the previous revision, so that the pods will be restarted with
# the old config
old_secret = get_config_as_kube_secret(config_provider.get_old_config_dir())
@ -93,7 +96,8 @@ class QEDeploymentRollback(ApiResource):
for name in deployment_names:
kube_accessor.rollback_deployment(name)
except K8sApiException as e:
return make_response(e.message, 500)
logger.exception('Failed to rollback deployment.')
return make_response(e.message, 503)
return make_response('Ok', 204)
@ -109,7 +113,8 @@ class SuperUserKubernetesConfiguration(ApiResource):
new_secret = get_config_as_kube_secret(config_provider.get_config_dir_path())
KubernetesAccessorSingleton.get_instance().replace_qe_secret(new_secret)
except K8sApiException as e:
return make_response(e.message, 500)
logger.exception('Failed to deploy qe config secret to kubernetes.')
return make_response(e.message, 503)
return make_response('Ok', 201)