|
5 | 5 | from pathlib import Path |
6 | 6 |
|
7 | 7 | import cmd2 |
| 8 | +from cmd2 import Fg as COLORS |
8 | 9 | from simple_rest_client.exceptions import NotFoundError |
9 | 10 | from tabulate import tabulate |
10 | 11 | from faraday_cli.extras.halo.halo import Halo |
@@ -279,3 +280,39 @@ def update_vuln(self, args: argparse.Namespace): |
279 | 280 | self._cmd.poutput("Vulnerability updated") |
280 | 281 | except RequestError as e: |
281 | 282 | self._cmd.perror(e.message) |
| 283 | + |
| 284 | + delete_vuln_parser = cmd2.Cmd2ArgumentParser() |
| 285 | + delete_vuln_parser.add_argument( |
| 286 | + "vuln_id", type=int, help="ID of the vulnerability" |
| 287 | + ) |
| 288 | + delete_vuln_parser.add_argument( |
| 289 | + "-w", "--workspace-name", type=str, help="Workspace" |
| 290 | + ) |
| 291 | + |
| 292 | + @cmd2.as_subcommand_to( |
| 293 | + "vuln", |
| 294 | + "delete", |
| 295 | + delete_vuln_parser, |
| 296 | + help="Delete existing vulnerability", |
| 297 | + ) |
| 298 | + def delete_vuln(self, args: argparse.Namespace): |
| 299 | + """Delete Vulnerability""" |
| 300 | + |
| 301 | + if not args.workspace_name: |
| 302 | + if active_config.workspace: |
| 303 | + workspace_name = active_config.workspace |
| 304 | + else: |
| 305 | + self._cmd.perror("No active Workspace") |
| 306 | + return |
| 307 | + else: |
| 308 | + workspace_name = args.workspace_name |
| 309 | + try: |
| 310 | + self._cmd.api_client.delete_vuln(workspace_name, args.vuln_id) |
| 311 | + except NotFoundError: |
| 312 | + self._cmd.perror("Vuln not found") |
| 313 | + except Exception as e: |
| 314 | + self._cmd.perror(f"{e}") |
| 315 | + else: |
| 316 | + self._cmd.poutput( |
| 317 | + cmd2.style("Vulnerability deleted", fg=COLORS.GREEN) |
| 318 | + ) |
0 commit comments