Skip to content

Commit 3e90b7d

Browse files
authored
Releasing version 2.5.4
Releasing version 2.5.4
2 parents 06446c2 + 163d2b0 commit 3e90b7d

35 files changed

+1481
-1023
lines changed

CHANGELOG.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,19 @@ All notable changes to this project will be documented in this file.
66

77
The format is based on `Keep a Changelog <http://keepachangelog.com/>`__.
88

9+
2.5.4 - 2019-03-19
10+
------------------
11+
Added
12+
~~~~~
13+
* Support for provisioning a new autonomous database or autonomous data warehouse as a clone of another in the Database service
14+
15+
* ``oci db autonomous-database create-from-clone``
16+
* An example on using the feature can be found on `GitHub <https://github.com/oracle/oci-cli/blob/master/scripts/examples/database_example.sh>`__.
17+
18+
* Support for specifying metadata on node pools in the Container Engine for Kubernetes service
19+
20+
* ``oci ce node-pool create --node-metadata``
21+
922
2.5.3 - 2019-03-12
1023
------------------
1124
Added

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Jinja2==2.9.6
1717
jmespath==0.9.3
1818
ndg-httpsclient==0.4.2
1919
mock==2.0.0
20-
oci==2.2.2
20+
oci==2.2.3
2121
packaging==16.8
2222
pluggy==0.4.0
2323
py==1.4.33

scripts/examples/database_example.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ SCALED_STORAGE="2"
2020
STORAGE="1"
2121
LICENSE_TYPE="LICENSE_INCLUDED"
2222
DB_SYSTEM_SHAPE="VM.Standard1.1"
23+
CLONE_TYPE="FULL"
24+
SOURCE_ID=""
2325

2426

2527
##############################################################################AutonomousDataWarehouse##############################################################################
@@ -120,6 +122,17 @@ echo 'Deleted Autonomous Transaction Processing'
120122
echo 'Trying to Get Deleted Autonomous Transaction Processing. Should not find it.'
121123
oci db autonomous-database get --autonomous-database-id $ADB_ID
122124

125+
echo 'Cloning Autonomous Transaction Processing...'
126+
CLONE_ATP=$(oci db autonomous-database create-from-clone -c $COMPARTMENT_ID --db-name $DB_NAME2 --admin-password $PASSWORD1 --cpu-core-count $CPU \
127+
--data-storage-size-in-tbs $STORAGE --display-name $DISPLAY_NAME1 --license-model $LICENSE_TYPE \
128+
--source-id $SOURCE_ID --clone-type $CLONE_TYPE
129+
--wait-for-state AVAILABLE)
130+
131+
ADB_ID=$(jq -r '.data.id' <<< "CLONE_ATP")
132+
133+
echo "Cloning Autonomous Transaction Processing with OCID:"
134+
echo CLONE_ATP
135+
123136
echo 'End of Autonomous Transaction Processing Examples.'
124137

125138

services/container_engine/src/oci_cli_container_engine/generated/containerengine_cli.py

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,16 @@
1414
from oci_cli.aliasing import CommandGroupWithAlias
1515

1616

17-
@cli.command(cli_util.override('ce_root_group.command_name', 'ce'), cls=CommandGroupWithAlias, help=cli_util.override('ce_root_group.help', """Container Engine for Kubernetes API"""), short_help=cli_util.override('ce_root_group.short_help', """Container Engine for Kubernetes API"""))
17+
@cli.command(cli_util.override('ce_root_group.command_name', 'ce'), cls=CommandGroupWithAlias, help=cli_util.override('ce_root_group.help', """API for the Container Engine for Kubernetes service. Use this API to build, deploy,
18+
and manage cloud-native applications. For more information, see
19+
[Overview of Container Engine for Kubernetes](/iaas/Content/ContEng/Concepts/contengoverview.htm).
20+
"""), short_help=cli_util.override('ce_root_group.short_help', """Container Engine for Kubernetes API"""))
1821
@cli_util.help_option_group
1922
def ce_root_group():
2023
pass
2124

2225

23-
@click.command(cli_util.override('cluster_group.command_name', 'cluster'), cls=CommandGroupWithAlias, help="""A Kubernetes cluster.""")
26+
@click.command(cli_util.override('cluster_group.command_name', 'cluster'), cls=CommandGroupWithAlias, help="""A Kubernetes cluster. Avoid entering confidential information.""")
2427
@cli_util.help_option_group
2528
def cluster_group():
2629
pass
@@ -44,7 +47,7 @@ def work_request_log_entry_group():
4447
pass
4548

