Merge "Refactor tiller commands to handle methods"
This commit is contained in:
commit
24867f34db
@ -69,29 +69,13 @@ class Apply(api.BaseResource):
|
||||
"or application/json")
|
||||
try:
|
||||
with self.get_tiller(req, resp) as tiller:
|
||||
|
||||
armada = Armada(
|
||||
documents,
|
||||
disable_update_pre=req.get_param_as_bool(
|
||||
'disable_update_pre'),
|
||||
disable_update_post=req.get_param_as_bool(
|
||||
'disable_update_post'),
|
||||
enable_chart_cleanup=req.get_param_as_bool(
|
||||
'enable_chart_cleanup'),
|
||||
dry_run=req.get_param_as_bool('dry_run'),
|
||||
force_wait=req.get_param_as_bool('wait'),
|
||||
timeout=req.get_param_as_int('timeout'),
|
||||
tiller=tiller,
|
||||
target_manifest=req.get_param('target_manifest'))
|
||||
|
||||
msg = armada.sync()
|
||||
|
||||
msg = self.handle(req, documents, tiller)
|
||||
resp.body = json.dumps({
|
||||
'message': msg,
|
||||
})
|
||||
|
||||
resp.content_type = 'application/json'
|
||||
resp.status = falcon.HTTP_200
|
||||
|
||||
except exceptions.ManifestException as e:
|
||||
self.return_error(resp, falcon.HTTP_400, message=str(e))
|
||||
except Exception as e:
|
||||
@ -99,3 +83,17 @@ class Apply(api.BaseResource):
|
||||
err_message = 'Failed to apply manifest: {}'.format(e)
|
||||
self.error(req.context, err_message)
|
||||
self.return_error(resp, falcon.HTTP_500, message=err_message)
|
||||
|
||||
def handle(self, req, documents, tiller):
|
||||
armada = Armada(
|
||||
documents,
|
||||
disable_update_pre=req.get_param_as_bool('disable_update_pre'),
|
||||
disable_update_post=req.get_param_as_bool('disable_update_post'),
|
||||
enable_chart_cleanup=req.get_param_as_bool('enable_chart_cleanup'),
|
||||
dry_run=req.get_param_as_bool('dry_run'),
|
||||
force_wait=req.get_param_as_bool('wait'),
|
||||
timeout=req.get_param_as_int('timeout'),
|
||||
tiller=tiller,
|
||||
target_manifest=req.get_param('target_manifest'))
|
||||
|
||||
return armada.sync()
|
||||
|
@ -30,10 +30,21 @@ class Rollback(api.BaseResource):
|
||||
@policy.enforce('armada:rollback_release')
|
||||
def on_post(self, req, resp, release):
|
||||
try:
|
||||
dry_run = req.get_param_as_bool('dry_run')
|
||||
|
||||
with self.get_tiller(req, resp) as tiller:
|
||||
msg = self.handle(req, release, tiller)
|
||||
resp.body = json.dumps({
|
||||
'message': msg,
|
||||
})
|
||||
resp.content_type = 'application/json'
|
||||
resp.status = falcon.HTTP_200
|
||||
except Exception as e:
|
||||
self.logger.exception('Caught unexpected exception')
|
||||
err_message = 'Failed to rollback release: {}'.format(e)
|
||||
self.error(req.context, err_message)
|
||||
self.return_error(resp, falcon.HTTP_500, message=err_message)
|
||||
|
||||
def handle(self, req, release, tiller):
|
||||
dry_run = req.get_param_as_bool('dry_run')
|
||||
tiller.rollback_release(
|
||||
release,
|
||||
req.get_param_as_int('version') or 0,
|
||||
@ -42,15 +53,5 @@ class Rollback(api.BaseResource):
|
||||
force=req.get_param_as_bool('force'),
|
||||
recreate_pods=req.get_param_as_bool('recreate_pods'))
|
||||
|
||||
resp.body = json.dumps({
|
||||
'message': ('(dry run) ' if dry_run else '') +
|
||||
'Rollback of {} complete.'.format(release),
|
||||
})
|
||||
|
||||
resp.content_type = 'application/json'
|
||||
resp.status = falcon.HTTP_200
|
||||
except Exception as e:
|
||||
self.logger.exception('Caught unexpected exception')
|
||||
err_message = 'Failed to rollback release: {}'.format(e)
|
||||
self.error(req.context, err_message)
|
||||
self.return_error(resp, falcon.HTTP_500, message=err_message)
|
||||
return ('(dry run) ' if dry_run else '') + \
|
||||
'Rollback of {} complete.'.format(release)
|
||||
|
@ -37,10 +37,7 @@ class TestReleasesReleaseNameController(api.BaseResource):
|
||||
@policy.enforce('armada:test_release')
|
||||
def on_get(self, req, resp, release):
|
||||
with self.get_tiller(req, resp) as tiller:
|
||||
cleanup = req.get_param_as_bool('cleanup')
|
||||
|
||||
test_handler = Test({}, release, tiller, cleanup=cleanup)
|
||||
success = test_handler.test_release_for_success()
|
||||
success = self.handle(req, release, tiller)
|
||||
|
||||
if success:
|
||||
msg = {
|
||||
@ -57,6 +54,11 @@ class TestReleasesReleaseNameController(api.BaseResource):
|
||||
resp.status = falcon.HTTP_200
|
||||
resp.content_type = 'application/json'
|
||||
|
||||
def handle(self, req, release, tiller):
|
||||
cleanup = req.get_param_as_bool('cleanup')
|
||||
test_handler = Test({}, release, tiller, cleanup=cleanup)
|
||||
return test_handler.test_release_for_success()
|
||||
|
||||
|
||||
class TestReleasesManifestController(api.BaseResource):
|
||||
'''
|
||||
|
@ -34,9 +34,18 @@ class Status(api.BaseResource):
|
||||
'''
|
||||
try:
|
||||
with self.get_tiller(req, resp) as tiller:
|
||||
message = self.handle(tiller)
|
||||
resp.status = falcon.HTTP_200
|
||||
resp.body = json.dumps(message)
|
||||
resp.content_type = 'application/json'
|
||||
|
||||
LOG.debug(
|
||||
'Tiller (Status) at: %s:%s, namespace=%s, '
|
||||
except Exception as e:
|
||||
err_message = 'Failed to get Tiller Status: {}'.format(e)
|
||||
self.error(req.context, err_message)
|
||||
self.return_error(resp, falcon.HTTP_500, message=err_message)
|
||||
|
||||
def handle(self, tiller):
|
||||
LOG.debug('Tiller (Status) at: %s:%s, namespace=%s, '
|
||||
'timeout=%s', tiller.tiller_host, tiller.tiller_port,
|
||||
tiller.tiller_namespace, tiller.timeout)
|
||||
|
||||
@ -46,15 +55,7 @@ class Status(api.BaseResource):
|
||||
'version': tiller.tiller_version()
|
||||
}
|
||||
}
|
||||
|
||||
resp.status = falcon.HTTP_200
|
||||
resp.body = json.dumps(message)
|
||||
resp.content_type = 'application/json'
|
||||
|
||||
except Exception as e:
|
||||
err_message = 'Failed to get Tiller Status: {}'.format(e)
|
||||
self.error(req.context, err_message)
|
||||
self.return_error(resp, falcon.HTTP_500, message=err_message)
|
||||
return message
|
||||
|
||||
|
||||
class Release(api.BaseResource):
|
||||
@ -65,18 +66,10 @@ class Release(api.BaseResource):
|
||||
'''
|
||||
try:
|
||||
with self.get_tiller(req, resp) as tiller:
|
||||
|
||||
LOG.debug(
|
||||
'Tiller (Release) at: %s:%s, namespace=%s, '
|
||||
'timeout=%s', tiller.tiller_host, tiller.tiller_port,
|
||||
tiller.tiller_namespace, tiller.timeout)
|
||||
|
||||
releases = {}
|
||||
for release in tiller.list_releases():
|
||||
releases.setdefault(release.namespace, [])
|
||||
releases[release.namespace].append(release.name)
|
||||
|
||||
resp.body = json.dumps({'releases': releases})
|
||||
releases = self.handle(tiller)
|
||||
resp.body = json.dumps({
|
||||
'releases': releases,
|
||||
})
|
||||
resp.content_type = 'application/json'
|
||||
resp.status = falcon.HTTP_200
|
||||
|
||||
@ -84,3 +77,14 @@ class Release(api.BaseResource):
|
||||
err_message = 'Unable to find Tiller Releases: {}'.format(e)
|
||||
self.error(req.context, err_message)
|
||||
self.return_error(resp, falcon.HTTP_500, message=err_message)
|
||||
|
||||
def handle(self, tiller):
|
||||
LOG.debug('Tiller (Release) at: %s:%s, namespace=%s, '
|
||||
'timeout=%s', tiller.tiller_host, tiller.tiller_port,
|
||||
tiller.tiller_namespace, tiller.timeout)
|
||||
|
||||
releases = {}
|
||||
for release in tiller.list_releases():
|
||||
releases.setdefault(release.namespace, [])
|
||||
releases[release.namespace].append(release.name)
|
||||
return releases
|
||||
|
@ -207,20 +207,8 @@ class ApplyManifest(CliAction):
|
||||
tiller_namespace=self.tiller_namespace,
|
||||
bearer_token=self.bearer_token,
|
||||
dry_run=self.dry_run) as tiller:
|
||||
armada = Armada(
|
||||
documents,
|
||||
disable_update_pre=self.disable_update_pre,
|
||||
disable_update_post=self.disable_update_post,
|
||||
enable_chart_cleanup=self.enable_chart_cleanup,
|
||||
dry_run=self.dry_run,
|
||||
set_ovr=self.set,
|
||||
force_wait=self.wait,
|
||||
timeout=self.timeout,
|
||||
tiller=tiller,
|
||||
values=self.values,
|
||||
target_manifest=self.target_manifest)
|
||||
|
||||
resp = armada.sync()
|
||||
resp = self.handle(documents, tiller)
|
||||
self.output(resp)
|
||||
else:
|
||||
if len(self.values) > 0:
|
||||
@ -248,3 +236,18 @@ class ApplyManifest(CliAction):
|
||||
resp = client.post_apply(
|
||||
manifest=documents, set=self.set, query=query)
|
||||
self.output(resp.get('message'))
|
||||
|
||||
def handle(self, documents, tiller):
|
||||
armada = Armada(
|
||||
documents,
|
||||
disable_update_pre=self.disable_update_pre,
|
||||
disable_update_post=self.disable_update_post,
|
||||
enable_chart_cleanup=self.enable_chart_cleanup,
|
||||
dry_run=self.dry_run,
|
||||
set_ovr=self.set,
|
||||
force_wait=self.wait,
|
||||
timeout=self.timeout,
|
||||
tiller=tiller,
|
||||
values=self.values,
|
||||
target_manifest=self.target_manifest)
|
||||
return armada.sync()
|
||||
|
@ -119,7 +119,12 @@ class Rollback(CliAction):
|
||||
bearer_token=self.bearer_token,
|
||||
dry_run=self.dry_run) as tiller:
|
||||
|
||||
response = tiller.rollback_release(
|
||||
response = self.handle(tiller)
|
||||
|
||||
self.output(response)
|
||||
|
||||
def handle(self, tiller):
|
||||
return tiller.rollback_release(
|
||||
self.release,
|
||||
self.version,
|
||||
wait=self.wait,
|
||||
@ -127,8 +132,6 @@ class Rollback(CliAction):
|
||||
force=self.force,
|
||||
recreate_pods=self.recreate_pods)
|
||||
|
||||
self.output(response)
|
||||
|
||||
def output(self, response):
|
||||
self.logger.info(('(dry run) ' if self.dry_run else '') +
|
||||
'Rollback of %s complete.', self.release)
|
||||
|
Loading…
Reference in New Issue
Block a user