Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package oci-cli for openSUSE:Factory checked in at 2022-10-18 16:06:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/oci-cli (Old) and /work/SRC/openSUSE:Factory/.oci-cli.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "oci-cli" Tue Oct 18 16:06:51 2022 rev:27 rq:1010232 version:3.18.1 Changes: -------- --- /work/SRC/openSUSE:Factory/oci-cli/oci-cli.changes 2022-09-30 17:58:18.973315534 +0200 +++ /work/SRC/openSUSE:Factory/.oci-cli.new.2275/oci-cli.changes 2022-10-18 16:06:52.721216534 +0200 @@ -1,0 +2,29 @@ +Mon Oct 10 12:22:56 UTC 2022 - John Paul Adrian Glaubitz <adrian.glaub...@suse.com> + +- Update to version 3.18.1 + * Bastion support for target host identification and enabled SOCKS support + for dynamic port forwarding sessions + * ``oci bastion`` + * Operations Insights service + * Support for creating Enterprise Manager-based Windows host targets for ``--platform-type`` + * ``oci opsi host-insights list --platform-type`` + * Support for creating Management Agent Cloud Service-based Windows and + Solaris hosts targets for ``--platform-type`` + * ``oci opsi host-insights list --platform-type`` + * Support for Host Top Process allowing users to locate top processes + running at a particular point in time + * ``oci opsi host-insights summarize-top-processes-usage --compartment-id + --id --resource-metric --timestamp --analysis-time-interval`` + * Support for Host Top Process allowing users to filter by a single process + in order to trend this process over time + * ``oci opsi host-insights summarize-top-processes-usage --compartment-id + --id --resource-metric --timestamp --analysis-time-interval`` + * Cloud-Bridge Service + * Support for check to require ``--vcenter-endpoint`` and ``--discovery-credentials`` + parameters if asset source is VMWARE for ``--type`` + * ``oci cloud-bridge discovery asset-source create --type VMWARE`` +- Refresh patches for new version + + oc_relax-python-depends.patch +- Update BuildRequires and Requires from setup.py + +------------------------------------------------------------------- Old: ---- oci-cli-3.18.0.tar.gz New: ---- oci-cli-3.18.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ oci-cli.spec ++++++ --- /var/tmp/diff_new_pack.1vrmPH/_old 2022-10-18 16:06:53.237217173 +0200 +++ /var/tmp/diff_new_pack.1vrmPH/_new 2022-10-18 16:06:53.245217183 +0200 @@ -28,7 +28,7 @@ %bcond_with test %endif Name: oci-cli%{psuffix} -Version: 3.18.0 +Version: 3.18.1 Release: 0 Summary: Oracle Cloud Infrastructure CLI License: Apache-2.0 @@ -46,7 +46,7 @@ BuildRequires: python3-cryptography >= 3.2.1 BuildRequires: python3-devel BuildRequires: python3-jmespath >= 0.10.0 -BuildRequires: python3-oci-sdk >= 2.84.0 +BuildRequires: python3-oci-sdk >= 2.85.0 BuildRequires: python3-pyOpenSSL >= 19.1.0 BuildRequires: python3-python-dateutil >= 2.5.3 BuildRequires: python3-pytz >= 2016.10 @@ -82,7 +82,7 @@ Requires: python3-click >= 7.1.2 Requires: python3-cryptography >= 3.2.1 Requires: python3-jmespath >= 0.10.0 -Requires: python3-oci-sdk >= 2.84.0 +Requires: python3-oci-sdk >= 2.85.0 Requires: python3-prompt_toolkit >= 3.0.29 Requires: python3-pyOpenSSL >= 19.1.0 Requires: python3-python-dateutil >= 2.5.3 ++++++ oc_relax-python-depends.patch ++++++ --- /var/tmp/diff_new_pack.1vrmPH/_old 2022-10-18 16:06:53.269217213 +0200 +++ /var/tmp/diff_new_pack.1vrmPH/_new 2022-10-18 16:06:53.273217218 +0200 @@ -1,6 +1,7 @@ -diff -Nru oci-cli-3.18.0.orig/requirements.txt oci-cli-3.18.0/requirements.txt ---- oci-cli-3.18.0.orig/requirements.txt 2022-09-28 00:50:08.000000000 +0200 -+++ oci-cli-3.18.0/requirements.txt 2022-09-29 11:45:07.455751956 +0200 +Common subdirectories: oci-cli-3.18.1.orig/.github and oci-cli-3.18.1/.github +diff -u oci-cli-3.18.1.orig/requirements.txt oci-cli-3.18.1/requirements.txt +--- oci-cli-3.18.1.orig/requirements.txt 2022-10-04 22:54:50.000000000 +0200 ++++ oci-cli-3.18.1/requirements.txt 2022-10-10 14:22:35.258579182 +0200 @@ -2,41 +2,41 @@ # (https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-format), # you may need to use the --extra-index-url option instead. @@ -18,7 +19,7 @@ -jmespath==0.10.0 -ndg-httpsclient==0.4.2 -mock==2.0.0 --oci==2.84.0 +-oci==2.85.0 -packaging==20.2 -pluggy==0.13.0 -py==1.10.0 @@ -37,7 +38,7 @@ +jmespath>=0.10.0 +ndg-httpsclient>=0.4.2 +mock>=2.0.0 -+oci>=2.84.0 ++oci>=2.85.0 +packaging>=20.2 +pluggy>=0.13.0 +py>=1.10.0 @@ -75,15 +76,17 @@ +PyYAML>=5.4 +docutils>=0.15.2 +prompt-toolkit>=3.0.29 -diff -Nru oci-cli-3.18.0.orig/setup.py oci-cli-3.18.0/setup.py ---- oci-cli-3.18.0.orig/setup.py 2022-09-28 00:50:08.000000000 +0200 -+++ oci-cli-3.18.0/setup.py 2022-09-29 11:45:45.796411459 +0200 +Common subdirectories: oci-cli-3.18.1.orig/scripts and oci-cli-3.18.1/scripts +Common subdirectories: oci-cli-3.18.1.orig/services and oci-cli-3.18.1/services +diff -u oci-cli-3.18.1.orig/setup.py oci-cli-3.18.1/setup.py +--- oci-cli-3.18.1.orig/setup.py 2022-10-04 22:54:50.000000000 +0200 ++++ oci-cli-3.18.1/setup.py 2022-10-10 14:21:56.146255580 +0200 @@ -29,23 +29,23 @@ readme = f.read() requires = [ -- 'oci==2.84.0', -+ 'oci>=2.84.0', +- 'oci==2.85.0', ++ 'oci>=2.85.0', 'arrow>=1.0.0', 'certifi', - 'click==7.1.2', @@ -112,4 +115,6 @@ } fips_libcrypto_file = os.getenv("OCI_CLI_FIPS_LIBCRYPTO_FILE") +Common subdirectories: oci-cli-3.18.1.orig/src and oci-cli-3.18.1/src +Common subdirectories: oci-cli-3.18.1.orig/tests and oci-cli-3.18.1/tests ++++++ oci-cli-3.18.0.tar.gz -> oci-cli-3.18.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oci-cli-3.18.0/CHANGELOG.rst new/oci-cli-3.18.1/CHANGELOG.rst --- old/oci-cli-3.18.0/CHANGELOG.rst 2022-09-28 00:50:08.000000000 +0200 +++ new/oci-cli-3.18.1/CHANGELOG.rst 2022-10-04 22:54:50.000000000 +0200 @@ -6,6 +6,39 @@ The format is based on `Keep a Changelog <http://keepachangelog.com/>`__. +3.18.1 - 2022-10-04 +-------------------- +Added +~~~~~~~~ + +* Bastion support for target host identification and enabled SOCKS support for dynamic port forwarding sessions + + * ``oci bastion`` + +* Operations Insights service + + * Support for creating Enterprise Manager-based Windows host targets for ``--platform-type`` + + * ``oci opsi host-insights list --platform-type`` + + * Support for creating Management Agent Cloud Service-based Windows and Solaris hosts targets for ``--platform-type`` + + * ``oci opsi host-insights list --platform-type`` + + * Support for Host Top Process allowing users to locate top processes running at a particular point in time + + * ``oci opsi host-insights summarize-top-processes-usage --compartment-id --id --resource-metric --timestamp --analysis-time-interval`` + + * Support for Host Top Process allowing users to filter by a single process in order to trend this process over time + + * ``oci opsi host-insights summarize-top-processes-usage --compartment-id --id --resource-metric --timestamp --analysis-time-interval`` + +* Cloud-Bridge Service + + * Support for check to require ``--vcenter-endpoint`` and ``--discovery-credentials`` parameters if asset source is VMWARE for ``--type`` + + * ``oci cloud-bridge discovery asset-source create --type VMWARE`` + 3.18.0 - 2022-09-27 -------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oci-cli-3.18.0/requirements.txt new/oci-cli-3.18.1/requirements.txt --- old/oci-cli-3.18.0/requirements.txt 2022-09-28 00:50:08.000000000 +0200 +++ new/oci-cli-3.18.1/requirements.txt 2022-10-04 22:54:50.000000000 +0200 @@ -14,7 +14,7 @@ jmespath==0.10.0 ndg-httpsclient==0.4.2 mock==2.0.0 -oci==2.84.0 +oci==2.85.0 packaging==20.2 pluggy==0.13.0 py==1.10.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oci-cli-3.18.0/services/bastion/src/oci_cli_bastion/generated/bastion_cli.py new/oci-cli-3.18.1/services/bastion/src/oci_cli_bastion/generated/bastion_cli.py --- old/oci-cli-3.18.0/services/bastion/src/oci_cli_bastion/generated/bastion_cli.py 2022-09-28 00:50:08.000000000 +0200 +++ new/oci-cli-3.18.1/services/bastion/src/oci_cli_bastion/generated/bastion_cli.py 2022-10-04 22:54:50.000000000 +0200 @@ -98,6 +98,7 @@ @cli_util.option('--static-jump-host-ip-addresses', type=custom_types.CLI_COMPLEX_TYPE, help=u"""A list of IP addresses of the hosts that the bastion has access to. Not applicable to `standard` bastions.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP) @cli_util.option('--client-cidr-block-allow-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""A list of address ranges in CIDR notation that you want to allow to connect to sessions hosted by this bastion.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP) @cli_util.option('--max-session-ttl-in-seconds', type=click.INT, help=u"""The maximum amount of time that any session on the bastion can remain active.""") +@cli_util.option('--dns-proxy-status', type=custom_types.CliCaseInsensitiveChoice(["DISABLED", "ENABLED"]), help=u"""The desired dns proxy status of the bastion.""") @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{\"bar-key\": \"value\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP) @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP) @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"]), multiple=True, help="""This operation asynchronously creates, modifies or deletes a resource and uses a work request to track the progress of the operation. Specify this option to perform the action and then wait until the work request reaches a certain state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""") @@ -108,7 +109,7 @@ @click.pass_context @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'static-jump-host-ip-addresses': {'module': 'bastion', 'class': 'list[string]'}, 'client-cidr-block-allow-list': {'module': 'bastion', 'class': 'list[string]'}, 'freeform-tags': {'module': 'bastion', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'bastion', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'bastion', 'class': 'Bastion'}) @cli_util.wrap_exceptions -def create_bastion(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, bastion_type, compartment_id, target_subnet_id, name, phone_book_entry, static_jump_host_ip_addresses, client_cidr_block_allow_list, max_session_ttl_in_seconds, freeform_tags, defined_tags): +def create_bastion(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, bastion_type, compartment_id, target_subnet_id, name, phone_book_entry, static_jump_host_ip_addresses, client_cidr_block_allow_list, max_session_ttl_in_seconds, dns_proxy_status, freeform_tags, defined_tags): kwargs = {} kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id']) @@ -133,6 +134,9 @@ if max_session_ttl_in_seconds is not None: _details['maxSessionTtlInSeconds'] = max_session_ttl_in_seconds + if dns_proxy_status is not None: + _details['dnsProxyStatus'] = dns_proxy_status + if freeform_tags is not None: _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags) @@ -243,8 +247,8 @@ @cli_util.option('--display-name', help=u"""The name of the session.""") @cli_util.option('--key-type', type=custom_types.CliCaseInsensitiveChoice(["PUB"]), help=u"""The type of the key used to connect to the session. PUB is a standard public key in OpenSSH format.""") @cli_util.option('--session-ttl-in-seconds', type=click.INT, help=u"""The amount of time the session can remain active.""") -@cli_util.option('--target-resource-details-target-resource-port', type=click.INT, help=u"""The port number to connect to on the target resource.""") @cli_util.option('--target-resource-details-target-resource-private-ip-address', help=u"""The private IP address of the target resource that the session connects to.""") +@cli_util.option('--target-resource-details-target-resource-port', type=click.INT, help=u"""The port number to connect to on the target resource.""") @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"]), multiple=True, help="""This operation asynchronously creates, modifies or deletes a resource and uses a work request to track the progress of the operation. Specify this option to perform the action and then wait until the work request reaches a certain state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""") @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the work request to reach the state defined by --wait-for-state. Defaults to 1200 seconds.""") @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the work request to see if it has reached the state defined by --wait-for-state. Defaults to 30 seconds.""") @@ -253,7 +257,7 @@ @click.pass_context @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'key-details': {'module': 'bastion', 'class': 'PublicKeyDetails'}}, output_type={'module': 'bastion', 'class': 'Session'}) @cli_util.wrap_exceptions -def create_session_create_managed_ssh_session_target_resource_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, bastion_id, key_details, target_resource_details_target_resource_operating_system_user_name, target_resource_details_target_resource_id, display_name, key_type, session_ttl_in_seconds, target_resource_details_target_resource_port, target_resource_details_target_resource_private_ip_address): +def create_session_create_managed_ssh_session_target_resource_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, bastion_id, key_details, target_resource_details_target_resource_operating_system_user_name, target_resource_details_target_resource_id, display_name, key_type, session_ttl_in_seconds, target_resource_details_target_resource_private_ip_address, target_resource_details_target_resource_port): kwargs = {} kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id']) @@ -274,12 +278,12 @@ if session_ttl_in_seconds is not None: _details['sessionTtlInSeconds'] = session_ttl_in_seconds - if target_resource_details_target_resource_port is not None: - _details['targetResourceDetails']['targetResourcePort'] = target_resource_details_target_resource_port - if target_resource_details_target_resource_private_ip_address is not None: _details['targetResourceDetails']['targetResourcePrivateIpAddress'] = target_resource_details_target_resource_private_ip_address + if target_resource_details_target_resource_port is not None: + _details['targetResourceDetails']['targetResourcePort'] = target_resource_details_target_resource_port + _details['targetResourceDetails']['sessionType'] = 'MANAGED_SSH' client = cli_util.build_client('bastion', 'bastion', ctx) @@ -313,15 +317,82 @@ cli_util.render_response(result, ctx) +@session_group.command(name=cli_util.override('bastion.create_session_create_dynamic_port_forwarding_session_target_resource_details.command_name', 'create-session-create-dynamic-port-forwarding-session-target-resource-details'), help=u"""Creates a new session in a bastion. A bastion session lets authorized users connect to a target resource for a predetermined amount of time. The Bastion service recognizes two types of sessions, managed SSH sessions and SSH port forwarding sessions. Managed SSH sessions require that the target resource has an OpenSSH server and the Oracle Cloud Agent both running. \n[Command Reference](createSession)""") +@cli_util.option('--bastion-id', required=True, help=u"""The unique identifier (OCID) of the bastion on which to create this session.""") +@cli_util.option('--key-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP) +@cli_util.option('--display-name', help=u"""The name of the session.""") +@cli_util.option('--key-type', type=custom_types.CliCaseInsensitiveChoice(["PUB"]), help=u"""The type of the key used to connect to the session. PUB is a standard public key in OpenSSH format.""") +@cli_util.option('--session-ttl-in-seconds', type=click.INT, help=u"""The amount of time the session can remain active.""") +@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"]), multiple=True, help="""This operation asynchronously creates, modifies or deletes a resource and uses a work request to track the progress of the operation. Specify this option to perform the action and then wait until the work request reaches a certain state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""") +@cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the work request to reach the state defined by --wait-for-state. Defaults to 1200 seconds.""") +@cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the work request to see if it has reached the state defined by --wait-for-state. Defaults to 30 seconds.""") +@json_skeleton_utils.get_cli_json_input_option({'key-details': {'module': 'bastion', 'class': 'PublicKeyDetails'}}) +@cli_util.help_option +@click.pass_context +@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'key-details': {'module': 'bastion', 'class': 'PublicKeyDetails'}}, output_type={'module': 'bastion', 'class': 'Session'}) +@cli_util.wrap_exceptions +def create_session_create_dynamic_port_forwarding_session_target_resource_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, bastion_id, key_details, display_name, key_type, session_ttl_in_seconds): + + kwargs = {} + kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id']) + + _details = {} + _details['targetResourceDetails'] = {} + _details['bastionId'] = bastion_id + _details['keyDetails'] = cli_util.parse_json_parameter("key_details", key_details) + + if display_name is not None: + _details['displayName'] = display_name + + if key_type is not None: + _details['keyType'] = key_type + + if session_ttl_in_seconds is not None: + _details['sessionTtlInSeconds'] = session_ttl_in_seconds + + _details['targetResourceDetails']['sessionType'] = 'DYNAMIC_PORT_FORWARDING' + + client = cli_util.build_client('bastion', 'bastion', ctx) + result = client.create_session( + create_session_details=_details, + **kwargs + ) + if wait_for_state: + + if hasattr(client, 'get_work_request') and callable(getattr(client, 'get_work_request')): + try: + wait_period_kwargs = {} + if max_wait_seconds is not None: + wait_period_kwargs['max_wait_seconds'] = max_wait_seconds + if wait_interval_seconds is not None: + wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds + + click.echo('Action completed. Waiting until the work request has entered state: {}'.format(wait_for_state), file=sys.stderr) + result = oci.wait_until(client, client.get_work_request(result.headers['opc-work-request-id']), 'status', wait_for_state, **wait_period_kwargs) + except oci.exceptions.MaximumWaitTimeExceeded as e: + # If we fail, we should show an error, but we should still provide the information to the customer + click.echo('Failed to wait until the work request entered the specified state. Outputting last known resource state', file=sys.stderr) + cli_util.render_response(result, ctx) + sys.exit(2) + except Exception: + click.echo('Encountered error while waiting for work request to enter the specified state. Outputting last known resource state', file=sys.stderr) + cli_util.render_response(result, ctx) + raise + else: + click.echo('Unable to wait for the work request to enter the specified state', file=sys.stderr) + cli_util.render_response(result, ctx) + + @session_group.command(name=cli_util.override('bastion.create_session_create_port_forwarding_session_target_resource_details.command_name', 'create-session-create-port-forwarding-session-target-resource-details'), help=u"""Creates a new session in a bastion. A bastion session lets authorized users connect to a target resource for a predetermined amount of time. The Bastion service recognizes two types of sessions, managed SSH sessions and SSH port forwarding sessions. Managed SSH sessions require that the target resource has an OpenSSH server and the Oracle Cloud Agent both running. \n[Command Reference](createSession)""") @cli_util.option('--bastion-id', required=True, help=u"""The unique identifier (OCID) of the bastion on which to create this session.""") @cli_util.option('--key-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP) @cli_util.option('--display-name', help=u"""The name of the session.""") @cli_util.option('--key-type', type=custom_types.CliCaseInsensitiveChoice(["PUB"]), help=u"""The type of the key used to connect to the session. PUB is a standard public key in OpenSSH format.""") @cli_util.option('--session-ttl-in-seconds', type=click.INT, help=u"""The amount of time the session can remain active.""") -@cli_util.option('--target-resource-details-target-resource-port', type=click.INT, help=u"""The port number to connect to on the target resource.""") @cli_util.option('--target-resource-details-target-resource-id', help=u"""The unique identifier (OCID) of the target resource (a Compute instance, for example) that the session connects to.""") @cli_util.option('--target-resource-details-target-resource-private-ip-address', help=u"""The private IP address of the target resource that the session connects to.""") +@cli_util.option('--target-resource-details-target-resource-fqdn', help=u"""The Fully Qualified Domain Name of the target resource that the session connects to.""") +@cli_util.option('--target-resource-details-target-resource-port', type=click.INT, help=u"""The port number to connect to on the target resource.""") @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"]), multiple=True, help="""This operation asynchronously creates, modifies or deletes a resource and uses a work request to track the progress of the operation. Specify this option to perform the action and then wait until the work request reaches a certain state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""") @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the work request to reach the state defined by --wait-for-state. Defaults to 1200 seconds.""") @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the work request to see if it has reached the state defined by --wait-for-state. Defaults to 30 seconds.""") @@ -330,7 +401,7 @@ @click.pass_context @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'key-details': {'module': 'bastion', 'class': 'PublicKeyDetails'}}, output_type={'module': 'bastion', 'class': 'Session'}) @cli_util.wrap_exceptions -def create_session_create_port_forwarding_session_target_resource_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, bastion_id, key_details, display_name, key_type, session_ttl_in_seconds, target_resource_details_target_resource_port, target_resource_details_target_resource_id, target_resource_details_target_resource_private_ip_address): +def create_session_create_port_forwarding_session_target_resource_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, bastion_id, key_details, display_name, key_type, session_ttl_in_seconds, target_resource_details_target_resource_id, target_resource_details_target_resource_private_ip_address, target_resource_details_target_resource_fqdn, target_resource_details_target_resource_port): kwargs = {} kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id']) @@ -349,15 +420,18 @@ if session_ttl_in_seconds is not None: _details['sessionTtlInSeconds'] = session_ttl_in_seconds - if target_resource_details_target_resource_port is not None: - _details['targetResourceDetails']['targetResourcePort'] = target_resource_details_target_resource_port - if target_resource_details_target_resource_id is not None: _details['targetResourceDetails']['targetResourceId'] = target_resource_details_target_resource_id if target_resource_details_target_resource_private_ip_address is not None: _details['targetResourceDetails']['targetResourcePrivateIpAddress'] = target_resource_details_target_resource_private_ip_address + if target_resource_details_target_resource_fqdn is not None: + _details['targetResourceDetails']['targetResourceFqdn'] = target_resource_details_target_resource_fqdn + + if target_resource_details_target_resource_port is not None: + _details['targetResourceDetails']['targetResourcePort'] = target_resource_details_target_resource_port + _details['targetResourceDetails']['sessionType'] = 'PORT_FORWARDING' client = cli_util.build_client('bastion', 'bastion', ctx) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oci-cli-3.18.0/services/cloud_bridge/src/oci_cli_discovery/discovery_cli_extended.py new/oci-cli-3.18.1/services/cloud_bridge/src/oci_cli_discovery/discovery_cli_extended.py --- old/oci-cli-3.18.0/services/cloud_bridge/src/oci_cli_discovery/discovery_cli_extended.py 2022-09-28 00:50:08.000000000 +0200 +++ new/oci-cli-3.18.1/services/cloud_bridge/src/oci_cli_discovery/discovery_cli_extended.py 2022-10-04 22:54:50.000000000 +0200 @@ -87,6 +87,10 @@ if system_tags is not None: _details['systemTags'] = cli_util.parse_json_parameter("system_tags", system_tags) + if type.lower() == 'vmware': + if discovery_credentials is None or vcenter_endpoint is None: + raise click.UsageError('If parameter --type is VMWARE, then parameters --discovery-credentials and --vcenter-endpoint must be provided') + client = cli_util.build_client('cloud_bridge', 'discovery', ctx) result = client.create_asset_source( create_asset_source_details=_details, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oci-cli-3.18.0/services/opsi/src/oci_cli_operations_insights/generated/operationsinsights_cli.py new/oci-cli-3.18.1/services/opsi/src/oci_cli_operations_insights/generated/operationsinsights_cli.py --- old/oci-cli-3.18.0/services/opsi/src/oci_cli_operations_insights/generated/operationsinsights_cli.py 2022-09-28 00:50:08.000000000 +0200 +++ new/oci-cli-3.18.1/services/opsi/src/oci_cli_operations_insights/generated/operationsinsights_cli.py 2022-10-04 22:54:50.000000000 +0200 @@ -4041,7 +4041,7 @@ @cli_util.option('--enterprise-manager-bridge-id', help=u"""Unique Enterprise Manager bridge identifier""") @cli_util.option('--id', multiple=True, help=u"""Optional list of host insight resource [OCIDs].""") @cli_util.option('--exadata-insight-id', multiple=True, help=u"""Optional list of exadata insight resource [OCIDs].""") -@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") +@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") @cli_util.option('--limit', type=click.INT, help=u"""For list pagination. The maximum number of results per page, or items to return in a paginated \"List\" call. For important details about how pagination works, see [List Pagination]. Example: `50`""") @cli_util.option('--page', help=u"""For list pagination. The value of the `opc-next-page` response header from the previous \"List\" call. For important details about how pagination works, see [List Pagination].""") @cli_util.option('--sort-order', type=custom_types.CliCaseInsensitiveChoice(["ASC", "DESC"]), help=u"""The sort order to use, either ascending (`ASC`) or descending (`DESC`).""") @@ -4128,7 +4128,7 @@ @cli_util.option('--status', type=custom_types.CliCaseInsensitiveChoice(["DISABLED", "ENABLED", "TERMINATED"]), multiple=True, help=u"""Resource Status""") @cli_util.option('--lifecycle-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "NEEDS_ATTENTION"]), multiple=True, help=u"""Lifecycle states""") @cli_util.option('--host-type', multiple=True, help=u"""Filter by one or more host types. Possible values are CLOUD-HOST, EXTERNAL-HOST""") -@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") +@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") @cli_util.option('--limit', type=click.INT, help=u"""For list pagination. The maximum number of results per page, or items to return in a paginated \"List\" call. For important details about how pagination works, see [List Pagination]. Example: `50`""") @cli_util.option('--page', help=u"""For list pagination. The value of the `opc-next-page` response header from the previous \"List\" call. For important details about how pagination works, see [List Pagination].""") @cli_util.option('--sort-order', type=custom_types.CliCaseInsensitiveChoice(["ASC", "DESC"]), help=u"""The sort order to use, either ascending (`ASC`) or descending (`DESC`).""") @@ -4205,7 +4205,7 @@ @cli_util.option('--analysis-time-interval', help=u"""Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).""") @cli_util.option('--time-interval-start', type=custom_types.CLI_DATETIME, help=u"""Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) @cli_util.option('--time-interval-end', type=custom_types.CLI_DATETIME, help=u"""Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) -@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") +@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") @cli_util.option('--exadata-insight-id', help=u"""[OCID] of exadata insight resource.""") @cli_util.option('--limit', type=click.INT, help=u"""For list pagination. The maximum number of results per page, or items to return in a paginated \"List\" call. For important details about how pagination works, see [List Pagination]. Example: `50`""") @cli_util.option('--page', help=u"""For list pagination. The value of the `opc-next-page` response header from the previous \"List\" call. For important details about how pagination works, see [List Pagination].""") @@ -6812,7 +6812,7 @@ @cli_util.option('--analysis-time-interval', help=u"""Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).""") @cli_util.option('--time-interval-start', type=custom_types.CLI_DATETIME, help=u"""Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) @cli_util.option('--time-interval-end', type=custom_types.CLI_DATETIME, help=u"""Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) -@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") +@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") @cli_util.option('--id', multiple=True, help=u"""Optional list of host insight resource [OCIDs].""") @cli_util.option('--exadata-insight-id', multiple=True, help=u"""Optional list of exadata insight resource [OCIDs].""") @cli_util.option('--utilization-level', type=custom_types.CliCaseInsensitiveChoice(["HIGH_UTILIZATION", "LOW_UTILIZATION", "MEDIUM_HIGH_UTILIZATION", "MEDIUM_LOW_UTILIZATION"]), help=u"""Filter by utilization level by the following buckets: - HIGH_UTILIZATION: DBs with utilization greater or equal than 75. - LOW_UTILIZATION: DBs with utilization lower than 25. - MEDIUM_HIGH_UTILIZATION: DBs with utilization greater or equal than 50 but lower than 75. - MEDIUM_LOW_UTILIZATION: DBs with utilization greater or equal than 25 but lower than 50.""") @@ -6884,7 +6884,7 @@ @cli_util.option('--analysis-time-interval', help=u"""Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).""") @cli_util.option('--time-interval-start', type=custom_types.CLI_DATETIME, help=u"""Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) @cli_util.option('--time-interval-end', type=custom_types.CLI_DATETIME, help=u"""Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) -@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") +@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") @cli_util.option('--id', multiple=True, help=u"""Optional list of host insight resource [OCIDs].""") @cli_util.option('--exadata-insight-id', multiple=True, help=u"""Optional list of exadata insight resource [OCIDs].""") @cli_util.option('--statistic', type=custom_types.CliCaseInsensitiveChoice(["AVG", "MAX"]), help=u"""Choose the type of statistic metric data to be used for forecasting.""") @@ -6962,7 +6962,7 @@ @cli_util.option('--analysis-time-interval', help=u"""Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).""") @cli_util.option('--time-interval-start', type=custom_types.CLI_DATETIME, help=u"""Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) @cli_util.option('--time-interval-end', type=custom_types.CLI_DATETIME, help=u"""Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) -@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") +@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") @cli_util.option('--id', multiple=True, help=u"""Optional list of host insight resource [OCIDs].""") @cli_util.option('--exadata-insight-id', multiple=True, help=u"""Optional list of exadata insight resource [OCIDs].""") @cli_util.option('--percentile', type=click.INT, help=u"""Percentile values of daily usage to be used for computing the aggregate resource usage.""") @@ -7043,7 +7043,7 @@ @cli_util.option('--analysis-time-interval', help=u"""Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).""") @cli_util.option('--time-interval-start', type=custom_types.CLI_DATETIME, help=u"""Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) @cli_util.option('--time-interval-end', type=custom_types.CLI_DATETIME, help=u"""Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) -@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") +@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") @cli_util.option('--id', multiple=True, help=u"""Optional list of host insight resource [OCIDs].""") @cli_util.option('--exadata-insight-id', multiple=True, help=u"""Optional list of exadata insight resource [OCIDs].""") @cli_util.option('--page', help=u"""For list pagination. The value of the `opc-next-page` response header from the previous \"List\" call. For important details about how pagination works, see [List Pagination].""") @@ -7109,7 +7109,7 @@ @cli_util.option('--analysis-time-interval', help=u"""Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).""") @cli_util.option('--time-interval-start', type=custom_types.CLI_DATETIME, help=u"""Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) @cli_util.option('--time-interval-end', type=custom_types.CLI_DATETIME, help=u"""Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) -@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") +@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") @cli_util.option('--id', multiple=True, help=u"""Optional list of host insight resource [OCIDs].""") @cli_util.option('--exadata-insight-id', multiple=True, help=u"""Optional list of exadata insight resource [OCIDs].""") @cli_util.option('--page', help=u"""For list pagination. The value of the `opc-next-page` response header from the previous \"List\" call. For important details about how pagination works, see [List Pagination].""") @@ -7178,7 +7178,7 @@ @cli_util.option('--analysis-time-interval', help=u"""Specify time period in ISO 8601 format with respect to current time. Default is last 30 days represented by P30D. If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M).""") @cli_util.option('--time-interval-start', type=custom_types.CLI_DATETIME, help=u"""Analysis start time in UTC in ISO 8601 format(inclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). The minimum allowed value is 2 years prior to the current day. timeIntervalStart and timeIntervalEnd parameters are used together. If analysisTimeInterval is specified, this parameter is ignored.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) @cli_util.option('--time-interval-end', type=custom_types.CLI_DATETIME, help=u"""Analysis end time in UTC in ISO 8601 format(exclusive). Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). timeIntervalStart and timeIntervalEnd are used together. If timeIntervalEnd is not specified, current time is used as timeIntervalEnd.""" + custom_types.CLI_DATETIME.VALID_DATETIME_CLI_HELP_MESSAGE) -@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") +@cli_util.option('--platform-type', type=custom_types.CliCaseInsensitiveChoice(["LINUX", "SOLARIS", "SUNOS", "ZLINUX"]), multiple=True, help=u"""Filter by one or more platform types. Supported platformType(s) for MACS-managed external host insight: [LINUX]. Supported platformType(s) for MACS-managed cloud host insight: [LINUX]. Supported platformType(s) for EM-managed external host insight: [LINUX, SOLARIS, SUNOS, ZLINUX].""") @cli_util.option('--id', multiple=True, help=u"""Optional list of host insight resource [OCIDs].""") @cli_util.option('--exadata-insight-id', multiple=True, help=u"""Optional list of exadata insight resource [OCIDs].""") @cli_util.option('--forecast-days', type=click.INT, help=u"""Number of days used for utilization forecast analysis.""") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oci-cli-3.18.0/setup.py new/oci-cli-3.18.1/setup.py --- old/oci-cli-3.18.0/setup.py 2022-09-28 00:50:08.000000000 +0200 +++ new/oci-cli-3.18.1/setup.py 2022-10-04 22:54:50.000000000 +0200 @@ -29,7 +29,7 @@ readme = f.read() requires = [ - 'oci==2.84.0', + 'oci==2.85.0', 'arrow>=1.0.0', 'certifi', 'click==7.1.2', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oci-cli-3.18.0/src/oci_cli/cli_util.py new/oci-cli-3.18.1/src/oci_cli/cli_util.py --- old/oci-cli-3.18.0/src/oci_cli/cli_util.py 2022-09-28 00:50:08.000000000 +0200 +++ new/oci-cli-3.18.1/src/oci_cli/cli_util.py 2022-10-04 22:54:50.000000000 +0200 @@ -102,6 +102,22 @@ OCI_CLI_IN_INTERACTIVE_MODE = "OCI_CLI_IN_INTERACTIVE_MODE" +OCI_CLI_CLOUD_SHELL = "OCI_CLI_CLOUD_SHELL" + +OCI_CLI_CONTAINER_IMAGE = "IMAGE_VERSION" + +ADDITIONAL_USER_AGENT = "additional_user_agent" + +ORACLE_PYTHON_VER = "Oracle-PythonCLI/{}" + +OCI_CLI_INTERACTIVE_USER_AGENT = " Oracle-Interactive " + +OCI_CLI_INTERACTIVE_CLOUDSHELL_USER_AGENT = " Oracle-Interactive-CloudShell " + +OCI_CLI_CONTAINER_IMAGE_USER_AGENT = " Oracle-Container-Image " + +OCI_CLI_INTERACTIVE_CONTAINER_IMAGE_USER_AGENT = " Oracle-Interactive-Container-Image " + logger = logging.getLogger("{}".format(__name__)) logger.addHandler(logging.NullHandler()) logger.setLevel(logging.DEBUG) @@ -366,9 +382,19 @@ sys.exit(0) else: sys.exit(1) - client_config["additional_user_agent"] = 'Oracle-PythonCLI/{}'.format(__version__) + client_config[ADDITIONAL_USER_AGENT] = ORACLE_PYTHON_VER.format(__version__) if OCI_CLI_IN_INTERACTIVE_MODE in os.environ: - client_config["additional_user_agent"] += " Oracle-Interactive " + client_config[ADDITIONAL_USER_AGENT] += OCI_CLI_INTERACTIVE_USER_AGENT + + if OCI_CLI_CLOUD_SHELL in os.environ: + client_config[ADDITIONAL_USER_AGENT] += OCI_CLI_INTERACTIVE_CLOUDSHELL_USER_AGENT + + if OCI_CLI_CONTAINER_IMAGE in os.environ: + client_config[ADDITIONAL_USER_AGENT] += OCI_CLI_INTERACTIVE_CONTAINER_IMAGE_USER_AGENT + + if OCI_CLI_CONTAINER_IMAGE in os.environ: + client_config[ADDITIONAL_USER_AGENT] += OCI_CLI_CONTAINER_IMAGE_USER_AGENT + if ctx.obj['debug']: client_config["log_requests"] = True @@ -467,7 +493,7 @@ session = requests.Session() session.auth = signer session.headers['opc-request-id'] = ctx.obj['request_id'] - session.headers['user-agent'] = oci.base_client.build_user_agent(extra=client_config['additional_user_agent']) + session.headers['user-agent'] = oci.base_client.build_user_agent(extra=client_config[ADDITIONAL_USER_AGENT]) set_request_session_properties_from_context(session, ctx) return session @@ -594,9 +620,18 @@ if command_args['debug']: logger.debug("%s: Environment Variable", cli_constants.OCI_CONFIG_ENV_VARS[env]) - client_config["additional_user_agent"] = 'Oracle-PythonCLI/{}'.format(__version__) + client_config[ADDITIONAL_USER_AGENT] = ORACLE_PYTHON_VER.format(__version__) if OCI_CLI_IN_INTERACTIVE_MODE in os.environ: - client_config["additional_user_agent"] += " Oracle-Interactive " + client_config[ADDITIONAL_USER_AGENT] += OCI_CLI_INTERACTIVE_USER_AGENT + + if OCI_CLI_CLOUD_SHELL in os.environ: + client_config[ADDITIONAL_USER_AGENT] += OCI_CLI_INTERACTIVE_CLOUDSHELL_USER_AGENT + + if OCI_CLI_CONTAINER_IMAGE in os.environ: + client_config[ADDITIONAL_USER_AGENT] += OCI_CLI_INTERACTIVE_CONTAINER_IMAGE_USER_AGENT + + if OCI_CLI_CONTAINER_IMAGE in os.environ: + client_config[ADDITIONAL_USER_AGENT] += OCI_CLI_CONTAINER_IMAGE_USER_AGENT if command_args['region']: client_config["region"] = command_args['region'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oci-cli-3.18.0/src/oci_cli/version.py new/oci-cli-3.18.1/src/oci_cli/version.py --- old/oci-cli-3.18.0/src/oci_cli/version.py 2022-09-28 00:50:08.000000000 +0200 +++ new/oci-cli-3.18.1/src/oci_cli/version.py 2022-10-04 22:54:50.000000000 +0200 @@ -2,4 +2,4 @@ # Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved. # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. -__version__ = '3.18.0' +__version__ = '3.18.1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oci-cli-3.18.0/tests/interactive/test_auto_prompt.py new/oci-cli-3.18.1/tests/interactive/test_auto_prompt.py --- old/oci-cli-3.18.0/tests/interactive/test_auto_prompt.py 2022-09-28 00:50:08.000000000 +0200 +++ new/oci-cli-3.18.1/tests/interactive/test_auto_prompt.py 2022-10-04 22:54:50.000000000 +0200 @@ -3,6 +3,7 @@ # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. import unittest +from click.testing import CliRunner from interactive.oci_shell_completer import OciShellCompleter from oci_cli.cli_root import cli from . import utils @@ -12,6 +13,19 @@ class TestAutoPrompt(unittest.TestCase): + def test_cli_interactive_import(self): + # This funciton tests importing interactive mode + from interactive.cli_interactive import start_interactive_shell + _ = start_interactive_shell + + def test_cli_interactive_call(self): + # This funciton tests calling interactive mode + try: + runner = CliRunner() + result = runner.invoke(cli, ['-i']) + except Exception: + self.fail('Failed to run cli with interactive parameters') + def test_root_command_suggestion(self): # This function is to test the commands suggestions on the root level ctx = utils.set_up_context(cli)