4649

47-
@click.command(cli_util.override('node_pool_group.command_name', 'node-pool'), cls=CommandGroupWithAlias, help="""A pool of compute nodes attached to a cluster.""")
50+
@click.command(cli_util.override('node_pool_group.command_name', 'node-pool'), cls=CommandGroupWithAlias, help="""A pool of compute nodes attached to a cluster. Avoid entering confidential information.""")
4851
@cli_util.help_option_group
4952
def node_pool_group():
5053
pass
@@ -194,6 +197,7 @@ def create_kubeconfig(ctx, from_json, file, cluster_id, token_version, expiratio
194197
@cli_util.option('--node-image-name', required=True, help="""The name of the image running on the nodes in the node pool.""")
195198
@cli_util.option('--node-shape', required=True, help="""The name of the node shape of the nodes in the node pool.""")
196199
@cli_util.option('--subnet-ids', required=True, type=custom_types.CLI_COMPLEX_TYPE, help="""The OCIDs of the subnets in which to place nodes for this node pool.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
200+
@cli_util.option('--node-metadata', type=custom_types.CLI_COMPLEX_TYPE, help="""A list of key/value pairs to add to each underlying OCI instance in the node pool.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
197201
@cli_util.option('--initial-node-labels', type=custom_types.CLI_COMPLEX_TYPE, help="""A list of key/value pairs to add to nodes after they join the Kubernetes cluster.
198202
199203
This option is a JSON list with items of type KeyValue. For documentation on KeyValue please see our API reference: https://docs.cloud.oracle.com/api/#/en/containerengine/20180222/datatypes/KeyValue.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
@@ -202,12 +206,12 @@ def create_kubeconfig(ctx, from_json, file, cluster_id, token_version, expiratio
202206
@cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"]), 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. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
203207
@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.""")
204208
@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.""")
205-
@json_skeleton_utils.get_cli_json_input_option({'initial-node-labels': {'module': 'container_engine', 'class': 'list[KeyValue]'}, 'subnet-ids': {'module': 'container_engine', 'class': 'list[string]'}})
209+
@json_skeleton_utils.get_cli_json_input_option({'node-metadata': {'module': 'container_engine', 'class': 'dict(str, string)'}, 'initial-node-labels': {'module': 'container_engine', 'class': 'list[KeyValue]'}, 'subnet-ids': {'module': 'container_engine', 'class': 'list[string]'}})
206210
@cli_util.help_option
207211
@click.pass_context
208-
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'initial-node-labels': {'module': 'container_engine', 'class': 'list[KeyValue]'}, 'subnet-ids': {'module': 'container_engine', 'class': 'list[string]'}})
212+
@json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'node-metadata': {'module': 'container_engine', 'class': 'dict(str, string)'}, 'initial-node-labels': {'module': 'container_engine', 'class': 'list[KeyValue]'}, 'subnet-ids': {'module': 'container_engine', 'class': 'list[string]'}})
209213
@cli_util.wrap_exceptions
210-
def create_node_pool(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, compartment_id, cluster_id, name, kubernetes_version, node_image_name, node_shape, subnet_ids, initial_node_labels, ssh_public_key, quantity_per_subnet):
214+
def create_node_pool(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, compartment_id, cluster_id, name, kubernetes_version, node_image_name, node_shape, subnet_ids, node_metadata, initial_node_labels, ssh_public_key, quantity_per_subnet):
211215

212216
kwargs = {}
213217
kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
@@ -221,6 +225,9 @@ def create_node_pool(ctx, from_json, wait_for_state, max_wait_seconds, wait_inte
221225
details['nodeShape'] = node_shape
222226
details['subnetIds'] = cli_util.parse_json_parameter("subnet_ids", subnet_ids)
223227

228+
if node_metadata is not None:
229+
details['nodeMetadata'] = cli_util.parse_json_parameter("node_metadata", node_metadata)
230+
224231
if initial_node_labels is not None:
225232
details['initialNodeLabels'] = cli_util.parse_json_parameter("initial_node_labels", initial_node_labels)
226233

@@ -502,8 +509,8 @@ def get_work_request(ctx, from_json, work_request_id):
502509
@cli_util.option('--compartment-id', required=True, help="""The OCID of the compartment.""")
503510
@cli_util.option('--lifecycle-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "FAILED", "DELETING", "DELETED", "UPDATING"]), multiple=True, help="""A cluster lifecycle state to filter on. Can have multiple parameters of this name.""")
504511
@cli_util.option('--name', help="""The name to filter on.""")
505-
@cli_util.option('--limit', type=click.INT, help="""The maximum number of items to return in a paginated \"List\" call.""")
506-
@cli_util.option('--page', help="""The value of the `opc-next-page` response header from the previous \"List\" call.""")
512+
@cli_util.option('--limit', type=click.INT, help="""For list pagination. The maximum number of results per page, or items to return in a paginated \"List\" call. 1 is the minimum, 1000 is the maximum. For important details about how pagination works, see [List Pagination].""")
513+
@cli_util.option('--page', help="""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].""")
507514
@cli_util.option('--sort-order', type=custom_types.CliCaseInsensitiveChoice(["ASC", "DESC"]), help="""The optional order in which to sort the results.""")
508515
@cli_util.option('--sort-by', type=custom_types.CliCaseInsensitiveChoice(["ID", "NAME", "TIME_CREATED"]), help="""The optional field to sort the results by.""")
509516
@cli_util.option('--all', 'all_pages', is_flag=True, help="""Fetches all pages of results. If you provide this option, then you cannot provide the --limit option.""")
@@ -562,8 +569,8 @@ def list_clusters(ctx, from_json, all_pages, page_size, compartment_id, lifecycl
562569
@cli_util.option('--compartment-id', required=True, help="""The OCID of the compartment.""")
563570
@cli_util.option('--cluster-id', help="""The OCID of the cluster.""")
564571
@cli_util.option('--name', help="""The name to filter on.""")
565-
@cli_util.option('--limit', type=click.INT, help="""The maximum number of items to return in a paginated \"List\" call.""")
566-
@cli_util.option('--page', help="""The value of the `opc-next-page` response header from the previous \"List\" call.""")
572+
@cli_util.option('--limit', type=click.INT, help="""For list pagination. The maximum number of results per page, or items to return in a paginated \"List\" call. 1 is the minimum, 1000 is the maximum. For important details about how pagination works, see [List Pagination].""")
573+
@cli_util.option('--page', help="""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].""")
567574
@cli_util.option('--sort-order', type=custom_types.CliCaseInsensitiveChoice(["ASC", "DESC"]), help="""The optional order in which to sort the results.""")
568575
@cli_util.option('--sort-by', type=custom_types.CliCaseInsensitiveChoice(["ID", "NAME", "TIME_CREATED"]), help="""The optional field to sort the results by.""")
569576
@cli_util.option('--all', 'all_pages', is_flag=True, help="""Fetches all pages of results. If you provide this option, then you cannot provide the --limit option.""")
@@ -674,8 +681,8 @@ def list_work_request_logs(ctx, from_json, all_pages, compartment_id, work_reque
674681
@cli_util.option('--resource-id', help="""The OCID of the resource associated with a work request""")
675682
@cli_util.option('--resource-type', type=custom_types.CliCaseInsensitiveChoice(["CLUSTER", "NODEPOOL"]), help="""Type of the resource associated with a work request""")
676683
@cli_util.option('--status', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED"]), multiple=True, help="""A work request status to filter on. Can have multiple parameters of this name.""")
677-
@cli_util.option('--limit', type=click.INT, help="""The maximum number of items to return in a paginated \"List\" call.""")
678-
@cli_util.option('--page', help="""The value of the `opc-next-page` response header from the previous \"List\" call.""")
684+
@cli_util.option('--limit', type=click.INT, help="""For list pagination. The maximum number of results per page, or items to return in a paginated \"List\" call. 1 is the minimum, 1000 is the maximum. For important details about how pagination works, see [List Pagination].""")
685+
@cli_util.option('--page', help="""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].""")
679686
@cli_util.option('--sort-order', type=custom_types.CliCaseInsensitiveChoice(["ASC", "DESC"]), help="""The optional order in which to sort the results.""")
680687
@cli_util.option('--sort-by', type=custom_types.CliCaseInsensitiveChoice(["ID", "OPERATION_TYPE", "STATUS", "TIME_ACCEPTED", "TIME_STARTED", "TIME_FINISHED"]), help="""The optional field to sort the results by.""")
681688
@cli_util.option('--all', 'all_pages', is_flag=True, help="""Fetches all pages of results. If you provide this option, then you cannot provide the --limit option.""")

0 commit comments

Comments
 (0)