Implement tiller gRPC channel clean up
We have seen issues with dangling threads in Armada. This is likely due to a bug [0] in the version of gRPC that we were pinned to. This patchset: - moves us to the latest versions of the gRPC python libraries which add a new `channel.close()` method to cleanup channels. - implements the python context manager api in the tiller handler - uses the context manager api to explicitly scope tiller channel creation and cleanup to each Armada API and CLI call. This also fixes a couples issues with error handling introduced in [1]. [0]: https://github.com/grpc/grpc/issues/14338 [1]: https://review.openstack.org/#/c/610384 Change-Id: I2577a20fc76c397aa33157dc12a0e1d36f49733e
This commit is contained in:
parent
d35896537b
commit
7af22df7dc
|
@ -23,6 +23,8 @@ import falcon
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
|
|
||||||
|
from armada.handlers.tiller import Tiller
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
|
|
||||||
|
|
||||||
|
@ -107,6 +109,19 @@ class BaseResource(object):
|
||||||
def error(self, ctx, msg):
|
def error(self, ctx, msg):
|
||||||
self.log_error(ctx, log.ERROR, msg)
|
self.log_error(ctx, log.ERROR, msg)
|
||||||
|
|
||||||
|
def get_tiller(self, req, resp):
|
||||||
|
dry_run = req.get_param_as_bool('dry_run')
|
||||||
|
tiller_port = req.get_param_as_int('tiller_port') or CONF.tiller_port
|
||||||
|
tiller_namespace = req.get_param(
|
||||||
|
'tiller_namespace',
|
||||||
|
default=CONF.tiller_namespace) or CONF.tiller_namespace
|
||||||
|
|
||||||
|
return Tiller(
|
||||||
|
tiller_host=req.get_param('tiller_host'),
|
||||||
|
tiller_port=tiller_port,
|
||||||
|
tiller_namespace=tiller_namespace,
|
||||||
|
dry_run=dry_run)
|
||||||
|
|
||||||
|
|
||||||
class ArmadaRequestContext(object):
|
class ArmadaRequestContext(object):
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@ import json
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
import falcon
|
import falcon
|
||||||
from oslo_config import cfg
|
|
||||||
|
|
||||||
from armada import api
|
from armada import api
|
||||||
from armada.common import policy
|
from armada.common import policy
|
||||||
|
@ -25,8 +24,6 @@ from armada.handlers.armada import Armada
|
||||||
from armada.handlers.document import ReferenceResolver
|
from armada.handlers.document import ReferenceResolver
|
||||||
from armada.handlers.override import Override
|
from armada.handlers.override import Override
|
||||||
|
|
||||||
CONF = cfg.CONF
|
|
||||||
|
|
||||||
|
|
||||||
class Apply(api.BaseResource):
|
class Apply(api.BaseResource):
|
||||||
"""Controller for installing and updating charts defined in an Armada
|
"""Controller for installing and updating charts defined in an Armada
|
||||||
|
@ -71,31 +68,30 @@ class Apply(api.BaseResource):
|
||||||
message="Request must be in application/x-yaml"
|
message="Request must be in application/x-yaml"
|
||||||
"or application/json")
|
"or application/json")
|
||||||
try:
|
try:
|
||||||
armada = Armada(
|
with self.get_tiller(req, resp) as tiller:
|
||||||
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_host=req.get_param('tiller_host'),
|
|
||||||
tiller_port=req.get_param_as_int('tiller_port') or
|
|
||||||
CONF.tiller_port,
|
|
||||||
tiller_namespace=req.get_param(
|
|
||||||
'tiller_namespace', default=CONF.tiller_namespace),
|
|
||||||
target_manifest=req.get_param('target_manifest'))
|
|
||||||
|
|
||||||
msg = armada.sync()
|
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'))
|
||||||
|
|
||||||
resp.body = json.dumps({
|
msg = armada.sync()
|
||||||
'message': msg,
|
|
||||||
})
|
|
||||||
|
|
||||||
resp.content_type = 'application/json'
|
resp.body = json.dumps({
|
||||||
resp.status = falcon.HTTP_200
|
'message': msg,
|
||||||
|
})
|
||||||
|
|
||||||
|
resp.content_type = 'application/json'
|
||||||
|
resp.status = falcon.HTTP_200
|
||||||
except exceptions.ManifestException as e:
|
except exceptions.ManifestException as e:
|
||||||
self.return_error(resp, falcon.HTTP_400, message=str(e))
|
self.return_error(resp, falcon.HTTP_400, message=str(e))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
@ -19,7 +19,6 @@ from oslo_config import cfg
|
||||||
|
|
||||||
from armada import api
|
from armada import api
|
||||||
from armada.common import policy
|
from armada.common import policy
|
||||||
from armada.handlers.tiller import Tiller
|
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
|
|
||||||
|
@ -33,26 +32,20 @@ class Rollback(api.BaseResource):
|
||||||
try:
|
try:
|
||||||
dry_run = req.get_param_as_bool('dry_run')
|
dry_run = req.get_param_as_bool('dry_run')
|
||||||
|
|
||||||
tiller = Tiller(
|
with self.get_tiller(req, resp) as tiller:
|
||||||
tiller_host=req.get_param('tiller_host'),
|
|
||||||
tiller_port=req.get_param_as_int('tiller_port') or
|
|
||||||
CONF.tiller_port,
|
|
||||||
tiller_namespace=req.get_param(
|
|
||||||
'tiller_namespace', default=CONF.tiller_namespace),
|
|
||||||
dry_run=dry_run)
|
|
||||||
|
|
||||||
tiller.rollback_release(
|
tiller.rollback_release(
|
||||||
release,
|
release,
|
||||||
req.get_param_as_int('version') or 0,
|
req.get_param_as_int('version') or 0,
|
||||||
wait=req.get_param_as_bool('wait'),
|
wait=req.get_param_as_bool('wait'),
|
||||||
timeout=req.get_param_as_int('timeout') or 0,
|
timeout=req.get_param_as_int('timeout') or 0,
|
||||||
force=req.get_param_as_bool('force'),
|
force=req.get_param_as_bool('force'),
|
||||||
recreate_pods=req.get_param_as_bool('recreate_pods'))
|
recreate_pods=req.get_param_as_bool('recreate_pods'))
|
||||||
|
|
||||||
resp.body = json.dumps({
|
resp.body = json.dumps({
|
||||||
'message': ('(dry run) ' if dry_run else '') +
|
'message': ('(dry run) ' if dry_run else '') +
|
||||||
'Rollback of {} complete.'.format(release),
|
'Rollback of {} complete.'.format(release),
|
||||||
})
|
})
|
||||||
|
|
||||||
resp.content_type = 'application/json'
|
resp.content_type = 'application/json'
|
||||||
resp.status = falcon.HTTP_200
|
resp.status = falcon.HTTP_200
|
||||||
|
|
|
@ -22,7 +22,6 @@ from armada import api
|
||||||
from armada.common import policy
|
from armada.common import policy
|
||||||
from armada import const
|
from armada import const
|
||||||
from armada.handlers.test import test_release_for_success
|
from armada.handlers.test import test_release_for_success
|
||||||
from armada.handlers.tiller import Tiller
|
|
||||||
from armada.handlers.manifest import Manifest
|
from armada.handlers.manifest import Manifest
|
||||||
from armada.utils.release import release_prefixer
|
from armada.utils.release import release_prefixer
|
||||||
from armada.utils import validate
|
from armada.utils import validate
|
||||||
|
@ -38,24 +37,13 @@ class TestReleasesReleaseNameController(api.BaseResource):
|
||||||
@policy.enforce('armada:test_release')
|
@policy.enforce('armada:test_release')
|
||||||
def on_get(self, req, resp, release):
|
def on_get(self, req, resp, release):
|
||||||
self.logger.info('RUNNING: %s', release)
|
self.logger.info('RUNNING: %s', release)
|
||||||
try:
|
with self.get_tiller(req, resp) as tiller:
|
||||||
tiller = Tiller(
|
|
||||||
tiller_host=req.get_param('tiller_host'),
|
|
||||||
tiller_port=req.get_param_as_int('tiller_port') or
|
|
||||||
CONF.tiller_port,
|
|
||||||
tiller_namespace=req.get_param(
|
|
||||||
'tiller_namespace', default=CONF.tiller_namespace))
|
|
||||||
cleanup = req.get_param_as_bool('cleanup')
|
cleanup = req.get_param_as_bool('cleanup')
|
||||||
if cleanup is None:
|
if cleanup is None:
|
||||||
cleanup = False
|
cleanup = False
|
||||||
success = test_release_for_success(
|
success = test_release_for_success(
|
||||||
tiller, release, cleanup=cleanup)
|
tiller, release, cleanup=cleanup)
|
||||||
# TODO(fmontei): Provide more sensible exception(s) here.
|
|
||||||
except Exception as e:
|
|
||||||
err_message = 'Failed to test {}: {}'.format(release, e)
|
|
||||||
self.error(req.context, err_message)
|
|
||||||
return self.return_error(
|
|
||||||
resp, falcon.HTTP_500, message=err_message)
|
|
||||||
|
|
||||||
if success:
|
if success:
|
||||||
msg = {
|
msg = {
|
||||||
|
@ -119,23 +107,10 @@ class TestReleasesManifestController(api.BaseResource):
|
||||||
@policy.enforce('armada:test_manifest')
|
@policy.enforce('armada:test_manifest')
|
||||||
def on_post(self, req, resp):
|
def on_post(self, req, resp):
|
||||||
# TODO(fmontei): Validation Content-Type is application/x-yaml.
|
# TODO(fmontei): Validation Content-Type is application/x-yaml.
|
||||||
|
with self.get_tiller(req, resp) as tiller:
|
||||||
|
return self.handle(req, resp, tiller)
|
||||||
|
|
||||||
target_manifest = req.get_param('target_manifest', None)
|
def handle(self, req, resp, tiller):
|
||||||
|
|
||||||
try:
|
|
||||||
tiller = Tiller(
|
|
||||||
tiller_host=req.get_param('tiller_host'),
|
|
||||||
tiller_port=req.get_param_as_int('tiller_port') or
|
|
||||||
CONF.tiller_port,
|
|
||||||
tiller_namespace=req.get_param(
|
|
||||||
'tiller_namespace', default=CONF.tiller_namespace))
|
|
||||||
# TODO(fmontei): Provide more sensible exception(s) here.
|
|
||||||
except Exception:
|
|
||||||
err_message = 'Failed to initialize Tiller handler.'
|
|
||||||
self.error(req.context, err_message)
|
|
||||||
return self.return_error(
|
|
||||||
resp, falcon.HTTP_500, message=err_message)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
documents = self.req_yaml(req, default=[])
|
documents = self.req_yaml(req, default=[])
|
||||||
except yaml.YAMLError:
|
except yaml.YAMLError:
|
||||||
|
@ -143,9 +118,10 @@ class TestReleasesManifestController(api.BaseResource):
|
||||||
return self.return_error(
|
return self.return_error(
|
||||||
resp, falcon.HTTP_400, message=err_message)
|
resp, falcon.HTTP_400, message=err_message)
|
||||||
|
|
||||||
|
target_manifest = req.get_param('target_manifest', None)
|
||||||
is_valid = self._validate_documents(req, resp, documents)
|
is_valid = self._validate_documents(req, resp, documents)
|
||||||
if not is_valid:
|
if not is_valid:
|
||||||
return resp
|
return
|
||||||
|
|
||||||
armada_obj = Manifest(
|
armada_obj = Manifest(
|
||||||
documents, target_manifest=target_manifest).get_manifest()
|
documents, target_manifest=target_manifest).get_manifest()
|
||||||
|
|
|
@ -20,7 +20,6 @@ from oslo_log import log as logging
|
||||||
|
|
||||||
from armada import api
|
from armada import api
|
||||||
from armada.common import policy
|
from armada.common import policy
|
||||||
from armada.handlers.tiller import Tiller
|
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
@ -34,27 +33,23 @@ class Status(api.BaseResource):
|
||||||
get tiller status
|
get tiller status
|
||||||
'''
|
'''
|
||||||
try:
|
try:
|
||||||
tiller = Tiller(
|
with self.get_tiller(req, resp) as tiller:
|
||||||
tiller_host=req.get_param('tiller_host'),
|
|
||||||
tiller_port=req.get_param_as_int('tiller_port') or
|
|
||||||
CONF.tiller_port,
|
|
||||||
tiller_namespace=req.get_param(
|
|
||||||
'tiller_namespace', default=CONF.tiller_namespace))
|
|
||||||
|
|
||||||
LOG.debug('Tiller (Status) at: %s:%s, namespace=%s, '
|
LOG.debug(
|
||||||
'timeout=%s', tiller.tiller_host, tiller.tiller_port,
|
'Tiller (Status) at: %s:%s, namespace=%s, '
|
||||||
tiller.tiller_namespace, tiller.timeout)
|
'timeout=%s', tiller.tiller_host, tiller.tiller_port,
|
||||||
|
tiller.tiller_namespace, tiller.timeout)
|
||||||
|
|
||||||
message = {
|
message = {
|
||||||
'tiller': {
|
'tiller': {
|
||||||
'state': tiller.tiller_status(),
|
'state': tiller.tiller_status(),
|
||||||
'version': tiller.tiller_version()
|
'version': tiller.tiller_version()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
resp.status = falcon.HTTP_200
|
resp.status = falcon.HTTP_200
|
||||||
resp.body = json.dumps(message)
|
resp.body = json.dumps(message)
|
||||||
resp.content_type = 'application/json'
|
resp.content_type = 'application/json'
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
err_message = 'Failed to get Tiller Status: {}'.format(e)
|
err_message = 'Failed to get Tiller Status: {}'.format(e)
|
||||||
|
@ -69,26 +64,21 @@ class Release(api.BaseResource):
|
||||||
'''Controller for listing Tiller releases.
|
'''Controller for listing Tiller releases.
|
||||||
'''
|
'''
|
||||||
try:
|
try:
|
||||||
tiller = Tiller(
|
with self.get_tiller(req, resp) as tiller:
|
||||||
tiller_host=req.get_param('tiller_host'),
|
|
||||||
tiller_port=req.get_param_as_int('tiller_port') or
|
|
||||||
CONF.tiller_port,
|
|
||||||
tiller_namespace=req.get_param(
|
|
||||||
'tiller_namespace', default=CONF.tiller_namespace))
|
|
||||||
|
|
||||||
LOG.debug(
|
LOG.debug(
|
||||||
'Tiller (Release) at: %s:%s, namespace=%s, '
|
'Tiller (Release) at: %s:%s, namespace=%s, '
|
||||||
'timeout=%s', tiller.tiller_host, tiller.tiller_port,
|
'timeout=%s', tiller.tiller_host, tiller.tiller_port,
|
||||||
tiller.tiller_namespace, tiller.timeout)
|
tiller.tiller_namespace, tiller.timeout)
|
||||||
|
|
||||||
releases = {}
|
releases = {}
|
||||||
for release in tiller.list_releases():
|
for release in tiller.list_releases():
|
||||||
releases.setdefault(release.namespace, [])
|
releases.setdefault(release.namespace, [])
|
||||||
releases[release.namespace].append(release.name)
|
releases[release.namespace].append(release.name)
|
||||||
|
|
||||||
resp.body = json.dumps({'releases': releases})
|
resp.body = json.dumps({'releases': releases})
|
||||||
resp.content_type = 'application/json'
|
resp.content_type = 'application/json'
|
||||||
resp.status = falcon.HTTP_200
|
resp.status = falcon.HTTP_200
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
err_message = 'Unable to find Tiller Releases: {}'.format(e)
|
err_message = 'Unable to find Tiller Releases: {}'.format(e)
|
||||||
|
|
|
@ -78,8 +78,7 @@ def create(enable_middleware=CONF.middleware):
|
||||||
policy.Enforcer(CONF)
|
policy.Enforcer(CONF)
|
||||||
|
|
||||||
# Error handlers (FILO handling)
|
# Error handlers (FILO handling)
|
||||||
api.add_error_handler(exceptions.ArmadaBaseException,
|
api.add_error_handler(Exception, exceptions.default_exception_handler)
|
||||||
exceptions.default_exception_handler)
|
|
||||||
api.add_error_handler(exceptions.ArmadaAPIException,
|
api.add_error_handler(exceptions.ArmadaAPIException,
|
||||||
exceptions.ArmadaAPIException.handle)
|
exceptions.ArmadaAPIException.handle)
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ from armada.cli import CliAction
|
||||||
from armada.exceptions.source_exceptions import InvalidPathException
|
from armada.exceptions.source_exceptions import InvalidPathException
|
||||||
from armada.handlers.armada import Armada
|
from armada.handlers.armada import Armada
|
||||||
from armada.handlers.document import ReferenceResolver
|
from armada.handlers.document import ReferenceResolver
|
||||||
|
from armada.handlers.tiller import Tiller
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
|
|
||||||
|
@ -198,23 +199,26 @@ class ApplyManifest(CliAction):
|
||||||
return
|
return
|
||||||
|
|
||||||
if not self.ctx.obj.get('api', False):
|
if not self.ctx.obj.get('api', False):
|
||||||
armada = Armada(
|
with Tiller(
|
||||||
documents,
|
tiller_host=self.tiller_host,
|
||||||
disable_update_pre=self.disable_update_pre,
|
tiller_port=self.tiller_port,
|
||||||
disable_update_post=self.disable_update_post,
|
tiller_namespace=self.tiller_namespace,
|
||||||
enable_chart_cleanup=self.enable_chart_cleanup,
|
dry_run=self.dry_run) as tiller:
|
||||||
dry_run=self.dry_run,
|
armada = Armada(
|
||||||
set_ovr=self.set,
|
documents,
|
||||||
force_wait=self.wait,
|
disable_update_pre=self.disable_update_pre,
|
||||||
timeout=self.timeout,
|
disable_update_post=self.disable_update_post,
|
||||||
tiller_host=self.tiller_host,
|
enable_chart_cleanup=self.enable_chart_cleanup,
|
||||||
tiller_port=self.tiller_port,
|
dry_run=self.dry_run,
|
||||||
tiller_namespace=self.tiller_namespace,
|
set_ovr=self.set,
|
||||||
values=self.values,
|
force_wait=self.wait,
|
||||||
target_manifest=self.target_manifest)
|
timeout=self.timeout,
|
||||||
|
tiller=tiller,
|
||||||
|
values=self.values,
|
||||||
|
target_manifest=self.target_manifest)
|
||||||
|
|
||||||
resp = armada.sync()
|
resp = armada.sync()
|
||||||
self.output(resp)
|
self.output(resp)
|
||||||
else:
|
else:
|
||||||
if len(self.values) > 0:
|
if len(self.values) > 0:
|
||||||
self.logger.error(
|
self.logger.error(
|
||||||
|
|
|
@ -88,8 +88,12 @@ class DeleteChartManifest(CliAction):
|
||||||
self.tiller_port = tiller_port
|
self.tiller_port = tiller_port
|
||||||
|
|
||||||
def invoke(self):
|
def invoke(self):
|
||||||
tiller = Tiller(
|
with Tiller(
|
||||||
tiller_host=self.tiller_host, tiller_port=self.tiller_port)
|
tiller_host=self.tiller_host,
|
||||||
|
tiller_port=self.tiller_port) as tiller:
|
||||||
|
self.handle(tiller)
|
||||||
|
|
||||||
|
def handle(self, tiller):
|
||||||
known_release_names = [release[0] for release in tiller.list_charts()]
|
known_release_names = [release[0] for release in tiller.list_charts()]
|
||||||
|
|
||||||
if self.releases:
|
if self.releases:
|
||||||
|
|
|
@ -110,21 +110,21 @@ class Rollback(CliAction):
|
||||||
self.recreate_pods = recreate_pods
|
self.recreate_pods = recreate_pods
|
||||||
|
|
||||||
def invoke(self):
|
def invoke(self):
|
||||||
tiller = Tiller(
|
with Tiller(
|
||||||
tiller_host=self.tiller_host,
|
tiller_host=self.tiller_host,
|
||||||
tiller_port=self.tiller_port,
|
tiller_port=self.tiller_port,
|
||||||
tiller_namespace=self.tiller_namespace,
|
tiller_namespace=self.tiller_namespace,
|
||||||
dry_run=self.dry_run)
|
dry_run=self.dry_run) as tiller:
|
||||||
|
|
||||||
response = tiller.rollback_release(
|
response = tiller.rollback_release(
|
||||||
self.release,
|
self.release,
|
||||||
self.version,
|
self.version,
|
||||||
wait=self.wait,
|
wait=self.wait,
|
||||||
timeout=self.timeout,
|
timeout=self.timeout,
|
||||||
force=self.force,
|
force=self.force,
|
||||||
recreate_pods=self.recreate_pods)
|
recreate_pods=self.recreate_pods)
|
||||||
|
|
||||||
self.output(response)
|
self.output(response)
|
||||||
|
|
||||||
def output(self, response):
|
def output(self, response):
|
||||||
self.logger.info(('(dry run) ' if self.dry_run else '') +
|
self.logger.info(('(dry run) ' if self.dry_run else '') +
|
||||||
|
|
|
@ -105,10 +105,14 @@ class TestChartManifest(CliAction):
|
||||||
self.cleanup = cleanup
|
self.cleanup = cleanup
|
||||||
|
|
||||||
def invoke(self):
|
def invoke(self):
|
||||||
tiller = Tiller(
|
with Tiller(
|
||||||
tiller_host=self.tiller_host,
|
tiller_host=self.tiller_host,
|
||||||
tiller_port=self.tiller_port,
|
tiller_port=self.tiller_port,
|
||||||
tiller_namespace=self.tiller_namespace)
|
tiller_namespace=self.tiller_namespace) as tiller:
|
||||||
|
|
||||||
|
self.handle(tiller)
|
||||||
|
|
||||||
|
def handle(self, tiller):
|
||||||
known_release_names = [release[0] for release in tiller.list_charts()]
|
known_release_names = [release[0] for release in tiller.list_charts()]
|
||||||
|
|
||||||
if self.release:
|
if self.release:
|
||||||
|
|
|
@ -84,11 +84,14 @@ class TillerServices(CliAction):
|
||||||
|
|
||||||
def invoke(self):
|
def invoke(self):
|
||||||
|
|
||||||
tiller = Tiller(
|
with Tiller(
|
||||||
tiller_host=self.tiller_host,
|
tiller_host=self.tiller_host,
|
||||||
tiller_port=self.tiller_port,
|
tiller_port=self.tiller_port,
|
||||||
tiller_namespace=self.tiller_namespace)
|
tiller_namespace=self.tiller_namespace) as tiller:
|
||||||
|
|
||||||
|
self.handle(tiller)
|
||||||
|
|
||||||
|
def handle(self, tiller):
|
||||||
if self.status:
|
if self.status:
|
||||||
if not self.ctx.obj.get('api', False):
|
if not self.ctx.obj.get('api', False):
|
||||||
self.logger.info('Tiller Service: %s', tiller.tiller_status())
|
self.logger.info('Tiller Service: %s', tiller.tiller_status())
|
||||||
|
|
|
@ -165,7 +165,7 @@ def default_exception_handler(ex, req, resp, params):
|
||||||
else:
|
else:
|
||||||
# take care of the uncaught stuff
|
# take care of the uncaught stuff
|
||||||
exc_string = traceback.format_exc()
|
exc_string = traceback.format_exc()
|
||||||
logging.error('Unhanded Exception being handled: \n%s', exc_string)
|
LOG.error('Unhanded Exception being handled: \n%s', exc_string)
|
||||||
format_error_resp(
|
format_error_resp(
|
||||||
req,
|
req,
|
||||||
resp,
|
resp,
|
||||||
|
|
|
@ -26,7 +26,6 @@ from armada.exceptions import validate_exceptions
|
||||||
from armada.handlers.chart_deploy import ChartDeploy
|
from armada.handlers.chart_deploy import ChartDeploy
|
||||||
from armada.handlers.manifest import Manifest
|
from armada.handlers.manifest import Manifest
|
||||||
from armada.handlers.override import Override
|
from armada.handlers.override import Override
|
||||||
from armada.handlers.tiller import Tiller
|
|
||||||
from armada.utils.release import release_prefixer
|
from armada.utils.release import release_prefixer
|
||||||
from armada.utils import source
|
from armada.utils import source
|
||||||
|
|
||||||
|
@ -42,6 +41,7 @@ class Armada(object):
|
||||||
|
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
documents,
|
documents,
|
||||||
|
tiller,
|
||||||
disable_update_pre=False,
|
disable_update_pre=False,
|
||||||
disable_update_post=False,
|
disable_update_post=False,
|
||||||
enable_chart_cleanup=False,
|
enable_chart_cleanup=False,
|
||||||
|
@ -49,9 +49,6 @@ class Armada(object):
|
||||||
set_ovr=None,
|
set_ovr=None,
|
||||||
force_wait=False,
|
force_wait=False,
|
||||||
timeout=None,
|
timeout=None,
|
||||||
tiller_host=None,
|
|
||||||
tiller_port=None,
|
|
||||||
tiller_namespace=None,
|
|
||||||
values=None,
|
values=None,
|
||||||
target_manifest=None,
|
target_manifest=None,
|
||||||
k8s_wait_attempts=1,
|
k8s_wait_attempts=1,
|
||||||
|
@ -60,6 +57,7 @@ class Armada(object):
|
||||||
Initialize the Armada engine and establish a connection to Tiller.
|
Initialize the Armada engine and establish a connection to Tiller.
|
||||||
|
|
||||||
:param List[dict] documents: Armada documents.
|
:param List[dict] documents: Armada documents.
|
||||||
|
:param tiller: Tiller instance to use.
|
||||||
:param bool disable_update_pre: Disable pre-update Tiller operations.
|
:param bool disable_update_pre: Disable pre-update Tiller operations.
|
||||||
:param bool disable_update_post: Disable post-update Tiller
|
:param bool disable_update_post: Disable post-update Tiller
|
||||||
operations.
|
operations.
|
||||||
|
@ -69,11 +67,6 @@ class Armada(object):
|
||||||
deployed, rather than using each chart's specified wait policy.
|
deployed, rather than using each chart's specified wait policy.
|
||||||
:param int timeout: Specifies overall time in seconds that Tiller
|
:param int timeout: Specifies overall time in seconds that Tiller
|
||||||
should wait for charts until timing out.
|
should wait for charts until timing out.
|
||||||
:param str tiller_host: Tiller host IP. Default is None.
|
|
||||||
:param int tiller_port: Tiller host port. Default is
|
|
||||||
``CONF.tiller_port``.
|
|
||||||
:param str tiller_namespace: Tiller host namespace. Default is
|
|
||||||
``CONF.tiller_namespace``.
|
|
||||||
:param str target_manifest: The target manifest to run. Useful for
|
:param str target_manifest: The target manifest to run. Useful for
|
||||||
specifying which manifest to run when multiple are available.
|
specifying which manifest to run when multiple are available.
|
||||||
:param int k8s_wait_attempts: The number of times to attempt waiting
|
:param int k8s_wait_attempts: The number of times to attempt waiting
|
||||||
|
@ -81,19 +74,11 @@ class Armada(object):
|
||||||
:param int k8s_wait_attempt_sleep: The time in seconds to sleep
|
:param int k8s_wait_attempt_sleep: The time in seconds to sleep
|
||||||
between attempts.
|
between attempts.
|
||||||
'''
|
'''
|
||||||
tiller_port = tiller_port or CONF.tiller_port
|
|
||||||
tiller_namespace = tiller_namespace or CONF.tiller_namespace
|
|
||||||
|
|
||||||
self.enable_chart_cleanup = enable_chart_cleanup
|
self.enable_chart_cleanup = enable_chart_cleanup
|
||||||
self.dry_run = dry_run
|
self.dry_run = dry_run
|
||||||
self.force_wait = force_wait
|
self.force_wait = force_wait
|
||||||
# TODO: Use dependency injection i.e. pass in a Tiller instead of
|
self.tiller = tiller
|
||||||
# creating it here.
|
|
||||||
self.tiller = Tiller(
|
|
||||||
tiller_host=tiller_host,
|
|
||||||
tiller_port=tiller_port,
|
|
||||||
tiller_namespace=tiller_namespace,
|
|
||||||
dry_run=dry_run)
|
|
||||||
try:
|
try:
|
||||||
self.documents = Override(
|
self.documents = Override(
|
||||||
documents, overrides=set_ovr,
|
documents, overrides=set_ovr,
|
||||||
|
|
|
@ -80,12 +80,11 @@ class Tiller(object):
|
||||||
tiller_host=None,
|
tiller_host=None,
|
||||||
tiller_port=None,
|
tiller_port=None,
|
||||||
tiller_namespace=None,
|
tiller_namespace=None,
|
||||||
dry_run=False):
|
dry_run=None):
|
||||||
self.tiller_host = tiller_host
|
self.tiller_host = tiller_host
|
||||||
self.tiller_port = tiller_port or CONF.tiller_port
|
self.tiller_port = tiller_port or CONF.tiller_port
|
||||||
self.tiller_namespace = tiller_namespace or CONF.tiller_namespace
|
self.tiller_namespace = tiller_namespace or CONF.tiller_namespace
|
||||||
|
self.dry_run = dry_run or False
|
||||||
self.dry_run = dry_run
|
|
||||||
|
|
||||||
# init k8s connectivity
|
# init k8s connectivity
|
||||||
self.k8s = K8s()
|
self.k8s = K8s()
|
||||||
|
@ -818,3 +817,14 @@ class Tiller(object):
|
||||||
'using default %ss.', self.timeout)
|
'using default %ss.', self.timeout)
|
||||||
timeout = self.timeout
|
timeout = self.timeout
|
||||||
return timeout
|
return timeout
|
||||||
|
|
||||||
|
def close(self):
|
||||||
|
# Ensure channel was actually initialized before closing
|
||||||
|
if getattr(self, 'channel', None):
|
||||||
|
self.channel.close()
|
||||||
|
|
||||||
|
def __enter__(self):
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __exit__(self, exc_type, exc_value, traceback):
|
||||||
|
self.close()
|
||||||
|
|
|
@ -17,6 +17,7 @@ import mock
|
||||||
|
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
|
|
||||||
|
from armada import api
|
||||||
from armada.api.controller import armada as armada_api
|
from armada.api.controller import armada as armada_api
|
||||||
from armada.common.policies import base as policy_base
|
from armada.common.policies import base as policy_base
|
||||||
from armada.tests import test_utils
|
from armada.tests import test_utils
|
||||||
|
@ -27,9 +28,11 @@ CONF = cfg.CONF
|
||||||
|
|
||||||
class ArmadaControllerTest(base.BaseControllerTest):
|
class ArmadaControllerTest(base.BaseControllerTest):
|
||||||
|
|
||||||
|
@mock.patch.object(api, 'Tiller')
|
||||||
@mock.patch.object(armada_api, 'Armada')
|
@mock.patch.object(armada_api, 'Armada')
|
||||||
@mock.patch.object(armada_api, 'ReferenceResolver')
|
@mock.patch.object(armada_api, 'ReferenceResolver')
|
||||||
def test_armada_apply_resource(self, mock_resolver, mock_armada):
|
def test_armada_apply_resource(self, mock_resolver, mock_armada,
|
||||||
|
mock_tiller):
|
||||||
"""Tests the POST /api/v1.0/apply endpoint."""
|
"""Tests the POST /api/v1.0/apply endpoint."""
|
||||||
rules = {'armada:create_endpoints': '@'}
|
rules = {'armada:create_endpoints': '@'}
|
||||||
self.policy.set_rules(rules)
|
self.policy.set_rules(rules)
|
||||||
|
@ -45,6 +48,9 @@ class ArmadaControllerTest(base.BaseControllerTest):
|
||||||
'timeout': '100'
|
'timeout': '100'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_tiller = mock_tiller.return_value
|
||||||
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
|
||||||
expected_armada_options = {
|
expected_armada_options = {
|
||||||
'disable_update_pre': False,
|
'disable_update_pre': False,
|
||||||
'disable_update_post': False,
|
'disable_update_post': False,
|
||||||
|
@ -52,9 +58,7 @@ class ArmadaControllerTest(base.BaseControllerTest):
|
||||||
'dry_run': False,
|
'dry_run': False,
|
||||||
'force_wait': False,
|
'force_wait': False,
|
||||||
'timeout': 100,
|
'timeout': 100,
|
||||||
'tiller_host': None,
|
'tiller': m_tiller,
|
||||||
'tiller_port': 44134,
|
|
||||||
'tiller_namespace': 'kube-system',
|
|
||||||
'target_manifest': None
|
'target_manifest': None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,6 +87,13 @@ class ArmadaControllerTest(base.BaseControllerTest):
|
||||||
}], **expected_armada_options)
|
}], **expected_armada_options)
|
||||||
mock_armada.return_value.sync.assert_called()
|
mock_armada.return_value.sync.assert_called()
|
||||||
|
|
||||||
|
mock_tiller.assert_called_with(
|
||||||
|
tiller_host=None,
|
||||||
|
tiller_port=44134,
|
||||||
|
tiller_namespace='kube-system',
|
||||||
|
dry_run=False)
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
def test_armada_apply_no_href(self):
|
def test_armada_apply_no_href(self):
|
||||||
"""Tests /api/v1.0/apply returns 400 when hrefs list is empty."""
|
"""Tests /api/v1.0/apply returns 400 when hrefs list is empty."""
|
||||||
rules = {'armada:create_endpoints': '@'}
|
rules = {'armada:create_endpoints': '@'}
|
||||||
|
|
|
@ -16,7 +16,7 @@ import json
|
||||||
|
|
||||||
import mock
|
import mock
|
||||||
|
|
||||||
from armada.api.controller import rollback
|
from armada import api
|
||||||
from armada.common.policies import base as policy_base
|
from armada.common.policies import base as policy_base
|
||||||
from armada.tests import test_utils
|
from armada.tests import test_utils
|
||||||
from armada.tests.unit.api import base
|
from armada.tests.unit.api import base
|
||||||
|
@ -24,12 +24,14 @@ from armada.tests.unit.api import base
|
||||||
|
|
||||||
class RollbackReleaseControllerTest(base.BaseControllerTest):
|
class RollbackReleaseControllerTest(base.BaseControllerTest):
|
||||||
|
|
||||||
@mock.patch.object(rollback, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_rollback_controller_pass(self, mock_tiller):
|
def test_rollback_controller_pass(self, mock_tiller):
|
||||||
rules = {'armada:rollback_release': '@'}
|
rules = {'armada:rollback_release': '@'}
|
||||||
self.policy.set_rules(rules)
|
self.policy.set_rules(rules)
|
||||||
|
|
||||||
rollback_release = mock_tiller.return_value.rollback_release
|
m_tiller = mock_tiller.return_value
|
||||||
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
rollback_release = m_tiller.rollback_release
|
||||||
rollback_release.return_value = None
|
rollback_release.return_value = None
|
||||||
|
|
||||||
tiller_host = 'host'
|
tiller_host = 'host'
|
||||||
|
@ -69,12 +71,13 @@ class RollbackReleaseControllerTest(base.BaseControllerTest):
|
||||||
self.assertEqual(200, resp.status_code)
|
self.assertEqual(200, resp.status_code)
|
||||||
self.assertEqual('Rollback of test-release complete.',
|
self.assertEqual('Rollback of test-release complete.',
|
||||||
json.loads(resp.text)['message'])
|
json.loads(resp.text)['message'])
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
|
|
||||||
@test_utils.attr(type=['negative'])
|
@test_utils.attr(type=['negative'])
|
||||||
class RollbackReleaseControllerNegativeTest(base.BaseControllerTest):
|
class RollbackReleaseControllerNegativeTest(base.BaseControllerTest):
|
||||||
|
|
||||||
@mock.patch.object(rollback, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_rollback_controller_tiller_exc_return_500(self, mock_tiller):
|
def test_rollback_controller_tiller_exc_return_500(self, mock_tiller):
|
||||||
rules = {'armada:rollback_release': '@'}
|
rules = {'armada:rollback_release': '@'}
|
||||||
self.policy.set_rules(rules)
|
self.policy.set_rules(rules)
|
||||||
|
|
|
@ -18,6 +18,7 @@ import yaml
|
||||||
|
|
||||||
import mock
|
import mock
|
||||||
|
|
||||||
|
from armada import api
|
||||||
from armada.api.controller import test
|
from armada.api.controller import test
|
||||||
from armada.common.policies import base as policy_base
|
from armada.common.policies import base as policy_base
|
||||||
from armada.exceptions import manifest_exceptions
|
from armada.exceptions import manifest_exceptions
|
||||||
|
@ -28,7 +29,7 @@ from armada.tests.unit.api import base
|
||||||
class TestReleasesManifestControllerTest(base.BaseControllerTest):
|
class TestReleasesManifestControllerTest(base.BaseControllerTest):
|
||||||
|
|
||||||
@mock.patch.object(test, 'Manifest')
|
@mock.patch.object(test, 'Manifest')
|
||||||
@mock.patch.object(test, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_test_controller_with_manifest(self, mock_tiller, mock_manifest):
|
def test_test_controller_with_manifest(self, mock_tiller, mock_manifest):
|
||||||
rules = {'armada:test_manifest': '@'}
|
rules = {'armada:test_manifest': '@'}
|
||||||
self.policy.set_rules(rules)
|
self.policy.set_rules(rules)
|
||||||
|
@ -41,6 +42,9 @@ class TestReleasesManifestControllerTest(base.BaseControllerTest):
|
||||||
payload = f.read()
|
payload = f.read()
|
||||||
documents = list(yaml.safe_load_all(payload))
|
documents = list(yaml.safe_load_all(payload))
|
||||||
|
|
||||||
|
m_tiller = mock_tiller.return_value
|
||||||
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
|
||||||
resp = self.app.simulate_post('/api/v1.0/tests', body=payload)
|
resp = self.app.simulate_post('/api/v1.0/tests', body=payload)
|
||||||
self.assertEqual(200, resp.status_code)
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
|
@ -49,13 +53,14 @@ class TestReleasesManifestControllerTest(base.BaseControllerTest):
|
||||||
self.assertEqual(expected, result)
|
self.assertEqual(expected, result)
|
||||||
|
|
||||||
mock_manifest.assert_called_once_with(documents, target_manifest=None)
|
mock_manifest.assert_called_once_with(documents, target_manifest=None)
|
||||||
self.assertTrue(mock_tiller.called)
|
mock_tiller.assert_called()
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
|
|
||||||
class TestReleasesReleaseNameControllerTest(base.BaseControllerTest):
|
class TestReleasesReleaseNameControllerTest(base.BaseControllerTest):
|
||||||
|
|
||||||
@mock.patch.object(test, 'test_release_for_success')
|
@mock.patch.object(test, 'test_release_for_success')
|
||||||
@mock.patch.object(test, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_test_controller_test_pass(self, mock_tiller,
|
def test_test_controller_test_pass(self, mock_tiller,
|
||||||
mock_test_release_for_success):
|
mock_test_release_for_success):
|
||||||
rules = {'armada:test_release': '@'}
|
rules = {'armada:test_release': '@'}
|
||||||
|
@ -63,6 +68,9 @@ class TestReleasesReleaseNameControllerTest(base.BaseControllerTest):
|
||||||
|
|
||||||
mock_test_release_for_success.return_value = True
|
mock_test_release_for_success.return_value = True
|
||||||
|
|
||||||
|
m_tiller = mock_tiller.return_value
|
||||||
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
|
||||||
release = 'fake-release'
|
release = 'fake-release'
|
||||||
resp = self.app.simulate_get('/api/v1.0/test/{}'.format(release))
|
resp = self.app.simulate_get('/api/v1.0/test/{}'.format(release))
|
||||||
mock_test_release_for_success.assert_has_calls(
|
mock_test_release_for_success.assert_has_calls(
|
||||||
|
@ -70,44 +78,53 @@ class TestReleasesReleaseNameControllerTest(base.BaseControllerTest):
|
||||||
self.assertEqual(200, resp.status_code)
|
self.assertEqual(200, resp.status_code)
|
||||||
self.assertEqual('MESSAGE: Test Pass',
|
self.assertEqual('MESSAGE: Test Pass',
|
||||||
json.loads(resp.text)['message'])
|
json.loads(resp.text)['message'])
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
@mock.patch.object(test, 'test_release_for_success')
|
@mock.patch.object(test, 'test_release_for_success')
|
||||||
@mock.patch.object(test, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_test_controller_test_fail(self, mock_tiller,
|
def test_test_controller_test_fail(self, mock_tiller,
|
||||||
mock_test_release_for_success):
|
mock_test_release_for_success):
|
||||||
rules = {'armada:test_release': '@'}
|
rules = {'armada:test_release': '@'}
|
||||||
self.policy.set_rules(rules)
|
self.policy.set_rules(rules)
|
||||||
|
|
||||||
|
m_tiller = mock_tiller.return_value
|
||||||
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
|
||||||
mock_test_release_for_success.return_value = False
|
mock_test_release_for_success.return_value = False
|
||||||
release = 'fake-release'
|
release = 'fake-release'
|
||||||
resp = self.app.simulate_get('/api/v1.0/test/{}'.format(release))
|
resp = self.app.simulate_get('/api/v1.0/test/{}'.format(release))
|
||||||
self.assertEqual(200, resp.status_code)
|
self.assertEqual(200, resp.status_code)
|
||||||
self.assertEqual('MESSAGE: Test Fail',
|
self.assertEqual('MESSAGE: Test Fail',
|
||||||
json.loads(resp.text)['message'])
|
json.loads(resp.text)['message'])
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
@mock.patch.object(test, 'test_release_for_success')
|
@mock.patch.object(test, 'test_release_for_success')
|
||||||
@mock.patch.object(test, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_test_controller_cleanup(self, mock_tiller,
|
def test_test_controller_cleanup(self, mock_tiller,
|
||||||
mock_test_release_for_success):
|
mock_test_release_for_success):
|
||||||
rules = {'armada:test_release': '@'}
|
rules = {'armada:test_release': '@'}
|
||||||
self.policy.set_rules(rules)
|
self.policy.set_rules(rules)
|
||||||
|
|
||||||
|
m_tiller = mock_tiller.return_value
|
||||||
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
|
||||||
mock_test_release_for_success.return_value = True
|
mock_test_release_for_success.return_value = True
|
||||||
release = 'fake-release'
|
release = 'fake-release'
|
||||||
resp = self.app.simulate_get(
|
resp = self.app.simulate_get(
|
||||||
'/api/v1.0/test/{}'.format(release), query_string='cleanup=true')
|
'/api/v1.0/test/{}'.format(release), query_string='cleanup=true')
|
||||||
mock_test_release_for_success.assert_has_calls(
|
mock_test_release_for_success.assert_has_calls(
|
||||||
[mock.call(mock_tiller.return_value, release, cleanup=True)])
|
[mock.call(m_tiller, release, cleanup=True)])
|
||||||
self.assertEqual(200, resp.status_code)
|
self.assertEqual(200, resp.status_code)
|
||||||
self.assertEqual('MESSAGE: Test Pass',
|
self.assertEqual('MESSAGE: Test Pass',
|
||||||
json.loads(resp.text)['message'])
|
json.loads(resp.text)['message'])
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
|
|
||||||
@test_utils.attr(type=['negative'])
|
@test_utils.attr(type=['negative'])
|
||||||
class TestReleasesManifestControllerNegativeTest(base.BaseControllerTest):
|
class TestReleasesManifestControllerNegativeTest(base.BaseControllerTest):
|
||||||
|
|
||||||
@mock.patch.object(test, 'Manifest')
|
@mock.patch.object(test, 'Manifest')
|
||||||
@mock.patch.object(test, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
@mock.patch.object(test, 'test_release_for_success')
|
@mock.patch.object(test, 'test_release_for_success')
|
||||||
def test_test_controller_tiller_exc_returns_500(
|
def test_test_controller_tiller_exc_returns_500(
|
||||||
self, mock_test_release_for_success, mock_tiller, _):
|
self, mock_test_release_for_success, mock_tiller, _):
|
||||||
|
@ -121,8 +138,9 @@ class TestReleasesManifestControllerNegativeTest(base.BaseControllerTest):
|
||||||
self.assertEqual(500, resp.status_code)
|
self.assertEqual(500, resp.status_code)
|
||||||
|
|
||||||
@mock.patch.object(test, 'Manifest')
|
@mock.patch.object(test, 'Manifest')
|
||||||
@mock.patch.object(test, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_test_controller_validation_failure_returns_400(self, *_):
|
def test_test_controller_validation_failure_returns_400(
|
||||||
|
self, mock_tiller, mock_manifest):
|
||||||
rules = {'armada:test_manifest': '@'}
|
rules = {'armada:test_manifest': '@'}
|
||||||
self.policy.set_rules(rules)
|
self.policy.set_rules(rules)
|
||||||
|
|
||||||
|
@ -138,6 +156,9 @@ class TestReleasesManifestControllerNegativeTest(base.BaseControllerTest):
|
||||||
resp = self.app.simulate_post('/api/v1.0/tests', body=invalid_payload)
|
resp = self.app.simulate_post('/api/v1.0/tests', body=invalid_payload)
|
||||||
self.assertEqual(400, resp.status_code)
|
self.assertEqual(400, resp.status_code)
|
||||||
|
|
||||||
|
m_tiller = mock_tiller.return_value
|
||||||
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
|
||||||
resp_body = json.loads(resp.text)
|
resp_body = json.loads(resp.text)
|
||||||
self.assertEqual(400, resp_body['code'])
|
self.assertEqual(400, resp_body['code'])
|
||||||
self.assertEqual(1, resp_body['details']['errorCount'])
|
self.assertEqual(1, resp_body['details']['errorCount'])
|
||||||
|
@ -158,11 +179,12 @@ class TestReleasesManifestControllerNegativeTest(base.BaseControllerTest):
|
||||||
}, resp_body['details']['messageList'])
|
}, resp_body['details']['messageList'])
|
||||||
self.assertEqual(('Failed to validate documents or generate Armada '
|
self.assertEqual(('Failed to validate documents or generate Armada '
|
||||||
'Manifest from documents.'), resp_body['message'])
|
'Manifest from documents.'), resp_body['message'])
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
@mock.patch('armada.utils.validate.Manifest')
|
@mock.patch('armada.utils.validate.Manifest')
|
||||||
@mock.patch.object(test, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_test_controller_manifest_failure_returns_400(
|
def test_test_controller_manifest_failure_returns_400(
|
||||||
self, _, mock_manifest):
|
self, mock_tiller, mock_manifest):
|
||||||
rules = {'armada:test_manifest': '@'}
|
rules = {'armada:test_manifest': '@'}
|
||||||
self.policy.set_rules(rules)
|
self.policy.set_rules(rules)
|
||||||
|
|
||||||
|
@ -177,6 +199,9 @@ class TestReleasesManifestControllerNegativeTest(base.BaseControllerTest):
|
||||||
resp = self.app.simulate_post('/api/v1.0/tests', body=payload)
|
resp = self.app.simulate_post('/api/v1.0/tests', body=payload)
|
||||||
self.assertEqual(400, resp.status_code)
|
self.assertEqual(400, resp.status_code)
|
||||||
|
|
||||||
|
m_tiller = mock_tiller.return_value
|
||||||
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
|
||||||
resp_body = json.loads(resp.text)
|
resp_body = json.loads(resp.text)
|
||||||
self.assertEqual(400, resp_body['code'])
|
self.assertEqual(400, resp_body['code'])
|
||||||
self.assertEqual(1, resp_body['details']['errorCount'])
|
self.assertEqual(1, resp_body['details']['errorCount'])
|
||||||
|
@ -195,12 +220,13 @@ class TestReleasesManifestControllerNegativeTest(base.BaseControllerTest):
|
||||||
}], resp_body['details']['messageList'])
|
}], resp_body['details']['messageList'])
|
||||||
self.assertEqual(('Failed to validate documents or generate Armada '
|
self.assertEqual(('Failed to validate documents or generate Armada '
|
||||||
'Manifest from documents.'), resp_body['message'])
|
'Manifest from documents.'), resp_body['message'])
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
|
|
||||||
@test_utils.attr(type=['negative'])
|
@test_utils.attr(type=['negative'])
|
||||||
class TestReleasesReleaseNameControllerNegativeTest(base.BaseControllerTest):
|
class TestReleasesReleaseNameControllerNegativeTest(base.BaseControllerTest):
|
||||||
|
|
||||||
@mock.patch.object(test, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
@mock.patch.object(test, 'test_release_for_success')
|
@mock.patch.object(test, 'test_release_for_success')
|
||||||
def test_test_controller_tiller_exc_returns_500(
|
def test_test_controller_tiller_exc_returns_500(
|
||||||
self, mock_test_release_for_success, mock_tiller):
|
self, mock_test_release_for_success, mock_tiller):
|
||||||
|
|
|
@ -16,7 +16,7 @@ import mock
|
||||||
|
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
|
|
||||||
from armada.api.controller import tiller as tiller_controller
|
from armada import api
|
||||||
from armada.common.policies import base as policy_base
|
from armada.common.policies import base as policy_base
|
||||||
from armada.tests import test_utils
|
from armada.tests import test_utils
|
||||||
from armada.tests.unit.api import base
|
from armada.tests.unit.api import base
|
||||||
|
@ -26,14 +26,16 @@ CONF = cfg.CONF
|
||||||
|
|
||||||
class TillerControllerTest(base.BaseControllerTest):
|
class TillerControllerTest(base.BaseControllerTest):
|
||||||
|
|
||||||
@mock.patch.object(tiller_controller, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_get_tiller_status(self, mock_tiller):
|
def test_get_tiller_status(self, mock_tiller):
|
||||||
"""Tests GET /api/v1.0/status endpoint."""
|
"""Tests GET /api/v1.0/status endpoint."""
|
||||||
rules = {'tiller:get_status': '@'}
|
rules = {'tiller:get_status': '@'}
|
||||||
self.policy.set_rules(rules)
|
self.policy.set_rules(rules)
|
||||||
|
|
||||||
mock_tiller.return_value.tiller_status.return_value = 'fake_status'
|
m_tiller = mock_tiller.return_value
|
||||||
mock_tiller.return_value.tiller_version.return_value = 'fake_version'
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
m_tiller.tiller_status.return_value = 'fake_status'
|
||||||
|
m_tiller.tiller_version.return_value = 'fake_version'
|
||||||
|
|
||||||
result = self.app.simulate_get('/api/v1.0/status')
|
result = self.app.simulate_get('/api/v1.0/status')
|
||||||
expected = {
|
expected = {
|
||||||
|
@ -48,16 +50,20 @@ class TillerControllerTest(base.BaseControllerTest):
|
||||||
mock_tiller.assert_called_once_with(
|
mock_tiller.assert_called_once_with(
|
||||||
tiller_host=None,
|
tiller_host=None,
|
||||||
tiller_port=44134,
|
tiller_port=44134,
|
||||||
tiller_namespace='kube-system')
|
tiller_namespace='kube-system',
|
||||||
|
dry_run=None)
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
@mock.patch.object(tiller_controller, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_get_tiller_status_with_params(self, mock_tiller):
|
def test_get_tiller_status_with_params(self, mock_tiller):
|
||||||
"""Tests GET /api/v1.0/status endpoint with query parameters."""
|
"""Tests GET /api/v1.0/status endpoint with query parameters."""
|
||||||
rules = {'tiller:get_status': '@'}
|
rules = {'tiller:get_status': '@'}
|
||||||
self.policy.set_rules(rules)
|
self.policy.set_rules(rules)
|
||||||
|
|
||||||
mock_tiller.return_value.tiller_status.return_value = 'fake_status'
|
m_tiller = mock_tiller.return_value
|
||||||
mock_tiller.return_value.tiller_version.return_value = 'fake_version'
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
m_tiller.tiller_status.return_value = 'fake_status'
|
||||||
|
m_tiller.tiller_version.return_value = 'fake_version'
|
||||||
|
|
||||||
result = self.app.simulate_get(
|
result = self.app.simulate_get(
|
||||||
'/api/v1.0/status',
|
'/api/v1.0/status',
|
||||||
|
@ -79,9 +85,11 @@ class TillerControllerTest(base.BaseControllerTest):
|
||||||
mock_tiller.assert_called_once_with(
|
mock_tiller.assert_called_once_with(
|
||||||
tiller_host='fake_host',
|
tiller_host='fake_host',
|
||||||
tiller_port=98765,
|
tiller_port=98765,
|
||||||
tiller_namespace='fake_ns')
|
tiller_namespace='fake_ns',
|
||||||
|
dry_run=None)
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
@mock.patch.object(tiller_controller, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_tiller_releases(self, mock_tiller):
|
def test_tiller_releases(self, mock_tiller):
|
||||||
"""Tests GET /api/v1.0/releases endpoint."""
|
"""Tests GET /api/v1.0/releases endpoint."""
|
||||||
rules = {'tiller:get_release': '@'}
|
rules = {'tiller:get_release': '@'}
|
||||||
|
@ -92,7 +100,9 @@ class TillerControllerTest(base.BaseControllerTest):
|
||||||
fake_release.configure_mock(name=name)
|
fake_release.configure_mock(name=name)
|
||||||
return fake_release
|
return fake_release
|
||||||
|
|
||||||
mock_tiller.return_value.list_releases.return_value = [
|
m_tiller = mock_tiller.return_value
|
||||||
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
m_tiller.list_releases.return_value = [
|
||||||
_get_fake_release('foo', 'bar'),
|
_get_fake_release('foo', 'bar'),
|
||||||
_get_fake_release('baz', 'qux')
|
_get_fake_release('baz', 'qux')
|
||||||
]
|
]
|
||||||
|
@ -109,10 +119,12 @@ class TillerControllerTest(base.BaseControllerTest):
|
||||||
mock_tiller.assert_called_once_with(
|
mock_tiller.assert_called_once_with(
|
||||||
tiller_host=None,
|
tiller_host=None,
|
||||||
tiller_port=44134,
|
tiller_port=44134,
|
||||||
tiller_namespace='kube-system')
|
tiller_namespace='kube-system',
|
||||||
mock_tiller.return_value.list_releases.assert_called_once_with()
|
dry_run=None)
|
||||||
|
m_tiller.list_releases.assert_called_once_with()
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
@mock.patch.object(tiller_controller, 'Tiller')
|
@mock.patch.object(api, 'Tiller')
|
||||||
def test_tiller_releases_with_params(self, mock_tiller):
|
def test_tiller_releases_with_params(self, mock_tiller):
|
||||||
"""Tests GET /api/v1.0/releases endpoint with query parameters."""
|
"""Tests GET /api/v1.0/releases endpoint with query parameters."""
|
||||||
rules = {'tiller:get_release': '@'}
|
rules = {'tiller:get_release': '@'}
|
||||||
|
@ -123,7 +135,9 @@ class TillerControllerTest(base.BaseControllerTest):
|
||||||
fake_release.configure_mock(name=name)
|
fake_release.configure_mock(name=name)
|
||||||
return fake_release
|
return fake_release
|
||||||
|
|
||||||
mock_tiller.return_value.list_releases.return_value = [
|
m_tiller = mock_tiller.return_value
|
||||||
|
m_tiller.__enter__.return_value = m_tiller
|
||||||
|
m_tiller.list_releases.return_value = [
|
||||||
_get_fake_release('foo', 'bar'),
|
_get_fake_release('foo', 'bar'),
|
||||||
_get_fake_release('baz', 'qux')
|
_get_fake_release('baz', 'qux')
|
||||||
]
|
]
|
||||||
|
@ -147,8 +161,10 @@ class TillerControllerTest(base.BaseControllerTest):
|
||||||
mock_tiller.assert_called_once_with(
|
mock_tiller.assert_called_once_with(
|
||||||
tiller_host='fake_host',
|
tiller_host='fake_host',
|
||||||
tiller_port=98765,
|
tiller_port=98765,
|
||||||
tiller_namespace='fake_ns')
|
tiller_namespace='fake_ns',
|
||||||
mock_tiller.return_value.list_releases.assert_called_once_with()
|
dry_run=None)
|
||||||
|
m_tiller.list_releases.assert_called_once_with()
|
||||||
|
m_tiller.__exit__.assert_called()
|
||||||
|
|
||||||
|
|
||||||
class TillerControllerNegativeRbacTest(base.BaseControllerTest):
|
class TillerControllerNegativeRbacTest(base.BaseControllerTest):
|
||||||
|
|
|
@ -281,24 +281,18 @@ class ArmadaHandlerTestCase(base.ArmadaTestCase):
|
||||||
self.assertEqual(expected_config, armada_obj.manifest)
|
self.assertEqual(expected_config, armada_obj.manifest)
|
||||||
|
|
||||||
@mock.patch.object(armada, 'source')
|
@mock.patch.object(armada, 'source')
|
||||||
@mock.patch('armada.handlers.armada.Tiller')
|
def test_pre_flight_ops(self, mock_source):
|
||||||
def test_pre_flight_ops(self, mock_tiller, mock_source):
|
|
||||||
"""Test pre-flight checks and operations."""
|
"""Test pre-flight checks and operations."""
|
||||||
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
||||||
armada_obj = armada.Armada(yaml_documents)
|
m_tiller = mock.Mock()
|
||||||
|
m_tiller.tiller_status.return_value = True
|
||||||
|
armada_obj = armada.Armada(yaml_documents, m_tiller)
|
||||||
|
|
||||||
# Mock methods called by `pre_flight_ops()`.
|
# Mock methods called by `pre_flight_ops()`.
|
||||||
m_tiller = mock_tiller.return_value
|
|
||||||
m_tiller.tiller_status.return_value = True
|
|
||||||
mock_source.git_clone.return_value = CHART_SOURCES[0][0]
|
mock_source.git_clone.return_value = CHART_SOURCES[0][0]
|
||||||
|
|
||||||
self._test_pre_flight_ops(armada_obj)
|
self._test_pre_flight_ops(armada_obj)
|
||||||
|
|
||||||
mock_tiller.assert_called_once_with(
|
|
||||||
tiller_host=None,
|
|
||||||
tiller_namespace='kube-system',
|
|
||||||
tiller_port=44134,
|
|
||||||
dry_run=False)
|
|
||||||
mock_source.git_clone.assert_called_once_with(
|
mock_source.git_clone.assert_called_once_with(
|
||||||
'git://github.com/dummy/armada',
|
'git://github.com/dummy/armada',
|
||||||
'master',
|
'master',
|
||||||
|
@ -306,17 +300,17 @@ class ArmadaHandlerTestCase(base.ArmadaTestCase):
|
||||||
proxy_server=None)
|
proxy_server=None)
|
||||||
|
|
||||||
@mock.patch.object(armada, 'source')
|
@mock.patch.object(armada, 'source')
|
||||||
@mock.patch('armada.handlers.armada.Tiller')
|
def test_post_flight_ops(self, mock_source):
|
||||||
def test_post_flight_ops(self, mock_tiller, mock_source):
|
|
||||||
"""Test post-flight operations."""
|
"""Test post-flight operations."""
|
||||||
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
||||||
armada_obj = armada.Armada(yaml_documents)
|
|
||||||
|
|
||||||
# Mock methods called by `pre_flight_ops()`.
|
# Mock methods called by `pre_flight_ops()`.
|
||||||
m_tiller = mock_tiller.return_value
|
m_tiller = mock.Mock()
|
||||||
m_tiller.tiller_status.return_value = True
|
m_tiller.tiller_status.return_value = True
|
||||||
mock_source.git_clone.return_value = CHART_SOURCES[0][0]
|
mock_source.git_clone.return_value = CHART_SOURCES[0][0]
|
||||||
|
|
||||||
|
armada_obj = armada.Armada(yaml_documents, m_tiller)
|
||||||
|
|
||||||
self._test_pre_flight_ops(armada_obj)
|
self._test_pre_flight_ops(armada_obj)
|
||||||
|
|
||||||
armada_obj.post_flight_ops()
|
armada_obj.post_flight_ops()
|
||||||
|
@ -343,22 +337,22 @@ class ArmadaHandlerTestCase(base.ArmadaTestCase):
|
||||||
@mock.patch.object(armada.Armada, 'post_flight_ops')
|
@mock.patch.object(armada.Armada, 'post_flight_ops')
|
||||||
@mock.patch.object(armada.Armada, 'pre_flight_ops')
|
@mock.patch.object(armada.Armada, 'pre_flight_ops')
|
||||||
@mock.patch('armada.handlers.chart_deploy.ChartBuilder')
|
@mock.patch('armada.handlers.chart_deploy.ChartBuilder')
|
||||||
@mock.patch('armada.handlers.armada.Tiller')
|
|
||||||
@mock.patch.object(chart_deploy, 'test_release_for_success')
|
@mock.patch.object(chart_deploy, 'test_release_for_success')
|
||||||
def _do_test(mock_test_release_for_success, mock_tiller,
|
def _do_test(mock_test_release_for_success, mock_chartbuilder,
|
||||||
mock_chartbuilder, mock_pre_flight, mock_post_flight):
|
mock_pre_flight, mock_post_flight):
|
||||||
# Instantiate Armada object.
|
# Instantiate Armada object.
|
||||||
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
||||||
armada_obj = armada.Armada(yaml_documents)
|
|
||||||
|
m_tiller = mock.MagicMock()
|
||||||
|
m_tiller.list_releases.return_value = known_releases
|
||||||
|
|
||||||
|
armada_obj = armada.Armada(yaml_documents, m_tiller)
|
||||||
armada_obj.chart_deploy.get_diff = mock.Mock()
|
armada_obj.chart_deploy.get_diff = mock.Mock()
|
||||||
|
|
||||||
chart_group = armada_obj.manifest['armada']['chart_groups'][0]
|
chart_group = armada_obj.manifest['armada']['chart_groups'][0]
|
||||||
charts = chart_group['chart_group']
|
charts = chart_group['chart_group']
|
||||||
cg_test_all_charts = chart_group.get('test_charts', True)
|
cg_test_all_charts = chart_group.get('test_charts', True)
|
||||||
|
|
||||||
m_tiller = mock_tiller.return_value
|
|
||||||
m_tiller.list_releases.return_value = known_releases
|
|
||||||
|
|
||||||
if test_failure_to_run:
|
if test_failure_to_run:
|
||||||
|
|
||||||
def fail(tiller, release, timeout=None, cleanup=False):
|
def fail(tiller, release, timeout=None, cleanup=False):
|
||||||
|
@ -663,30 +657,26 @@ class ArmadaHandlerTestCase(base.ArmadaTestCase):
|
||||||
class ArmadaNegativeHandlerTestCase(base.ArmadaTestCase):
|
class ArmadaNegativeHandlerTestCase(base.ArmadaTestCase):
|
||||||
|
|
||||||
@mock.patch.object(armada, 'source')
|
@mock.patch.object(armada, 'source')
|
||||||
@mock.patch('armada.handlers.armada.Tiller')
|
def test_armada_get_manifest_exception(self, mock_source):
|
||||||
def test_armada_get_manifest_exception(self, mock_tiller, mock_source):
|
|
||||||
"""Test armada handling with invalid manifest."""
|
"""Test armada handling with invalid manifest."""
|
||||||
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
||||||
error_re = ('Documents must be a list of documents with at least one '
|
error_re = ('Documents must be a list of documents with at least one '
|
||||||
'of each of the following schemas: .*')
|
'of each of the following schemas: .*')
|
||||||
self.assertRaisesRegexp(ManifestException, error_re, armada.Armada,
|
self.assertRaisesRegexp(ManifestException, error_re, armada.Armada,
|
||||||
yaml_documents[:1])
|
yaml_documents[:1], mock.MagicMock())
|
||||||
|
|
||||||
@mock.patch.object(armada, 'source')
|
@mock.patch.object(armada, 'source')
|
||||||
@mock.patch('armada.handlers.armada.Tiller')
|
def test_armada_override_exception(self, mock_source):
|
||||||
def test_armada_override_exception(self, mock_tiller, mock_source):
|
|
||||||
"""Test Armada checks with invalid chart override."""
|
"""Test Armada checks with invalid chart override."""
|
||||||
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
||||||
override = ('chart:example-chart-2:name=' 'overridden', )
|
override = ('chart:example-chart-2:name=' 'overridden', )
|
||||||
|
|
||||||
error_re = ('is not a valid override statement')
|
error_re = ('is not a valid override statement')
|
||||||
with self.assertRaisesRegexp(InvalidOverrideValueException, error_re):
|
with self.assertRaisesRegexp(InvalidOverrideValueException, error_re):
|
||||||
armada.Armada(yaml_documents, set_ovr=override)
|
armada.Armada(yaml_documents, mock.MagicMock(), set_ovr=override)
|
||||||
|
|
||||||
@mock.patch.object(armada, 'source')
|
@mock.patch.object(armada, 'source')
|
||||||
@mock.patch('armada.handlers.armada.Tiller')
|
def test_armada_manifest_exception_override_none(self, mock_source):
|
||||||
def test_armada_manifest_exception_override_none(self, mock_tiller,
|
|
||||||
mock_source):
|
|
||||||
"""Test Armada checks with invalid manifest."""
|
"""Test Armada checks with invalid manifest."""
|
||||||
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
yaml_documents = list(yaml.safe_load_all(TEST_YAML))
|
||||||
example_document = [
|
example_document = [
|
||||||
|
@ -697,4 +687,4 @@ class ArmadaNegativeHandlerTestCase(base.ArmadaTestCase):
|
||||||
|
|
||||||
error_re = ('Invalid document .*')
|
error_re = ('Invalid document .*')
|
||||||
with self.assertRaisesRegexp(InvalidManifestException, error_re):
|
with self.assertRaisesRegexp(InvalidManifestException, error_re):
|
||||||
armada.Armada(yaml_documents, set_ovr=None)
|
armada.Armada(yaml_documents, mock.MagicMock(), set_ovr=None)
|
||||||
|
|
|
@ -33,7 +33,7 @@ class TillerTestCase(base.ArmadaTestCase):
|
||||||
def test_install_release(self, mock_stub, mock_install_request,
|
def test_install_release(self, mock_stub, mock_install_request,
|
||||||
mock_config, mock_grpc, mock_k8s, mock_ip):
|
mock_config, mock_grpc, mock_k8s, mock_ip):
|
||||||
# instantiate Tiller object
|
# instantiate Tiller object
|
||||||
mock_grpc.insecure_channel.return_value = None
|
mock_grpc.insecure_channel.return_value = mock.Mock()
|
||||||
mock_ip.return_value = '0.0.0.0'
|
mock_ip.return_value = '0.0.0.0'
|
||||||
tiller_obj = tiller.Tiller()
|
tiller_obj = tiller.Tiller()
|
||||||
assert tiller_obj._get_tiller_ip() == '0.0.0.0'
|
assert tiller_obj._get_tiller_ip() == '0.0.0.0'
|
||||||
|
@ -74,12 +74,14 @@ class TillerTestCase(base.ArmadaTestCase):
|
||||||
mock_port.return_value = mock.sentinel.port
|
mock_port.return_value = mock.sentinel.port
|
||||||
mock_ip.return_value = mock.sentinel.ip
|
mock_ip.return_value = mock.sentinel.ip
|
||||||
|
|
||||||
|
mock_channel = mock.Mock()
|
||||||
|
|
||||||
# instantiate Tiller object
|
# instantiate Tiller object
|
||||||
mock_grpc.insecure_channel.return_value = 'connected'
|
mock_grpc.insecure_channel.return_value = mock_channel
|
||||||
tiller_obj = tiller.Tiller()
|
tiller_obj = tiller.Tiller()
|
||||||
|
|
||||||
self.assertIsNotNone(tiller_obj.channel)
|
self.assertIsNotNone(tiller_obj.channel)
|
||||||
self.assertEqual('connected', tiller_obj.channel)
|
self.assertEqual(mock_channel, tiller_obj.channel)
|
||||||
|
|
||||||
mock_grpc.insecure_channel.assert_called_once_with(
|
mock_grpc.insecure_channel.assert_called_once_with(
|
||||||
'%s:%s' % (str(mock.sentinel.ip), str(mock.sentinel.port)),
|
'%s:%s' % (str(mock.sentinel.ip), str(mock.sentinel.port)),
|
||||||
|
|
|
@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
|
||||||
from google.protobuf import message as _message
|
from google.protobuf import message as _message
|
||||||
from google.protobuf import reflection as _reflection
|
from google.protobuf import reflection as _reflection
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
_sym_db = _symbol_database.Default()
|
||||||
|
@ -23,6 +22,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
name='hapi/chart/chart.proto',
|
name='hapi/chart/chart.proto',
|
||||||
package='hapi.chart',
|
package='hapi.chart',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
|
serialized_options=_b('Z\005chart'),
|
||||||
serialized_pb=_b('\n\x16hapi/chart/chart.proto\x12\nhapi.chart\x1a\x17hapi/chart/config.proto\x1a\x19hapi/chart/metadata.proto\x1a\x19hapi/chart/template.proto\x1a\x19google/protobuf/any.proto\"\xca\x01\n\x05\x43hart\x12&\n\x08metadata\x18\x01 \x01(\x0b\x32\x14.hapi.chart.Metadata\x12\'\n\ttemplates\x18\x02 \x03(\x0b\x32\x14.hapi.chart.Template\x12\'\n\x0c\x64\x65pendencies\x18\x03 \x03(\x0b\x32\x11.hapi.chart.Chart\x12\"\n\x06values\x18\x04 \x01(\x0b\x32\x12.hapi.chart.Config\x12#\n\x05\x66iles\x18\x05 \x03(\x0b\x32\x14.google.protobuf.AnyB\x07Z\x05\x63hartb\x06proto3')
|
serialized_pb=_b('\n\x16hapi/chart/chart.proto\x12\nhapi.chart\x1a\x17hapi/chart/config.proto\x1a\x19hapi/chart/metadata.proto\x1a\x19hapi/chart/template.proto\x1a\x19google/protobuf/any.proto\"\xca\x01\n\x05\x43hart\x12&\n\x08metadata\x18\x01 \x01(\x0b\x32\x14.hapi.chart.Metadata\x12\'\n\ttemplates\x18\x02 \x03(\x0b\x32\x14.hapi.chart.Template\x12\'\n\x0c\x64\x65pendencies\x18\x03 \x03(\x0b\x32\x11.hapi.chart.Chart\x12\"\n\x06values\x18\x04 \x01(\x0b\x32\x12.hapi.chart.Config\x12#\n\x05\x66iles\x18\x05 \x03(\x0b\x32\x14.google.protobuf.AnyB\x07Z\x05\x63hartb\x06proto3')
|
||||||
,
|
,
|
||||||
dependencies=[hapi_dot_chart_dot_config__pb2.DESCRIPTOR,hapi_dot_chart_dot_metadata__pb2.DESCRIPTOR,hapi_dot_chart_dot_template__pb2.DESCRIPTOR,google_dot_protobuf_dot_any__pb2.DESCRIPTOR,])
|
dependencies=[hapi_dot_chart_dot_config__pb2.DESCRIPTOR,hapi_dot_chart_dot_metadata__pb2.DESCRIPTOR,hapi_dot_chart_dot_template__pb2.DESCRIPTOR,google_dot_protobuf_dot_any__pb2.DESCRIPTOR,])
|
||||||
|
@ -43,42 +43,42 @@ _CHART = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='templates', full_name='hapi.chart.Chart.templates', index=1,
|
name='templates', full_name='hapi.chart.Chart.templates', index=1,
|
||||||
number=2, type=11, cpp_type=10, label=3,
|
number=2, type=11, cpp_type=10, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='dependencies', full_name='hapi.chart.Chart.dependencies', index=2,
|
name='dependencies', full_name='hapi.chart.Chart.dependencies', index=2,
|
||||||
number=3, type=11, cpp_type=10, label=3,
|
number=3, type=11, cpp_type=10, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='values', full_name='hapi.chart.Chart.values', index=3,
|
name='values', full_name='hapi.chart.Chart.values', index=3,
|
||||||
number=4, type=11, cpp_type=10, label=1,
|
number=4, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='files', full_name='hapi.chart.Chart.files', index=4,
|
name='files', full_name='hapi.chart.Chart.files', index=4,
|
||||||
number=5, type=11, cpp_type=10, label=3,
|
number=5, type=11, cpp_type=10, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
nested_types=[],
|
nested_types=[],
|
||||||
enum_types=[
|
enum_types=[
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -104,6 +104,5 @@ Chart = _reflection.GeneratedProtocolMessageType('Chart', (_message.Message,), d
|
||||||
_sym_db.RegisterMessage(Chart)
|
_sym_db.RegisterMessage(Chart)
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR.has_options = True
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\005chart'))
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|
|
@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
|
||||||
from google.protobuf import message as _message
|
from google.protobuf import message as _message
|
||||||
from google.protobuf import reflection as _reflection
|
from google.protobuf import reflection as _reflection
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
_sym_db = _symbol_database.Default()
|
||||||
|
@ -19,6 +18,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
name='hapi/chart/config.proto',
|
name='hapi/chart/config.proto',
|
||||||
package='hapi.chart',
|
package='hapi.chart',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
|
serialized_options=_b('Z\005chart'),
|
||||||
serialized_pb=_b('\n\x17hapi/chart/config.proto\x12\nhapi.chart\"\x87\x01\n\x06\x43onfig\x12\x0b\n\x03raw\x18\x01 \x01(\t\x12.\n\x06values\x18\x02 \x03(\x0b\x32\x1e.hapi.chart.Config.ValuesEntry\x1a@\n\x0bValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12 \n\x05value\x18\x02 \x01(\x0b\x32\x11.hapi.chart.Value:\x02\x38\x01\"\x16\n\x05Value\x12\r\n\x05value\x18\x01 \x01(\tB\x07Z\x05\x63hartb\x06proto3')
|
serialized_pb=_b('\n\x17hapi/chart/config.proto\x12\nhapi.chart\"\x87\x01\n\x06\x43onfig\x12\x0b\n\x03raw\x18\x01 \x01(\t\x12.\n\x06values\x18\x02 \x03(\x0b\x32\x1e.hapi.chart.Config.ValuesEntry\x1a@\n\x0bValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12 \n\x05value\x18\x02 \x01(\x0b\x32\x11.hapi.chart.Value:\x02\x38\x01\"\x16\n\x05Value\x12\r\n\x05value\x18\x01 \x01(\tB\x07Z\x05\x63hartb\x06proto3')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -38,21 +38,21 @@ _CONFIG_VALUESENTRY = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='value', full_name='hapi.chart.Config.ValuesEntry.value', index=1,
|
name='value', full_name='hapi.chart.Config.ValuesEntry.value', index=1,
|
||||||
number=2, type=11, cpp_type=10, label=1,
|
number=2, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
nested_types=[],
|
nested_types=[],
|
||||||
enum_types=[
|
enum_types=[
|
||||||
],
|
],
|
||||||
options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
|
serialized_options=_b('8\001'),
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -75,21 +75,21 @@ _CONFIG = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='values', full_name='hapi.chart.Config.values', index=1,
|
name='values', full_name='hapi.chart.Config.values', index=1,
|
||||||
number=2, type=11, cpp_type=10, label=3,
|
number=2, type=11, cpp_type=10, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
nested_types=[_CONFIG_VALUESENTRY, ],
|
nested_types=[_CONFIG_VALUESENTRY, ],
|
||||||
enum_types=[
|
enum_types=[
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -113,14 +113,14 @@ _VALUE = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
nested_types=[],
|
nested_types=[],
|
||||||
enum_types=[
|
enum_types=[
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -160,8 +160,6 @@ Value = _reflection.GeneratedProtocolMessageType('Value', (_message.Message,), d
|
||||||
_sym_db.RegisterMessage(Value)
|
_sym_db.RegisterMessage(Value)
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR.has_options = True
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\005chart'))
|
_CONFIG_VALUESENTRY._options = None
|
||||||
_CONFIG_VALUESENTRY.has_options = True
|
|
||||||
_CONFIG_VALUESENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|
|
@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
|
||||||
from google.protobuf import message as _message
|
from google.protobuf import message as _message
|
||||||
from google.protobuf import reflection as _reflection
|
from google.protobuf import reflection as _reflection
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
_sym_db = _symbol_database.Default()
|
||||||
|
@ -19,6 +18,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
name='hapi/chart/metadata.proto',
|
name='hapi/chart/metadata.proto',
|
||||||
package='hapi.chart',
|
package='hapi.chart',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
|
serialized_options=_b('Z\005chart'),
|
||||||
serialized_pb=_b('\n\x19hapi/chart/metadata.proto\x12\nhapi.chart\"6\n\nMaintainer\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\"\xd5\x03\n\x08Metadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04home\x18\x02 \x01(\t\x12\x0f\n\x07sources\x18\x03 \x03(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x10\n\x08keywords\x18\x06 \x03(\t\x12+\n\x0bmaintainers\x18\x07 \x03(\x0b\x32\x16.hapi.chart.Maintainer\x12\x0e\n\x06\x65ngine\x18\x08 \x01(\t\x12\x0c\n\x04icon\x18\t \x01(\t\x12\x12\n\napiVersion\x18\n \x01(\t\x12\x11\n\tcondition\x18\x0b \x01(\t\x12\x0c\n\x04tags\x18\x0c \x01(\t\x12\x12\n\nappVersion\x18\r \x01(\t\x12\x12\n\ndeprecated\x18\x0e \x01(\x08\x12\x15\n\rtillerVersion\x18\x0f \x01(\t\x12:\n\x0b\x61nnotations\x18\x10 \x03(\x0b\x32%.hapi.chart.Metadata.AnnotationsEntry\x12\x13\n\x0bkubeVersion\x18\x11 \x01(\t\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\" \n\x06\x45ngine\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05GOTPL\x10\x01\x42\x07Z\x05\x63hartb\x06proto3')
|
serialized_pb=_b('\n\x19hapi/chart/metadata.proto\x12\nhapi.chart\"6\n\nMaintainer\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\"\xd5\x03\n\x08Metadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04home\x18\x02 \x01(\t\x12\x0f\n\x07sources\x18\x03 \x03(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x10\n\x08keywords\x18\x06 \x03(\t\x12+\n\x0bmaintainers\x18\x07 \x03(\x0b\x32\x16.hapi.chart.Maintainer\x12\x0e\n\x06\x65ngine\x18\x08 \x01(\t\x12\x0c\n\x04icon\x18\t \x01(\t\x12\x12\n\napiVersion\x18\n \x01(\t\x12\x11\n\tcondition\x18\x0b \x01(\t\x12\x0c\n\x04tags\x18\x0c \x01(\t\x12\x12\n\nappVersion\x18\r \x01(\t\x12\x12\n\ndeprecated\x18\x0e \x01(\x08\x12\x15\n\rtillerVersion\x18\x0f \x01(\t\x12:\n\x0b\x61nnotations\x18\x10 \x03(\x0b\x32%.hapi.chart.Metadata.AnnotationsEntry\x12\x13\n\x0bkubeVersion\x18\x11 \x01(\t\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\" \n\x06\x45ngine\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05GOTPL\x10\x01\x42\x07Z\x05\x63hartb\x06proto3')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -32,15 +32,15 @@ _METADATA_ENGINE = _descriptor.EnumDescriptor(
|
||||||
values=[
|
values=[
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='UNKNOWN', index=0, number=0,
|
name='UNKNOWN', index=0, number=0,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='GOTPL', index=1, number=1,
|
name='GOTPL', index=1, number=1,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
],
|
],
|
||||||
containing_type=None,
|
containing_type=None,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
serialized_start=535,
|
serialized_start=535,
|
||||||
serialized_end=567,
|
serialized_end=567,
|
||||||
)
|
)
|
||||||
|
@ -60,28 +60,28 @@ _MAINTAINER = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='email', full_name='hapi.chart.Maintainer.email', index=1,
|
name='email', full_name='hapi.chart.Maintainer.email', index=1,
|
||||||
number=2, type=9, cpp_type=9, label=1,
|
number=2, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='url', full_name='hapi.chart.Maintainer.url', index=2,
|
name='url', full_name='hapi.chart.Maintainer.url', index=2,
|
||||||
number=3, type=9, cpp_type=9, label=1,
|
number=3, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
nested_types=[],
|
nested_types=[],
|
||||||
enum_types=[
|
enum_types=[
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -105,21 +105,21 @@ _METADATA_ANNOTATIONSENTRY = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='value', full_name='hapi.chart.Metadata.AnnotationsEntry.value', index=1,
|
name='value', full_name='hapi.chart.Metadata.AnnotationsEntry.value', index=1,
|
||||||
number=2, type=9, cpp_type=9, label=1,
|
number=2, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
nested_types=[],
|
nested_types=[],
|
||||||
enum_types=[
|
enum_types=[
|
||||||
],
|
],
|
||||||
options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
|
serialized_options=_b('8\001'),
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -142,119 +142,119 @@ _METADATA = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='home', full_name='hapi.chart.Metadata.home', index=1,
|
name='home', full_name='hapi.chart.Metadata.home', index=1,
|
||||||
number=2, type=9, cpp_type=9, label=1,
|
number=2, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='sources', full_name='hapi.chart.Metadata.sources', index=2,
|
name='sources', full_name='hapi.chart.Metadata.sources', index=2,
|
||||||
number=3, type=9, cpp_type=9, label=3,
|
number=3, type=9, cpp_type=9, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='version', full_name='hapi.chart.Metadata.version', index=3,
|
name='version', full_name='hapi.chart.Metadata.version', index=3,
|
||||||
number=4, type=9, cpp_type=9, label=1,
|
number=4, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='description', full_name='hapi.chart.Metadata.description', index=4,
|
name='description', full_name='hapi.chart.Metadata.description', index=4,
|
||||||
number=5, type=9, cpp_type=9, label=1,
|
number=5, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='keywords', full_name='hapi.chart.Metadata.keywords', index=5,
|
name='keywords', full_name='hapi.chart.Metadata.keywords', index=5,
|
||||||
number=6, type=9, cpp_type=9, label=3,
|
number=6, type=9, cpp_type=9, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='maintainers', full_name='hapi.chart.Metadata.maintainers', index=6,
|
name='maintainers', full_name='hapi.chart.Metadata.maintainers', index=6,
|
||||||
number=7, type=11, cpp_type=10, label=3,
|
number=7, type=11, cpp_type=10, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='engine', full_name='hapi.chart.Metadata.engine', index=7,
|
name='engine', full_name='hapi.chart.Metadata.engine', index=7,
|
||||||
number=8, type=9, cpp_type=9, label=1,
|
number=8, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='icon', full_name='hapi.chart.Metadata.icon', index=8,
|
name='icon', full_name='hapi.chart.Metadata.icon', index=8,
|
||||||
number=9, type=9, cpp_type=9, label=1,
|
number=9, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='apiVersion', full_name='hapi.chart.Metadata.apiVersion', index=9,
|
name='apiVersion', full_name='hapi.chart.Metadata.apiVersion', index=9,
|
||||||
number=10, type=9, cpp_type=9, label=1,
|
number=10, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='condition', full_name='hapi.chart.Metadata.condition', index=10,
|
name='condition', full_name='hapi.chart.Metadata.condition', index=10,
|
||||||
number=11, type=9, cpp_type=9, label=1,
|
number=11, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='tags', full_name='hapi.chart.Metadata.tags', index=11,
|
name='tags', full_name='hapi.chart.Metadata.tags', index=11,
|
||||||
number=12, type=9, cpp_type=9, label=1,
|
number=12, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='appVersion', full_name='hapi.chart.Metadata.appVersion', index=12,
|
name='appVersion', full_name='hapi.chart.Metadata.appVersion', index=12,
|
||||||
number=13, type=9, cpp_type=9, label=1,
|
number=13, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='deprecated', full_name='hapi.chart.Metadata.deprecated', index=13,
|
name='deprecated', full_name='hapi.chart.Metadata.deprecated', index=13,
|
||||||
number=14, type=8, cpp_type=7, label=1,
|
number=14, type=8, cpp_type=7, label=1,
|
||||||
has_default_value=False, default_value=False,
|
has_default_value=False, default_value=False,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='tillerVersion', full_name='hapi.chart.Metadata.tillerVersion', index=14,
|
name='tillerVersion', full_name='hapi.chart.Metadata.tillerVersion', index=14,
|
||||||
number=15, type=9, cpp_type=9, label=1,
|
number=15, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='annotations', full_name='hapi.chart.Metadata.annotations', index=15,
|
name='annotations', full_name='hapi.chart.Metadata.annotations', index=15,
|
||||||
number=16, type=11, cpp_type=10, label=3,
|
number=16, type=11, cpp_type=10, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='kubeVersion', full_name='hapi.chart.Metadata.kubeVersion', index=16,
|
name='kubeVersion', full_name='hapi.chart.Metadata.kubeVersion', index=16,
|
||||||
number=17, type=9, cpp_type=9, label=1,
|
number=17, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
|
@ -262,7 +262,7 @@ _METADATA = _descriptor.Descriptor(
|
||||||
enum_types=[
|
enum_types=[
|
||||||
_METADATA_ENGINE,
|
_METADATA_ENGINE,
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -303,8 +303,6 @@ _sym_db.RegisterMessage(Metadata)
|
||||||
_sym_db.RegisterMessage(Metadata.AnnotationsEntry)
|
_sym_db.RegisterMessage(Metadata.AnnotationsEntry)
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR.has_options = True
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\005chart'))
|
_METADATA_ANNOTATIONSENTRY._options = None
|
||||||
_METADATA_ANNOTATIONSENTRY.has_options = True
|
|
||||||
_METADATA_ANNOTATIONSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|
|
@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
|
||||||
from google.protobuf import message as _message
|
from google.protobuf import message as _message
|
||||||
from google.protobuf import reflection as _reflection
|
from google.protobuf import reflection as _reflection
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
_sym_db = _symbol_database.Default()
|
||||||
|
@ -19,6 +18,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
name='hapi/chart/template.proto',
|
name='hapi/chart/template.proto',
|
||||||
package='hapi.chart',
|
package='hapi.chart',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
|
serialized_options=_b('Z\005chart'),
|
||||||
serialized_pb=_b('\n\x19hapi/chart/template.proto\x12\nhapi.chart\"&\n\x08Template\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x07Z\x05\x63hartb\x06proto3')
|
serialized_pb=_b('\n\x19hapi/chart/template.proto\x12\nhapi.chart\"&\n\x08Template\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x07Z\x05\x63hartb\x06proto3')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -38,21 +38,21 @@ _TEMPLATE = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='data', full_name='hapi.chart.Template.data', index=1,
|
name='data', full_name='hapi.chart.Template.data', index=1,
|
||||||
number=2, type=12, cpp_type=9, label=1,
|
number=2, type=12, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b(""),
|
has_default_value=False, default_value=_b(""),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
nested_types=[],
|
nested_types=[],
|
||||||
enum_types=[
|
enum_types=[
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -73,6 +73,5 @@ Template = _reflection.GeneratedProtocolMessageType('Template', (_message.Messag
|
||||||
_sym_db.RegisterMessage(Template)
|
_sym_db.RegisterMessage(Template)
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR.has_options = True
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\005chart'))
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|
|
@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
|
||||||
from google.protobuf import message as _message
|
from google.protobuf import message as _message
|
||||||
from google.protobuf import reflection as _reflection
|
from google.protobuf import reflection as _reflection
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
_sym_db = _symbol_database.Default()
|
||||||
|
@ -20,6 +19,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
name='hapi/release/hook.proto',
|
name='hapi/release/hook.proto',
|
||||||
package='hapi.release',
|
package='hapi.release',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
|
serialized_options=_b('Z\007release'),
|
||||||
serialized_pb=_b('\n\x17hapi/release/hook.proto\x12\x0chapi.release\x1a\x1fgoogle/protobuf/timestamp.proto\"\x91\x04\n\x04Hook\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\x10\n\x08manifest\x18\x04 \x01(\t\x12(\n\x06\x65vents\x18\x05 \x03(\x0e\x32\x18.hapi.release.Hook.Event\x12,\n\x08last_run\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06weight\x18\x07 \x01(\x05\x12\x38\n\x0f\x64\x65lete_policies\x18\x08 \x03(\x0e\x32\x1f.hapi.release.Hook.DeletePolicy\"\xe5\x01\n\x05\x45vent\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0f\n\x0bPRE_INSTALL\x10\x01\x12\x10\n\x0cPOST_INSTALL\x10\x02\x12\x0e\n\nPRE_DELETE\x10\x03\x12\x0f\n\x0bPOST_DELETE\x10\x04\x12\x0f\n\x0bPRE_UPGRADE\x10\x05\x12\x10\n\x0cPOST_UPGRADE\x10\x06\x12\x10\n\x0cPRE_ROLLBACK\x10\x07\x12\x11\n\rPOST_ROLLBACK\x10\x08\x12\x18\n\x14RELEASE_TEST_SUCCESS\x10\t\x12\x18\n\x14RELEASE_TEST_FAILURE\x10\n\x12\x0f\n\x0b\x43RD_INSTALL\x10\x0b\"C\n\x0c\x44\x65letePolicy\x12\r\n\tSUCCEEDED\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x12\x18\n\x14\x42\x45\x46ORE_HOOK_CREATION\x10\x02\x42\tZ\x07releaseb\x06proto3')
|
serialized_pb=_b('\n\x17hapi/release/hook.proto\x12\x0chapi.release\x1a\x1fgoogle/protobuf/timestamp.proto\"\x91\x04\n\x04Hook\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\x10\n\x08manifest\x18\x04 \x01(\t\x12(\n\x06\x65vents\x18\x05 \x03(\x0e\x32\x18.hapi.release.Hook.Event\x12,\n\x08last_run\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06weight\x18\x07 \x01(\x05\x12\x38\n\x0f\x64\x65lete_policies\x18\x08 \x03(\x0e\x32\x1f.hapi.release.Hook.DeletePolicy\"\xe5\x01\n\x05\x45vent\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0f\n\x0bPRE_INSTALL\x10\x01\x12\x10\n\x0cPOST_INSTALL\x10\x02\x12\x0e\n\nPRE_DELETE\x10\x03\x12\x0f\n\x0bPOST_DELETE\x10\x04\x12\x0f\n\x0bPRE_UPGRADE\x10\x05\x12\x10\n\x0cPOST_UPGRADE\x10\x06\x12\x10\n\x0cPRE_ROLLBACK\x10\x07\x12\x11\n\rPOST_ROLLBACK\x10\x08\x12\x18\n\x14RELEASE_TEST_SUCCESS\x10\t\x12\x18\n\x14RELEASE_TEST_FAILURE\x10\n\x12\x0f\n\x0b\x43RD_INSTALL\x10\x0b\"C\n\x0c\x44\x65letePolicy\x12\r\n\tSUCCEEDED\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x12\x18\n\x14\x42\x45\x46ORE_HOOK_CREATION\x10\x02\x42\tZ\x07releaseb\x06proto3')
|
||||||
,
|
,
|
||||||
dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])
|
dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])
|
||||||
|
@ -34,55 +34,55 @@ _HOOK_EVENT = _descriptor.EnumDescriptor(
|
||||||
values=[
|
values=[
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='UNKNOWN', index=0, number=0,
|
name='UNKNOWN', index=0, number=0,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='PRE_INSTALL', index=1, number=1,
|
name='PRE_INSTALL', index=1, number=1,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='POST_INSTALL', index=2, number=2,
|
name='POST_INSTALL', index=2, number=2,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='PRE_DELETE', index=3, number=3,
|
name='PRE_DELETE', index=3, number=3,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='POST_DELETE', index=4, number=4,
|
name='POST_DELETE', index=4, number=4,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='PRE_UPGRADE', index=5, number=5,
|
name='PRE_UPGRADE', index=5, number=5,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='POST_UPGRADE', index=6, number=6,
|
name='POST_UPGRADE', index=6, number=6,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='PRE_ROLLBACK', index=7, number=7,
|
name='PRE_ROLLBACK', index=7, number=7,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='POST_ROLLBACK', index=8, number=8,
|
name='POST_ROLLBACK', index=8, number=8,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='RELEASE_TEST_SUCCESS', index=9, number=9,
|
name='RELEASE_TEST_SUCCESS', index=9, number=9,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='RELEASE_TEST_FAILURE', index=10, number=10,
|
name='RELEASE_TEST_FAILURE', index=10, number=10,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='CRD_INSTALL', index=11, number=11,
|
name='CRD_INSTALL', index=11, number=11,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
],
|
],
|
||||||
containing_type=None,
|
containing_type=None,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
serialized_start=306,
|
serialized_start=306,
|
||||||
serialized_end=535,
|
serialized_end=535,
|
||||||
)
|
)
|
||||||
|
@ -96,19 +96,19 @@ _HOOK_DELETEPOLICY = _descriptor.EnumDescriptor(
|
||||||
values=[
|
values=[
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='SUCCEEDED', index=0, number=0,
|
name='SUCCEEDED', index=0, number=0,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='FAILED', index=1, number=1,
|
name='FAILED', index=1, number=1,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='BEFORE_HOOK_CREATION', index=2, number=2,
|
name='BEFORE_HOOK_CREATION', index=2, number=2,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
],
|
],
|
||||||
containing_type=None,
|
containing_type=None,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
serialized_start=537,
|
serialized_start=537,
|
||||||
serialized_end=604,
|
serialized_end=604,
|
||||||
)
|
)
|
||||||
|
@ -128,56 +128,56 @@ _HOOK = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='kind', full_name='hapi.release.Hook.kind', index=1,
|
name='kind', full_name='hapi.release.Hook.kind', index=1,
|
||||||
number=2, type=9, cpp_type=9, label=1,
|
number=2, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='path', full_name='hapi.release.Hook.path', index=2,
|
name='path', full_name='hapi.release.Hook.path', index=2,
|
||||||
number=3, type=9, cpp_type=9, label=1,
|
number=3, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='manifest', full_name='hapi.release.Hook.manifest', index=3,
|
name='manifest', full_name='hapi.release.Hook.manifest', index=3,
|
||||||
number=4, type=9, cpp_type=9, label=1,
|
number=4, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='events', full_name='hapi.release.Hook.events', index=4,
|
name='events', full_name='hapi.release.Hook.events', index=4,
|
||||||
number=5, type=14, cpp_type=8, label=3,
|
number=5, type=14, cpp_type=8, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='last_run', full_name='hapi.release.Hook.last_run', index=5,
|
name='last_run', full_name='hapi.release.Hook.last_run', index=5,
|
||||||
number=6, type=11, cpp_type=10, label=1,
|
number=6, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='weight', full_name='hapi.release.Hook.weight', index=6,
|
name='weight', full_name='hapi.release.Hook.weight', index=6,
|
||||||
number=7, type=5, cpp_type=1, label=1,
|
number=7, type=5, cpp_type=1, label=1,
|
||||||
has_default_value=False, default_value=0,
|
has_default_value=False, default_value=0,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='delete_policies', full_name='hapi.release.Hook.delete_policies', index=7,
|
name='delete_policies', full_name='hapi.release.Hook.delete_policies', index=7,
|
||||||
number=8, type=14, cpp_type=8, label=3,
|
number=8, type=14, cpp_type=8, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
|
@ -186,7 +186,7 @@ _HOOK = _descriptor.Descriptor(
|
||||||
_HOOK_EVENT,
|
_HOOK_EVENT,
|
||||||
_HOOK_DELETEPOLICY,
|
_HOOK_DELETEPOLICY,
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -212,6 +212,5 @@ Hook = _reflection.GeneratedProtocolMessageType('Hook', (_message.Message,), dic
|
||||||
_sym_db.RegisterMessage(Hook)
|
_sym_db.RegisterMessage(Hook)
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR.has_options = True
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007release'))
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|
|
@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
|
||||||
from google.protobuf import message as _message
|
from google.protobuf import message as _message
|
||||||
from google.protobuf import reflection as _reflection
|
from google.protobuf import reflection as _reflection
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
_sym_db = _symbol_database.Default()
|
||||||
|
@ -21,6 +20,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
name='hapi/release/info.proto',
|
name='hapi/release/info.proto',
|
||||||
package='hapi.release',
|
package='hapi.release',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
|
serialized_options=_b('Z\007release'),
|
||||||
serialized_pb=_b('\n\x17hapi/release/info.proto\x12\x0chapi.release\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x19hapi/release/status.proto\"\xd5\x01\n\x04Info\x12$\n\x06status\x18\x01 \x01(\x0b\x32\x14.hapi.release.Status\x12\x32\n\x0e\x66irst_deployed\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rlast_deployed\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x07\x64\x65leted\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0b\x44\x65scription\x18\x05 \x01(\tB\tZ\x07releaseb\x06proto3')
|
serialized_pb=_b('\n\x17hapi/release/info.proto\x12\x0chapi.release\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x19hapi/release/status.proto\"\xd5\x01\n\x04Info\x12$\n\x06status\x18\x01 \x01(\x0b\x32\x14.hapi.release.Status\x12\x32\n\x0e\x66irst_deployed\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rlast_deployed\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x07\x64\x65leted\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0b\x44\x65scription\x18\x05 \x01(\tB\tZ\x07releaseb\x06proto3')
|
||||||
,
|
,
|
||||||
dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,hapi_dot_release_dot_status__pb2.DESCRIPTOR,])
|
dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,hapi_dot_release_dot_status__pb2.DESCRIPTOR,])
|
||||||
|
@ -41,42 +41,42 @@ _INFO = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='first_deployed', full_name='hapi.release.Info.first_deployed', index=1,
|
name='first_deployed', full_name='hapi.release.Info.first_deployed', index=1,
|
||||||
number=2, type=11, cpp_type=10, label=1,
|
number=2, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='last_deployed', full_name='hapi.release.Info.last_deployed', index=2,
|
name='last_deployed', full_name='hapi.release.Info.last_deployed', index=2,
|
||||||
number=3, type=11, cpp_type=10, label=1,
|
number=3, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='deleted', full_name='hapi.release.Info.deleted', index=3,
|
name='deleted', full_name='hapi.release.Info.deleted', index=3,
|
||||||
number=4, type=11, cpp_type=10, label=1,
|
number=4, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='Description', full_name='hapi.release.Info.Description', index=4,
|
name='Description', full_name='hapi.release.Info.Description', index=4,
|
||||||
number=5, type=9, cpp_type=9, label=1,
|
number=5, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
nested_types=[],
|
nested_types=[],
|
||||||
enum_types=[
|
enum_types=[
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -101,6 +101,5 @@ Info = _reflection.GeneratedProtocolMessageType('Info', (_message.Message,), dic
|
||||||
_sym_db.RegisterMessage(Info)
|
_sym_db.RegisterMessage(Info)
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR.has_options = True
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007release'))
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|
|
@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
|
||||||
from google.protobuf import message as _message
|
from google.protobuf import message as _message
|
||||||
from google.protobuf import reflection as _reflection
|
from google.protobuf import reflection as _reflection
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
_sym_db = _symbol_database.Default()
|
||||||
|
@ -23,6 +22,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
name='hapi/release/release.proto',
|
name='hapi/release/release.proto',
|
||||||
package='hapi.release',
|
package='hapi.release',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
|
serialized_options=_b('Z\007release'),
|
||||||
serialized_pb=_b('\n\x1ahapi/release/release.proto\x12\x0chapi.release\x1a\x17hapi/release/hook.proto\x1a\x17hapi/release/info.proto\x1a\x17hapi/chart/config.proto\x1a\x16hapi/chart/chart.proto\"\xd8\x01\n\x07Release\x12\x0c\n\x04name\x18\x01 \x01(\t\x12 \n\x04info\x18\x02 \x01(\x0b\x32\x12.hapi.release.Info\x12 \n\x05\x63hart\x18\x03 \x01(\x0b\x32\x11.hapi.chart.Chart\x12\"\n\x06\x63onfig\x18\x04 \x01(\x0b\x32\x12.hapi.chart.Config\x12\x10\n\x08manifest\x18\x05 \x01(\t\x12!\n\x05hooks\x18\x06 \x03(\x0b\x32\x12.hapi.release.Hook\x12\x0f\n\x07version\x18\x07 \x01(\x05\x12\x11\n\tnamespace\x18\x08 \x01(\tB\tZ\x07releaseb\x06proto3')
|
serialized_pb=_b('\n\x1ahapi/release/release.proto\x12\x0chapi.release\x1a\x17hapi/release/hook.proto\x1a\x17hapi/release/info.proto\x1a\x17hapi/chart/config.proto\x1a\x16hapi/chart/chart.proto\"\xd8\x01\n\x07Release\x12\x0c\n\x04name\x18\x01 \x01(\t\x12 \n\x04info\x18\x02 \x01(\x0b\x32\x12.hapi.release.Info\x12 \n\x05\x63hart\x18\x03 \x01(\x0b\x32\x11.hapi.chart.Chart\x12\"\n\x06\x63onfig\x18\x04 \x01(\x0b\x32\x12.hapi.chart.Config\x12\x10\n\x08manifest\x18\x05 \x01(\t\x12!\n\x05hooks\x18\x06 \x03(\x0b\x32\x12.hapi.release.Hook\x12\x0f\n\x07version\x18\x07 \x01(\x05\x12\x11\n\tnamespace\x18\x08 \x01(\tB\tZ\x07releaseb\x06proto3')
|
||||||
,
|
,
|
||||||
dependencies=[hapi_dot_release_dot_hook__pb2.DESCRIPTOR,hapi_dot_release_dot_info__pb2.DESCRIPTOR,hapi_dot_chart_dot_config__pb2.DESCRIPTOR,hapi_dot_chart_dot_chart__pb2.DESCRIPTOR,])
|
dependencies=[hapi_dot_release_dot_hook__pb2.DESCRIPTOR,hapi_dot_release_dot_info__pb2.DESCRIPTOR,hapi_dot_chart_dot_config__pb2.DESCRIPTOR,hapi_dot_chart_dot_chart__pb2.DESCRIPTOR,])
|
||||||
|
@ -43,63 +43,63 @@ _RELEASE = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='info', full_name='hapi.release.Release.info', index=1,
|
name='info', full_name='hapi.release.Release.info', index=1,
|
||||||
number=2, type=11, cpp_type=10, label=1,
|
number=2, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='chart', full_name='hapi.release.Release.chart', index=2,
|
name='chart', full_name='hapi.release.Release.chart', index=2,
|
||||||
number=3, type=11, cpp_type=10, label=1,
|
number=3, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='config', full_name='hapi.release.Release.config', index=3,
|
name='config', full_name='hapi.release.Release.config', index=3,
|
||||||
number=4, type=11, cpp_type=10, label=1,
|
number=4, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='manifest', full_name='hapi.release.Release.manifest', index=4,
|
name='manifest', full_name='hapi.release.Release.manifest', index=4,
|
||||||
number=5, type=9, cpp_type=9, label=1,
|
number=5, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='hooks', full_name='hapi.release.Release.hooks', index=5,
|
name='hooks', full_name='hapi.release.Release.hooks', index=5,
|
||||||
number=6, type=11, cpp_type=10, label=3,
|
number=6, type=11, cpp_type=10, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='version', full_name='hapi.release.Release.version', index=6,
|
name='version', full_name='hapi.release.Release.version', index=6,
|
||||||
number=7, type=5, cpp_type=1, label=1,
|
number=7, type=5, cpp_type=1, label=1,
|
||||||
has_default_value=False, default_value=0,
|
has_default_value=False, default_value=0,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='namespace', full_name='hapi.release.Release.namespace', index=7,
|
name='namespace', full_name='hapi.release.Release.namespace', index=7,
|
||||||
number=8, type=9, cpp_type=9, label=1,
|
number=8, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
nested_types=[],
|
nested_types=[],
|
||||||
enum_types=[
|
enum_types=[
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -124,6 +124,5 @@ Release = _reflection.GeneratedProtocolMessageType('Release', (_message.Message,
|
||||||
_sym_db.RegisterMessage(Release)
|
_sym_db.RegisterMessage(Release)
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR.has_options = True
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007release'))
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|
|
@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
|
||||||
from google.protobuf import message as _message
|
from google.protobuf import message as _message
|
||||||
from google.protobuf import reflection as _reflection
|
from google.protobuf import reflection as _reflection
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
_sym_db = _symbol_database.Default()
|
||||||
|
@ -21,6 +20,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
name='hapi/release/status.proto',
|
name='hapi/release/status.proto',
|
||||||
package='hapi.release',
|
package='hapi.release',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
|
serialized_options=_b('Z\007release'),
|
||||||
serialized_pb=_b('\n\x19hapi/release/status.proto\x12\x0chapi.release\x1a\x1dhapi/release/test_suite.proto\x1a\x19google/protobuf/any.proto\"\xa4\x02\n\x06Status\x12\'\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x19.hapi.release.Status.Code\x12\x11\n\tresources\x18\x03 \x01(\t\x12\r\n\x05notes\x18\x04 \x01(\t\x12\x34\n\x13last_test_suite_run\x18\x05 \x01(\x0b\x32\x17.hapi.release.TestSuite\"\x98\x01\n\x04\x43ode\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08\x44\x45PLOYED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x12\x0e\n\nSUPERSEDED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x0c\n\x08\x44\x45LETING\x10\x05\x12\x13\n\x0fPENDING_INSTALL\x10\x06\x12\x13\n\x0fPENDING_UPGRADE\x10\x07\x12\x14\n\x10PENDING_ROLLBACK\x10\x08\x42\tZ\x07releaseb\x06proto3')
|
serialized_pb=_b('\n\x19hapi/release/status.proto\x12\x0chapi.release\x1a\x1dhapi/release/test_suite.proto\x1a\x19google/protobuf/any.proto\"\xa4\x02\n\x06Status\x12\'\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x19.hapi.release.Status.Code\x12\x11\n\tresources\x18\x03 \x01(\t\x12\r\n\x05notes\x18\x04 \x01(\t\x12\x34\n\x13last_test_suite_run\x18\x05 \x01(\x0b\x32\x17.hapi.release.TestSuite\"\x98\x01\n\x04\x43ode\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08\x44\x45PLOYED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x12\x0e\n\nSUPERSEDED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x0c\n\x08\x44\x45LETING\x10\x05\x12\x13\n\x0fPENDING_INSTALL\x10\x06\x12\x13\n\x0fPENDING_UPGRADE\x10\x07\x12\x14\n\x10PENDING_ROLLBACK\x10\x08\x42\tZ\x07releaseb\x06proto3')
|
||||||
,
|
,
|
||||||
dependencies=[hapi_dot_release_dot_test__suite__pb2.DESCRIPTOR,google_dot_protobuf_dot_any__pb2.DESCRIPTOR,])
|
dependencies=[hapi_dot_release_dot_test__suite__pb2.DESCRIPTOR,google_dot_protobuf_dot_any__pb2.DESCRIPTOR,])
|
||||||
|
@ -35,43 +35,43 @@ _STATUS_CODE = _descriptor.EnumDescriptor(
|
||||||
values=[
|
values=[
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='UNKNOWN', index=0, number=0,
|
name='UNKNOWN', index=0, number=0,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='DEPLOYED', index=1, number=1,
|
name='DEPLOYED', index=1, number=1,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='DELETED', index=2, number=2,
|
name='DELETED', index=2, number=2,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='SUPERSEDED', index=3, number=3,
|
name='SUPERSEDED', index=3, number=3,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='FAILED', index=4, number=4,
|
name='FAILED', index=4, number=4,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='DELETING', index=5, number=5,
|
name='DELETING', index=5, number=5,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='PENDING_INSTALL', index=6, number=6,
|
name='PENDING_INSTALL', index=6, number=6,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='PENDING_UPGRADE', index=7, number=7,
|
name='PENDING_UPGRADE', index=7, number=7,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='PENDING_ROLLBACK', index=8, number=8,
|
name='PENDING_ROLLBACK', index=8, number=8,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
],
|
],
|
||||||
containing_type=None,
|
containing_type=None,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
serialized_start=242,
|
serialized_start=242,
|
||||||
serialized_end=394,
|
serialized_end=394,
|
||||||
)
|
)
|
||||||
|
@ -91,28 +91,28 @@ _STATUS = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=0,
|
has_default_value=False, default_value=0,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='resources', full_name='hapi.release.Status.resources', index=1,
|
name='resources', full_name='hapi.release.Status.resources', index=1,
|
||||||
number=3, type=9, cpp_type=9, label=1,
|
number=3, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='notes', full_name='hapi.release.Status.notes', index=2,
|
name='notes', full_name='hapi.release.Status.notes', index=2,
|
||||||
number=4, type=9, cpp_type=9, label=1,
|
number=4, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='last_test_suite_run', full_name='hapi.release.Status.last_test_suite_run', index=3,
|
name='last_test_suite_run', full_name='hapi.release.Status.last_test_suite_run', index=3,
|
||||||
number=5, type=11, cpp_type=10, label=1,
|
number=5, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
|
@ -120,7 +120,7 @@ _STATUS = _descriptor.Descriptor(
|
||||||
enum_types=[
|
enum_types=[
|
||||||
_STATUS_CODE,
|
_STATUS_CODE,
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -144,6 +144,5 @@ Status = _reflection.GeneratedProtocolMessageType('Status', (_message.Message,),
|
||||||
_sym_db.RegisterMessage(Status)
|
_sym_db.RegisterMessage(Status)
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR.has_options = True
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007release'))
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|
|
@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
|
||||||
from google.protobuf import message as _message
|
from google.protobuf import message as _message
|
||||||
from google.protobuf import reflection as _reflection
|
from google.protobuf import reflection as _reflection
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
_sym_db = _symbol_database.Default()
|
||||||
|
@ -20,6 +19,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
name='hapi/release/test_run.proto',
|
name='hapi/release/test_run.proto',
|
||||||
package='hapi.release',
|
package='hapi.release',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
|
serialized_options=_b('Z\007release'),
|
||||||
serialized_pb=_b('\n\x1bhapi/release/test_run.proto\x12\x0chapi.release\x1a\x1fgoogle/protobuf/timestamp.proto\"\xf3\x01\n\x07TestRun\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\x06status\x18\x02 \x01(\x0e\x32\x1c.hapi.release.TestRun.Status\x12\x0c\n\x04info\x18\x03 \x01(\t\x12.\n\nstarted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0c\x63ompleted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"<\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\x0b\n\x07\x46\x41ILURE\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x42\tZ\x07releaseb\x06proto3')
|
serialized_pb=_b('\n\x1bhapi/release/test_run.proto\x12\x0chapi.release\x1a\x1fgoogle/protobuf/timestamp.proto\"\xf3\x01\n\x07TestRun\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\x06status\x18\x02 \x01(\x0e\x32\x1c.hapi.release.TestRun.Status\x12\x0c\n\x04info\x18\x03 \x01(\t\x12.\n\nstarted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0c\x63ompleted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"<\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\x0b\n\x07\x46\x41ILURE\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x42\tZ\x07releaseb\x06proto3')
|
||||||
,
|
,
|
||||||
dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])
|
dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])
|
||||||
|
@ -34,23 +34,23 @@ _TESTRUN_STATUS = _descriptor.EnumDescriptor(
|
||||||
values=[
|
values=[
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='UNKNOWN', index=0, number=0,
|
name='UNKNOWN', index=0, number=0,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='SUCCESS', index=1, number=1,
|
name='SUCCESS', index=1, number=1,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='FAILURE', index=2, number=2,
|
name='FAILURE', index=2, number=2,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
_descriptor.EnumValueDescriptor(
|
_descriptor.EnumValueDescriptor(
|
||||||
name='RUNNING', index=3, number=3,
|
name='RUNNING', index=3, number=3,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
type=None),
|
type=None),
|
||||||
],
|
],
|
||||||
containing_type=None,
|
containing_type=None,
|
||||||
options=None,
|
serialized_options=None,
|
||||||
serialized_start=262,
|
serialized_start=262,
|
||||||
serialized_end=322,
|
serialized_end=322,
|
||||||
)
|
)
|
||||||
|
@ -70,35 +70,35 @@ _TESTRUN = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='status', full_name='hapi.release.TestRun.status', index=1,
|
name='status', full_name='hapi.release.TestRun.status', index=1,
|
||||||
number=2, type=14, cpp_type=8, label=1,
|
number=2, type=14, cpp_type=8, label=1,
|
||||||
has_default_value=False, default_value=0,
|
has_default_value=False, default_value=0,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='info', full_name='hapi.release.TestRun.info', index=2,
|
name='info', full_name='hapi.release.TestRun.info', index=2,
|
||||||
number=3, type=9, cpp_type=9, label=1,
|
number=3, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='started_at', full_name='hapi.release.TestRun.started_at', index=3,
|
name='started_at', full_name='hapi.release.TestRun.started_at', index=3,
|
||||||
number=4, type=11, cpp_type=10, label=1,
|
number=4, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='completed_at', full_name='hapi.release.TestRun.completed_at', index=4,
|
name='completed_at', full_name='hapi.release.TestRun.completed_at', index=4,
|
||||||
number=5, type=11, cpp_type=10, label=1,
|
number=5, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
|
@ -106,7 +106,7 @@ _TESTRUN = _descriptor.Descriptor(
|
||||||
enum_types=[
|
enum_types=[
|
||||||
_TESTRUN_STATUS,
|
_TESTRUN_STATUS,
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -131,6 +131,5 @@ TestRun = _reflection.GeneratedProtocolMessageType('TestRun', (_message.Message,
|
||||||
_sym_db.RegisterMessage(TestRun)
|
_sym_db.RegisterMessage(TestRun)
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR.has_options = True
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007release'))
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|
|
@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
|
||||||
from google.protobuf import message as _message
|
from google.protobuf import message as _message
|
||||||
from google.protobuf import reflection as _reflection
|
from google.protobuf import reflection as _reflection
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
_sym_db = _symbol_database.Default()
|
||||||
|
@ -21,6 +20,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
name='hapi/release/test_suite.proto',
|
name='hapi/release/test_suite.proto',
|
||||||
package='hapi.release',
|
package='hapi.release',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
|
serialized_options=_b('Z\007release'),
|
||||||
serialized_pb=_b('\n\x1dhapi/release/test_suite.proto\x12\x0chapi.release\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bhapi/release/test_run.proto\"\x95\x01\n\tTestSuite\x12.\n\nstarted_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0c\x63ompleted_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12&\n\x07results\x18\x03 \x03(\x0b\x32\x15.hapi.release.TestRunB\tZ\x07releaseb\x06proto3')
|
serialized_pb=_b('\n\x1dhapi/release/test_suite.proto\x12\x0chapi.release\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bhapi/release/test_run.proto\"\x95\x01\n\tTestSuite\x12.\n\nstarted_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0c\x63ompleted_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12&\n\x07results\x18\x03 \x03(\x0b\x32\x15.hapi.release.TestRunB\tZ\x07releaseb\x06proto3')
|
||||||
,
|
,
|
||||||
dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,hapi_dot_release_dot_test__run__pb2.DESCRIPTOR,])
|
dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,hapi_dot_release_dot_test__run__pb2.DESCRIPTOR,])
|
||||||
|
@ -41,28 +41,28 @@ _TESTSUITE = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='completed_at', full_name='hapi.release.TestSuite.completed_at', index=1,
|
name='completed_at', full_name='hapi.release.TestSuite.completed_at', index=1,
|
||||||
number=2, type=11, cpp_type=10, label=1,
|
number=2, type=11, cpp_type=10, label=1,
|
||||||
has_default_value=False, default_value=None,
|
has_default_value=False, default_value=None,
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='results', full_name='hapi.release.TestSuite.results', index=2,
|
name='results', full_name='hapi.release.TestSuite.results', index=2,
|
||||||
number=3, type=11, cpp_type=10, label=3,
|
number=3, type=11, cpp_type=10, label=3,
|
||||||
has_default_value=False, default_value=[],
|
has_default_value=False, default_value=[],
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
nested_types=[],
|
nested_types=[],
|
||||||
enum_types=[
|
enum_types=[
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -86,6 +86,5 @@ TestSuite = _reflection.GeneratedProtocolMessageType('TestSuite', (_message.Mess
|
||||||
_sym_db.RegisterMessage(TestSuite)
|
_sym_db.RegisterMessage(TestSuite)
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR.has_options = True
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007release'))
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -7,7 +7,6 @@ from google.protobuf import descriptor as _descriptor
|
||||||
from google.protobuf import message as _message
|
from google.protobuf import message as _message
|
||||||
from google.protobuf import reflection as _reflection
|
from google.protobuf import reflection as _reflection
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
_sym_db = _symbol_database.Default()
|
||||||
|
@ -19,6 +18,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||||
name='hapi/version/version.proto',
|
name='hapi/version/version.proto',
|
||||||
package='hapi.version',
|
package='hapi.version',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
|
serialized_options=_b('Z\007version'),
|
||||||
serialized_pb=_b('\n\x1ahapi/version/version.proto\x12\x0chapi.version\"F\n\x07Version\x12\x0f\n\x07sem_ver\x18\x01 \x01(\t\x12\x12\n\ngit_commit\x18\x02 \x01(\t\x12\x16\n\x0egit_tree_state\x18\x03 \x01(\tB\tZ\x07versionb\x06proto3')
|
serialized_pb=_b('\n\x1ahapi/version/version.proto\x12\x0chapi.version\"F\n\x07Version\x12\x0f\n\x07sem_ver\x18\x01 \x01(\t\x12\x12\n\ngit_commit\x18\x02 \x01(\t\x12\x16\n\x0egit_tree_state\x18\x03 \x01(\tB\tZ\x07versionb\x06proto3')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -38,28 +38,28 @@ _VERSION = _descriptor.Descriptor(
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='git_commit', full_name='hapi.version.Version.git_commit', index=1,
|
name='git_commit', full_name='hapi.version.Version.git_commit', index=1,
|
||||||
number=2, type=9, cpp_type=9, label=1,
|
number=2, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
_descriptor.FieldDescriptor(
|
_descriptor.FieldDescriptor(
|
||||||
name='git_tree_state', full_name='hapi.version.Version.git_tree_state', index=2,
|
name='git_tree_state', full_name='hapi.version.Version.git_tree_state', index=2,
|
||||||
number=3, type=9, cpp_type=9, label=1,
|
number=3, type=9, cpp_type=9, label=1,
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
message_type=None, enum_type=None, containing_type=None,
|
||||||
is_extension=False, extension_scope=None,
|
is_extension=False, extension_scope=None,
|
||||||
options=None, file=DESCRIPTOR),
|
serialized_options=None, file=DESCRIPTOR),
|
||||||
],
|
],
|
||||||
extensions=[
|
extensions=[
|
||||||
],
|
],
|
||||||
nested_types=[],
|
nested_types=[],
|
||||||
enum_types=[
|
enum_types=[
|
||||||
],
|
],
|
||||||
options=None,
|
serialized_options=None,
|
||||||
is_extendable=False,
|
is_extendable=False,
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
extension_ranges=[],
|
extension_ranges=[],
|
||||||
|
@ -80,6 +80,5 @@ Version = _reflection.GeneratedProtocolMessageType('Version', (_message.Message,
|
||||||
_sym_db.RegisterMessage(Version)
|
_sym_db.RegisterMessage(Version)
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR.has_options = True
|
DESCRIPTOR._options = None
|
||||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007version'))
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
# @@protoc_insertion_point(module_scope)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
deepdiff==3.3.0
|
deepdiff==3.3.0
|
||||||
gitpython
|
gitpython
|
||||||
grpcio==1.10.0
|
grpcio==1.16.0
|
||||||
grpcio-tools==1.10.0
|
grpcio-tools==1.16.0
|
||||||
jsonschema>=2.6.0
|
jsonschema>=2.6.0
|
||||||
keystoneauth1==2.21.0
|
keystoneauth1==2.21.0
|
||||||
keystonemiddleware==4.9.1
|
keystonemiddleware==4.9.1
|
||||||
|
|
Loading…
Reference in New Issue