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)

Reply via email to