Hello community,

here is the log from the commit of package azure-cli-advisor for 
openSUSE:Factory checked in at 2018-05-13 16:01:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/azure-cli-advisor (Old)
 and      /work/SRC/openSUSE:Factory/.azure-cli-advisor.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "azure-cli-advisor"

Sun May 13 16:01:05 2018 rev:2 rq:600031 version:0.5.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/azure-cli-advisor/azure-cli-advisor.changes      
2018-02-14 09:33:23.423635406 +0100
+++ /work/SRC/openSUSE:Factory/.azure-cli-advisor.new/azure-cli-advisor.changes 
2018-05-13 16:01:05.771019812 +0200
@@ -1,0 +2,10 @@
+Tue Apr 17 13:35:21 UTC 2018 - adrian.glaub...@suse.com
+
+- New upstream release
+  + Version 0.5.1
+  + For detailed information about changes see the
+    HISTORY.rst file provided with this package
+- Move LICENSE.txt from %doc to %license section
+- Update Requires from setup.py
+
+-------------------------------------------------------------------

Old:
----
  azure-cli-advisor-0.1.1.tar.gz

New:
----
  azure-cli-advisor-0.5.1.tar.gz

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

Other differences:
------------------
++++++ azure-cli-advisor.spec ++++++
--- /var/tmp/diff_new_pack.lyMFLt/_old  2018-05-13 16:01:06.610989165 +0200
+++ /var/tmp/diff_new_pack.lyMFLt/_new  2018-05-13 16:01:06.614989020 +0200
@@ -15,8 +15,9 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
+
 Name:           azure-cli-advisor
-Version:        0.1.1
+Version:        0.5.1
 Release:        0
 Summary:        Microsoft Azure CLI 'advisor' Command Module
 License:        MIT
@@ -24,16 +25,17 @@
 Url:            https://github.com/Azure/azure-cli
 Source:         
https://files.pythonhosted.org/packages/source/a/azure-cli-advisor/azure-cli-advisor-%{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-advisor >= 1.0.1
 Requires:       python3-azure-nspkg
-Requires:       azure-cli-core
 Conflicts:      azure-cli < 2.0.0
 
 BuildArch:      noarch
@@ -62,7 +64,9 @@
 
 %files
 %defattr(-,root,root,-)
-%doc HISTORY.rst LICENSE.txt README.rst
+%doc HISTORY.rst README.rst
+%license LICENSE.txt
 %{python3_sitelib}/azure/cli/command_modules/advisor
 %{python3_sitelib}/azure_cli_advisor-*.egg-info
+
 %changelog

++++++ azure-cli-advisor-0.1.1.tar.gz -> azure-cli-advisor-0.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure-cli-advisor-0.1.1/HISTORY.rst 
new/azure-cli-advisor-0.5.1/HISTORY.rst
--- old/azure-cli-advisor-0.1.1/HISTORY.rst     2018-01-05 22:11:35.000000000 
+0100
+++ new/azure-cli-advisor-0.5.1/HISTORY.rst     2018-04-06 19:33:13.000000000 
+0200
@@ -3,6 +3,24 @@
 Release History
 ===============
 
+0.5.1
++++++
+
+* `sdist` is now compatible with wheel 0.31.0
+
+0.5.0
+++++++
+* BC: `advisor configuration get` has been renamed to `advisor configuration 
list`.
+* BC: `advisor configuration set` has been renamed to `advisor configuration 
update`.
+* BC: `advisor recommendation generate` has been removed.
+* `advisor recommendation list` has a new --refresh parameter.
+* `advisor recommendation show` has been added.
+* Support Autorest 3.0 based SDKs
+
+0.1.2
++++++
+* Minor fixes.
+
 0.1.1
 ++++++
 * Update for CLI core changes.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure-cli-advisor-0.1.1/PKG-INFO 
new/azure-cli-advisor-0.5.1/PKG-INFO
--- old/azure-cli-advisor-0.1.1/PKG-INFO        2018-01-05 22:12:02.000000000 
+0100
+++ new/azure-cli-advisor-0.5.1/PKG-INFO        2018-04-06 19:33:43.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: azure-cli-advisor
-Version: 0.1.1
+Version: 0.5.1
 Summary: Microsoft Azure Command-Line Tools Advisor Command Module
 Home-page: https://github.com/Azure/azure-cli
 Author: Microsoft Corporation
@@ -19,6 +19,24 @@
         Release History
         ===============
         
