bigeye-cli 0.3.67__tar.gz → 0.3.68__tar.gz
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.
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/PKG-INFO +11 -11
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/CLI_DOCS.md +10 -10
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/bigconfig/bigconfig_commands.py +2 -1
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/model/github_report.py +19 -7
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/model/vendor_report.py +2 -1
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/workspace/workspace_commands.py +18 -23
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/pyproject.toml +1 -1
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/LICENSE +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/__init__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/__main__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/__version__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/bigconfig/__init__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/bigconfig/bigconfig_options.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/catalog/__init__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/catalog/catalog_commands.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/collections/__init__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/collections/collection_commands.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/configure/__init__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/configure/configure_commands.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/deltas/__init__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/deltas/deltas_commands.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/enums.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/exceptions/__init__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/exceptions/exceptions.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/functions.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/global_options.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/issues/__init__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/issues/issue_commands.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/lineage/__init__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/lineage/lineage_commands.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/metric/__init__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/metric/metric_commands.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/model/__init__.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/model/cicd_conf.py +0 -0
- {bigeye_cli-0.3.67 → bigeye_cli-0.3.68}/bigeye_cli/workspace/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: bigeye-cli
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.68
|
|
4
4
|
Summary: Bigeye CLI offers developer tools for maintaining your developer workspace.
|
|
5
5
|
Home-page: https://docs.bigeye.com/docs
|
|
6
6
|
License: Proprietary
|
|
@@ -19,7 +19,7 @@ Requires-Dist: rich (>=12.4.4,<13.0.0)
|
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
20
|
|
|
21
21
|
# **Bigeye CLI**
|
|
22
|
-
Version: 0.3.
|
|
22
|
+
Version: 0.3.68
|
|
23
23
|
## Installation
|
|
24
24
|
|
|
25
25
|
**Setting up your local/build environment**
|
|
@@ -218,7 +218,7 @@ $ bigeye configure [OPTIONS] COMMAND [ARGS]...
|
|
|
218
218
|
|
|
219
219
|
## `bigeye configure set`
|
|
220
220
|
|
|
221
|
-
Set any specific configuration settings.
|
|
221
|
+
Set any specific configuration settings.
|
|
222
222
|
|
|
223
223
|
**Usage**:
|
|
224
224
|
|
|
@@ -239,7 +239,7 @@ $ bigeye configure set [OPTIONS] [SETTING_KEY] [SETTING_VALUE]
|
|
|
239
239
|
|
|
240
240
|
## `bigeye configure get`
|
|
241
241
|
|
|
242
|
-
Get any specific configuration settings.
|
|
242
|
+
Get any specific configuration settings.
|
|
243
243
|
|
|
244
244
|
**Usage**:
|
|
245
245
|
|
|
@@ -259,7 +259,7 @@ $ bigeye configure get [OPTIONS] [SETTING_KEY]
|
|
|
259
259
|
|
|
260
260
|
## `bigeye configure list`
|
|
261
261
|
|
|
262
|
-
List all configured workspaces.
|
|
262
|
+
List all configured workspaces.
|
|
263
263
|
|
|
264
264
|
**Usage**:
|
|
265
265
|
|
|
@@ -298,7 +298,7 @@ $ bigeye workspace [OPTIONS] COMMAND [ARGS]...
|
|
|
298
298
|
* `delete-named-schedule`: Delete a named schedule.
|
|
299
299
|
* `export-named-schedule`: Export cron schedule to yaml file
|
|
300
300
|
* `invite-user`: Invite a user to a workspace.
|
|
301
|
-
* `edit-user`: Edit an existing user
|
|
301
|
+
* `edit-user`: Edit an existing user's access to groups.
|
|
302
302
|
* `delete-user`: Deletes a users account.
|
|
303
303
|
* `upsert-workspace`: Create or update a workspace.
|
|
304
304
|
* `delete-workspace`: Delete a workspace.
|
|
@@ -448,7 +448,7 @@ $ bigeye workspace invite-user [OPTIONS]
|
|
|
448
448
|
|
|
449
449
|
## `bigeye workspace edit-user`
|
|
450
450
|
|
|
451
|
-
Edit an existing user
|
|
451
|
+
Edit an existing user's access to groups.
|
|
452
452
|
|
|
453
453
|
**Usage**:
|
|
454
454
|
|
|
@@ -563,7 +563,7 @@ $ bigeye workspace edit-group-access [OPTIONS]
|
|
|
563
563
|
* `-name, --group-name TEXT`: Group name. [required]
|
|
564
564
|
* `-id, --group-id INTEGER`: Group ID.
|
|
565
565
|
* `-wn, --workspace-name TEXT`: List of workspace names to edit access. E.g. -wn workspace1 -wn workspace2 [required]
|
|
566
|
-
* `-access, --access-level TEXT`: The access this group should have to the workspaces provided. Must be
|
|
566
|
+
* `-access, --access-level TEXT`: The access this group should have to the workspaces provided. Must be `View`, `Edit`, or `Manage` [default: Edit]
|
|
567
567
|
* `-op, --operation INTEGER`: Operation type.
|
|
568
568
|
ROLE_OPERATION_UNSPECIFIED:0
|
|
569
569
|
ROLE_OPERATION_GRANT:1
|
|
@@ -630,7 +630,7 @@ $ bigeye bigconfig plan [OPTIONS]
|
|
|
630
630
|
* `-op, --output_path TEXT`: Output path where reports and fixme files will be saved. If no output path is defined then current working directory will be used.
|
|
631
631
|
* `-psn, --purge_source_name TEXT`: List of source names to purge E.g. -psn source_1 -psn source_2.
|
|
632
632
|
* `-purge_all, --purge_all_sources`: Purge all sources: True or False.
|
|
633
|
-
* `-nq, --no_queue`: Don
|
|
633
|
+
* `-nq, --no_queue`: Don't submit to queue: True or False.
|
|
634
634
|
* `-r, --recursive`: Search all input directories recursively.
|
|
635
635
|
* `-strict, --strict_mode`: API errors cause an exception if True. (Validation errors still cause an exception)
|
|
636
636
|
* `-cicd, --cicd_report`: Add the report to a pull request. (Github only)
|
|
@@ -656,7 +656,7 @@ $ bigeye bigconfig apply [OPTIONS]
|
|
|
656
656
|
* `-op, --output_path TEXT`: Output path where reports and fixme files will be saved. If no output path is defined then current working directory will be used.
|
|
657
657
|
* `-psn, --purge_source_name TEXT`: List of source names to purge E.g. -psn source_1 -psn source_2.
|
|
658
658
|
* `-purge_all, --purge_all_sources`: Purge all sources: True or False.
|
|
659
|
-
* `-nq, --no_queue`: Don
|
|
659
|
+
* `-nq, --no_queue`: Don't submit to queue: True or False.
|
|
660
660
|
* `-r, --recursive`: Search all input directories recursively.
|
|
661
661
|
* `-strict, --strict_mode`: API errors cause an exception if True. (Validation errors still cause an exception)
|
|
662
662
|
* `-auto_approve, --auto_approve`: Explicit plan approval is not needed prior to execution.
|
|
@@ -1536,7 +1536,7 @@ $ bigeye deltas create-delta [OPTIONS]
|
|
|
1536
1536
|
* `-c, --config_file TEXT`: Bigeye CLI Configuration File Path [env var: BIGEYE_API_CONFIG_FILE]
|
|
1537
1537
|
* `-w, --workspace TEXT`: Name of the workspace configuration. [env var: BIGEYE_WORKSPACE; default: DEFAULT]
|
|
1538
1538
|
* `-dc, --delta_conf TEXT`: Simple Delta configuration file. [required]
|
|
1539
|
-
* `-ul, --update_lineage`: Should lineage between source and target be checked/created if doesn
|
|
1539
|
+
* `-ul, --update_lineage`: Should lineage between source and target be checked/created if doesn't exist.
|
|
1540
1540
|
* `--help`: Show this message and exit.
|
|
1541
1541
|
|
|
1542
1542
|
## `bigeye deltas run-delta`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# **Bigeye CLI**
|
|
2
|
-
Version: 0.3.
|
|
2
|
+
Version: 0.3.68
|
|
3
3
|
## Installation
|
|
4
4
|
|
|
5
5
|
**Setting up your local/build environment**
|
|
@@ -198,7 +198,7 @@ $ bigeye configure [OPTIONS] COMMAND [ARGS]...
|
|
|
198
198
|
|
|
199
199
|
## `bigeye configure set`
|
|
200
200
|
|
|
201
|
-
Set any specific configuration settings.
|
|
201
|
+
Set any specific configuration settings.
|
|
202
202
|
|
|
203
203
|
**Usage**:
|
|
204
204
|
|
|
@@ -219,7 +219,7 @@ $ bigeye configure set [OPTIONS] [SETTING_KEY] [SETTING_VALUE]
|
|
|
219
219
|
|
|
220
220
|
## `bigeye configure get`
|
|
221
221
|
|
|
222
|
-
Get any specific configuration settings.
|
|
222
|
+
Get any specific configuration settings.
|
|
223
223
|
|
|
224
224
|
**Usage**:
|
|
225
225
|
|
|
@@ -239,7 +239,7 @@ $ bigeye configure get [OPTIONS] [SETTING_KEY]
|
|
|
239
239
|
|
|
240
240
|
## `bigeye configure list`
|
|
241
241
|
|
|
242
|
-
List all configured workspaces.
|
|
242
|
+
List all configured workspaces.
|
|
243
243
|
|
|
244
244
|
**Usage**:
|
|
245
245
|
|
|
@@ -278,7 +278,7 @@ $ bigeye workspace [OPTIONS] COMMAND [ARGS]...
|
|
|
278
278
|
* `delete-named-schedule`: Delete a named schedule.
|
|
279
279
|
* `export-named-schedule`: Export cron schedule to yaml file
|
|
280
280
|
* `invite-user`: Invite a user to a workspace.
|
|
281
|
-
* `edit-user`: Edit an existing user
|
|
281
|
+
* `edit-user`: Edit an existing user's access to groups.
|
|
282
282
|
* `delete-user`: Deletes a users account.
|
|
283
283
|
* `upsert-workspace`: Create or update a workspace.
|
|
284
284
|
* `delete-workspace`: Delete a workspace.
|
|
@@ -428,7 +428,7 @@ $ bigeye workspace invite-user [OPTIONS]
|
|
|
428
428
|
|
|
429
429
|
## `bigeye workspace edit-user`
|
|
430
430
|
|
|
431
|
-
Edit an existing user
|
|
431
|
+
Edit an existing user's access to groups.
|
|
432
432
|
|
|
433
433
|
**Usage**:
|
|
434
434
|
|
|
@@ -543,7 +543,7 @@ $ bigeye workspace edit-group-access [OPTIONS]
|
|
|
543
543
|
* `-name, --group-name TEXT`: Group name. [required]
|
|
544
544
|
* `-id, --group-id INTEGER`: Group ID.
|
|
545
545
|
* `-wn, --workspace-name TEXT`: List of workspace names to edit access. E.g. -wn workspace1 -wn workspace2 [required]
|
|
546
|
-
* `-access, --access-level TEXT`: The access this group should have to the workspaces provided. Must be
|
|
546
|
+
* `-access, --access-level TEXT`: The access this group should have to the workspaces provided. Must be `View`, `Edit`, or `Manage` [default: Edit]
|
|
547
547
|
* `-op, --operation INTEGER`: Operation type.
|
|
548
548
|
ROLE_OPERATION_UNSPECIFIED:0
|
|
549
549
|
ROLE_OPERATION_GRANT:1
|
|
@@ -610,7 +610,7 @@ $ bigeye bigconfig plan [OPTIONS]
|
|
|
610
610
|
* `-op, --output_path TEXT`: Output path where reports and fixme files will be saved. If no output path is defined then current working directory will be used.
|
|
611
611
|
* `-psn, --purge_source_name TEXT`: List of source names to purge E.g. -psn source_1 -psn source_2.
|
|
612
612
|
* `-purge_all, --purge_all_sources`: Purge all sources: True or False.
|
|
613
|
-
* `-nq, --no_queue`: Don
|
|
613
|
+
* `-nq, --no_queue`: Don't submit to queue: True or False.
|
|
614
614
|
* `-r, --recursive`: Search all input directories recursively.
|
|
615
615
|
* `-strict, --strict_mode`: API errors cause an exception if True. (Validation errors still cause an exception)
|
|
616
616
|
* `-cicd, --cicd_report`: Add the report to a pull request. (Github only)
|
|
@@ -636,7 +636,7 @@ $ bigeye bigconfig apply [OPTIONS]
|
|
|
636
636
|
* `-op, --output_path TEXT`: Output path where reports and fixme files will be saved. If no output path is defined then current working directory will be used.
|
|
637
637
|
* `-psn, --purge_source_name TEXT`: List of source names to purge E.g. -psn source_1 -psn source_2.
|
|
638
638
|
* `-purge_all, --purge_all_sources`: Purge all sources: True or False.
|
|
639
|
-
* `-nq, --no_queue`: Don
|
|
639
|
+
* `-nq, --no_queue`: Don't submit to queue: True or False.
|
|
640
640
|
* `-r, --recursive`: Search all input directories recursively.
|
|
641
641
|
* `-strict, --strict_mode`: API errors cause an exception if True. (Validation errors still cause an exception)
|
|
642
642
|
* `-auto_approve, --auto_approve`: Explicit plan approval is not needed prior to execution.
|
|
@@ -1516,7 +1516,7 @@ $ bigeye deltas create-delta [OPTIONS]
|
|
|
1516
1516
|
* `-c, --config_file TEXT`: Bigeye CLI Configuration File Path [env var: BIGEYE_API_CONFIG_FILE]
|
|
1517
1517
|
* `-w, --workspace TEXT`: Name of the workspace configuration. [env var: BIGEYE_WORKSPACE; default: DEFAULT]
|
|
1518
1518
|
* `-dc, --delta_conf TEXT`: Simple Delta configuration file. [required]
|
|
1519
|
-
* `-ul, --update_lineage`: Should lineage between source and target be checked/created if doesn
|
|
1519
|
+
* `-ul, --update_lineage`: Should lineage between source and target be checked/created if doesn't exist.
|
|
1520
1520
|
* `--help`: Show this message and exit.
|
|
1521
1521
|
|
|
1522
1522
|
## `bigeye deltas run-delta`
|
|
@@ -8,6 +8,7 @@ from bigeye_cli.functions import cli_client_factory
|
|
|
8
8
|
from bigeye_cli import global_options
|
|
9
9
|
from bigeye_cli.bigconfig import bigconfig_options
|
|
10
10
|
from bigeye_cli.model.github_report import GitHubReport
|
|
11
|
+
from bigeye_sdk.bigconfig_validation.big_config_reports import all_reports
|
|
11
12
|
from bigeye_sdk.controller.metric_controller import MetricController
|
|
12
13
|
from bigeye_sdk.controller.metric_suite_controller import MetricSuiteController
|
|
13
14
|
from bigeye_sdk.generated.com.bigeye.models.generated import MetricInfoList
|
|
@@ -73,7 +74,7 @@ def plan(
|
|
|
73
74
|
)
|
|
74
75
|
if cicd:
|
|
75
76
|
gh_report = GitHubReport(github_token=os.environ["GITHUB_TOKEN"])
|
|
76
|
-
gh_report.
|
|
77
|
+
gh_report.publish_bigconfig(console_report=report, file_reports=all_reports())
|
|
77
78
|
|
|
78
79
|
|
|
79
80
|
@app.command()
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from dataclasses import dataclass
|
|
3
|
+
from typing import List
|
|
3
4
|
|
|
4
5
|
from github import Github
|
|
5
6
|
from github.Issue import Issue
|
|
6
7
|
from github.PullRequest import PullRequest
|
|
7
8
|
from github.Repository import Repository
|
|
8
9
|
|
|
10
|
+
from bigeye_sdk.bigconfig_validation.big_config_reports import BIGCONFIG_REPORT
|
|
9
11
|
from bigeye_sdk.log import get_logger
|
|
10
12
|
from bigeye_sdk.generated.com.bigeye.models.generated import DeltaInfo
|
|
11
13
|
from bigeye_cli.model.vendor_report import (
|
|
@@ -31,7 +33,7 @@ class GitHubReport(VendorReport):
|
|
|
31
33
|
self.pr = self.repo.get_pull(int(os.environ["PR_NUMBER"]))
|
|
32
34
|
|
|
33
35
|
def publish(
|
|
34
|
-
|
|
36
|
+
self, base_url: str, source_table_name: str, target_table_name: str, di: DeltaInfo
|
|
35
37
|
) -> int:
|
|
36
38
|
|
|
37
39
|
dti = di.comparison_target_infos[0]
|
|
@@ -43,9 +45,6 @@ class GitHubReport(VendorReport):
|
|
|
43
45
|
log.error("The process will exit as failed.")
|
|
44
46
|
report = _format_report(url, source_table_name, target_table_name, dti)
|
|
45
47
|
body = f"Bigeye Delta failure for PR: {self.pr.title}\n\n{report}"
|
|
46
|
-
# self.issue = self.repo.create_issue(
|
|
47
|
-
# title=failure_title, body=report, assignee=self.pr.user, labels=["bug"]
|
|
48
|
-
# )
|
|
49
48
|
self.pr.create_issue_comment(body=body)
|
|
50
49
|
return 1
|
|
51
50
|
elif dti.schema_match is False:
|
|
@@ -62,7 +61,7 @@ class GitHubReport(VendorReport):
|
|
|
62
61
|
return 0
|
|
63
62
|
|
|
64
63
|
def publish_group_bys(
|
|
65
|
-
|
|
64
|
+
self, base_url: str, source_table_name: str, target_table_name: str, di: DeltaInfo
|
|
66
65
|
):
|
|
67
66
|
dti = di.comparison_target_infos[0]
|
|
68
67
|
group_bys = di.delta.comparison_table_configurations[0].group_bys
|
|
@@ -70,5 +69,18 @@ class GitHubReport(VendorReport):
|
|
|
70
69
|
report = _format_group_report(url, source_table_name, target_table_name, dti, group_bys)
|
|
71
70
|
self.pr.create_issue_comment(body=report)
|
|
72
71
|
|
|
73
|
-
def
|
|
74
|
-
self.pr.create_issue_comment(body=
|
|
72
|
+
def publish_bigconfig(self, console_report: str, file_reports: List[BIGCONFIG_REPORT]):
|
|
73
|
+
self.pr.create_issue_comment(body=console_report)
|
|
74
|
+
full_report = []
|
|
75
|
+
for report in file_reports:
|
|
76
|
+
cleansed_source_name = report.source_name.replace("/", "").replace(" ", "_")
|
|
77
|
+
title = f"{cleansed_source_name}"
|
|
78
|
+
source_report = (f"<details>"
|
|
79
|
+
f" <summary><b>Full Plan: {title}</b></summary>"
|
|
80
|
+
f"\n\n"
|
|
81
|
+
f"```yaml\n"
|
|
82
|
+
f"{report}\n"
|
|
83
|
+
f"```\n"
|
|
84
|
+
f"</details>")
|
|
85
|
+
full_report.append(source_report)
|
|
86
|
+
self.pr.create_issue_comment(body="\n".join(full_report))
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import abc
|
|
2
2
|
from typing import List
|
|
3
3
|
|
|
4
|
+
from bigeye_sdk.bigconfig_validation.big_config_reports import BIGCONFIG_REPORT
|
|
4
5
|
from bigeye_sdk.generated.com.bigeye.models.generated import ComparisonMetricInfo, ComparisonMetricStatus, \
|
|
5
6
|
PredefinedMetricName, DeltaTargetInfo, ColumnNamePair, Delta, DeltaInfo
|
|
6
7
|
|
|
@@ -103,7 +104,7 @@ class VendorReport(abc.ABC):
|
|
|
103
104
|
pass
|
|
104
105
|
|
|
105
106
|
@abc.abstractmethod
|
|
106
|
-
def
|
|
107
|
+
def publish_bigconfig(self, console_report: str, file_reports: List[BIGCONFIG_REPORT]):
|
|
107
108
|
pass
|
|
108
109
|
|
|
109
110
|
# This generated Markdown tables similar to the dimensional view in Bigeye.
|
|
@@ -20,7 +20,7 @@ from bigeye_sdk.generated.com.bigeye.models.generated import (
|
|
|
20
20
|
Workspace,
|
|
21
21
|
Group,
|
|
22
22
|
RoleOperation,
|
|
23
|
-
Group,
|
|
23
|
+
Group, BulkChangeGroupGrantsResponse,
|
|
24
24
|
)
|
|
25
25
|
|
|
26
26
|
log = get_logger(__file__)
|
|
@@ -486,7 +486,7 @@ def edit_group_access(
|
|
|
486
486
|
"Edit",
|
|
487
487
|
"--access-level",
|
|
488
488
|
"-access",
|
|
489
|
-
help="The access this group should have to the workspaces provided. Must be
|
|
489
|
+
help="The access this group should have to the workspaces provided. Must be `View`, `Edit`, or `Manage`",
|
|
490
490
|
),
|
|
491
491
|
operation: int = typer.Option(
|
|
492
492
|
RoleOperation.ROLE_OPERATION_GRANT.value,
|
|
@@ -498,9 +498,9 @@ def edit_group_access(
|
|
|
498
498
|
"""Edit the workspaces that a group can access."""
|
|
499
499
|
client = cli_client_factory(bigeye_conf, config_file, workspace)
|
|
500
500
|
|
|
501
|
-
if access_level.lower() not in ["edit", "manage"]:
|
|
501
|
+
if access_level.lower() not in ["view", "edit", "manage"]:
|
|
502
502
|
raise typer.BadParameter(
|
|
503
|
-
f"Invalid access level provided. Must be
|
|
503
|
+
f"Invalid access level provided. Must be `View`, `Edit`, or `Manage`"
|
|
504
504
|
)
|
|
505
505
|
|
|
506
506
|
if group_id:
|
|
@@ -530,43 +530,38 @@ def edit_group_access(
|
|
|
530
530
|
workspaces: List[Workspace] = [
|
|
531
531
|
w for w in client.get_workspaces().workspaces if w.name in workspace_names
|
|
532
532
|
]
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
for r in client.get_roles().roles
|
|
537
|
-
if r.workspace_id in workspace_ids and r.name.lower() == access_level.lower()
|
|
538
|
-
]
|
|
533
|
+
role = next(r for r in client.get_roles().roles
|
|
534
|
+
if r.name.lower() == access_level.lower())
|
|
535
|
+
workspace_ids = [w.id for w in workspaces]
|
|
539
536
|
|
|
540
537
|
# warn user of workspace names not found
|
|
541
538
|
valid_workspace_names = [w.name.lower() for w in workspaces]
|
|
542
539
|
for w in workspace_names:
|
|
543
|
-
if w not in valid_workspace_names:
|
|
540
|
+
if w.lower() not in valid_workspace_names:
|
|
544
541
|
log.warning(
|
|
545
542
|
f"Workspace name `{w}` could not be found and will not be added to {group_name} access."
|
|
546
543
|
)
|
|
547
544
|
|
|
548
|
-
response = client.edit_group_roles(
|
|
549
|
-
|
|
550
|
-
|
|
545
|
+
response: BulkChangeGroupGrantsResponse = client.edit_group_roles(
|
|
546
|
+
group=group,
|
|
547
|
+
role=role,
|
|
548
|
+
workspace_ids=workspace_ids,
|
|
551
549
|
operation=RoleOperation(operation),
|
|
552
550
|
)
|
|
553
551
|
|
|
554
552
|
# warn user that some group/role pairs may have failed to update
|
|
555
553
|
for failed_update in response.failed_updates:
|
|
556
|
-
failed_role = next(filter(lambda r: r.id == failed_update.id, roles), None)
|
|
557
554
|
log.warning(
|
|
558
|
-
f"Group role failed to be updated. Group = {group.
|
|
555
|
+
f"Group role failed to be updated. Group = {failed_update.request.group.display_name}, "
|
|
556
|
+
f"Role = {failed_update.request.role.name}, "
|
|
557
|
+
f"Workspace = {failed_update.request.workspace.display_name}"
|
|
559
558
|
)
|
|
560
559
|
|
|
561
560
|
# validate all successful updates
|
|
562
|
-
for
|
|
563
|
-
succeeded_role = next(filter(lambda r: r.id == succeeded_id, roles), None)
|
|
564
|
-
succeeded_workspace = next(
|
|
565
|
-
filter(lambda w: w.id == succeeded_role.workspace_id, workspaces), None
|
|
566
|
-
)
|
|
561
|
+
for successful_update in response.successful_requests:
|
|
567
562
|
log.info(
|
|
568
|
-
f"Group {group.
|
|
569
|
-
f"in the {
|
|
563
|
+
f"Group {successful_update.group.display_name} has been updated for the {successful_update.role.name} role "
|
|
564
|
+
f"in the {successful_update.workspace.display_name} workspace."
|
|
570
565
|
)
|
|
571
566
|
|
|
572
567
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|