Hello community,

here is the log from the commit of package azure-cli-redis for openSUSE:Factory 
checked in at 2019-05-22 11:01:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/azure-cli-redis (Old)
 and      /work/SRC/openSUSE:Factory/.azure-cli-redis.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "azure-cli-redis"

Wed May 22 11:01:40 2019 rev:5 rq:696853 version:0.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/azure-cli-redis/azure-cli-redis.changes  
2018-10-15 10:44:31.331320939 +0200
+++ 
/work/SRC/openSUSE:Factory/.azure-cli-redis.new.5148/azure-cli-redis.changes    
    2019-05-22 11:01:44.202680134 +0200
@@ -1,0 +2,16 @@
+Tue Apr 16 18:24:01 UTC 2019 - John Paul Adrian Glaubitz 
<[email protected]>
+
+- New upstream release
+  + Version 0.4.0
+  + For detailed information about changes see the
+    HISTORY.txt file provided with this package
+- Bump minimum version for Python Azure SDK namespace
+  packages to 3.0.0 in BuildRequires and Requires
+- Remove python3-devel package from BuildRequires
+- Remove unzip package from BuildRequires
+- Run fdupes to hardlink duplicate files
+  + Add fdupes to BuildRequires
+  + Add %fdupes invocation to %install
+- Update Requires from setup.py
+
+-------------------------------------------------------------------

Old:
----
  azure-cli-redis-0.3.2.tar.gz

New:
----
  azure-cli-redis-0.4.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ azure-cli-redis.spec ++++++
--- /var/tmp/diff_new_pack.IkPm6O/_old  2019-05-22 11:01:44.710679843 +0200
+++ /var/tmp/diff_new_pack.IkPm6O/_new  2019-05-22 11:01:44.714679840 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package azure-cli-redis
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 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
@@ -17,7 +17,7 @@
 
 
 Name:           azure-cli-redis
-Version:        0.3.2
+Version:        0.4.0
 Release:        0
 Summary:        Microsoft Azure CLI 'redis' Command Module
 License:        MIT
@@ -27,15 +27,14 @@
 Source1:        LICENSE.txt
 BuildRequires:  azure-cli-command-modules-nspkg
 BuildRequires:  azure-cli-nspkg
-BuildRequires:  python3-azure-nspkg
-BuildRequires:  python3-devel
+BuildRequires:  fdupes
+BuildRequires:  python3-azure-nspkg >= 3.0.0
 BuildRequires:  python3-setuptools
-BuildRequires:  unzip
 Requires:       azure-cli-command-modules-nspkg
 Requires:       azure-cli-core
 Requires:       azure-cli-nspkg
-Requires:       python3-azure-mgmt-redis >= 5.0.0
-Requires:       python3-azure-nspkg
+Requires:       python3-azure-mgmt-redis >= 6.0.0
+Requires:       python3-azure-nspkg >= 3.0.0
 Conflicts:      azure-cli < 2.0.0
 
 BuildArch:      noarch
@@ -55,6 +54,7 @@
 
 %install
 python3 setup.py install --root=%{buildroot} --prefix=%{_prefix} 
--install-lib=%{python3_sitelib}
+%python_expand %fdupes %{buildroot}%{$python_sitelib}
 rm -rf %{buildroot}%{python3_sitelib}/azure/cli/command_modules/__init__.*
 rm -rf %{buildroot}%{python3_sitelib}/azure/cli/command_modules/__pycache__
 rm -rf %{buildroot}%{python3_sitelib}/azure/cli/__init__.*

++++++ azure-cli-redis-0.3.2.tar.gz -> azure-cli-redis-0.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure-cli-redis-0.3.2/HISTORY.rst 
new/azure-cli-redis-0.4.0/HISTORY.rst
--- old/azure-cli-redis-0.3.2/HISTORY.rst       2018-08-23 01:07:57.000000000 
+0200
+++ new/azure-cli-redis-0.4.0/HISTORY.rst       2019-02-12 03:05:13.000000000 
+0100
@@ -3,6 +3,16 @@
 Release History
 ===============
 
+0.4.0
+++++++
+* Added commands for managing firewall-rules (create, update, delete, show, 
list)
+* Added commands for managing server-link (create, delete, show, list)
+* Added commands for managing patch-schedule (create, update, delete, show)
+* `az redis create` : Support for Availability Zones and Minimum TLS Version
+* BREAKING CHANGE: Removed 'az redis update-settings' and 'az redis list-all' 
command
+* BREAKING CHANGE: Parameter for redis create: 'tenant settings' is not 
accepted in key[=value] format
+* Added warning message for deprecating 'az redis import-method' command.
+
 0.3.2
 +++++
 * Minor fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure-cli-redis-0.3.2/PKG-INFO 
