vgs-cli 1.30.2.dev3__tar.gz → 1.30.2.dev4__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.dev4}/PKG-INFO +1 -1
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/requirements.txt +1 -1
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4/vgs_cli.egg-info}/PKG-INFO +1 -1
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgs_cli.egg-info/requires.txt +1 -1
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/_version.py +1 -1
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/cli/commands/apply.py +20 -11
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/cli_utils.py +11 -6
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/LICENSE +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/MANIFEST.in +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/README.md +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/setup.cfg +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/setup.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/test-requirements.txt +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgs_cli.egg-info/SOURCES.txt +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgs_cli.egg-info/dependency_links.txt +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgs_cli.egg-info/entry_points.txt +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgs_cli.egg-info/not-zip-safe +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgs_cli.egg-info/top_level.txt +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/__init__.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/access_logs.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/audits_api.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/auth.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/auth_server.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/auth_utils.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/callback_server.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/cli/__init__.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/cli/commands/__init__.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/cli/commands/generate.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/cli/commands/get.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/cli/types/__init__.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/cli/types/resource_id.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/cli/types/variable.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/click_extensions.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/config_file.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/errors.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/file_token_util.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/id_generator.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/keyring_token_util.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/resource-templates/service-account/calm.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/resource-templates/service-account/checkout.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/resource-templates/service-account/payments-admin.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/resource-templates/service-account/sub-account-checkout.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/resource-templates/service-account/vgs-cli.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/resource-templates/vault-template.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/testing.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/text.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/token_handler.py +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/validation-schemas/service-account-schema.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/validation-schemas/vault-resources.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/vgscli/validation-schemas/vault-schema.yaml +0 -0
- {vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/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,18 @@ 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
|
+
result = vault_management_api.routes.update(route_id, body=payload["spec"])
|
|
193
|
+
result = normalize(result)
|
|
194
|
+
click.echo(f"Route {route_id} processed")
|
|
195
|
+
except exceptions.ClientError as e:
|
|
196
|
+
error_msg = "\n".join([error["detail"] for error in e.response.body["errors"]])
|
|
197
|
+
raise RouteNotValidError(error_msg)
|
|
198
|
+
return result
|
|
193
199
|
|
|
194
200
|
|
|
195
201
|
def sync_mft_route(payload, ctx, vault_id):
|
|
@@ -221,8 +227,6 @@ def all_vault_resources(
|
|
|
221
227
|
"""
|
|
222
228
|
Apply all vault resources (routes, preferences, certificates) to a single vault.
|
|
223
229
|
"""
|
|
224
|
-
# print(f"{vault} {file} uscker")
|
|
225
|
-
# print(file)
|
|
226
230
|
parsed_resources = validate_multi_yaml(
|
|
227
231
|
file, "validation-schemas/vault-resources.yaml"
|
|
228
232
|
)
|
|
@@ -233,5 +237,10 @@ def all_vault_resources(
|
|
|
233
237
|
)
|
|
234
238
|
else:
|
|
235
239
|
# for each resource find handler.
|
|
236
|
-
logger.info(
|
|
237
|
-
|
|
240
|
+
logger.info(
|
|
241
|
+
f"Processing {resource['apiVersion']} {resource['kind']} {resource['metadata']['name']} to server"
|
|
242
|
+
)
|
|
243
|
+
response_payload = HANDLERS[(resource["apiVersion"], resource["kind"])](
|
|
244
|
+
resource, ctx, vault
|
|
245
|
+
)
|
|
246
|
+
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.dev4}/vgscli/resource-templates/service-account/calm.yaml
RENAMED
|
File without changes
|
{vgs-cli-1.30.2.dev3 → vgs-cli-1.30.2.dev4}/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.dev4}/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.dev4}/vgscli/validation-schemas/service-account-schema.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|