Skip to content

Commit

Permalink
[Advisor] Fix #11070: Fix az advisor recommendation disable NoneTyp…
Browse files Browse the repository at this point in the history
…e error (#23260)
  • Loading branch information
RakeshMohanMSFT committed Jul 28, 2022
1 parent 472a2a1 commit 13efdce
Showing 1 changed file with 36 additions and 29 deletions.
65 changes: 36 additions & 29 deletions src/azure-cli/azure/cli/command_modules/advisor/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,37 +17,50 @@ def list_recommendations(client, ids=None, resource_group_name=None,

def disable_recommendations(client, ids=None, recommendation_name=None,
resource_group_name=None, days=None):
if recommendation_name is None and ids is None:
from knack.prompting import prompt_y_n

if not prompt_y_n("\nAre you sure you want to disabled all recommendations?"):
return 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 ''

result = _parse_recommendation_uri(rec.id)
resource_uri = result['resource_uri']
recommendation_id = result['recommendation_id']
suppression_contract = SuppressionContract(ttl=ttl)

sup = client.suppressions.create(
resource_uri=resource_uri,
recommendation_id=recommendation_id,
name=suppression_name,
suppression_contract=suppression_contract
)

if rec.suppression_ids:
rec.suppression_ids.append(sup.suppression_id)
else:
rec.suppression_ids = [sup.suppression_id]
if recs is not None:
for rec in recs:
suppression_name = str(uuid.uuid4())
ttl = '{}:00:00:00'.format(days) if days else ''

result = _parse_recommendation_uri(rec.id)
resource_uri = result['resource_uri']
recommendation_id = result['recommendation_id']
suppression_contract = SuppressionContract(ttl=ttl)

sup = client.suppressions.create(
resource_uri=resource_uri,
recommendation_id=recommendation_id,
name=suppression_name,
suppression_contract=suppression_contract
)

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):
if recommendation_name is None and ids is None:
from knack.prompting import prompt_y_n

if not prompt_y_n("\nAre you sure you want to enable all recommendation?"):
return None

recs = _get_recommendations(
client=client.recommendations,
ids=ids,
Expand Down Expand Up @@ -167,16 +180,10 @@ def _set_configuration(client, resource_group_name=None, parameters=None, config
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
)
recs = list_recommendations(client=client, ids=resource_ids)
return [r for r in recs if r.id in ids]

recs = list_recommendations(client=client, resource_group_name=resource_group_name)
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
return recs

0 comments on commit 13efdce

Please sign in to comment.