mirror of
https://github.com/aquasecurity/kube-hunter.git
synced 2026-08-23 22:26:23 +00:00
Dashboard hunter not working (#337)
* Fix dashboard hunter regression Fix #336. Add tests for dashboard hunter Co-authored-by: Yehuda Chikvashvili <yehudaac1@gmail.com>
This commit is contained in:
co-authored by
Yehuda Chikvashvili
parent
14d73e201e
commit
4cb2c8bad9
@@ -32,7 +32,7 @@ class KubeDashboard(Hunter):
|
||||
|
||||
def get_nodes(self):
|
||||
logger.debug("Passive hunter is attempting to get nodes types of the cluster")
|
||||
r = requests.get(f"http://{self.event.host}:{self.event.port}/api/v1/node", timeout=config.network_timwout)
|
||||
r = requests.get(f"http://{self.event.host}:{self.event.port}/api/v1/node", timeout=config.network_timeout)
|
||||
if r.status_code == 200 and "nodes" in r.text:
|
||||
return [node["objectMeta"]["name"] for node in json.loads(r.text)["nodes"]]
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
import json
|
||||
|
||||
from types import SimpleNamespace
|
||||
from requests_mock import Mocker
|
||||
from kube_hunter.modules.hunting.dashboard import KubeDashboard
|
||||
|
||||
|
||||
class TestKubeDashboard:
|
||||
@staticmethod
|
||||
def get_nodes_mock(result: dict, **kwargs):
|
||||
with Mocker() as m:
|
||||
m.get("http://mockdashboard:8000/api/v1/node", text=json.dumps(result), **kwargs)
|
||||
hunter = KubeDashboard(SimpleNamespace(host="mockdashboard", port=8000))
|
||||
return hunter.get_nodes()
|
||||
|
||||
@staticmethod
|
||||
def test_get_nodes_with_result():
|
||||
nodes = {"nodes": [{"objectMeta": {"name": "node1"}}]}
|
||||
expected = ["node1"]
|
||||
actual = TestKubeDashboard.get_nodes_mock(nodes)
|
||||
|
||||
assert expected == actual
|
||||
|
||||
@staticmethod
|
||||
def test_get_nodes_without_result():
|
||||
nodes = {"nodes": []}
|
||||
expected = []
|
||||
actual = TestKubeDashboard.get_nodes_mock(nodes)
|
||||
|
||||
assert expected == actual
|
||||
|
||||
@staticmethod
|
||||
def test_get_nodes_invalid_result():
|
||||
expected = None
|
||||
actual = TestKubeDashboard.get_nodes_mock(dict(), status_code=404)
|
||||
|
||||
assert expected == actual
|
||||
Reference in New Issue
Block a user