check-msdefender 1.1.17__py3-none-any.whl → 1.2.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
  """Check Microsoft Defender API endpoints and check values - Nagios plugin."""
2
- __version__ = "1.1.17"
2
+ __version__ = "1.2.2"
3
3
  __author__ = "ldvchosal"
4
4
  __email__ = "ldvchosa@github.com"
@@ -0,0 +1,81 @@
1
+ """Integration test runner for check_msdefender commands."""
2
+
3
+ import configparser
4
+ import subprocess
5
+ import sys
6
+ from pathlib import Path
7
+
8
+
9
+ def find_config() -> Path:
10
+ """Find the configuration file."""
11
+ # Check common locations
12
+ locations = [
13
+ Path("check_msdefender.ini"),
14
+ Path.home() / ".check_msdefender.ini",
15
+ Path("/etc/check_msdefender.ini"),
16
+ ]
17
+ for loc in locations:
18
+ if loc.exists():
19
+ return loc
20
+ raise FileNotFoundError("Configuration file not found")
21
+
22
+
23
+ def main() -> int:
24
+ """Run all check_msdefender commands."""
25
+ try:
26
+ config_path = find_config()
27
+ except FileNotFoundError as e:
28
+ print(f"Error: {e}")
29
+ return 1
30
+
31
+ config = configparser.ConfigParser()
32
+ config.read(config_path)
33
+
34
+ machine = config.get("integration", "machine", fallback=None)
35
+ if not machine:
36
+ print("Error: No machine configured in [integration] section")
37
+ return 1
38
+
39
+ print(f"Running integration tests with machine: {machine}")
40
+ print(f"Config: {config_path}")
41
+ print("=" * 60)
42
+
43
+ # Commands that don't need -d flag
44
+ commands_no_machine = [
45
+ ["check_msdefender", "machines"],
46
+ ]
47
+
48
+ # Commands that need -d flag
49
+ commands_with_machine = [
50
+ ["check_msdefender", "alerts", "-d", machine],
51
+ ["check_msdefender", "detail", "-d", machine],
52
+ ["check_msdefender", "lastseen", "-d", machine],
53
+ ["check_msdefender", "onboarding", "-d", machine],
54
+ ["check_msdefender", "products", "-d", machine],
55
+ ["check_msdefender", "vulnerabilities", "-d", machine],
56
+ ]
57
+
58
+ all_commands = commands_no_machine + commands_with_machine
59
+ results = []
60
+
61
+ for cmd in all_commands:
62
+ cmd_str = " ".join(cmd)
63
+ print(f"\n>>> {cmd_str}")
64
+ print("-" * 60)
65
+
66
+ result = subprocess.run(cmd, capture_output=False)
67
+ results.append((cmd_str, result.returncode))
68
+
69
+ print("\n" + "=" * 60)
70
+ print("Summary:")
71
+ print("=" * 60)
72
+
73
+ for cmd_str, returncode in results:
74
+ status = "OK" if returncode == 0 else f"EXIT {returncode}"
75
+ print(f" [{status:8}] {cmd_str}")
76
+
77
+ return 0
78
+
79
+
80
+ if __name__ == "__main__":
81
+ sys.exit(main())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: check-msdefender
3
- Version: 1.1.17
3
+ Version: 1.2.2
4
4
  Summary: A Nagios plugin for monitoring Microsoft Defender API endpoints
5
5
  Keywords: nagios,monitoring,microsoft,graph,api,azure
6
6
  Author-Email: ldvchosal <ldvchosal@github.com>