+        0.5.1
+        +++++
+        
+        * `sdist` is now compatible with wheel 0.31.0
+        
+        0.5.0
+        ++++++
+        * BC: `advisor configuration get` has been renamed to `advisor 
configuration list`.
+        * BC: `advisor configuration set` has been renamed to `advisor 
configuration update`.
+        * BC: `advisor recommendation generate` has been removed.
+        * `advisor recommendation list` has a new --refresh parameter.
+        * `advisor recommendation show` has been added.
+        * Support Autorest 3.0 based SDKs
+        
+        0.1.2
+        +++++
+        * Minor fixes.
+        
         0.1.1
         ++++++
         * Update for CLI core changes.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/_client_factory.py
 
new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/_client_factory.py
--- 
old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/_client_factory.py
    2018-01-05 22:11:35.000000000 +0100
+++ 
new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/_client_factory.py
    2018-04-06 19:33:13.000000000 +0200
@@ -10,17 +10,17 @@
     return get_mgmt_service_client(cli_ctx, AdvisorManagementClient)
 
 
-def advisor_mgmt_client_factory(cli_ctx, kwargs):
-    return cf_advisor(cli_ctx, **kwargs)
+def advisor_mgmt_client_factory(cli_ctx, _):
+    return cf_advisor(cli_ctx)
 
 
-def recommendations_mgmt_client_factory(cli_ctx, kwargs):
-    return cf_advisor(cli_ctx, **kwargs).recommendations
+def recommendations_mgmt_client_factory(cli_ctx, _):
+    return cf_advisor(cli_ctx).recommendations
 
 
-def suppressions_mgmt_client_factory(cli_ctx, kwargs):
-    return cf_advisor(cli_ctx, **kwargs).suppressions
+def suppressions_mgmt_client_factory(cli_ctx, _):
+    return cf_advisor(cli_ctx).suppressions
 
 
-def configurations_mgmt_client_factory(cli_ctx, kwargs):
-    return cf_advisor(cli_ctx, **kwargs).configurations
+def configurations_mgmt_client_factory(cli_ctx, _):
+    return cf_advisor(cli_ctx).configurations
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/_help.py 
new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/_help.py
--- old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/_help.py      
2018-01-05 22:11:35.000000000 +0100
+++ new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/_help.py      
2018-04-06 19:33:13.000000000 +0200
@@ -7,7 +7,7 @@
 
 helps['advisor'] = """
     type: group
-    short-summary: (PREVIEW) Manage Azure Advisor.
+    short-summary: Manage Azure Advisor.
 """
 
 helps['advisor configuration'] = """
@@ -20,19 +20,26 @@
     short-summary: Review Azure Advisor recommendations.
 """
 
-helps['advisor configuration get'] = """
+helps['advisor configuration list'] = """
     type: command
-    short-summary: Get Azure Advisor configuration.
+    short-summary: List Azure Advisor configuration for the entire 
subscription.
 """
 
-helps['advisor configuration set'] = """
+helps['advisor configuration show'] = """
     type: command
-    short-summary: Set Azure Advisor configuration.
+    short-summary: Show Azure Advisor configuration for the given subscription 
or resource group.
 """
 
-helps['advisor recommendation generate'] = """
+helps['advisor configuration update'] = """
     type: command
-    short-summary: Generate Azure Advisor recommendations.
+    short-summary: Update Azure Advisor configuration.
+    examples:
+        - name: Update low CPU threshold for a given subscription to 20%.
+          text: >
+            az advisor configuration update -l 20
+        - name: Exclude a given resource group from recommendation generation.
+          text: >
+            az advisor configuration update -g myRG -e
 """
 
 helps['advisor recommendation list'] = """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/_params.py 
new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/_params.py
--- old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/_params.py    
2018-01-05 22:11:35.000000000 +0100
+++ new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/_params.py    
2018-04-06 19:33:13.000000000 +0200
@@ -5,32 +5,49 @@
 
 from knack.arguments import CLIArgumentType
 
-from azure.cli.core.commands.parameters import get_enum_type
-
-from ._validators import validate_include_or_exclude, 
validate_ids_or_resource_group
+from azure.cli.core.commands.parameters import \
+    (get_enum_type,
+     get_resource_name_completion_list)
+
+from ._validators import \
+    (validate_include_or_exclude,
+     validate_ids_or_names,
+     validate_ids_or_resource_group,
+     validate_threshold_or_resource_group)
 
 
 def load_arguments(self, _):
     ids_arg_type = CLIArgumentType(nargs='+', options_list=['--ids'],
-                                   help='One or more resource IDs (space 
delimited). If provided, no other '
+                                   help='One or more resource IDs 
(space-delimited). If provided, no other '
                                         '"Resource Id" arguments should be 
