Fix _retrive_k8s_master_url
If baymodel.apiserver_port is None, _retrive_k8s_master_url method return invalid k8s master address. This fixes it. Change-Id: Ieb907fbdb8a81b6b7a69f4d13549a24c3b58e6f8 Closes-Bug: #1411518
This commit is contained in:
parent
aa45150fd4
commit
cf41146263
|
@ -49,7 +49,9 @@ def _retrive_k8s_master_url(ctxt, obj):
|
|||
apiserver_port = cfg.CONF.kubernetes.k8s_port
|
||||
if hasattr(obj, 'bay_uuid'):
|
||||
obj = _retrive_bay(ctxt, obj)
|
||||
baymodel = _retrive_baymodel(ctxt, obj)
|
||||
|
||||
baymodel = _retrive_baymodel(ctxt, obj)
|
||||
if baymodel.apiserver_port is not None:
|
||||
apiserver_port = baymodel.apiserver_port
|
||||
|
||||
params = {
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from oslo.config import cfg
|
||||
|
||||
from magnum.conductor.handlers import kube
|
||||
from magnum import objects
|
||||
from magnum.tests import base
|
||||
|
@ -20,6 +22,12 @@ import mock
|
|||
from mock import patch
|
||||
|
||||
|
||||
cfg.CONF.import_opt('k8s_protocol', 'magnum.conductor.handlers.kube',
|
||||
group='kubernetes')
|
||||
cfg.CONF.import_opt('k8s_port', 'magnum.conductor.handlers.kube',
|
||||
group='kubernetes')
|
||||
|
||||
|
||||
class TestKube(base.BaseTestCase):
|
||||
def setUp(self):
|
||||
super(TestKube, self).setUp()
|
||||
|
@ -62,7 +70,7 @@ class TestKube(base.BaseTestCase):
|
|||
expected_context = 'context'
|
||||
expected_master_address = 'master_address'
|
||||
expected_baymodel_id = 'e74c40e0-d825-11e2-a28f-0800200c9a61'
|
||||
expected_apiserver_port = 8080
|
||||
expected_apiserver_port = 9999
|
||||
|
||||
pod = self.mock_pod()
|
||||
pod.bay_uuid = 'bay_uuid'
|
||||
|
@ -81,6 +89,35 @@ class TestKube(base.BaseTestCase):
|
|||
expected_apiserver_port),
|
||||
actual_master_address)
|
||||
|
||||
@patch('magnum.objects.Bay.get_by_uuid')
|
||||
@patch('magnum.objects.BayModel.get_by_uuid')
|
||||
def test_retrive_k8s_master_url_without_baymodel_apiserver_port(self,
|
||||
mock_baymodel_get_by_uuid,
|
||||
mock_bay_get_by_uuid):
|
||||
expected_context = 'context'
|
||||
expected_master_address = 'master_address'
|
||||
expected_baymodel_id = 'e74c40e0-d825-11e2-a28f-0800200c9a61'
|
||||
expected_protocol = cfg.CONF.kubernetes.k8s_protocol
|
||||
expected_apiserver_port = cfg.CONF.kubernetes.k8s_port
|
||||
|
||||
resource = self.mock_pod()
|
||||
resource.bay_uuid = 'bay_uuid'
|
||||
bay = self.mock_bay()
|
||||
bay.master_address = expected_master_address
|
||||
bay.baymodel_id = expected_baymodel_id
|
||||
baymodel = self.mock_baymodel()
|
||||
baymodel.apiserver_port = None
|
||||
|
||||
mock_bay_get_by_uuid.return_value = bay
|
||||
mock_baymodel_get_by_uuid.return_value = baymodel
|
||||
|
||||
actual_master_address = kube._retrive_k8s_master_url(expected_context,
|
||||
resource)
|
||||
self.assertEqual("%s://%s:%d" % (expected_protocol,
|
||||
expected_master_address,
|
||||
expected_apiserver_port),
|
||||
actual_master_address)
|
||||
|
||||
@patch('magnum.conductor.handlers.kube._retrive_k8s_master_url')
|
||||
def test_pod_create_with_success(self,
|
||||
mock_retrive_k8s_master_url):
|
||||
|
|
Loading…
Reference in New Issue