outerbounds 0.3.89__py3-none-any.whl → 0.3.91__py3-none-any.whl
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.
- outerbounds/command_groups/perimeters_cli.py +56 -2
- {outerbounds-0.3.89.dist-info → outerbounds-0.3.91.dist-info}/METADATA +4 -4
- {outerbounds-0.3.89.dist-info → outerbounds-0.3.91.dist-info}/RECORD +5 -5
- {outerbounds-0.3.89.dist-info → outerbounds-0.3.91.dist-info}/WHEEL +0 -0
- {outerbounds-0.3.89.dist-info → outerbounds-0.3.91.dist-info}/entry_points.txt +0 -0
| @@ -1,10 +1,12 @@ | |
| 1 1 | 
             
            import json
         | 
| 2 2 | 
             
            import os
         | 
| 3 3 | 
             
            import sys
         | 
| 4 | 
            +
            from io import StringIO
         | 
| 4 5 | 
             
            from os import path
         | 
| 5 6 | 
             
            from typing import Any, Dict
         | 
| 6 7 | 
             
            from outerbounds._vendor import click
         | 
| 7 8 | 
             
            import requests
         | 
| 9 | 
            +
            import configparser
         | 
| 8 10 |  | 
| 9 11 | 
             
            from ..utils import metaflowconfig
         | 
| 10 12 | 
             
            from ..utils.utils import safe_write_to_disk
         | 
| @@ -440,6 +442,9 @@ def ensure_cloud_credentials_for_shell(config_dir, profile): | |
| 440 442 | 
             
                if "METAFLOW_DEFAULT_GCP_CLIENT_PROVIDER" in mf_config:
         | 
| 441 443 | 
             
                    # This is a GCP deployment.
         | 
| 442 444 | 
             
                    ensure_gcp_cloud_creds(config_dir, profile)
         | 
| 445 | 
            +
                elif "METAFLOW_DEFAULT_AWS_CLIENT_PROVIDER" in mf_config:
         | 
| 446 | 
            +
                    # This is an AWS deployment.
         | 
| 447 | 
            +
                    ensure_aws_cloud_creds(config_dir, profile)
         | 
| 443 448 |  | 
| 444 449 |  | 
| 445 450 | 
             
            def confirm_user_has_access_to_perimeter_or_fail(
         | 
| @@ -473,8 +478,13 @@ def ensure_gcp_cloud_creds(config_dir, profile): | |
| 473 478 | 
             
                )
         | 
| 474 479 | 
             
                metaflow_token = metaflowconfig.get_metaflow_token_from_config(config_dir, profile)
         | 
| 475 480 |  | 
| 476 | 
            -
                 | 
| 477 | 
            -
             | 
| 481 | 
            +
                try:
         | 
| 482 | 
            +
                    # GOOGLE_APPLICATION_CREDENTIALS is a well known gcloud environment variable
         | 
| 483 | 
            +
                    credentials_file_loc = os.environ["GOOGLE_APPLICATION_CREDENTIALS"]
         | 
| 484 | 
            +
                except KeyError:
         | 
| 485 | 
            +
                    # This is most likely an old workstation when these params weren't set. Do nothing.
         | 
| 486 | 
            +
                    # Alternatively, user might have deliberately unset it to use their own auth.
         | 
| 487 | 
            +
                    return
         | 
