Skip to content

Commit

Permalink
Fix paasta status mesh data for kubernetes instances (#2967)
Browse files Browse the repository at this point in the history
* use correct service name for mesh data in paasta status for kubernetes instances

* add test for kubernetes instance status with smartstack
  • Loading branch information
Maksym Melnychok committed Nov 5, 2020
1 parent e614fb8 commit 06f28a9
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 3 deletions.
6 changes: 3 additions & 3 deletions paasta_tools/instance/kubernetes.py
Original file line number Diff line number Diff line change
Expand Up @@ -485,14 +485,14 @@ def kubernetes_status(

if include_smartstack or include_envoy:
service_namespace_config = kubernetes_tools.load_service_namespace_config(
service=job_config.get_service_name_smartstack(),
service=service,
namespace=job_config.get_nerve_namespace(),
soa_dir=settings.soa_dir,
)
if "proxy_port" in service_namespace_config:
if include_smartstack:
kstatus["smartstack"] = mesh_status(
service=job_config.get_service_name_smartstack(),
service=service,
service_mesh=ServiceMesh.SMARTSTACK,
instance=job_config.get_nerve_namespace(),
job_config=job_config,
Expand All @@ -503,7 +503,7 @@ def kubernetes_status(
)
if include_envoy:
kstatus["envoy"] = mesh_status(
service=job_config.get_service_name_smartstack(),
service=service,
service_mesh=ServiceMesh.ENVOY,
instance=job_config.get_nerve_namespace(),
job_config=job_config,
Expand Down
47 changes: 47 additions & 0 deletions tests/instance/test_kubernetes.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,53 @@ def test_kubernetes_status(
assert "desired_state" in status


@mock.patch("paasta_tools.instance.kubernetes.job_status", autospec=True)
@mock.patch(
"paasta_tools.kubernetes_tools.load_service_namespace_config", autospec=True
)
@mock.patch("paasta_tools.instance.kubernetes.mesh_status", autospec=True)
@mock.patch(
"paasta_tools.kubernetes_tools.replicasets_for_service_instance", autospec=True
)
@mock.patch("paasta_tools.kubernetes_tools.pods_for_service_instance", autospec=True)
@mock.patch("paasta_tools.kubernetes_tools.get_kubernetes_app_by_name", autospec=True)
@mock.patch(
"paasta_tools.instance.kubernetes.LONG_RUNNING_INSTANCE_TYPE_HANDLERS",
autospec=True,
)
def test_kubernetes_status_include_smartstack(
mock_LONG_RUNNING_INSTANCE_TYPE_HANDLERS,
mock_get_kubernetes_app_by_name,
mock_pods_for_service_instance,
mock_replicasets_for_service_instance,
mock_mesh_status,
mock_load_service_namespace_config,
mock_job_status,
):
mock_load_service_namespace_config.return_value = {"proxy_port": 1234}
mock_LONG_RUNNING_INSTANCE_TYPE_HANDLERS["flink"] = mock.Mock()
mock_pods_for_service_instance.return_value = []
mock_replicasets_for_service_instance.return_value = []
mock_service = mock.Mock()
status = pik.kubernetes_status(
service=mock_service,
instance="",
verbose=0,
include_smartstack=True,
include_envoy=False,
instance_type="flink",
settings=mock.Mock(),
)
assert (
mock_load_service_namespace_config.mock_calls[0][2]["service"] is mock_service
)
assert mock_mesh_status.mock_calls[0][2]["service"] is mock_service
assert "app_count" in status
assert "evicted_count" in status
assert "bounce_method" in status
assert "desired_state" in status


def test_cr_status_bad_instance_type():
with pytest.raises(RuntimeError) as excinfo:
pik.cr_status(
Expand Down

0 comments on commit 06f28a9

Please sign in to comment.