First check whether output_value is None
1.when self.get_output_value() return None, K8sApiAddressOutputMapping's set_output() and SwarmApiAddressOutputMapping's set_output() should checks whether output_value is None at first. 2.'output_value = "%(protocol)s://%(address)s:%(port)s" % params' certainly not is None, So 'if output_value is not None' is useless. Change-Id: I637ee0793e966ef46bfee6e51fbda2a15032979e
This commit is contained in:
parent
70fed16ba3
commit
a482ce8179
|
@ -406,42 +406,46 @@ class BaseTemplateDefinition(TemplateDefinition):
|
|||
class K8sApiAddressOutputMapping(OutputMapping):
|
||||
|
||||
def set_output(self, stack, baymodel, bay):
|
||||
# TODO(yuanying): port number is hardcoded, this will be fix
|
||||
protocol = 'https'
|
||||
port = KUBE_SECURE_PORT
|
||||
if baymodel.tls_disabled:
|
||||
protocol = 'http'
|
||||
port = KUBE_INSECURE_PORT
|
||||
if self.bay_attr is None:
|
||||
return
|
||||
|
||||
output_value = self.get_output_value(stack)
|
||||
params = {
|
||||
'protocol': protocol,
|
||||
'address': output_value,
|
||||
'port': port,
|
||||
}
|
||||
output_value = "%(protocol)s://%(address)s:%(port)s" % params
|
||||
|
||||
if output_value is not None:
|
||||
setattr(bay, self.bay_attr, output_value)
|
||||
# TODO(yuanying): port number is hardcoded, this will be fix
|
||||
protocol = 'https'
|
||||
port = KUBE_SECURE_PORT
|
||||
if baymodel.tls_disabled:
|
||||
protocol = 'http'
|
||||
port = KUBE_INSECURE_PORT
|
||||
|
||||
params = {
|
||||
'protocol': protocol,
|
||||
'address': output_value,
|
||||
'port': port,
|
||||
}
|
||||
value = "%(protocol)s://%(address)s:%(port)s" % params
|
||||
setattr(bay, self.bay_attr, value)
|
||||
|
||||
|
||||
class SwarmApiAddressOutputMapping(OutputMapping):
|
||||
|
||||
def set_output(self, stack, baymodel, bay):
|
||||
protocol = 'https'
|
||||
if baymodel.tls_disabled:
|
||||
protocol = 'tcp'
|
||||
if self.bay_attr is None:
|
||||
return
|
||||
|
||||
output_value = self.get_output_value(stack)
|
||||
params = {
|
||||
'protocol': protocol,
|
||||
'address': output_value,
|
||||
'port': DOCKER_PORT,
|
||||
}
|
||||
output_value = "%(protocol)s://%(address)s:%(port)s" % params
|
||||
|
||||
if output_value is not None:
|
||||
setattr(bay, self.bay_attr, output_value)
|
||||
protocol = 'https'
|
||||
if baymodel.tls_disabled:
|
||||
protocol = 'tcp'
|
||||
|
||||
params = {
|
||||
'protocol': protocol,
|
||||
'address': output_value,
|
||||
'port': DOCKER_PORT,
|
||||
}
|
||||
value = "%(protocol)s://%(address)s:%(port)s" % params
|
||||
setattr(bay, self.bay_attr, value)
|
||||
|
||||
|
||||
class K8sTemplateDefinition(BaseTemplateDefinition):
|
||||
|
|
|
@ -391,6 +391,49 @@ class AtomicK8sTemplateDefinitionTestCase(base.TestCase):
|
|||
}
|
||||
self._test_update_outputs_api_address('swarm', params, tls=False)
|
||||
|
||||
def _test_update_outputs_none_api_address(self, coe, params, tls=True):
|
||||
|
||||
definition = tdef.TemplateDefinition.get_template_definition(
|
||||
'vm',
|
||||
'fedora-atomic',
|
||||
coe)
|
||||
|
||||
outputs = [
|
||||
{"output_value": params['address'],
|
||||
"description": "No description given",
|
||||
"output_key": 'api_address'},
|
||||
]
|
||||
mock_stack = mock.MagicMock()
|
||||
mock_stack.to_dict.return_value = {'outputs': outputs}
|
||||
mock_bay = mock.MagicMock()
|
||||
mock_bay.api_address = 'none_api_address'
|
||||
mock_baymodel = mock.MagicMock()
|
||||
mock_baymodel.tls_disabled = tls
|
||||
|
||||
definition.update_outputs(mock_stack, mock_baymodel, mock_bay)
|
||||
|
||||
self.assertEqual('none_api_address', mock_bay.api_address)
|
||||
|
||||
def test_update_k8s_outputs_none_api_address(self):
|
||||
protocol = 'http'
|
||||
port = '8080'
|
||||
params = {
|
||||
'protocol': protocol,
|
||||
'address': None,
|
||||
'port': port,
|
||||
}
|
||||
self._test_update_outputs_none_api_address('kubernetes', params)
|
||||
|
||||
def test_update_swarm_outputs_none_api_address(self):
|
||||
protocol = 'tcp'
|
||||
port = '2376'
|
||||
params = {
|
||||
'protocol': protocol,
|
||||
'address': None,
|
||||
'port': port,
|
||||
}
|
||||
self._test_update_outputs_none_api_address('swarm', params)
|
||||
|
||||
|
||||
class AtomicSwarmTemplateDefinitionTestCase(base.TestCase):
|
||||
|
||||
|
|
Loading…
Reference in New Issue