vgs-cli 1.30.2.dev3__tar.gz → 1.30.2.dev5__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.
- {vgs-cli-1.30.2.dev3/vgs_cli.egg-info → vgs-cli-1.30.2.dev5}/PKG-INFO +1 -1
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/requirements.txt +1 -1
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5/vgs_cli.egg-info}/PKG-INFO +1 -1
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgs_cli.egg-info/requires.txt +1 -1
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/_version.py +1 -1
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/cli/commands/apply.py +23 -11
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/cli_utils.py +11 -6
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/LICENSE +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/MANIFEST.in +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/README.md +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/setup.cfg +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/setup.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/test-requirements.txt +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgs_cli.egg-info/SOURCES.txt +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgs_cli.egg-info/dependency_links.txt +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgs_cli.egg-info/entry_points.txt +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgs_cli.egg-info/not-zip-safe +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgs_cli.egg-info/top_level.txt +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/__init__.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/access_logs.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/audits_api.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/auth.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/auth_server.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/auth_utils.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/callback_server.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/cli/__init__.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/cli/commands/__init__.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/cli/commands/generate.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/cli/commands/get.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/cli/types/__init__.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/cli/types/resource_id.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/cli/types/variable.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/click_extensions.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/config_file.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/errors.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/file_token_util.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/id_generator.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/keyring_token_util.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/resource-templates/service-account/calm.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/resource-templates/service-account/checkout.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/resource-templates/service-account/payments-admin.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/resource-templates/service-account/sub-account-checkout.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/resource-templates/service-account/vgs-cli.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/resource-templates/vault-template.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/testing.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/text.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/token_handler.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/validation-schemas/service-account-schema.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/validation-schemas/vault-resources.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/validation-schemas/vault-schema.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/vgs.py +0 -0
|
@@ -5,6 +5,7 @@ from typing import Optional
|
|
|
5
5
|
import click
|
|
6
6
|
from click_plugins import with_plugins
|
|
7
7
|
from pkg_resources import iter_entry_points
|
|
8
|
+
from simple_rest_client import exceptions
|
|
8
9
|
from simple_rest_client.exceptions import ClientError
|
|
9
10
|
from vgscli.auth import handshake, token_util
|
|
10
11
|
from vgscli.cli import create_account_mgmt_api, create_vault_mgmt_api
|
|
@@ -12,11 +13,13 @@ from vgscli.cli.types import ResourceId, ResourceIdParamType
|
|
|
12
13
|
from vgscli.cli_utils import dump_camelized_yaml, validate_multi_yaml, validate_yaml
|
|
13
14
|
from vgscli.errors import ServiceClientCreationError, VgsCliError, handle_errors
|
|
14
15
|
|
|
15
|
-
from vgs.sdk.
|
|
16
|
+
from vgs.sdk.errors import RouteNotValidError
|
|
17
|
+
from vgs.sdk.routes import dump_yaml, normalize
|
|
16
18
|
from vgs.sdk.vaults_api import create_api as create_vaults_api
|
|
17
19
|
|
|
18
20
|
logger = logging.getLogger()
|
|
19
21
|
|
|
22
|
+
|
|
20
23
|
@with_plugins(iter_entry_points("vgs.apply.plugins"))
|
|
21
24
|
@click.group("apply")
|
|
22
25
|
def apply() -> None:
|
|
@@ -181,15 +184,21 @@ def apply_vault(ctx: click.Context, org_id: Optional[ResourceId], file) -> None:
|
|
|
181
184
|
def sync_http_route(payload, ctx, vault_id):
|
|
182
185
|
handshake(ctx, ctx.obj.env)
|
|
183
186
|
|
|
184
|
-
route_data = payload["spec"]
|
|
185
187
|
vault_management_api = create_vaults_api(
|
|
186
188
|
ctx, vault_id, ctx.obj.env, token_util.get_access_token()
|
|
187
189
|
)
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
190
|
+
route_id = payload["spec"]["id"]
|
|
191
|
+
try:
|
|
192
|
+
# api expects it to be wrapped in data attribute
|
|
193
|
+
result = vault_management_api.routes.update(
|
|
194
|
+
route_id, body={"data": payload["spec"]}
|
|
195
|
+
)
|
|
196
|
+
result = normalize(result)
|
|
197
|
+
click.echo(f"Route {route_id} processed")
|
|
198
|
+
except exceptions.ClientError as e:
|
|
199
|
+
error_msg = "\n".join([error["detail"] for error in e.response.body["errors"]])
|
|
200
|
+
raise RouteNotValidError(error_msg)
|
|
201
|
+
return result
|
|
193
202
|
|
|
194
203
|
|
|
195
204
|
def sync_mft_route(payload, ctx, vault_id):
|
|
@@ -221,8 +230,6 @@ def all_vault_resources(
|
|
|
221
230
|
"""
|
|
222
231
|
Apply all vault resources (routes, preferences, certificates) to a single vault.
|
|
223
232
|
"""
|
|
224
|
-
# print(f"{vault} {file} uscker")
|
|
225
|
-
# print(file)
|
|
226
233
|
parsed_resources = validate_multi_yaml(
|
|
227
234
|
file, "validation-schemas/vault-resources.yaml"
|
|
228
235
|
)
|
|
@@ -233,5 +240,10 @@ def all_vault_resources(
|
|
|
233
240
|
)
|
|
234
241
|
else:
|
|
235
242
|
# for each resource find handler.
|
|
236
|
-
logger.info(
|
|
237
|
-
|
|
243
|
+
logger.info(
|
|
244
|
+
f"Processing {resource['apiVersion']} {resource['kind']} {resource['metadata']['name']} to server"
|
|
245
|
+
)
|
|
246
|
+
response_payload = HANDLERS[(resource["apiVersion"], resource["kind"])](
|
|
247
|
+
resource, ctx, vault
|
|
248
|
+
)
|
|
249
|
+
print(dump_yaml(response_payload))
|
|
@@ -51,24 +51,29 @@ def validate_multi_yaml(file_to_validate, path_to_schema):
|
|
|
51
51
|
if not file:
|
|
52
52
|
logger.debug("Skipping blank file")
|
|
53
53
|
continue
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
failures = [
|
|
55
|
+
x for x in [fails_validation(file, schema) for schema in schemas] if x
|
|
56
|
+
]
|
|
57
|
+
if len(failures) == len(schemas):
|
|
58
|
+
for failure in failures:
|
|
59
|
+
logger.exception(failure)
|
|
56
60
|
raise SchemaValidationError(
|
|
57
61
|
f"Failed to validate {file['apiVersion']} {file['kind']} {file['metadata']['name']} against any known schema."
|
|
58
62
|
)
|
|
59
|
-
logger.debug(
|
|
63
|
+
logger.debug(
|
|
64
|
+
f"Validated {file['apiVersion']} {file['kind']} {file['metadata']['name']}"
|
|
65
|
+
)
|
|
60
66
|
yield file
|
|
61
67
|
|
|
62
68
|
|
|
63
|
-
def
|
|
69
|
+
def fails_validation(file, schema):
|
|
64
70
|
logger.info(
|
|
65
71
|
f"Validating version={file['apiVersion']} kind={file['kind']} name={file['metadata']['name']}\nagainst\n\t{schema}"
|
|
66
72
|
)
|
|
67
73
|
try:
|
|
68
74
|
jsonschema.validate(file, schema)
|
|
69
|
-
return file["apiVersion"], file["kind"], file["metadata"]["name"]
|
|
70
75
|
except jsonschema.exceptions.ValidationError as ex:
|
|
71
|
-
|
|
76
|
+
return ex
|
|
72
77
|
return None
|
|
73
78
|
|
|
74
79
|
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/resource-templates/service-account/calm.yaml
RENAMED
|
File without changes
|
{vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/resource-templates/service-account/checkout.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/resource-templates/service-account/vgs-cli.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev5}/vgscli/validation-schemas/service-account-schema.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|