| 478 488 |  | 
| 479 489 | 
             
                credentials_json = {
         | 
| 480 490 | 
             
                    "type": "external_account",
         | 
| @@ -492,6 +502,50 @@ def ensure_gcp_cloud_creds(config_dir, profile): | |
| 492 502 | 
             
                safe_write_to_disk(credentials_file_loc, json.dumps(credentials_json))
         | 
| 493 503 |  | 
| 494 504 |  | 
| 505 | 
            +
            def ensure_aws_cloud_creds(config_dir, profile):
         | 
| 506 | 
            +
                token_info = get_aws_auth_credentials(config_dir, profile)
         | 
| 507 | 
            +
             | 
| 508 | 
            +
                try:
         | 
| 509 | 
            +
                    token_file_loc = os.environ["OBP_AWS_WEB_IDENTITY_TOKEN_FILE"]
         | 
| 510 | 
            +
             | 
| 511 | 
            +
                    # AWS_CONFIG_FILE is a well known aws cli environment variable
         | 
| 512 | 
            +
                    config_file_loc = os.environ["AWS_CONFIG_FILE"]
         | 
| 513 | 
            +
                except KeyError:
         | 
| 514 | 
            +
                    # This is most likely an old workstation when these params weren't set. Do nothing.
         | 
| 515 | 
            +
                    # Alternatively, user might have deliberately unset it to use their own auth.
         | 
| 516 | 
            +
                    return
         | 
| 517 | 
            +
             | 
| 518 | 
            +
                aws_config = configparser.ConfigParser()
         | 
| 519 | 
            +
                aws_config.read(config_file_loc)
         | 
| 520 | 
            +
             | 
| 521 | 
            +
                profile_name = "profile outerbounds"
         | 
| 522 | 
            +
                if profile_name not in aws_config:
         | 
| 523 | 
            +
                    aws_config[profile_name] = {}
         | 
| 524 | 
            +
             | 
| 525 | 
            +
                aws_config[profile_name]["role_arn"] = token_info["role_arn"]
         | 
| 526 | 
            +
                aws_config[profile_name]["web_identity_token_file"] = token_file_loc
         | 
| 527 | 
            +
             | 
| 528 | 
            +
                aws_config_string = StringIO()
         | 
| 529 | 
            +
                aws_config.write(aws_config_string)
         | 
| 530 | 
            +
             | 
| 531 | 
            +
                safe_write_to_disk(token_file_loc, token_info["token"])
         | 
| 532 | 
            +
                safe_write_to_disk(config_file_loc, aws_config_string.getvalue())
         | 
| 533 | 
            +
             | 
| 534 | 
            +
             | 
| 535 | 
            +
            def get_aws_auth_credentials(config_dir, profile):  # pragma: no cover
         | 
| 536 | 
            +
                token = metaflowconfig.get_metaflow_token_from_config(config_dir, profile)
         | 
| 537 | 
            +
                auth_server_url = metaflowconfig.get_sanitized_url_from_config(
         | 
| 538 | 
            +
                    config_dir, profile, "OBP_AUTH_SERVER"
         | 
| 539 | 
            +
                )
         | 
| 540 | 
            +
             | 
| 541 | 
            +
                response = requests.get(
         | 
| 542 | 
            +
                    "{}/generate/aws".format(auth_server_url), headers={"x-api-key": token}
         | 
| 543 | 
            +
                )
         | 
| 544 | 
            +
                response.raise_for_status()
         | 
| 545 | 
            +
             | 
| 546 | 
            +
                return response.json()
         | 
| 547 | 
            +
             | 
| 548 | 
            +
             | 
| 495 549 | 
             
            def get_gcp_auth_credentials(config_dir, profile):
         | 
| 496 550 | 
             
                token = metaflowconfig.get_metaflow_token_from_config(config_dir, profile)
         | 
| 497 551 | 
             
                auth_server_url = metaflowconfig.get_sanitized_url_from_config(
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            Metadata-Version: 2.1
         | 
| 2 2 | 
             
            Name: outerbounds
         | 
| 3 | 
            -
            Version: 0.3. | 
| 3 | 
            +
            Version: 0.3.91
         | 
| 4 4 | 
             
            Summary: More Data Science, Less Administration
         | 
| 5 5 | 
             
            License: Proprietary
         | 
| 6 6 | 
             
            Keywords: data science,machine learning,MLOps
         | 
| @@ -24,9 +24,9 @@ Requires-Dist: google-api-core (>=2.16.1,<3.0.0) ; extra == "gcp" | |
| 24 24 | 
             
            Requires-Dist: google-auth (>=2.27.0,<3.0.0) ; extra == "gcp"
         | 
| 25 25 | 
             
            Requires-Dist: google-cloud-secret-manager (>=2.20.0,<3.0.0) ; extra == "gcp"
         | 
| 26 26 | 
             
            Requires-Dist: google-cloud-storage (>=2.14.0,<3.0.0) ; extra == "gcp"
         | 
| 27 | 
            -
            Requires-Dist: ob-metaflow (==2.12. | 
| 28 | 
            -
            Requires-Dist: ob-metaflow-extensions (==1.1. | 
| 29 | 
            -
            Requires-Dist: ob-metaflow-stubs (==5. | 
| 27 | 
            +
            Requires-Dist: ob-metaflow (==2.12.15.1)
         | 
| 28 | 
            +
            Requires-Dist: ob-metaflow-extensions (==1.1.80)
         | 
| 29 | 
            +
            Requires-Dist: ob-metaflow-stubs (==5.3)
         | 
| 30 30 | 
             
            Requires-Dist: opentelemetry-distro (==0.41b0)
         | 
| 31 31 | 
             
            Requires-Dist: opentelemetry-exporter-otlp-proto-http (==1.20.0)
         | 
| 32 32 | 
             
            Requires-Dist: opentelemetry-instrumentation-requests (==0.41b0)
         | 
| @@ -43,7 +43,7 @@ outerbounds/cli_main.py,sha256=e9UMnPysmc7gbrimq2I4KfltggyU7pw59Cn9aEguVcU,74 | |
| 43 43 | 
             
            outerbounds/command_groups/__init__.py,sha256=QPWtj5wDRTINDxVUL7XPqG3HoxHNvYOg08EnuSZB2Hc,21
         | 
| 44 44 | 
             
            outerbounds/command_groups/cli.py,sha256=sorDdQvmTPqIwfvgtuNLILelimXu5CknFnWQFsYFGHs,286
         | 
| 45 45 | 
             
            outerbounds/command_groups/local_setup_cli.py,sha256=tuuqJRXQ_guEwOuQSIf9wkUU0yg8yAs31myGViAK15s,36364
         | 
| 46 | 
            -
            outerbounds/command_groups/perimeters_cli.py,sha256= | 
| 46 | 
            +
            outerbounds/command_groups/perimeters_cli.py,sha256=mrJfFIRYFOjuiz-9h4OKg2JT8Utmbs72z6wvPzDss3s,18685
         | 
| 47 47 | 
             
            outerbounds/command_groups/workstations_cli.py,sha256=V5Jbj1cVb4IRllI7fOgNgL6OekRpuFDv6CEhDb4xC6w,22016
         | 
| 48 48 | 
             
            outerbounds/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 49 49 | 
             
            outerbounds/utils/kubeconfig.py,sha256=yvcyRXGR4AhQuqUDqmbGxEOHw5ixMFV0AZIDg1LI_Qo,7981
         | 
| @@ -51,7 +51,7 @@ outerbounds/utils/metaflowconfig.py,sha256=l2vJbgPkLISU-XPGZFaC8ZKmYFyJemlD6bwB- | |
| 51 51 | 
             
            outerbounds/utils/schema.py,sha256=cNlgjmteLPbDzSEUSQDsq8txdhMGyezSmM83jU3aa0w,2329
         | 
| 52 52 | 
             
            outerbounds/utils/utils.py,sha256=4Z8cszNob_8kDYCLNTrP-wWads_S_MdL3Uj3ju4mEsk,501
         | 
| 53 53 | 
             
            outerbounds/vendor.py,sha256=gRLRJNXtZBeUpPEog0LOeIsl6GosaFFbCxUvR4bW6IQ,5093
         | 
| 54 | 
            -
            outerbounds-0.3. | 
| 55 | 
            -
            outerbounds-0.3. | 
| 56 | 
            -
            outerbounds-0.3. | 
| 57 | 
            -
            outerbounds-0.3. | 
| 54 | 
            +
            outerbounds-0.3.91.dist-info/entry_points.txt,sha256=7ye0281PKlvqxu15rjw60zKg2pMsXI49_A8BmGqIqBw,47
         | 
| 55 | 
            +
            outerbounds-0.3.91.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
         | 
| 56 | 
            +
            outerbounds-0.3.91.dist-info/METADATA,sha256=kOks4_LR2Mtdl50EIljhUYOeZpaqjNuRDcPmUzumuhQ,1632
         | 
| 57 | 
            +
            outerbounds-0.3.91.dist-info/RECORD,,
         | 
| 
            File without changes
         | 
| 
            File without changes
         |