new/azure-cli-redis-0.4.0/PKG-INFO
--- old/azure-cli-redis-0.3.2/PKG-INFO  2018-08-23 01:09:23.000000000 +0200
+++ new/azure-cli-redis-0.4.0/PKG-INFO  2019-02-12 03:05:30.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: azure-cli-redis
-Version: 0.3.2
+Version: 0.4.0
 Summary: Microsoft Azure Command-Line Tools Redis Command Module
 Home-page: https://github.com/Azure/azure-cli
 Author: Microsoft Corporation
@@ -20,6 +20,16 @@
         Release History
         ===============
         
+        0.4.0
+        ++++++
+        * Added commands for managing firewall-rules (create, update, delete, 
show, list)
+        * Added commands for managing server-link (create, delete, show, list)
+        * Added commands for managing patch-schedule (create, update, delete, 
show)
+        * `az redis create` : Support for Availability Zones and Minimum TLS 
Version
+        * BREAKING CHANGE: Removed 'az redis update-settings' and 'az redis 
list-all' command
+        * BREAKING CHANGE: Parameter for redis create: 'tenant settings' is 
not accepted in key[=value] format
+        * Added warning message for deprecating 'az redis import-method' 
command.
+        
         0.3.2
         +++++
         * Minor fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-redis-0.3.2/azure/cli/command_modules/redis/_client_factory.py 
new/azure-cli-redis-0.4.0/azure/cli/command_modules/redis/_client_factory.py
--- 
old/azure-cli-redis-0.3.2/azure/cli/command_modules/redis/_client_factory.py    
    2018-08-23 01:07:57.000000000 +0200
+++ 
new/azure-cli-redis-0.4.0/azure/cli/command_modules/redis/_client_factory.py    
    2019-02-12 03:05:13.000000000 +0100
@@ -4,7 +4,7 @@
 # 
--------------------------------------------------------------------------------------------
 
 
-def cf_redis(cli_ctx, _):
+def cf_redis(cli_ctx, *_):
     from azure.cli.core.commands.client_factory import get_mgmt_service_client
     from azure.mgmt.redis import RedisManagementClient
     return get_mgmt_service_client(cli_ctx, RedisManagementClient).redis
@@ -14,3 +14,15 @@
     from azure.cli.core.commands.client_factory import get_mgmt_service_client
     from azure.mgmt.redis import RedisManagementClient
     return get_mgmt_service_client(cli_ctx, 
RedisManagementClient).patch_schedules
+
+
+def cf_firewall_rule(cli_ctx, _):
+    from azure.cli.core.commands.client_factory import get_mgmt_service_client
+    from azure.mgmt.redis import RedisManagementClient
+    return get_mgmt_service_client(cli_ctx, 
RedisManagementClient).firewall_rules
+
+
+def cf_linked_server(cli_ctx, _):
+    from azure.cli.core.commands.client_factory import get_mgmt_service_client
+    from azure.mgmt.redis import RedisManagementClient
+    return get_mgmt_service_client(cli_ctx, 
RedisManagementClient).linked_server
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-redis-0.3.2/azure/cli/command_modules/redis/_help.py 
new/azure-cli-redis-0.4.0/azure/cli/command_modules/redis/_help.py
--- old/azure-cli-redis-0.3.2/azure/cli/command_modules/redis/_help.py  
2018-08-23 01:07:57.000000000 +0200
+++ new/azure-cli-redis-0.4.0/azure/cli/command_modules/redis/_help.py  
2019-02-12 03:05:13.000000000 +0100
@@ -12,6 +12,11 @@
     short-summary: Manage dedicated Redis caches for your Azure applications.
 """
 
+helps['redis create'] = """
+    type: command
+    short-summary: Create new Redis Cache instance.
+"""
+
 helps['redis export'] = """
     type: command
     short-summary: Export data stored in a Redis cache.
@@ -22,32 +27,58 @@
     short-summary: Import data into a Redis cache.
 """
 
-helps['redis import-method'] = """
+helps['redis list'] = """
     type: command
-    short-summary: Import data into a Redis cache.
+    short-summary: List Redis Caches.
+    long-summary: Lists details about all caches within current Subscription 
or provided Resource Group.
 """
 