specified.')
 
+    name_arg_type = CLIArgumentType(options_list=['--name', '-n'],
+                                    help='The name of the recommendation as 
output by the list command.',
+                                    
completer=get_resource_name_completion_list('Microsoft.Advisor/recommendations'))
+
     with self.argument_context('advisor recommendation list') as c:
         c.argument('ids', ids_arg_type, 
validator=validate_ids_or_resource_group)
         c.argument('category', options_list=['--category', '-c'], help='Name 
of recommendation category.',
                    arg_type=get_enum_type(['Cost', 'HighAvailability', 
'Performance', 'Security']))
+        c.argument('refresh', options_list=['--refresh', '-r'], 
action='store_true',
+                   help='Generate new recommendations.')
 
     with self.argument_context('advisor recommendation disable') as c:
-        c.argument('ids', ids_arg_type)
+        c.argument('ids', ids_arg_type, arg_group="Resource Id", 
validator=validate_ids_or_names)
+        c.argument('recommendation_name', name_arg_type, arg_group="Resource 
Id")
+        c.argument('resource_group_name', arg_group="Resource Id")
         c.argument('days', options_list=['--days', '-d'], type=int,
                    help='Number of days to disable. If not specified, the 
recommendation is disabled forever.')
 
     with self.argument_context('advisor recommendation enable') as c:
-        c.argument('ids', ids_arg_type)
+        c.argument('ids', ids_arg_type, arg_group="Resource Id", 
validator=validate_ids_or_names)
+        c.argument('resource_group_name', arg_group="Resource Id")
+        c.argument('recommendation_name', name_arg_type, arg_group="Resource 
Id")
 
-    with self.argument_context('advisor configuration set') as c:
+    with self.argument_context('advisor configuration update') as c:
         c.argument('low_cpu_threshold', options_list=['--low-cpu-threshold', 
'-l'],
-                   help='Value for low CPU threshold.', 
arg_type=get_enum_type(['5', '10', '15', '20']))
+                   help='Value for low CPU threshold.', 
arg_type=get_enum_type(['5', '10', '15', '20']),
+                   validator=validate_threshold_or_resource_group)
         c.argument('exclude', options_list=['--exclude', '-e'], 
action='store_true',
                    help='Exclude from recommendation generation.')
         c.argument('include', options_list=['--include', '-i'], 
action='store_true',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/_validators.py 
new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/_validators.py
--- 
old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/_validators.py    
    2018-01-05 22:11:35.000000000 +0100
+++ 
new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/_validators.py    
    2018-04-06 19:33:13.000000000 +0200
@@ -11,6 +11,16 @@
         raise CLIError('usage error: --include | --exclude')
 
 
+def validate_ids_or_names(namespace):
+    if namespace.ids and (namespace.recommendation_name or 
namespace.resource_group_name):
+        raise CLIError('usage error: --ids | --name [--resource-group]')
+
+
 def validate_ids_or_resource_group(namespace):
     if namespace.ids and namespace.resource_group_name:
         raise CLIError('usage error: --ids | --resource-group')
+
+
+def validate_threshold_or_resource_group(namespace):
+    if namespace.low_cpu_threshold and namespace.resource_group_name:
+        raise CLIError('usage error: --low-cpu-threshold | --resource-group')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/commands.py 
new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/commands.py
--- old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/commands.py   
2018-01-05 22:11:35.000000000 +0100
+++ new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/commands.py   
2018-04-06 19:33:13.000000000 +0200
@@ -6,21 +6,28 @@
 from azure.cli.command_modules.advisor._client_factory import \
     (advisor_mgmt_client_factory,
      recommendations_mgmt_client_factory,
-     suppressions_mgmt_client_factory,
      configurations_mgmt_client_factory)
 
 
 def load_command_table(self, _):
+    from azure.cli.core.commands import CliCommandType
+    advisor_custom = 
CliCommandType(operations_tmpl='azure.cli.command_modules.advisor.custom#{}')
+
     with self.command_group('advisor recommendation') as g:
-        g.custom_command('generate', 'cli_advisor_generate_recommendations',
-                         client_factory=recommendations_mgmt_client_factory)
-        g.custom_command('list', 'cli_advisor_list_recommendations',
+        g.custom_command('list', 'list_recommendations',
                          client_factory=recommendations_mgmt_client_factory)
-        g.custom_command('disable', 'cli_advisor_disable_recommendations',
-                         client_factory=suppressions_mgmt_client_factory)
-        g.custom_command('enable', 'cli_advisor_enable_recommendations',
+        g.custom_command('disable', 'disable_recommendations',
+                         client_factory=advisor_mgmt_client_factory)
+        g.custom_command('enable', 'enable_recommendations',
                          client_factory=advisor_mgmt_client_factory)
 
     with self.command_group('advisor configuration', 
client_factory=configurations_mgmt_client_factory) as g:
-        g.custom_command('get', 'cli_advisor_get_configurations')
-        g.custom_command('set', 'cli_advisor_set_configurations')
+        g.custom_command('list', 'list_configuration')
+        g.custom_command('show', 'show_configuration')
+        g.generic_update_command('update',
+                                 getter_name='show_configuration',
+                                 getter_type=advisor_custom,
+                                 setter_name='_set_configuration',
+                                 setter_type=advisor_custom,
+                                 custom_func_name='update_configuration',
+                                 custom_func_type=advisor_custom)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/custom.py 
new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/custom.py
--- old/azure-cli-advisor-0.1.1/azure/cli/command_modules/advisor/custom.py     
2018-01-05 22:11:35.000000000 +0100
+++ new/azure-cli-advisor-0.5.1/azure/cli/command_modules/advisor/custom.py     
2018-04-06 19:33:13.000000000 +0200
@@ -4,103 +4,94 @@
 # 
--------------------------------------------------------------------------------------------
 
 import uuid
+from azure.cli.core.util import sdk_no_wait
 
-from msrestazure.azure_exceptions import CloudError
 
-from azure.mgmt.advisor.models import ConfigData, ConfigDataProperties
-
-
-def cli_advisor_generate_recommendations(client):
-    response = client.generate(raw=True)
-    location = response.headers['Location']
-    operation_id = parse_operation_id(location)
-
-    try:
-        client.get_generate_status(operation_id=operation_id)
-    except CloudError as ex:
-        # Advisor API returns 204 which is not aligned with ARM guidelines
-        # so the SDK will throw an exception that we will have to ignore
-        if ex.status_code != 204:
-            raise ex
-
-
-def cli_advisor_list_recommendations(client, ids=None, 
resource_group_name=None, category=None):
-    scope = build_filter_string(ids, resource_group_name, category)
+def list_recommendations(client, ids=None, resource_group_name=None,
+                         category=None, refresh=None):
+    if refresh:
+        _generate_recommendations(client)
+    scope = _build_filter_string(ids, resource_group_name, category)
     return client.list(scope)
 
 
-def cli_advisor_disable_recommendations(client, ids, days=None):
-    suppressions = []
-    suppressionName = str(uuid.uuid4())
-    for id_arg in ids:
-        result = parse_recommendation_uri(id_arg)
-        resourceUri = result['resourceUri']
-        recommendationId = result['recommendationId']
+def disable_recommendations(client, ids=None, recommendation_name=None,
+                            resource_group_name=None, days=None):
+    recs = _get_recommendations(
+        client=client.recommendations,
+        ids=ids,
+        resource_group_name=resource_group_name,
+        recommendation_name=recommendation_name)
+
+    for rec in recs:
+        suppression_name = str(uuid.uuid4())
         ttl = '{}:00:00:00'.format(days) if days else ''
-        client.create(
-            resource_uri=resourceUri,
-            recommendation_id=recommendationId,
-            name=suppressionName,
+
+        result = _parse_recommendation_uri(rec.id)
+        resource_uri = result['resource_uri']
+        recommendation_id = result['recommendation_id']
+
+        sup = client.suppressions.create(
+            resource_uri=resource_uri,
+            recommendation_id=recommendation_id,
+            name=suppression_name,
             ttl=ttl
         )
-        suppressions.append(client.get(
-            resource_uri=resourceUri,
-            recommendation_id=recommendationId,
-            name=suppressionName
-        ))
-    return suppressions
-
-
-def cli_advisor_enable_recommendations(client, ids):
-    enabledRecs = []
-    allSups = list(client.suppressions.list())
-    for id_arg in ids:
-        result = parse_recommendation_uri(id_arg)
-        resourceUri = result['resourceUri']
-        recommendationId = result['recommendationId']
-        recs = cli_advisor_list_recommendations(
-            client=client.recommendations,
-            ids=[resourceUri]
-        )
-        rec = next(x for x in recs if x.name == recommendationId)
-        matches = [x for x in allSups if x.suppression_id in 
rec.suppression_ids]
-        for match in matches:
-            client.suppressions.delete(
-                resource_uri=resourceUri,
-                recommendation_id=recommendationId,
-                name=match.name
-            )
+
+        if rec.suppression_ids:
+            rec.suppression_ids.append(sup.suppression_id)
+        else:
+            rec.suppression_ids = [sup.suppression_id]
+
+    return recs
+
+
+def enable_recommendations(client, ids=None, resource_group_name=None, 
recommendation_name=None):
+    recs = _get_recommendations(
+        client=client.recommendations,
+        ids=ids,
+        resource_group_name=resource_group_name,
+        recommendation_name=recommendation_name)
+    all_sups = list(client.suppressions.list())
+
+    for rec in recs:
+        for sup in all_sups:
+            if sup.suppression_id in rec.suppression_ids:
+                result = _parse_recommendation_uri(rec.id)
+                client.suppressions.delete(
+                    resource_uri=result['resource_uri'],
+                    recommendation_id=result['recommendation_id'],
+                    name=sup.name)
         rec.suppression_ids = None
-        enabledRecs.append(rec)
-    return enabledRecs
 
+    return recs
 
-def cli_advisor_get_configurations(client, resource_group_name=None):
-    if resource_group_name:
-        return client.list_by_resource_group(resource_group_name)
+
+def list_configuration(client):
     return client.list_by_subscription()
 
 
-def cli_advisor_set_configurations(client, resource_group_name=None,
-                                   low_cpu_threshold=None, exclude=None, 
include=None):
+def show_configuration(client, resource_group_name=None):
+    output = None
+    if resource_group_name:
+        output = client.list_by_resource_group(resource_group_name)
+    else:
+        output = client.list_by_subscription()
+    # the list is guaranteed to have one element
+    return list(output)[0]
 
-    cfg = ConfigData()
-    cfg.properties = ConfigDataProperties()
 
-    cfg.properties.low_cpu_threshold = low_cpu_threshold
-    cfg.properties.exclude = exclude
+def update_configuration(instance, low_cpu_threshold=None,
+                         exclude=None, include=None):
+    instance.properties.low_cpu_threshold = low_cpu_threshold
+    instance.properties.exclude = exclude
     if include:
-        cfg.properties.exclude = False
-
-    if resource_group_name:
-        return client.create_in_resource_group(
-            config_contract=cfg,
-            resource_group=resource_group_name)
+        instance.properties.exclude = False
 
-    return client.create_in_subscription(cfg)
+    return instance
 
 
-def build_filter_string(ids=None, resource_group_name=None, category=None):
+def _build_filter_string(ids=None, resource_group_name=None, category=None):
 
     idFilter = None
     if ids:
@@ -120,7 +111,7 @@
     return None
 
 
-def parse_operation_id(location):
+def _parse_operation_id(location):
     # extract the operation ID from the Location header
     # it is a GUID (i.e. a string of length 36) immediately preceding the 
api-version query parameter
     end = location.find('?api-version')
@@ -129,7 +120,53 @@
     return operation_id
 
 
-def parse_recommendation_uri(recommendationUri):
-    resourceUri = 
recommendationUri[:recommendationUri.find("/providers/Microsoft.Advisor/recommendations")]
-    recommendationId = 
recommendationUri[recommendationUri.find("/recommendations/") + 
len('/recommendations/'):]
-    return {'resourceUri': resourceUri, 'recommendationId': recommendationId}
+def _parse_recommendation_uri(recommendation_uri):
+    resource_uri = 
recommendation_uri[:recommendation_uri.find("/providers/Microsoft.Advisor/recommendations")]
+    rStart = recommendation_uri.find("/recommendations/") + 
len('/recommendations/')
+    # recommendation ID is a GUID (i.e. a string of length 36)
+    rEnd = rStart + 36
+    recommendation_id = recommendation_uri[rStart:rEnd]
+    return {'resource_uri': resource_uri, 'recommendation_id': 
recommendation_id}
+
+
+def _generate_recommendations(client):
+    from msrestazure.azure_exceptions import CloudError
+
+    response = sdk_no_wait(True, client.generate)
+    location = response.headers['Location']
+    operation_id = _parse_operation_id(location)
+
+    try:
+        client.get_generate_status(operation_id=operation_id)
+    except CloudError as ex:
+        # Advisor API returns 204 which is not aligned with ARM guidelines
+        # so the SDK will throw an exception that we will have to ignore
+        if ex.status_code != 204:
+            raise ex
+
+
+def _set_configuration(client, resource_group_name=None, parameters=None):
+    if resource_group_name:
+        return client.create_in_resource_group(
+            config_contract=parameters,
+            resource_group=resource_group_name)
+
+    return client.create_in_subscription(parameters)
+
+
+def _get_recommendations(client, ids=None, resource_group_name=None, 
recommendation_name=None):
+    if ids:
+        resource_ids = [_parse_recommendation_uri(id_arg)['resource_uri'] for 
id_arg in ids]
+        recs = list_recommendations(
+            client=client,
+            ids=resource_ids
+        )
+        return [r for r in recs if r.id in ids]
+
+    if recommendation_name:
+        recs = list_recommendations(
+            client=client,
+            resource_group_name=resource_group_name)
+        return [r for r in recs if r.name == recommendation_name]
+
+    return None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-advisor-0.1.1/azure_cli_advisor.egg-info/PKG-INFO 
new/azure-cli-advisor-0.5.1/azure_cli_advisor.egg-info/PKG-INFO
--- old/azure-cli-advisor-0.1.1/azure_cli_advisor.egg-info/PKG-INFO     
2018-01-05 22:12:02.000000000 +0100
+++ new/azure-cli-advisor-0.5.1/azure_cli_advisor.egg-info/PKG-INFO     
2018-04-06 19:33:43.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: azure-cli-advisor
-Version: 0.1.1
+Version: 0.5.1
 Summary: Microsoft Azure Command-Line Tools Advisor Command Module
 Home-page: https://github.com/Azure/azure-cli
 Author: Microsoft Corporation
@@ -19,6 +19,24 @@
         Release History
         ===============
         
+        0.5.1
+        +++++
+        
+        * `sdist` is now compatible with wheel 0.31.0
+        
+        0.5.0
+        ++++++
+        * BC: `advisor configuration get` has been renamed to `advisor 
configuration list`.
+        * BC: `advisor configuration set` has been renamed to `advisor 
configuration update`.
+        * BC: `advisor recommendation generate` has been removed.
+        * `advisor recommendation list` has a new --refresh parameter.
+        * `advisor recommendation show` has been added.
+        * Support Autorest 3.0 based SDKs
+        
+        0.1.2
+        +++++
+        * Minor fixes.
+        
         0.1.1
         ++++++
         * Update for CLI core changes.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-advisor-0.1.1/azure_cli_advisor.egg-info/requires.txt 
new/azure-cli-advisor-0.5.1/azure_cli_advisor.egg-info/requires.txt
--- old/azure-cli-advisor-0.1.1/azure_cli_advisor.egg-info/requires.txt 
2018-01-05 22:12:02.000000000 +0100
+++ new/azure-cli-advisor-0.5.1/azure_cli_advisor.egg-info/requires.txt 
2018-04-06 19:33:43.000000000 +0200
@@ -1,2 +1,2 @@
 azure-cli-core
-azure-mgmt-advisor==0.1.0
+azure-mgmt-advisor==1.0.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure-cli-advisor-0.1.1/setup.py 
new/azure-cli-advisor-0.5.1/setup.py
--- old/azure-cli-advisor-0.1.1/setup.py        2018-01-05 22:11:35.000000000 
+0100
+++ new/azure-cli-advisor-0.5.1/setup.py        2018-04-06 19:33:13.000000000 
+0200
@@ -14,7 +14,7 @@
     logger.warn("Wheel is not available, disabling bdist_wheel hook")
     cmdclass = {}
 
-VERSION = "0.1.1"
+VERSION = "0.5.1"
 
 # The full list of classifiers is available at
 # https://pypi.python.org/pypi?%3Aaction=list_classifiers
@@ -33,7 +33,7 @@
 
 DEPENDENCIES = [
     'azure-cli-core',
-    'azure-mgmt-advisor==0.1.0'
+    'azure-mgmt-advisor==1.0.1'
 ]
 
 with open('README.rst', 'r', encoding='utf-8') as f:


Reply via email to