Skip to content

Commit 8b3c669

Browse files
authored
add dynamic dict for whitelist (#471)
* add dynamic dict
1 parent 47f58f6 commit 8b3c669

9 files changed

Lines changed: 3628 additions & 12 deletions

File tree

azure-cli-diff-tool/HISTORY.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
33
Release History
44
===============
5+
0.0.9
6+
++++++
7+
* Use dynamic metadata whitelist
8+
59
0.0.8
610
++++++
711
* Set `deepDiff` un-breaking version

azure-cli-diff-tool/azure_cli_diff_tool/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
extract_module_name_from_meta_file, export_meta_changes_to_csv, export_meta_changes_to_json, \
1919
export_meta_changes_to_dict, expand_deprecate_obj
2020

21-
__VERSION__ = '0.0.8'
21+
__VERSION__ = '0.0.9'
2222

2323
logger = logging.getLogger(__name__)
2424

azure-cli-diff-tool/azure_cli_diff_tool/_const.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
META_CHANDE_WHITELIST_FILE = "./data/meta_change_whitelist.txt"
1313
META_CHANDE_WHITELIST_FILE_PATH = f"{script_directory}/{META_CHANDE_WHITELIST_FILE}"
14-
14+
META_CHANDE_WHITELIST_FILE_URL = "https://azcmdchangemgmt.blob.core.windows.net/azure-cli-diff-tool-config/meta_change_whitelist.txt"
1515
DOWNLOAD_THREADS = 30
1616

1717
BREAKING_CHANE_RULE_LINK_URL_PREFIX = "https://github.com/Azure/azure-cli/blob/dev/doc/breaking_change_rules/"
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
1010 ams asset get-sas-urls expiry_time default
2+
1010 mariadb server create administrator_login default
23
1010 mysql flexible-server create administrator_login default
34
1010 mysql flexible-server restore restore_point_in_time default
45
1010 mysql flexible-server import create administrator_login default
6+
1010 mysql flexible-server maintenance reschedule maintenance_start_time default
7+
1010 mysql server create administrator_login default
58
1010 postgres flexible-server create administrator_login default
69
1010 postgres flexible-server restore restore_point_in_time default
7-
1010 mysql server create administrator_login default
8-
1010 postgres server create administrator_login default
9-
1010 mariadb server create administrator_login default
10+
1010 postgres server create administrator_login default

azure-cli-diff-tool/azure_cli_diff_tool/meta_change_detect.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# -----------------------------------------------------------------------------
66

77
import logging
8+
import requests
89
import os.path
910

1011
from .utils import get_command_tree, ChangeType, extract_cmd_name, extract_subgroup_name, extract_subgroup_property, \
@@ -22,6 +23,7 @@
2223
PARA_PROPERTY_ADD_BREAK_LIST, PARA_PROPERTY_ADD_WARN_LIST,
2324
PARA_PROPERTY_UPDATE_BREAK_LIST, PARA_PROPERTY_UPDATE_WARN_LIST,
2425
CMD_REMOVE_SUFFIX_WARN_LIST,
26+
META_CHANDE_WHITELIST_FILE_URL,
2527
META_CHANDE_WHITELIST_FILE_PATH)
2628

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

5557
def __get_meta_change_whitelist__(self):
56-
if not os.path.exists(META_CHANDE_WHITELIST_FILE_PATH):
57-
logger.info("meta_change_whitelist.txt not exist, skipped")
58-
return
59-
with open(META_CHANDE_WHITELIST_FILE_PATH, "r") as f_in:
60-
for line in f_in:
58+
remote_res = requests.get(META_CHANDE_WHITELIST_FILE_URL)
59+
if remote_res.status_code != 200:
60+
logger.warning("remote meta change whitelist fetch error, use local dict")
61+
if not os.path.exists(META_CHANDE_WHITELIST_FILE_PATH):
62+
logger.info("meta_change_whitelist.txt not exist, skipped")
63+
return
64+
with open(META_CHANDE_WHITELIST_FILE_PATH, "r") as f_in:
65+
for line in f_in:
66+
white_key = line.rstrip()
67+
self.meta_change_whitelist.add(white_key)
68+
else:
69+
logger.info("remote meta change whitelist fetch success")
70+
content = remote_res.text
71+
for line in content.split("\n"):
6172
white_key = line.rstrip()
6273
self.meta_change_whitelist.add(white_key)
6374

75+
6476
@staticmethod
6577
def __search_cmd_obj(cmd_name, search_meta):
6678
command_tree = get_command_tree(cmd_name)

azure-cli-diff-tool/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
author_email='azpycli@microsoft.com',
3131
packages=find_packages(),
3232
include_package_data=True,
33-
install_requires=["deepdiff==6.3.0", "requests"],
33+
install_requires=["deepdiff==6.3.0", "requests~=2.32.3"],
3434
package_data={
3535
"azure_cli_diff_tool": ["data/*"]
3636
}

0 commit comments

Comments
 (0)