-helps['redis list'] = """
+helps['redis update'] = """
+    type: command
+    short-summary: Update a Redis cache.
+    long-summary: Scale or update settings of a Redis cache.
+"""
+
+helps['redis patch-schedule'] = """
+    type: group
+    short-summary: Manage Redis patch schedules.
+"""
+
+helps['redis patch-schedule create'] = """
     type: command
-    short-summary: List Redis caches.
+    short-summary: Create patching schedule for Redis cache.
+    long-summary: Usage example - az redis patch-schedule create --name 
testCacheName --resource-group testResourceGroup --schedule-entries 
'[{\"dayOfWeek\":\"Tuesday\",\"startHourUtc\":\"00\",\"maintenanceWindow\":\"PT5H\"}]'
 """
 
-helps['redis list-all'] = """
+helps['redis patch-schedule update'] = """
     type: command
-    short-summary: Gets all Redis caches in the specified subscription.
+    short-summary: Update the patching schedule for Redis cache.
+    long-summary: Usage example - az redis patch-schedule update --name 
testCacheName --resource-group testResourceGroup --schedule-entries 
'[{\"dayOfWeek\":\"Tuesday\",\"startHourUtc\":\"00\",\"maintenanceWindow\":\"PT5H\"}]'
+"""
+
+helps['redis firewall-rules'] = """
+    type: group
+    short-summary: Manage Redis firewall rules.
 """
 
-helps['redis update-settings'] = """
+helps['redis firewall-rules create'] = """
     type: command
-    short-summary: Update the settings of a Redis cache.
+    short-summary: Create a redis cache firewall rule.
+    long-summary: Usage example - az redis firewall-rules create --name 
testCacheName --resource-group testResourceGroup  --start-ip 10.10.10.10 
--end-ip 20.20.20.20 --rule-name 10to20
 """
 
-helps['redis update'] = """
+helps['redis firewall-rules update'] = """
     type: command
-    short-summary: Scale or update settings of a Redis cache.
+    short-summary: Update a redis cache firewall rule.
 """
 
-helps['redis patch-schedule'] = """
+helps['redis server-link'] = """
     type: group
