Hello community,
here is the log from the commit of package azure-cli-cosmosdb for
openSUSE:Factory checked in at 2018-02-14 09:30:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/azure-cli-cosmosdb (Old)
and /work/SRC/openSUSE:Factory/.azure-cli-cosmosdb.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "azure-cli-cosmosdb"
Wed Feb 14 09:30:36 2018 rev:2 rq:574806 version:0.1.17
Changes:
--------
--- /work/SRC/openSUSE:Factory/azure-cli-cosmosdb/azure-cli-cosmosdb.changes
2017-11-10 14:53:32.324451715 +0100
+++
/work/SRC/openSUSE:Factory/.azure-cli-cosmosdb.new/azure-cli-cosmosdb.changes
2018-02-14 09:30:41.481503394 +0100
@@ -1,0 +2,10 @@
+Wed Feb 7 15:55:34 UTC 2018 - [email protected]
+
+- New upstream release
+ + Version 0.1.17
+ + For detailed information about changes see the
+ HISTORY.rst file provided with this package
+- Install HISTORY.rst into doc directory
+- Update Requires from setup.py
+
+-------------------------------------------------------------------
Old:
----
azure-cli-cosmosdb-0.1.13.tar.gz
New:
----
azure-cli-cosmosdb-0.1.17.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ azure-cli-cosmosdb.spec ++++++
--- /var/tmp/diff_new_pack.kQaMS3/_old 2018-02-14 09:30:42.337472377 +0100
+++ /var/tmp/diff_new_pack.kQaMS3/_new 2018-02-14 09:30:42.345472087 +0100
@@ -1,7 +1,7 @@
#
# spec file for package azure-cli-cosmosdb
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,8 +15,9 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: azure-cli-cosmosdb
-Version: 0.1.13
+Version: 0.1.17
Release: 0
Summary: Microsoft Azure CLI 'cosmosdb' Command Module
License: MIT
@@ -24,17 +25,17 @@
Url: https://github.com/Azure/azure-cli
Source:
https://files.pythonhosted.org/packages/source/a/azure-cli-cosmosdb/azure-cli-cosmosdb-%{version}.tar.gz
Source1: LICENSE.txt
-BuildRequires: python3-devel
-BuildRequires: python3-setuptools
-BuildRequires: unzip
BuildRequires: azure-cli-command-modules-nspkg
BuildRequires: azure-cli-nspkg
BuildRequires: python3-azure-nspkg
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: unzip
Requires: azure-cli-command-modules-nspkg
+Requires: azure-cli-core
Requires: azure-cli-nspkg
+Requires: python3-azure-mgmt-cosmosdb >= 0.2.1
Requires: python3-azure-nspkg
-Requires: python3-azure-mgmt-documentdb >= 0.1.3
-Requires: azure-cli-core
Conflicts: azure-cli < 2.0.0
BuildArch: noarch
@@ -63,7 +64,8 @@
%files
%defattr(-,root,root,-)
-%doc LICENSE.txt README.rst
+%doc HISTORY.rst LICENSE.txt README.rst
%{python3_sitelib}/azure/cli/command_modules/cosmosdb
%{python3_sitelib}/azure_cli_cosmosdb-*.egg-info
+
%changelog
++++++ azure-cli-cosmosdb-0.1.13.tar.gz -> azure-cli-cosmosdb-0.1.17.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/azure-cli-cosmosdb-0.1.13/HISTORY.rst
new/azure-cli-cosmosdb-0.1.17/HISTORY.rst
--- old/azure-cli-cosmosdb-0.1.13/HISTORY.rst 2017-09-23 01:47:00.000000000
+0200
+++ new/azure-cli-cosmosdb-0.1.17/HISTORY.rst 2018-01-26 17:12:23.000000000
+0100
@@ -2,6 +2,23 @@
Release History
===============
+
+0.1.17
+++++++
+* Fix parameter description for failover policies.
+
+0.1.16
+++++++
+* Update for CLI core changes.
+
+0.1.15
+++++++
+* Use latest azure-mgmt-cosmosdb pypi package (0.2.1)
+
+0.1.14
+++++++
+* minor fixes
+
0.1.13 (2017-09-22)
+++++++++++++++++++
* minor fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/azure-cli-cosmosdb-0.1.13/PKG-INFO
new/azure-cli-cosmosdb-0.1.17/PKG-INFO
--- old/azure-cli-cosmosdb-0.1.13/PKG-INFO 2017-09-23 01:48:04.000000000
+0200
+++ new/azure-cli-cosmosdb-0.1.17/PKG-INFO 2018-01-26 17:12:50.000000000
+0100
@@ -1,12 +1,11 @@
Metadata-Version: 1.1
Name: azure-cli-cosmosdb
-Version: 0.1.13
+Version: 0.1.17
Summary: Microsoft Azure Command-Line Tools Cosmos DB Command Module
Home-page: https://github.com/Azure/azure-cli
Author: Microsoft Corporation
Author-email: [email protected]
License: MIT
-Description-Content-Type: UNKNOWN
Description: Microsoft Azure CLI 'cosmosdb' Command Module
=============================================
@@ -20,6 +19,23 @@
Release History
===============
+
+ 0.1.17
+ ++++++
+ * Fix parameter description for failover policies.
+
+ 0.1.16
+ ++++++
+ * Update for CLI core changes.
+
+ 0.1.15
+ ++++++
+ * Use latest azure-mgmt-cosmosdb pypi package (0.2.1)
+
+ 0.1.14
+ ++++++
+ * minor fixes
+
0.1.13 (2017-09-22)
+++++++++++++++++++
* minor fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/__init__.py
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/__init__.py
---
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/__init__.py
2017-09-23 01:47:00.000000000 +0200
+++
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/__init__.py
2018-01-26 17:12:23.000000000 +0100
@@ -3,12 +3,44 @@
# Licensed under the MIT License. See License.txt in the project root for
license information.
#
--------------------------------------------------------------------------------------------
-import azure.cli.command_modules.cosmosdb._help # pylint:
disable=unused-import
+from knack.events import EVENT_INVOKER_PRE_PARSE_ARGS
+from azure.cli.core import AzCommandsLoader
-def load_params(_):
- import azure.cli.command_modules.cosmosdb._params # pylint:
disable=redefined-outer-name, unused-variable
+from azure.cli.command_modules.cosmosdb._help import helps # pylint:
disable=unused-import
-def load_commands():
- import azure.cli.command_modules.cosmosdb.commands # pylint:
disable=redefined-outer-name, unused-variable
+def _documentdb_deprecate(_, args):
+ if args[0] == 'documentdb':
+ from azure.cli.core.util import CLIError
+ raise CLIError('All documentdb commands have been renamed to cosmosdb')
+
+
+class CosmosDbCommandsLoader(AzCommandsLoader):
+
+ def __init__(self, cli_ctx=None):
+ from azure.cli.core.commands import CliCommandType
+ from azure.cli.command_modules.cosmosdb._client_factory import
cf_cosmosdb_document
+ from azure.cli.command_modules.cosmosdb._command_type import
CosmosDbCommandGroup
+ cosmosdb_custom = CliCommandType(
+ operations_tmpl='azure.cli.command_modules.cosmosdb.custom#{}',
+ client_factory=cf_cosmosdb_document)
+
+ cli_ctx.register_event(EVENT_INVOKER_PRE_PARSE_ARGS,
_documentdb_deprecate)
+
+ super(CosmosDbCommandsLoader, self).__init__(cli_ctx=cli_ctx,
+
min_profile='2017-03-10-profile',
+
custom_command_type=cosmosdb_custom,
+
command_group_cls=CosmosDbCommandGroup)
+
+ def load_command_table(self, args):
+ from azure.cli.command_modules.cosmosdb.commands import
load_command_table
+ load_command_table(self, args)
+ return self.command_table
+
+ def load_arguments(self, command):
+ from azure.cli.command_modules.cosmosdb._params import load_arguments
+ load_arguments(self, command)
+
+
+COMMAND_LOADER_CLS = CosmosDbCommandsLoader
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_client_factory.py
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_client_factory.py
---
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_client_factory.py
2017-09-23 01:47:00.000000000 +0200
+++
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_client_factory.py
2018-01-26 17:12:23.000000000 +0100
@@ -4,11 +4,15 @@
#
--------------------------------------------------------------------------------------------
import os
-import azure.cli.core.azlogging as azlogging
-from azure.cli.core.util import CLIError
+
+from knack.log import get_logger
+from knack.util import CLIError
+
from azure.cli.core import __version__ as core_version
-logger = azlogging.get_az_logger(__name__)
+
+logger = get_logger(__name__)
+
NO_CREDENTIALS_ERROR_MESSAGE = """
No credentials specified to access Cosmos DB service. Please provide any of
the following:
@@ -39,7 +43,7 @@
return None
-def get_document_client_factory(kwargs):
+def cf_cosmosdb_document(cli_ctx, kwargs):
from pydocumentdb import document_client
service_type = document_client.DocumentClient
@@ -52,7 +56,7 @@
if name and resource_group and not key:
# if resource group name is provided find key
- keys = cf_documentdb().database_accounts.list_keys(resource_group,
name)
+ keys =
cf_cosmosdb(cli_ctx).database_accounts.list_keys(resource_group, name)
key = keys.primary_master_key
url_connection = _get_url_connection(url_connection, name)
@@ -72,7 +76,11 @@
return client
-def cf_documentdb(**_):
+def cf_cosmosdb(cli_ctx, **_):
from azure.cli.core.commands.client_factory import get_mgmt_service_client
- from azure.mgmt.documentdb import DocumentDB
- return get_mgmt_service_client(DocumentDB)
+ from azure.mgmt.cosmosdb import CosmosDB
+ return get_mgmt_service_client(cli_ctx, CosmosDB)
+
+
+def cf_db_accounts(cli_ctx, _):
+ return cf_cosmosdb(cli_ctx).database_accounts
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_command_type.py
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_command_type.py
---
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_command_type.py
2017-09-23 01:47:00.000000000 +0200
+++
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_command_type.py
2018-01-26 17:12:23.000000000 +0100
@@ -3,41 +3,54 @@
# Licensed under the MIT License. See License.txt in the project root for
license information.
#
--------------------------------------------------------------------------------------------
-from azure.cli.core.commands import create_command, command_table
+from azure.cli.core.commands import AzCommandGroup
-def cli_cosmosdb_data_plane_command(name,
- operation, client_factory, transform=None,
- table_transformer=None,
exception_handler=None):
- """Registers an Azure CLI Cosmos DB Data Plane command. These commands
always include the
- parameters which can be used to obtain a cosmosdb client."""
-
- if not exception_handler:
- from ._exception_handler import generic_exception_handler
- exception_handler = generic_exception_handler
-
- command = create_command(__name__, name, operation, transform,
table_transformer,
- client_factory,
exception_handler=exception_handler)
-
- # add parameters required to create a cosmosdb client
- group_name = 'Cosmos DB Account'
-
- command.add_argument('db_resource_group_name', '--resource-group-name',
'-g',
- arg_group=group_name,
- help='name of the resource group. Must be used in
conjunction with '
- 'cosmosdb account name.')
- command.add_argument('db_account_name', '--name', '-n',
arg_group=group_name,
- help='Cosmos DB account name. Must be used in
conjunction with '
- 'either name of the resource group or cosmosdb
account key.')
-
- command.add_argument('db_account_key', '--key', required=False,
default=None,
- arg_group=group_name,
- help='Cosmos DB account key. Must be used in
conjunction with cosmosdb '
- 'account name or url-connection.')
-
- command.add_argument('db_url_connection', '--url-connection',
required=False, default=None,
- arg_group=group_name,
- help='Cosmos DB account url connection. Must be used
in conjunction with '
- 'cosmosdb account key.')
+class CosmosDbCommandGroup(AzCommandGroup):
- command_table[command.name] = command
+ def _create_cosmosdb_command(self, name, method_name=None,
command_type_name=None, **kwargs):
+ """Registers an Azure CLI Cosmos DB Data Plane command. These commands
always include the
+ parameters which can be used to obtain a cosmosdb client."""
+
+ merged_kwargs = self._flatten_kwargs(kwargs, command_type_name)
+ if 'exception_handler' not in merged_kwargs:
+ from ._exception_handler import generic_exception_handler
+ merged_kwargs['exception_handler'] = generic_exception_handler
+ if command_type_name == 'command_type':
+ command_name = self.command(name, method_name, **merged_kwargs)
+ else:
+ command_name = self.custom_command(name, method_name,
**merged_kwargs)
+
+ command = self.command_loader.command_table[command_name]
+
+ # add parameters required to create a cosmosdb client
+ group_name = 'Cosmos DB Account'
+ command.add_argument('db_resource_group_name',
'--resource-group-name', '-g',
+ arg_group=group_name,
+ help='name of the resource group. Must be used in
conjunction with '
+ 'cosmosdb account name.')
+ command.add_argument('db_account_name', '--name', '-n',
arg_group=group_name,
+ help='Cosmos DB account name. Must be used in
conjunction with '
+ 'either name of the resource group or
cosmosdb account key.')
+
+ command.add_argument('db_account_key', '--key', required=False,
default=None,
+ arg_group=group_name,
+ help='Cosmos DB account key. Must be used in
conjunction with cosmosdb '
+ 'account name or url-connection.')
+
+ command.add_argument('db_url_connection', '--url-connection',
required=False, default=None,
+ arg_group=group_name,
+ help='Cosmos DB account url connection. Must be
used in conjunction with '
+ 'cosmosdb account key.')
+
+ def cosmosdb_command(self, name, method_name=None, command_type=None,
**kwargs):
+ command_type_name = 'command_type'
+ if command_type:
+ kwargs[command_type_name] = command_type
+ self._create_cosmosdb_command(name, method_name, command_type_name,
**kwargs)
+
+ def cosmosdb_custom(self, name, method_name=None, command_type=None,
**kwargs):
+ command_type_name = 'custom_command_type'
+ if command_type:
+ kwargs[command_type_name] = command_type
+ self._create_cosmosdb_command(name, method_name, command_type_name,
**kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_exception_handler.py
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_exception_handler.py
---
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_exception_handler.py
2017-09-23 01:47:00.000000000 +0200
+++
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_exception_handler.py
2018-01-26 17:12:23.000000000 +0100
@@ -4,10 +4,12 @@
#
--------------------------------------------------------------------------------------------
import json
-from azure.cli.core.util import CLIError
-import azure.cli.core.azlogging as azlogging
-logger = azlogging.get_az_logger(__name__)
+from knack.log import get_logger
+from knack.util import CLIError
+
+
+logger = get_logger(__name__)
def duplicate_resource_exception_handler(ex):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_help.py
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_help.py
--- old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_help.py
2017-09-23 01:47:00.000000000 +0200
+++ new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_help.py
2018-01-26 17:12:23.000000000 +0100
@@ -3,7 +3,7 @@
# Licensed under the MIT License. See License.txt in the project root for
license information.
#
--------------------------------------------------------------------------------------------
-from azure.cli.core.help_files import helps
+from knack.help_files import helps
helps['cosmosdb'] = """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_params.py
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_params.py
--- old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_params.py
2017-09-23 01:47:00.000000000 +0200
+++ new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_params.py
2018-01-26 17:12:23.000000000 +0100
@@ -5,90 +5,44 @@
# pylint: disable=line-too-long
from argcomplete.completers import FilesCompleter
-from azure.cli.core.commands.parameters import (
- get_resource_name_completion_list,
- enum_choice_list,
- name_type,
- ignore_type)
+from azure.cli.core.commands.parameters import (
+ get_resource_name_completion_list, name_type, get_enum_type,
get_three_state_flag)
from azure.cli.core.util import shell_safe_json_parse
-from azure.mgmt.documentdb.models.document_db_enums import KeyKind
-from azure.mgmt.documentdb.models.document_db_enums import
DefaultConsistencyLevel
-from azure.mgmt.documentdb.models.document_db_enums import DatabaseAccountKind
-from azure.mgmt.documentdb.models.failover_policy import FailoverPolicy
-from azure.mgmt.documentdb.models.location import Location
-from azure.cli.core.commands import register_cli_argument, CliArgumentType
-
-
-def validate_failover_policies(ns):
- """ Extracts multiple space-separated failoverPolicies in
regionName=failoverPriority format """
- fp_dict = []
- for item in ns.failover_policies:
- comps = item.split('=', 1)
- fp_dict.append(FailoverPolicy(comps[0], int(comps[1])))
- ns.failover_policies = fp_dict
-
-
-def validate_locations(ns):
- """ Extracts multiple space-separated locations in
regionName=failoverPriority format """
- if ns.locations is None:
- ns.locations = []
- return
- loc_dict = []
- for item in ns.locations:
- comps = item.split('=', 1)
- loc_dict.append(Location(location_name=comps[0],
failover_priority=int(comps[1])))
- ns.locations = loc_dict
-
-
-def validate_ip_range_filter(ns):
- if ns.ip_range_filter:
- ns.ip_range_filter = ",".join(ns.ip_range_filter)
-
-
-register_cli_argument('cosmosdb', 'account_name', arg_type=name_type,
help='Name of the Cosmos DB database account',
completer=get_resource_name_completion_list('Microsoft.DocumentDb/databaseAccounts'),
id_part="name")
-
-register_cli_argument('cosmosdb regenerate-key', 'key_kind',
**enum_choice_list(KeyKind))
-register_cli_argument('cosmosdb failover-priority-change',
'failover_policies', validator=validate_failover_policies, help="space
separated failover policies in 'regionName=failoverPriority' format. E.g \"East
US\"=0 \"West US\"=1", nargs='+')
-register_cli_argument('cosmosdb create', 'account_name', completer=None)
-register_cli_argument('cosmosdb create', 'resource_group_name', help="name of
the resource group")
-register_cli_argument('cosmosdb create', 'resource_group_location',
ignore_type)
-register_cli_argument('cosmosdb create', 'locations',
validator=validate_locations, help="space separated locations in
'regionName=failoverPriority' format. E.g \"East US\"=0 \"West US\"=1. Failover
priority values are 0 for write regions and greater than 0 for read regions. A
failover priority value must be unique and less than the total number of
regions. Default: single region account in the location of the specified
resource group.", nargs='+')
-register_cli_argument('cosmosdb create', 'default_consistency_level',
help="default consistency level of the Cosmos DB database account",
**enum_choice_list(DefaultConsistencyLevel))
-register_cli_argument('cosmosdb create', 'max_staleness_prefix', help="when
used with Bounded Staleness consistency, this value represents the number of
stale requests tolerated. Accepted range for this value is 1 - 2,147,483,647",
type=int)
-register_cli_argument('cosmosdb create', 'max_interval', help="when used with
Bounded Staleness consistency, this value represents the time amount of
staleness (in seconds) tolerated. Accepted range for this value is 1 - 100",
type=int)
-register_cli_argument('cosmosdb create', 'ip_range_filter',
validator=validate_ip_range_filter, help="firewall support. Specifies the set
of IP addresses or IP address ranges in CIDR form to be included as the allowed
list of client IPs for a given database account. IP addresses/ranges must be
comma separated and must not contain any spaces", nargs='+')
-register_cli_argument('cosmosdb create', 'kind', help='The type of Cosmos DB
database account to create', **enum_choice_list(DatabaseAccountKind))
-register_cli_argument('cosmosdb create', 'enable_automatic_failover',
help='Enables automatic failover of the write region in the rare event that the
region is unavailable due to an outage. Automatic failover will result in a new
write region for the account and is chosen based on the failover priorities
configured for the account.', type=bool)
-
-register_cli_argument('cosmosdb update', 'account_name', completer=None)
-register_cli_argument('cosmosdb update', 'resource_group_name', help="name of
the resource group")
-register_cli_argument('cosmosdb update', 'locations',
validator=validate_locations, help="space separated locations in
'regionName=failoverPriority' format. E.g \"East US\"=0. Failover priority
values are 0 for write regions and greater than 0 for read regions. A failover
priority value must be unique and less than the total number of regions.",
nargs='+')
-register_cli_argument('cosmosdb update', 'default_consistency_level',
help="default consistency level of the Cosmos DB database account",
**enum_choice_list(DefaultConsistencyLevel))
-register_cli_argument('cosmosdb update', 'max_staleness_prefix', help="when
used with Bounded Staleness consistency, this value represents the number of
stale requests tolerated. Accepted range for this value is 1 - 2,147,483,647",
type=int)
-register_cli_argument('cosmosdb update', 'max_interval', help="when used with
Bounded Staleness consistency, this value represents the time amount of
staleness (in seconds) tolerated. Accepted range for this value is 1 - 100",
type=int)
-register_cli_argument('cosmosdb update', 'ip_range_filter',
validator=validate_ip_range_filter, help="firewall support. Specifies the set
of IP addresses or IP address ranges in CIDR form to be included as the allowed
list of client IPs for a given database account. IP addresses/ranges must be
comma separated and must not contain any spaces", nargs='+')
-register_cli_argument('cosmosdb update', 'enable_automatic_failover',
help='Enables automatic failover of the write region in the rare event that the
region is unavailable due to an outage. Automatic failover will result in a new
write region for the account and is chosen based on the failover priorities
configured for the account.', type=bool)
-
-# database id
-database_id = CliArgumentType(options_list=('--db-name', '-d'), help='Database
Name')
-register_cli_argument('cosmosdb database', 'database_id', database_id)
-register_cli_argument('cosmosdb collection', 'database_id', database_id)
-
-register_cli_argument('cosmosdb collection', 'collection_id',
- options_list=('--collection-name', '-c'),
help='Collection Name')
-
-register_cli_argument('cosmosdb collection', 'throughput',
- options_list=('--throughput'), help='Offer Throughput',
type=int)
-
-register_cli_argument('cosmosdb collection', 'partition_key_path',
- options_list=('--partition-key-path'),
- help='Partition Key Path, e.g., \'/properties/name\'')
-
-register_cli_argument('cosmosdb collection', 'indexing_policy',
- options_list=('--indexing-policy'),
- help='Indexing Policy, you can enter it as a string or
as a file, e.g., --indexing-policy @policy-file.json)',
- type=shell_safe_json_parse, completer=FilesCompleter())
+from azure.cli.command_modules.cosmosdb._validators import (
+ validate_locations, validate_ip_range_filter, validate_failover_policies)
+
+
+def load_arguments(self, _):
+
+ from azure.mgmt.cosmosdb.models.cosmos_db_enums import KeyKind,
DefaultConsistencyLevel, DatabaseAccountKind
-register_cli_argument('cosmosdb collection', 'default_ttl', help='Default
TTL', type=int)
+ with self.argument_context('cosmosdb') as c:
+ c.argument('account_name', arg_type=name_type, help='Name of the
Cosmos DB database account',
completer=get_resource_name_completion_list('Microsoft.DocumentDb/databaseAccounts'),
id_part='name')
+ c.argument('database_id', options_list=['--db-name', '-d'],
help='Database Name')
+
+ for scope in ['cosmosdb create', 'cosmosdb update']:
+ with self.argument_context(scope) as c:
+ c.argument('account_name', completer=None)
+ c.ignore('resource_group_location')
+ c.argument('locations', nargs='+', validator=validate_locations,
help="space separated locations in 'regionName=failoverPriority' format. E.g
eastus=0 westus=1. Failover priority values are 0 for write regions and greater
than 0 for read regions. A failover priority value must be unique and less than
the total number of regions. Default: single region account in the location of
the specified resource group.")
+ c.argument('default_consistency_level',
arg_type=get_enum_type(DefaultConsistencyLevel), help="default consistency
level of the Cosmos DB database account")
+ c.argument('max_staleness_prefix', type=int, help="when used with
Bounded Staleness consistency, this value represents the number of stale
requests tolerated. Accepted range for this value is 1 - 2,147,483,647")
+ c.argument('max_interval', type=int, help="when used with Bounded
Staleness consistency, this value represents the time amount of staleness (in
seconds) tolerated. Accepted range for this value is 1 - 100")
+ c.argument('ip_range_filter', nargs='+',
validator=validate_ip_range_filter, help="firewall support. Specifies the set
of IP addresses or IP address ranges in CIDR form to be included as the allowed
list of client IPs for a given database account. IP addresses/ranges must be
comma separated and must not contain any spaces")
+ c.argument('kind', arg_type=get_enum_type(DatabaseAccountKind),
help='The type of Cosmos DB database account to create')
+ c.argument('enable_automatic_failover',
arg_type=get_three_state_flag(), help='Enables automatic failover of the write
region in the rare event that the region is unavailable due to an outage.
Automatic failover will result in a new write region for the account and is
chosen based on the failover priorities configured for the account.')
+
+ with self.argument_context('cosmosdb regenerate-key') as c:
+ c.argument('key_kind', arg_type=get_enum_type(KeyKind))
+
+ with self.argument_context('cosmosdb failover-priority-change') as c:
+ c.argument('failover_policies', validator=validate_failover_policies,
help="space separated failover policies in 'regionName=failoverPriority'
format. E.g eastus=0 westus=1", nargs='+')
+
+ with self.argument_context('cosmosdb collection') as c:
+ c.argument('collection_id', options_list=['--collection-name', '-c'],
help='Collection Name')
+ c.argument('throughput', type=int, help='Offer Throughput')
+ c.argument('partition_key_path', help='Partition Key Path, e.g.,
\'/properties/name\'')
+ c.argument('indexing_policy', type=shell_safe_json_parse,
completer=FilesCompleter(), help='Indexing Policy, you can enter it as a string
or as a file, e.g., --indexing-policy @policy-file.json)')
+ c.argument('default_ttl', type=int, help='Default TTL')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_validators.py
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_validators.py
---
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/_validators.py
1970-01-01 01:00:00.000000000 +0100
+++
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/_validators.py
2018-01-26 17:12:23.000000000 +0100
@@ -0,0 +1,32 @@
+#
--------------------------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for
license information.
+#
--------------------------------------------------------------------------------------------
+
+
+def validate_failover_policies(ns):
+ """ Extracts multiple space-separated failoverPolicies in
regionName=failoverPriority format """
+ from azure.mgmt.cosmosdb.models.failover_policy import FailoverPolicy
+ fp_dict = []
+ for item in ns.failover_policies:
+ comps = item.split('=', 1)
+ fp_dict.append(FailoverPolicy(comps[0], int(comps[1])))
+ ns.failover_policies = fp_dict
+
+
+def validate_locations(ns):
+ """ Extracts multiple space-separated locations in
regionName=failoverPriority format """
+ from azure.mgmt.cosmosdb.models.location import Location
+ if ns.locations is None:
+ ns.locations = []
+ return
+ loc_dict = []
+ for item in ns.locations:
+ comps = item.split('=', 1)
+ loc_dict.append(Location(location_name=comps[0],
failover_priority=int(comps[1])))
+ ns.locations = loc_dict
+
+
+def validate_ip_range_filter(ns):
+ if ns.ip_range_filter:
+ ns.ip_range_filter = ",".join(ns.ip_range_filter)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/commands.py
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/commands.py
---
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/commands.py
2017-09-23 01:47:00.000000000 +0200
+++
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/commands.py
2018-01-26 17:12:23.000000000 +0100
@@ -5,50 +5,43 @@
# pylint: disable=line-too-long
-from azure.cli.core.application import APPLICATION
-from azure.cli.core.commands import cli_command
-from azure.cli.core.profiles import supported_api_version, PROFILE_TYPE
-from azure.cli.command_modules.cosmosdb._client_factory import (cf_documentdb)
-from ._client_factory import get_document_client_factory
-from ._command_type import cli_cosmosdb_data_plane_command
-
-if not supported_api_version(PROFILE_TYPE, max_api='2017-03-09-profile'):
- mgmt_path =
'azure.mgmt.documentdb.operations.database_accounts_operations#'
- custome_path = 'azure.cli.command_modules.cosmosdb.custom#'
-
- def deprecate(argv):
- if argv[0] == 'documentdb':
- from azure.cli.core.util import CLIError
- raise CLIError('All documentdb commands have been renamed to
cosmosdb')
-
- APPLICATION.register(APPLICATION.COMMAND_PARSER_PARSING, deprecate)
-
- def db_accounts_factory(_):
- return cf_documentdb().database_accounts
-
- cli_command(__name__, 'cosmosdb show', mgmt_path +
'DatabaseAccountsOperations.get', db_accounts_factory)
- cli_command(__name__, 'cosmosdb list-keys', mgmt_path +
'DatabaseAccountsOperations.list_keys', db_accounts_factory)
- cli_command(__name__, 'cosmosdb list-read-only-keys', mgmt_path +
'DatabaseAccountsOperations.list_read_only_keys', db_accounts_factory)
- cli_command(__name__, 'cosmosdb list-connection-strings', mgmt_path +
'DatabaseAccountsOperations.list_connection_strings', db_accounts_factory)
- cli_command(__name__, 'cosmosdb regenerate-key', mgmt_path +
'DatabaseAccountsOperations.regenerate_key', db_accounts_factory)
- cli_command(__name__, 'cosmosdb check-name-exists', mgmt_path +
'DatabaseAccountsOperations.check_name_exists', db_accounts_factory)
- cli_command(__name__, 'cosmosdb delete', mgmt_path +
'DatabaseAccountsOperations.delete', db_accounts_factory)
- cli_command(__name__, 'cosmosdb failover-priority-change', mgmt_path +
'DatabaseAccountsOperations.failover_priority_change', db_accounts_factory)
- cli_command(__name__, 'cosmosdb create', custome_path +
'cli_cosmosdb_create', db_accounts_factory)
- cli_command(__name__, 'cosmosdb update', custome_path +
'cli_cosmosdb_update', db_accounts_factory)
- cli_command(__name__, 'cosmosdb list', custome_path + 'cli_cosmosdb_list',
db_accounts_factory)
+from azure.cli.core.commands import CliCommandType
+
+from azure.cli.command_modules.cosmosdb._client_factory import cf_db_accounts
+
+
+def load_command_table(self, _):
+
+ cosmosdb_sdk = CliCommandType(
+
operations_tmpl='azure.mgmt.cosmosdb.operations.database_accounts_operations#DatabaseAccountsOperations.{}',
+ client_factory=cf_db_accounts)
+
+ with self.command_group('cosmosdb', cosmosdb_sdk,
client_factory=cf_db_accounts) as g:
+ g.command('show', 'get')
+ g.command('list-keys', 'list_keys')
+ g.command('list-read-only-keys', 'list_read_only_keys')
+ g.command('list-connection-strings', 'list_connection_strings')
+ g.command('regenerate-key', 'regenerate_key')
+ g.command('check-name-exists', 'check_name_exists')
+ g.command('delete', 'delete')
+ g.command('failover-priority-change', 'failover_priority_change')
+ g.custom_command('create', 'cli_cosmosdb_create')
+ g.custom_command('update', 'cli_cosmosdb_update')
+ g.custom_command('list', 'cli_cosmosdb_list')
# # database operations
- cli_cosmosdb_data_plane_command('cosmosdb database show', custome_path +
'cli_cosmosdb_database_show', get_document_client_factory)
- cli_cosmosdb_data_plane_command('cosmosdb database list', custome_path +
'cli_cosmosdb_database_list', get_document_client_factory)
- cli_cosmosdb_data_plane_command('cosmosdb database exists', custome_path +
'cli_cosmosdb_database_exists', get_document_client_factory)
- cli_cosmosdb_data_plane_command('cosmosdb database create', custome_path +
'cli_cosmosdb_database_create', get_document_client_factory)
- cli_cosmosdb_data_plane_command('cosmosdb database delete', custome_path +
'cli_cosmosdb_database_delete', get_document_client_factory)
+ with self.command_group('cosmosdb database') as g:
+ g.cosmosdb_custom('show', 'cli_cosmosdb_database_show')
+ g.cosmosdb_custom('list', 'cli_cosmosdb_database_list')
+ g.cosmosdb_custom('exists', 'cli_cosmosdb_database_exists')
+ g.cosmosdb_custom('create', 'cli_cosmosdb_database_create')
+ g.cosmosdb_custom('delete', 'cli_cosmosdb_database_delete')
# collection operations
- cli_cosmosdb_data_plane_command('cosmosdb collection show', custome_path +
'cli_cosmosdb_collection_show', get_document_client_factory)
- cli_cosmosdb_data_plane_command('cosmosdb collection list', custome_path +
'cli_cosmosdb_collection_list', get_document_client_factory)
- cli_cosmosdb_data_plane_command('cosmosdb collection exists', custome_path
+ 'cli_cosmosdb_collection_exists', get_document_client_factory)
- cli_cosmosdb_data_plane_command('cosmosdb collection create', custome_path
+ 'cli_cosmosdb_collection_create', get_document_client_factory)
- cli_cosmosdb_data_plane_command('cosmosdb collection delete', custome_path
+ 'cli_cosmosdb_collection_delete', get_document_client_factory)
- cli_cosmosdb_data_plane_command('cosmosdb collection update', custome_path
+ 'cli_cosmosdb_collection_update', get_document_client_factory)
+ with self.command_group('cosmosdb collection') as g:
+ g.cosmosdb_custom('show', 'cli_cosmosdb_collection_show')
+ g.cosmosdb_custom('list', 'cli_cosmosdb_collection_list')
+ g.cosmosdb_custom('exists', 'cli_cosmosdb_collection_exists')
+ g.cosmosdb_custom('create', 'cli_cosmosdb_collection_create')
+ g.cosmosdb_custom('delete', 'cli_cosmosdb_collection_delete')
+ g.cosmosdb_custom('update', 'cli_cosmosdb_collection_update')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/custom.py
new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/custom.py
--- old/azure-cli-cosmosdb-0.1.13/azure/cli/command_modules/cosmosdb/custom.py
2017-09-23 01:47:00.000000000 +0200
+++ new/azure-cli-cosmosdb-0.1.17/azure/cli/command_modules/cosmosdb/custom.py
2018-01-26 17:12:23.000000000 +0100
@@ -3,16 +3,19 @@
# Licensed under the MIT License. See License.txt in the project root for
license information.
#
--------------------------------------------------------------------------------------------
-from azure.mgmt.documentdb.models import (
+from knack.log import get_logger
+from knack.util import CLIError
+
+from azure.mgmt.cosmosdb.models import (
ConsistencyPolicy,
DatabaseAccountCreateUpdateParameters,
Location
)
-from azure.mgmt.documentdb.models.document_db_enums import DatabaseAccountKind
-from azure.cli.core.util import CLIError
-import azure.cli.core.azlogging as azlogging
+from azure.mgmt.cosmosdb.models.cosmos_db_enums import DatabaseAccountKind
+
+
+logger = get_logger(__name__)
-logger = azlogging.get_az_logger(__name__)
DEFAULT_INDEXING_POLICY = """{
"indexingMode": "consistent",
@@ -37,7 +40,7 @@
}"""
-def cli_cosmosdb_create(client,
+def cli_cosmosdb_create(cmd, client,
resource_group_name,
account_name,
locations=None,
@@ -56,7 +59,7 @@
from azure.mgmt.resource import ResourceManagementClient
from azure.cli.core.commands.client_factory import get_mgmt_service_client
- resource_client = get_mgmt_service_client(ResourceManagementClient)
+ resource_client = get_mgmt_service_client(cmd.cli_ctx,
ResourceManagementClient)
rg = resource_client.resource_groups.get(resource_group_name)
resource_group_location = rg.location # pylint: disable=no-member
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure_cli_cosmosdb.egg-info/PKG-INFO
new/azure-cli-cosmosdb-0.1.17/azure_cli_cosmosdb.egg-info/PKG-INFO
--- old/azure-cli-cosmosdb-0.1.13/azure_cli_cosmosdb.egg-info/PKG-INFO
2017-09-23 01:48:04.000000000 +0200
+++ new/azure-cli-cosmosdb-0.1.17/azure_cli_cosmosdb.egg-info/PKG-INFO
2018-01-26 17:12:50.000000000 +0100
@@ -1,12 +1,11 @@
Metadata-Version: 1.1
Name: azure-cli-cosmosdb
-Version: 0.1.13
+Version: 0.1.17
Summary: Microsoft Azure Command-Line Tools Cosmos DB Command Module
Home-page: https://github.com/Azure/azure-cli
Author: Microsoft Corporation
Author-email: [email protected]
License: MIT
-Description-Content-Type: UNKNOWN
Description: Microsoft Azure CLI 'cosmosdb' Command Module
=============================================
@@ -20,6 +19,23 @@
Release History
===============
+
+ 0.1.17
+ ++++++
+ * Fix parameter description for failover policies.
+
+ 0.1.16
+ ++++++
+ * Update for CLI core changes.
+
+ 0.1.15
+ ++++++
+ * Use latest azure-mgmt-cosmosdb pypi package (0.2.1)
+
+ 0.1.14
+ ++++++
+ * minor fixes
+
0.1.13 (2017-09-22)
+++++++++++++++++++
* minor fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure_cli_cosmosdb.egg-info/SOURCES.txt
new/azure-cli-cosmosdb-0.1.17/azure_cli_cosmosdb.egg-info/SOURCES.txt
--- old/azure-cli-cosmosdb-0.1.13/azure_cli_cosmosdb.egg-info/SOURCES.txt
2017-09-23 01:48:04.000000000 +0200
+++ new/azure-cli-cosmosdb-0.1.17/azure_cli_cosmosdb.egg-info/SOURCES.txt
2018-01-26 17:12:50.000000000 +0100
@@ -12,6 +12,7 @@
azure/cli/command_modules/cosmosdb/_exception_handler.py
azure/cli/command_modules/cosmosdb/_help.py
azure/cli/command_modules/cosmosdb/_params.py
+azure/cli/command_modules/cosmosdb/_validators.py
azure/cli/command_modules/cosmosdb/commands.py
azure/cli/command_modules/cosmosdb/custom.py
azure_cli_cosmosdb.egg-info/PKG-INFO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-cli-cosmosdb-0.1.13/azure_cli_cosmosdb.egg-info/requires.txt
new/azure-cli-cosmosdb-0.1.17/azure_cli_cosmosdb.egg-info/requires.txt
--- old/azure-cli-cosmosdb-0.1.13/azure_cli_cosmosdb.egg-info/requires.txt
2017-09-23 01:48:04.000000000 +0200
+++ new/azure-cli-cosmosdb-0.1.17/azure_cli_cosmosdb.egg-info/requires.txt
2018-01-26 17:12:50.000000000 +0100
@@ -1,4 +1,3 @@
-azure-mgmt-documentdb==0.1.3
+azure-mgmt-cosmosdb==0.2.1
azure-cli-core
pydocumentdb>=2.0.1
-azure-cli-command-modules-nspkg>=2.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/azure-cli-cosmosdb-0.1.13/setup.py
new/azure-cli-cosmosdb-0.1.17/setup.py
--- old/azure-cli-cosmosdb-0.1.13/setup.py 2017-09-23 01:48:03.000000000
+0200
+++ new/azure-cli-cosmosdb-0.1.17/setup.py 2018-01-26 17:12:23.000000000
+0100
@@ -16,7 +16,7 @@
cmdclass = {}
-VERSION = "0.1.13"
+VERSION = "0.1.17"
# The full list of classifiers is available at
# https://pypi.python.org/pypi?%3Aaction=list_classifiers
CLASSIFIERS = [
@@ -34,7 +34,7 @@
DEPENDENCIES = [
- 'azure-mgmt-documentdb==0.1.3',
+ 'azure-mgmt-cosmosdb==0.2.1',
'azure-cli-core',
'pydocumentdb>=2.0.1'
]