pybritive 2.2.1__tar.gz → 2.2.2__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.
- {pybritive-2.2.1/src/pybritive.egg-info → pybritive-2.2.2}/PKG-INFO +1 -1
- pybritive-2.2.2/src/pybritive/__init__.py +1 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/britive_cli.py +34 -38
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/kube_config_builder.py +8 -4
- {pybritive-2.2.1 → pybritive-2.2.2/src/pybritive.egg-info}/PKG-INFO +1 -1
- pybritive-2.2.1/src/pybritive/__init__.py +0 -1
- {pybritive-2.2.1 → pybritive-2.2.2}/LICENSE +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/README.md +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/pyproject.toml +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/setup.cfg +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/choices/__init__.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/choices/backend.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/choices/browser.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/choices/mode.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/choices/output_format.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/choices/profile_type.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/choices/ssh_key_source.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/choices/ssh_push_public_key.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/cli_interface.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/__init__.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/api.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/aws.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/cache.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/checkin.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/checkout.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/clear.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/configure.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/login.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/logout.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/ls.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/request.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/secret.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/ssh.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/commands/user.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/completers/__init__.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/completers/api.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/completers/api_command.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/completers/bash_gte_42.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/completers/powershell_completion.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/completers/profile.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/__init__.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/api_method_argument_decorator.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/aws_credential_process.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/build_britive.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/cache.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/cloud_credential_printer.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/config.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/credentials.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/encryption.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/k8s_exec.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/k8s_exec_credential_builder.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/profile_argument_decorator.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/helpers/split.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/__init__.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/alias.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/aws_console_duration.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/aws_credentials_file.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/aws_profile.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/blocktime.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/britive_options.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/browser.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/checked_out.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/configure_alias.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/configure_backend.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/configure_prompt.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/configure_tenant.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/console.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/extend.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/federation_provider.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/file.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/force_renew.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/gcloud_key_file.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/justification.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/maxpolltime.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/mode.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/otp.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/output_format.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/passphrase.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/profile_type.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/query.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/silent.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/ssh_hostname.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/ssh_key_source.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/ssh_port.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/ssh_push_public_key.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/ssh_username.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/tenant.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/ticket_id.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/ticket_type.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/token.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/verbose.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive/options/version.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive.egg-info/SOURCES.txt +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive.egg-info/dependency_links.txt +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive.egg-info/entry_points.txt +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive.egg-info/requires.txt +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/src/pybritive.egg-info/top_level.txt +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/tests/test_0100_version.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/tests/test_0200_configure.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/tests/test_0300_login.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/tests/test_0400_ls.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/tests/test_0500_api.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/tests/test_0600_secret.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/tests/test_0700_cache.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/tests/test_0800_checkout.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/tests/test_0900_checkin.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/tests/test_1000_clear.py +0 -0
- {pybritive-2.2.1 → pybritive-2.2.2}/tests/test_1100_logout.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.2.2'
|
|
@@ -465,26 +465,20 @@ class BritiveCli:
|
|
|
465
465
|
data.append(row)
|
|
466
466
|
self.print(data, ignore_silent=True)
|
|
467
467
|
|
|
468
|
-
# temporary fix till the new API is updated to return `
|
|
469
|
-
def
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
for env in profile.get('environments', [])
|
|
483
|
-
if env['environmentId'] == env_id
|
|
484
|
-
),
|
|
485
|
-
{},
|
|
486
|
-
)
|
|
487
|
-
return {}
|
|
468
|
+
# temporary fix till the new API is updated to return `sessionAttributes`
|
|
469
|
+
def _get_missing_session_attributes(self, app_id: str, profile_id: str) -> dict:
|
|
470
|
+
if not self.listed_profiles:
|
|
471
|
+
self.listed_profiles = self.b.my_access.list_profiles()
|
|
472
|
+
return next(
|
|
473
|
+
(
|
|
474
|
+
profile['sessionAttributes']
|
|
475
|
+
for app in self.listed_profiles
|
|
476
|
+
if app['appContainerId'] == app_id
|
|
477
|
+
for profile in app.get('profiles', [])
|
|
478
|
+
if profile['profileId'] == profile_id
|
|
479
|
+
),
|
|
480
|
+
[],
|
|
481
|
+
)
|
|
488
482
|
|
|
489
483
|
def _set_available_profiles(self, from_cache_command=False, profile_type: Optional[str] = None):
|
|
490
484
|
if not self.available_profiles:
|
|
@@ -509,23 +503,23 @@ class BritiveCli:
|
|
|
509
503
|
env = envs[env_id]
|
|
510
504
|
profile = profiles[profile_id]
|
|
511
505
|
row = {
|
|
512
|
-
'
|
|
506
|
+
'2_part_profile_format_allowed': app['requiresHierarchicalModel'],
|
|
507
|
+
'app_description': app['appDescription'],
|
|
513
508
|
'app_id': app_id,
|
|
509
|
+
'app_name': app['catalogAppDisplayName'],
|
|
514
510
|
'app_type': app['catalogAppName'],
|
|
515
|
-
'
|
|
516
|
-
'env_name': env['environmentName'],
|
|
511
|
+
'env_description': env['environmentDescription'],
|
|
517
512
|
'env_id': env_id,
|
|
513
|
+
'env_name': env['environmentName'],
|
|
514
|
+
'env_properties': env['profileEnvironmentProperties'],
|
|
518
515
|
'env_short_name': env['alternateEnvironmentName'],
|
|
519
|
-
'env_description': env['environmentDescription'],
|
|
520
|
-
'profile_name': profile['papName'],
|
|
521
|
-
'profile_id': profile_id,
|
|
522
516
|
'profile_allows_console': app.get('consoleAccess', False),
|
|
523
517
|
'profile_allows_programmatic': app.get('programmaticAccess', False),
|
|
524
518
|
'profile_description': profile['papDescription'],
|
|
525
|
-
'
|
|
526
|
-
'
|
|
527
|
-
|
|
528
|
-
|
|
519
|
+
'profile_id': profile_id,
|
|
520
|
+
'profile_name': profile['papName'],
|
|
521
|
+
'session_attributes': profile.get(
|
|
522
|
+
'sessionAttributes', self._get_missing_session_attributes(app_id, profile_id)
|
|
529
523
|
),
|
|
530
524
|
}
|
|
531
525
|
if row not in access_output:
|
|
@@ -539,21 +533,21 @@ class BritiveCli:
|
|
|
539
533
|
profiles = profiles['data']
|
|
540
534
|
for item in profiles:
|
|
541
535
|
row = {
|
|
542
|
-
'
|
|
536
|
+
'2_part_profile_format_allowed': False,
|
|
537
|
+
'app_description': None,
|
|
543
538
|
'app_id': None,
|
|
539
|
+
'app_name': None,
|
|
544
540
|
'app_type': 'Resources',
|
|
545
|
-
'
|
|
546
|
-
'env_name': item['resourceName'],
|
|
541
|
+
'env_description': None,
|
|
547
542
|
'env_id': item['resourceId'],
|
|
543
|
+
'env_name': item['resourceName'],
|
|
544
|
+
'env_properties': item.get('resourceLabels', {}),
|
|
548
545
|
'env_short_name': item['resourceName'],
|
|
549
|
-
'env_description': None,
|
|
550
|
-
'profile_name': item['profileName'],
|
|
551
|
-
'profile_id': item['profileId'],
|
|
552
546
|
'profile_allows_console': False,
|
|
553
547
|
'profile_allows_programmatic': True,
|
|
554
548
|
'profile_description': None,
|
|
555
|
-
'
|
|
556
|
-
'
|
|
549
|
+
'profile_id': item['profileId'],
|
|
550
|
+
'profile_name': item['profileName'],
|
|
557
551
|
}
|
|
558
552
|
data.append(row)
|
|
559
553
|
self.available_profiles = data
|
|
@@ -584,6 +578,7 @@ class BritiveCli:
|
|
|
584
578
|
'profile': p['profile_name'],
|
|
585
579
|
'url': url,
|
|
586
580
|
'cert': cert,
|
|
581
|
+
'session_attributes': p['session_attributes'],
|
|
587
582
|
}
|
|
588
583
|
)
|
|
589
584
|
|
|
@@ -978,6 +973,7 @@ class BritiveCli:
|
|
|
978
973
|
if self._profile_is_for_resource(profile=profile, profile_type=profile_type):
|
|
979
974
|
app_type = 'Resources'
|
|
980
975
|
k8s_processor = None
|
|
976
|
+
console_fallback = False
|
|
981
977
|
credentials = self._resource_checkout(
|
|
982
978
|
blocktime=blocktime,
|
|
983
979
|
justification=justification,
|
|
@@ -69,7 +69,7 @@ def parse_profiles(profiles, aliases):
|
|
|
69
69
|
cluster_names = {}
|
|
70
70
|
assigned_aliases = []
|
|
71
71
|
for profile in profiles:
|
|
72
|
-
env_profile = f
|
|
72
|
+
env_profile = f'{sanitize(profile["env"])}-{sanitize(profile["profile"].lower())}'
|
|
73
73
|
if env_profile not in cluster_names:
|
|
74
74
|
app = BritiveCli.escape_profile_element(profile['app'])
|
|
75
75
|
env = BritiveCli.escape_profile_element(profile['env'])
|
|
@@ -84,8 +84,9 @@ def parse_profiles(profiles, aliases):
|
|
|
84
84
|
'url': profile['url'],
|
|
85
85
|
'cert': profile['cert'],
|
|
86
86
|
'escaped_profile': escaped_profile_str,
|
|
87
|
-
'profile': f
|
|
87
|
+
'profile': f'{profile["app"]}/{profile["env"]}/{profile["profile"]}'.lower(),
|
|
88
88
|
'alias': alias,
|
|
89
|
+
'session_attributes': profile['session_attributes'],
|
|
89
90
|
}
|
|
90
91
|
cluster_names[env_profile]['apps'].append(sanitize(profile['app']))
|
|
91
92
|
return [cluster_names, assigned_aliases]
|
|
@@ -129,7 +130,6 @@ def build_tenant_config(tenant, cluster_names, username, cli: BritiveCli):
|
|
|
129
130
|
)
|
|
130
131
|
contexts = []
|
|
131
132
|
clusters = []
|
|
132
|
-
|
|
133
133
|
for env_profile, details in cluster_names.items():
|
|
134
134
|
if len(details['apps']) == 1:
|
|
135
135
|
names = [env_profile]
|
|
@@ -162,7 +162,11 @@ def build_tenant_config(tenant, cluster_names, username, cli: BritiveCli):
|
|
|
162
162
|
contexts.append(
|
|
163
163
|
{
|
|
164
164
|
'name': details.get('alias') or f'{tenant}-{name}',
|
|
165
|
-
'context': {
|
|
165
|
+
'context': {
|
|
166
|
+
'cluster': f'{tenant}-{name}',
|
|
167
|
+
'user': username,
|
|
168
|
+
**{attr['mappingName']: attr['attributeValue'] for attr in details['session_attributes']},
|
|
169
|
+
},
|
|
166
170
|
}
|
|
167
171
|
)
|
|
168
172
|
return [clusters, contexts, users]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.2.1'
|
|
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
|
|
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
|
|
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
|
|
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
|