-    short-summary: Manage Redis patch schedules.
+    short-summary: Manage Redis server links.
+"""
+
+helps['redis server-link create'] = """
+    type: command
+    short-summary: Adds a server link to the Redis cache (requires Premium 
SKU).
+    long-summary: Usage example - az redis server-link create --name 
testCacheName --resource-group testResourceGroup --cache-to-link 
secondTestCacheName --replication-role Secondary
 """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-redis-0.3.2/azure/cli/command_modules/redis/_params.py 
new/azure-cli-redis-0.4.0/azure/cli/command_modules/redis/_params.py
--- old/azure-cli-redis-0.3.2/azure/cli/command_modules/redis/_params.py        
2018-08-23 01:07:57.000000000 +0200
+++ new/azure-cli-redis-0.4.0/azure/cli/command_modules/redis/_params.py        
2019-02-12 03:05:13.000000000 +0100
@@ -2,44 +2,57 @@
 # Copyright (c) Microsoft Corporation. All rights reserved.
 # Licensed under the MIT License. See License.txt in the project root for 
license information.
 # 
--------------------------------------------------------------------------------------------
+# pylint: disable=line-too-long
 
+from knack.arguments import CLIArgumentType
 import azure.cli.command_modules.redis._help  # pylint: disable=unused-import
 
 
 def load_arguments(self, _):
-    from azure.mgmt.redis.models import RebootType, RedisKeyType, SkuName
+    from azure.mgmt.redis.models import RebootType, RedisKeyType, SkuName, 
TlsVersion, ReplicationRole
     from azure.cli.command_modules.redis._validators import JsonString, 
ScheduleEntryList
-    from azure.cli.core.commands.parameters import get_enum_type  # TODO: Move 
this into Knack
-    from azure.cli.core.commands.parameters import 
get_resource_name_completion_list, name_type, tags_type
+    from azure.cli.command_modules.redis.custom import allowed_c_family_sizes, 
allowed_p_family_sizes
+    from azure.cli.core.commands.parameters import get_enum_type, tags_type, 
zones_type
+    from azure.cli.core.commands.parameters import 
get_resource_name_completion_list
 
     with self.argument_context('redis') as c:
-        c.argument('name', options_list=['--name', '-n'], help='Name of the 
Redis cache.', id_part='name',
-                   
completer=get_resource_name_completion_list('Microsoft.Cache/redis'))
+        cache_name = CLIArgumentType(options_list=['--name', '-n'], help='Name 
of the Redis cache.', id_part='name',
+                                     
completer=get_resource_name_completion_list('Microsoft.Cache/redis'))
+        format_type = CLIArgumentType(options_list=['--file-format'], 
help='Format of the blob (Currently rdb is the only supported format, with 
other formats expected in the future)')
+
+        c.argument('name', arg_type=cache_name)
         c.argument('redis_configuration', help='JSON encoded configuration 
settings. Use @{file} to load from a file.',
                    type=JsonString)
         c.argument('reboot_type', arg_type=get_enum_type(RebootType))
         c.argument('key_type', arg_type=get_enum_type(RedisKeyType))
+        c.argument('files', help='SAS url for blobs that needs to be 
imported', nargs='+')
+        c.argument('format', arg_type=format_type)
+        c.argument('file_format', arg_type=format_type)
+        c.argument('container', help='SAS url for container where data needs 
to be exported to')
+        c.argument('prefix', help='Prefix to use for exported files')
+        c.argument('cache_name', arg_type=cache_name)
+        c.argument('shard_count', type=int, help='The number of shards to be 
created on a Premium Cluster Cache.')
+        c.argument('subnet_id', help='The full resource ID of a subnet in a 
virtual network to deploy the redis cache in. Example format 
/subscriptions/{subid}/resourceGroups/{resourceGroupName}/Microsoft.{Network|ClassicNetwork}/VirtualNetworks/vnet1/subnets/subnet1')
+        c.argument('static_ip', help='Specify a static ip if required for the 
VNET. If you do not specify a static IP then an IP address is chosen 
automatically')
+        c.argument('tenant_settings', arg_type=tags_type, 
help='Space-separated tenant settings in key[=value] format')
+        c.argument('tags', arg_type=tags_type)
+        c.argument('zones', arg_type=zones_type)
         c.argument('shard_id', type=int)
         c.argument('sku', help='Type of Redis cache.', 
arg_type=get_enum_type(SkuName))
-        c.argument('vm_size', help='Size of Redis cache to deploy. Example : 
values for C family (C0, C1, C2, C3, C4, '
-                                   'C5, C6). For P family (P1, P2, P3, P4)')
-        c.argument('enable_non_ssl_port', action='store_true')
-        c.argument('shard_count', type=int)
-        c.argument('tags', tags_type)
-
-    for scope in ['redis import-method', 'redis import']:
-        with self.argument_context(scope) as c:
-            c.argument('files', nargs='+', help='Space-separated list of files 
to import.')
-            c.argument('file_format', help='File format to import.')
-
-    with self.argument_context('redis patch-schedule set') as c:
-        c.argument('schedule_entries', type=ScheduleEntryList)
-
-    with self.argument_context('redis create') as c:
-        c.argument('name', arg_type=name_type, completer=None)
-        c.argument('tenant_settings', type=JsonString)
-
-    with self.argument_context('redis export') as c:
-        c.argument('container', help='Container name to export to.')
-        c.argument('prefix', help='Prefix to use for exported files.')
-        c.argument('file_format', help='File format to export.')
+        c.argument('minimum_tls_version', help='Specifies the TLS version 
required by clients to connect to cache', arg_type=get_enum_type(TlsVersion))
+        c.argument('vm_size', arg_type=get_enum_type(allowed_c_family_sizes + 
allowed_p_family_sizes), help='Size of Redis cache to deploy. Basic and 
Standard Cache sizes start with C. Premium Cache sizes start with P')
+        c.argument('enable_non_ssl_port', action='store_true', help='If the 
value is true, then the non-ssl redis server port (6379) will be enabled.')
+
+    with self.argument_context('redis firewall-rules list') as c:
+        c.argument('cache_name', arg_type=cache_name, id_part=None)
+        c.argument('rule_name', help='Name of the firewall rule')
+
+    with self.argument_context('redis server-link') as c:
+        c.argument('name', arg_type=cache_name, id_part=None)
+        c.argument('server_to_link', help='Resource ID or name of the redis 
cache to be linked')
+        c.argument('replication_role', help='Role of the redis cache to be 
linked', arg_type=get_enum_type(ReplicationRole))
+        c.argument('linked_server_name', help='Name of the linked redis cache')
+
+    with self.argument_context('redis patch-schedule') as c:
+        c.argument('name', arg_type=cache_name, id_part=None)
+        c.argument('schedule_entries', help="List of Patch schedule entries. 
Example 
Value:[{\"dayOfWeek\":\"Monday\",\"startHourUtc\":\"00\",\"maintenanceWindow\":\"PT5H\"}]",
 type=ScheduleEntryList)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-redis-0.3.2/azure/cli/command_modules/redis/commands.py 
new/azure-cli-redis-0.4.0/azure/cli/command_modules/redis/commands.py
--- old/azure-cli-redis-0.3.2/azure/cli/command_modules/redis/commands.py       
2018-08-23 01:07:57.000000000 +0200
+++ new/azure-cli-redis-0.4.0/azure/cli/command_modules/redis/commands.py       
2019-02-12 03:05:13.000000000 +0100
@@ -5,11 +5,11 @@
 
 from azure.cli.core.commands import CliCommandType
 
+# pylint: disable=line-too-long
+from azure.cli.command_modules.redis._client_factory import cf_redis, 
cf_patch_schedules, cf_firewall_rule, cf_linked_server
 
-def load_command_table(self, _):
-    from azure.cli.command_modules.redis._client_factory import cf_redis, 
cf_patch_schedules
-    from azure.cli.command_modules.redis.custom import 
wrong_vmsize_argument_exception_handler
 
+def load_command_table(self, _):
     redis_sdk = CliCommandType(
         
operations_tmpl='azure.mgmt.redis.operations.redis_operations#RedisOperations.{}',
         client_factory=cf_redis)
@@ -18,26 +18,42 @@
         
operations_tmpl='azure.mgmt.redis.operations.patch_schedules_operations#PatchSchedulesOperations.{}',
         client_factory=cf_patch_schedules)
 
+    redis_firewall_rules = CliCommandType(
+        
operations_tmpl='azure.mgmt.redis.operations.firewall_rules_operations#FirewallRulesOperations.{}',
+        client_factory=cf_firewall_rule)
+
+    redis_linked_server = CliCommandType(
+        
operations_tmpl='azure.mgmt.redis.operations.linked_server_operations#LinkedServerOperations.{}',
+        client_factory=cf_linked_server)
+
     with self.command_group('redis', redis_sdk) as g:
-        g.custom_command('create', 'cli_redis_create', client_factory=cf_redis,
-                         
exception_handler=wrong_vmsize_argument_exception_handler)
-        g.command('delete', 'delete')
+        g.custom_command('create', 'cli_redis_create', client_factory=cf_redis)
+        g.command('delete', 'delete', confirmation=True)
         g.custom_command('export', 'cli_redis_export')
         g.command('force-reboot', 'force_reboot')
-        g.custom_command('import-method', 'cli_redis_import_method',
-                         deprecate_info=g.deprecate(redirect='redis import', 
hide='2.0.34'))
-        g.custom_command('import', 'cli_redis_import_method')
-        g.custom_command('list', 'cli_redis_list')
-        g.command('list-all', 'list', 
deprecate_info=g.deprecate(redirect='redis list', hide='2.0.34'))
+        g.command('import-method', 'import_data', 
deprecate_info=g.deprecate(redirect='redis import', hide=True))
+        g.command('import', 'import_data')
+        g.custom_command('list', 'cli_redis_list_cache')
         g.command('list-keys', 'list_keys')
         g.command('regenerate-keys', 'regenerate_key')
-        g.show_command('show', 'get')
-        g.custom_command('update-settings', 'cli_redis_update_settings',
-                         deprecate_info=g.deprecate(redirect='redis update', 
hide='2.0.34'))
-        g.generic_update_command('update', 
exception_handler=wrong_vmsize_argument_exception_handler,
-                                 setter_name='update', 
custom_func_name='cli_redis_update')
+        g.command('show', 'get')
+        g.generic_update_command('update', setter_name='update', 
custom_func_name='cli_redis_update')
 
     with self.command_group('redis patch-schedule', redis_patch) as g:
-        g.command('set', 'create_or_update')
+        g.command('create', 'create_or_update')
+        g.command('update', 'create_or_update')
+        g.command('delete', 'delete')
+        g.command('show', 'get')
+
+    with self.command_group('redis firewall-rules', redis_firewall_rules) as g:
+        g.command('create', 'create_or_update')
+        g.command('update', 'create_or_update')
+        g.command('delete', 'delete')
+        g.command('show', 'get')
+        g.command('list', 'list_by_redis_resource')
+
+    with self.command_group('redis server-link', redis_linked_server) as g:
+        g.custom_command('create', 'cli_redis_create_server_link', 
client_factory=cf_linked_server)
         g.command('delete', 'delete')
-        g.show_command('show', 'get')
+        g.command('show', 'get')
+        g.command('list', 'list')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-redis-0.3.2/azure/cli/command_modules/redis/custom.py 
new/azure-cli-redis-0.4.0/azure/cli/command_modules/redis/custom.py
--- old/azure-cli-redis-0.3.2/azure/cli/command_modules/redis/custom.py 
2018-08-23 01:07:57.000000000 +0200
+++ new/azure-cli-redis-0.4.0/azure/cli/command_modules/redis/custom.py 
2019-02-12 03:05:13.000000000 +0100
@@ -5,68 +5,24 @@
 
 from knack.log import get_logger
 from knack.util import CLIError
-
+from azure.cli.command_modules.redis._client_factory import cf_redis
 
 logger = get_logger(__name__)
 
-
-def wrong_vmsize_argument_exception_handler(ex):
-
-    from msrest.exceptions import ClientException
-    if isinstance(ex, ClientException):
-        if ("The value of the parameter 
'properties.sku.family/properties.sku.capacity' is invalid"
-                in format(ex)) \
-                or ("The value of the parameter 'properties.sku.family' is 
invalid"
-                    in format(ex)):
-            raise CLIError('Invalid VM size. Example for Valid values: '
-                           'For C family (C0, C1, C2, C3, C4, C5, C6), '
-                           'for P family (P1, P2, P3, P4)')
-    raise ex
-
+allowed_c_family_sizes = ['c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6']
+allowed_p_family_sizes = ['p1', 'p2', 'p3', 'p4', 'p5']
+wrong_vmsize_error = CLIError('Invalid VM size. Example for Valid values: '
+                              'For Standard Sku : (C0, C1, C2, C3, C4, C5, 
C6), '
+                              'for Premium Sku : (P1, P2, P3, P4, P5)')
 
 # region Custom Commands
 
+
 # pylint: disable=unused-argument
 def cli_redis_export(cmd, client, resource_group_name, name, prefix, 
container, file_format=None):
     from azure.mgmt.redis.models import ExportRDBParameters
     parameters = ExportRDBParameters(prefix, container, file_format)
-    return client.export(resource_group_name, name, parameters)
-
-
-# pylint: disable=unused-argument
-def cli_redis_import_method(cmd, client, resource_group_name, name, 
file_format, files):
-    from azure.mgmt.redis.models import ImportRDBParameters
-    parameters = ImportRDBParameters(files, file_format)
-    return client.import_method(resource_group_name, name, files, parameters)
-
-
-# pylint: disable=unused-argument
-def cli_redis_list(cmd, client, resource_group_name=None):
-    if resource_group_name:
-        return client.list_by_resource_group(resource_group_name)
-    return client.list()
-
-
-# pylint: disable=unused-argument
-def cli_redis_update_settings(cmd, client, resource_group_name, name, 
redis_configuration):
-    from azure.mgmt.redis.models import RedisUpdateParameters
-
-    existing = client.get(resource_group_name, name)
-    existing.redis_configuration.update(redis_configuration)
-
-    # Due to swagger/mgmt SDK quirkiness, we have to manually copy over
-    # the resource retrieved to a create_parameters object
-    update_params = RedisUpdateParameters(  # pylint: 
disable=too-many-function-args
-        existing.redis_configuration,
-        existing.enable_non_ssl_port,
-        existing.tenant_settings,
-        existing.shard_count,
-        existing.subnet_id,
-        existing.static_ip,
-        existing.sku,
-        existing.tags
-    )
-    return client.update(resource_group_name, name, parameters=update_params)
+    return client.export_data(resource_group_name, name, parameters)
 
 
 # pylint: disable=unused-argument
@@ -79,15 +35,15 @@
         instance.sku.family = vm_size[0]
         instance.sku.capacity = vm_size[1:]
 
-    update_params = RedisUpdateParameters(  # pylint: 
disable=too-many-function-args
-        instance.redis_configuration,
-        instance.enable_non_ssl_port,
-        instance.tenant_settings,
-        instance.shard_count,
-        instance.subnet_id,
-        instance.static_ip,
-        instance.sku,
-        instance.tags
+    # pylint: disable=too-many-function-args
+    update_params = RedisUpdateParameters(
+        redis_configuration=instance.redis_configuration,
+        enable_non_ssl_port=instance.enable_non_ssl_port,
+        tenant_settings=instance.tenant_settings,
+        shard_count=instance.shard_count,
+        minimum_tls_version=instance.minimum_tls_version,
+        sku=instance.sku,
+        tags=instance.tags
     )
     return update_params
 
@@ -96,32 +52,70 @@
 def cli_redis_create(cmd, client,
                      resource_group_name, name, location, sku, vm_size, 
tags=None,
                      redis_configuration=None, enable_non_ssl_port=None, 
tenant_settings=None,
-                     shard_count=None, subnet_id=None, static_ip=None):
+                     shard_count=None, minimum_tls_version=None, 
subnet_id=None, static_ip=None, zones=None):
     # pylint:disable=line-too-long
-    """Create new Redis Cache instance
-    :param resource_group_name: Name of resource group
-    :param name: Name of redis cache
-    :param location: Location
-    :param sku: What type of redis cache to deploy. Valid values: (Basic, 
Standard, Premium).
-    :param vm_size: What size of redis cache to deploy. Valid values for C 
family (C0, C1, C2, C3, C4, C5, C6), for P family (P1, P2, P3, P4)
-    :param redis_configuration: All Redis Settings. Few possible keys 
rdb-backup-enabled, rdb-storage-connection-string, rdb-backup-frequency, 
maxmemory-delta, maxmemory-policy, notify-keyspace-events, maxmemory-samples, 
slowlog-log-slower-than, slowlog-max-len, list-max-ziplist-entries, 
list-max-ziplist-value, hash-max-ziplist-entries, hash-max-ziplist-value, 
set-max-intset-entries, zset-max-ziplist-entries, zset-max-ziplist-value etc.
-    :param enable_non_ssl_port: If the value is true, then the non-ssl redis 
server port (6379) will be enabled.
-    :param tenant_settings: Json dictionary with tenant settings
-    :param shard_count: The number of shards to be created on a Premium 
Cluster Cache.
-    :param subnet_id: The full resource ID of a subnet in a virtual network to 
deploy the redis cache in. Example format 
/subscriptions/{subid}/resourceGroups/{resourceGroupName}/Microsoft.{Network|ClassicNetwork}/VirtualNetworks/vnet1/subnets/subnet1
-    :param static_ip: Required when deploying a redis cache inside an existing 
Azure Virtual Network.
-    """
+    if ((sku.lower() in ['standard', 'basic'] and vm_size.lower() not in 
allowed_c_family_sizes) or (sku.lower() in ['premium'] and vm_size.lower() not 
in allowed_p_family_sizes)):
+        raise wrong_vmsize_error
+    tenant_settings_in_json = {}
+    if tenant_settings is not None:
+        for item in tenant_settings:
+            tenant_settings_in_json.update(get_key_value_pair(item))
     from azure.mgmt.redis.models import RedisCreateParameters, Sku
+    # pylint: disable=too-many-function-args
     params = RedisCreateParameters(
+        sku=Sku(name=sku, family=vm_size[0], capacity=vm_size[1:]),
         location=location,
-        sku=Sku(sku, vm_size[0], vm_size[1:]),
-        tags=tags,
         redis_configuration=redis_configuration,
         enable_non_ssl_port=enable_non_ssl_port,
-        tenant_settings=tenant_settings,
+        tenant_settings=tenant_settings_in_json,
         shard_count=shard_count,
+        minimum_tls_version=minimum_tls_version,
         subnet_id=subnet_id,
-        static_ip=static_ip)
+        static_ip=static_ip,
+        zones=zones,
+        tags=tags)
     return client.create(resource_group_name, name, params)
 
+
+def get_key_value_pair(string):
+    result = {}
+    if string:
+        kvp = string.split('=', 1)
+        result = {kvp[0]: kvp[1]} if len(kvp) > 1 else {string: ''}
+    return result
+
+
+# pylint: disable=unused-argument
+def cli_redis_create_server_link(cmd, client, resource_group_name, name, 
server_to_link, replication_role):
+    redis_client = cf_redis(cmd.cli_ctx)
+    from azure.cli.core.commands.client_factory import get_subscription_id
+    from msrestazure.tools import is_valid_resource_id, resource_id
+    if not is_valid_resource_id(server_to_link):
+        server_to_link = resource_id(
+            subscription=get_subscription_id(cmd.cli_ctx),
+            resource_group=resource_group_name,
+            namespace='Microsoft.Cache', type='Redis',
+            name=server_to_link
+        )
+
+    cache_to_link = get_cache_from_resource_id(redis_client, server_to_link)
+
+    from azure.mgmt.redis.models import RedisLinkedServerCreateParameters
+    params = 
RedisLinkedServerCreateParameters(linked_redis_cache_id=cache_to_link.id,
+                                               
linked_redis_cache_location=cache_to_link.location,
+                                               server_role=replication_role)
+    return client.create(resource_group_name, name, cache_to_link.name, params)
+
+
+def cli_redis_list_cache(client, resource_group_name=None):
+    cache_list = 
client.list_by_resource_group(resource_group_name=resource_group_name) \
+        if resource_group_name else client.list()
+    return list(cache_list)
+
+
+def get_cache_from_resource_id(client, cache_resource_id):
+    from msrestazure.tools import parse_resource_id
+    id_comps = parse_resource_id(cache_resource_id)
+    return client.get(id_comps['resource_group'], id_comps['name'])
+
 # endregion
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-redis-0.3.2/azure_cli_redis.egg-info/PKG-INFO 
new/azure-cli-redis-0.4.0/azure_cli_redis.egg-info/PKG-INFO
--- old/azure-cli-redis-0.3.2/azure_cli_redis.egg-info/PKG-INFO 2018-08-23 
01:09:23.000000000 +0200
+++ new/azure-cli-redis-0.4.0/azure_cli_redis.egg-info/PKG-INFO 2019-02-12 
03:05:30.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: azure-cli-redis
-Version: 0.3.2
+Version: 0.4.0
 Summary: Microsoft Azure Command-Line Tools Redis Command Module
 Home-page: https://github.com/Azure/azure-cli
 Author: Microsoft Corporation
@@ -20,6 +20,16 @@
         Release History
         ===============
         
+        0.4.0
+        ++++++
+        * Added commands for managing firewall-rules (create, update, delete, 
show, list)
+        * Added commands for managing server-link (create, delete, show, list)
+        * Added commands for managing patch-schedule (create, update, delete, 
show)
+        * `az redis create` : Support for Availability Zones and Minimum TLS 
Version
+        * BREAKING CHANGE: Removed 'az redis update-settings' and 'az redis 
list-all' command
+        * BREAKING CHANGE: Parameter for redis create: 'tenant settings' is 
not accepted in key[=value] format
+        * Added warning message for deprecating 'az redis import-method' 
command.
+        
         0.3.2
         +++++
         * Minor fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-redis-0.3.2/azure_cli_redis.egg-info/requires.txt 
new/azure-cli-redis-0.4.0/azure_cli_redis.egg-info/requires.txt
--- old/azure-cli-redis-0.3.2/azure_cli_redis.egg-info/requires.txt     
2018-08-23 01:09:23.000000000 +0200
+++ new/azure-cli-redis-0.4.0/azure_cli_redis.egg-info/requires.txt     
2019-02-12 03:05:30.000000000 +0100
@@ -1,2 +1,2 @@
-azure-mgmt-redis==5.0.0
+azure-mgmt-redis==6.0.0
 azure-cli-core
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure-cli-redis-0.3.2/setup.py 
new/azure-cli-redis-0.4.0/setup.py
--- old/azure-cli-redis-0.3.2/setup.py  2018-08-23 01:07:57.000000000 +0200
+++ new/azure-cli-redis-0.4.0/setup.py  2019-02-12 03:05:13.000000000 +0100
@@ -15,7 +15,7 @@
     logger.warn("Wheel is not available, disabling bdist_wheel hook")
     cmdclass = {}
 
-VERSION = "0.3.2"
+VERSION = "0.4.0"
 # The full list of classifiers is available at
 # https://pypi.python.org/pypi?%3Aaction=list_classifiers
 CLASSIFIERS = [
@@ -33,7 +33,7 @@
 ]
 
 DEPENDENCIES = [
-    'azure-mgmt-redis==5.0.0',
+    'azure-mgmt-redis==6.0.0',
     'azure-cli-core',
 ]
 


Reply via email to