Skip to content

Commit

Permalink
add dynamic dict for whitelist (#471)
Browse files Browse the repository at this point in the history
* add dynamic dict
  • Loading branch information
AllyW committed Sep 9, 2024
1 parent 47f58f6 commit 8b3c669
Show file tree
Hide file tree
Showing 9 changed files with 3,628 additions and 12 deletions.
4 changes: 4 additions & 0 deletions azure-cli-diff-tool/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
Release History
===============
0.0.9
++++++
* Use dynamic metadata whitelist

0.0.8
++++++
* Set `deepDiff` un-breaking version
Expand Down
2 changes: 1 addition & 1 deletion azure-cli-diff-tool/azure_cli_diff_tool/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
extract_module_name_from_meta_file, export_meta_changes_to_csv, export_meta_changes_to_json, \
export_meta_changes_to_dict, expand_deprecate_obj

__VERSION__ = '0.0.8'
__VERSION__ = '0.0.9'

logger = logging.getLogger(__name__)

Expand Down
2 changes: 1 addition & 1 deletion azure-cli-diff-tool/azure_cli_diff_tool/_const.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

META_CHANDE_WHITELIST_FILE = "./data/meta_change_whitelist.txt"
META_CHANDE_WHITELIST_FILE_PATH = f"{script_directory}/{META_CHANDE_WHITELIST_FILE}"

META_CHANDE_WHITELIST_FILE_URL = "https://azcmdchangemgmt.blob.core.windows.net/azure-cli-diff-tool-config/meta_change_whitelist.txt"
DOWNLOAD_THREADS = 30

BREAKING_CHANE_RULE_LINK_URL_PREFIX = "https://github.com/Azure/azure-cli/blob/dev/doc/breaking_change_rules/"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
1010 ams asset get-sas-urls expiry_time default
1010 mariadb server create administrator_login default
1010 mysql flexible-server create administrator_login default
1010 mysql flexible-server restore restore_point_in_time default
1010 mysql flexible-server import create administrator_login default
1010 mysql flexible-server maintenance reschedule maintenance_start_time default
1010 mysql server create administrator_login default
1010 postgres flexible-server create administrator_login default
1010 postgres flexible-server restore restore_point_in_time default
1010 mysql server create administrator_login default
1010 postgres server create administrator_login default
1010 mariadb server create administrator_login default
1010 postgres server create administrator_login default
22 changes: 17 additions & 5 deletions azure-cli-diff-tool/azure_cli_diff_tool/meta_change_detect.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
# -----------------------------------------------------------------------------

import logging
import requests
import os.path

from .utils import get_command_tree, ChangeType, extract_cmd_name, extract_subgroup_name, extract_subgroup_property, \
Expand All @@ -22,6 +23,7 @@
PARA_PROPERTY_ADD_BREAK_LIST, PARA_PROPERTY_ADD_WARN_LIST,
PARA_PROPERTY_UPDATE_BREAK_LIST, PARA_PROPERTY_UPDATE_WARN_LIST,
CMD_REMOVE_SUFFIX_WARN_LIST,
META_CHANDE_WHITELIST_FILE_URL,
META_CHANDE_WHITELIST_FILE_PATH)

logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -53,14 +55,24 @@ def __init__(self, deep_diff=None, base_meta=None, diff_meta=None):
self.__get_meta_change_whitelist__()

def __get_meta_change_whitelist__(self):
if not os.path.exists(META_CHANDE_WHITELIST_FILE_PATH):
logger.info("meta_change_whitelist.txt not exist, skipped")
return
with open(META_CHANDE_WHITELIST_FILE_PATH, "r") as f_in:
for line in f_in:
remote_res = requests.get(META_CHANDE_WHITELIST_FILE_URL)
if remote_res.status_code != 200:
logger.warning("remote meta change whitelist fetch error, use local dict")
if not os.path.exists(META_CHANDE_WHITELIST_FILE_PATH):
logger.info("meta_change_whitelist.txt not exist, skipped")
return
with open(META_CHANDE_WHITELIST_FILE_PATH, "r") as f_in:
for line in f_in:
white_key = line.rstrip()
self.meta_change_whitelist.add(white_key)
else:
logger.info("remote meta change whitelist fetch success")
content = remote_res.text
for line in content.split("\n"):
white_key = line.rstrip()
self.meta_change_whitelist.add(white_key)


@staticmethod
def __search_cmd_obj(cmd_name, search_meta):
command_tree = get_command_tree(cmd_name)
Expand Down
2 changes: 1 addition & 1 deletion azure-cli-diff-tool/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
author_email='[email protected]',
packages=find_packages(),
include_package_data=True,
install_requires=["deepdiff==6.3.0", "requests"],
install_requires=["deepdiff==6.3.0", "requests~=2.32.3"],
package_data={
"azure_cli_diff_tool": ["data/*"]
}
Expand Down
Loading

0 comments on commit 8b3c669

Please sign in to comment.