@@ -1,8 +1,8 @@
1
- check_msdefender-1.1.17.dist-info/METADATA,sha256=OBgJOz5hqJv7i1s75wP4HilB1KvLMyY3PNIOHtEzwNo,14853
2
- check_msdefender-1.1.17.dist-info/WHEEL,sha256=tsUv_t7BDeJeRHaSrczbGeuK-TtDpGsWi_JfpzD255I,90
3
- check_msdefender-1.1.17.dist-info/entry_points.txt,sha256=OqVzHI1PaD9V22g0K7BhA2nYv4O-pH8mcLzuGdsk5rM,79
4
- check_msdefender-1.1.17.dist-info/licenses/LICENSE,sha256=kW3DwIsKc9HVYdS4f4tI6sLo-EPqBQbz-WmuvHU4Nak,1065
5
- check_msdefender/__init__.py,sha256=eCjrvve0v8xu2vkWz-DQMPHGgXvVB9MIzY_U49jpL9M,161
1
+ check_msdefender-1.2.2.dist-info/METADATA,sha256=qVtNZOoYStObDK5eRmj3QtVDfFgIGQi6JISo48LiIxQ,14852
2
+ check_msdefender-1.2.2.dist-info/WHEEL,sha256=tsUv_t7BDeJeRHaSrczbGeuK-TtDpGsWi_JfpzD255I,90
3
+ check_msdefender-1.2.2.dist-info/entry_points.txt,sha256=w-FGU_ePJmPBpKVtoldnxOlUWnUNw9-UsY1mCSxzmqA,144
4
+ check_msdefender-1.2.2.dist-info/licenses/LICENSE,sha256=kW3DwIsKc9HVYdS4f4tI6sLo-EPqBQbz-WmuvHU4Nak,1065
5
+ check_msdefender/__init__.py,sha256=3mnH6MTpQQVOIsy5oeYjW4oR-bKTmX0fJqS4IoiuDOM,160
6
6
  check_msdefender/__main__.py,sha256=TuNsRSdnkQm9OdBTAwD5aB2zV_Irc50WgylVWhrfnLY,124
7
7
  check_msdefender/check_msdefender.py,sha256=OO4Tg2DBW28AT-2LOH-qJM2pE5TPcF615BF7HjyZsmA,137
8
8
  check_msdefender/cli/__init__.py,sha256=NWaS5ZI9_252AcReugF_WGPMOvQ_B7sC_s3pSrGujcI,291
@@ -24,6 +24,7 @@ check_msdefender/core/defender.py,sha256=OyVrI2nEng95eSdDke8aCdL3wODZpRpJfroEQON
24
24
  check_msdefender/core/exceptions.py,sha256=X4s_XM64SEVSs-4mGKqnF8xXwGFY3E0buvkgRNuCCX4,600
25
25
  check_msdefender/core/logging_config.py,sha256=Rd1F-IDXTx7yckrI8kyx2Ht20f5OcArPCAXb44BOmbg,4084
26
26
  check_msdefender/core/nagios.py,sha256=FmwWZbJHdLDR8Ah0ejt5wj7jNWC6YHbeE5YMyKLSCQA,6303
27
+ check_msdefender/integration.py,sha256=uVmt26JSbACiWDnihEaLqwRwmzC_SxB9kA_mvgjhgHk,2210
27
28
  check_msdefender/services/__init__.py,sha256=_fiKXxcz263IghXn9BnUWDKPgedhUPoSakEN3tBd2SU,44
28
29
  check_msdefender/services/alerts_service.py,sha256=poKZw1WKphmtPPnuMDrGRuPQbRLjLDZpo2rhFCh7TDc,4034
29
30
  check_msdefender/services/detail_service.py,sha256=tXfb6H2dhrTZ5y85H8W58GA8CvA-7aUwMIbNdcqECw0,3381
@@ -33,4 +34,4 @@ check_msdefender/services/models.py,sha256=CDmQ5vU0-GawIalqXjXNk3rry6gsyjv6eSlW2
33
34
  check_msdefender/services/onboarding_service.py,sha256=RIOsvALCoKV0YqnCHKYRkelSPrO-F-6vNBLlto4MpiI,2686
34
35
  check_msdefender/services/products_service.py,sha256=9ezHS6yc3gvYHQBQEif947q_EnOlPx3_QCPY1urMILc,9153
35
36
  check_msdefender/services/vulnerabilities_service.py,sha256=LuRRQlFt-K82tGUhLCx_QCOp4CbBgSp7fktmeSSoa9o,6838
36
- check_msdefender-1.1.17.dist-info/RECORD,,
37
+ check_msdefender-1.2.2.dist-info/RECORD,,
@@ -1,5 +1,6 @@
1
1
  [console_scripts]
2
2
  check_msdefender = check_msdefender.cli:main
3
+ check_msdefender_integration = check_msdefender.integration:main
3
4
 
4
5
  [gui_scripts]
5
6