Skip to content

Commit 9648e21

Browse files
authored
[Pipeline] optimize multiapi generation (#28931)
* remove old sdk code * optimize * update function name
1 parent 0260e2f commit 9648e21

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

tools/azure-sdk-tools/packaging_tools/sdk_generator.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
_LOGGER = logging.getLogger(__name__)
2525

2626

27-
def del_outdated_samples(readme: str):
27+
def del_outdated_folder(readme: str):
2828
python_readme = Path(readme).parent / "readme.python.md"
2929
if not python_readme.exists():
3030
_LOGGER.info(f"do not find python configuration: {python_readme}")
@@ -33,15 +33,31 @@ def del_outdated_samples(readme: str):
3333
with open(python_readme, "r") as file_in:
3434
content = file_in.readlines()
3535
pattern = ["$(python-sdks-folder)", "azure-mgmt-"]
36+
is_multiapi = "multiapi: true" in ("".join(content))
37+
special_service = ["azure-mgmt-resource/"]
3638
for line in content:
3739
if all(p in line for p in pattern):
40+
# remove generated_samples
3841
sdk_folder = re.findall("[a-z]+/[a-z]+-[a-z]+-[a-z]+", line)[0]
3942
sample_folder = Path(f"sdk/{sdk_folder}/generated_samples")
4043
if sample_folder.exists():
4144
shutil.rmtree(sample_folder)
4245
_LOGGER.info(f"remove sample folder: {sample_folder}")
4346
else:
4447
_LOGGER.info(f"sample folder does not exist: {sample_folder}")
48+
# remove old generated SDK code
49+
sdk_folder = re.findall("[a-z]+/[a-z]+-[a-z]+-[a-z]+/[a-z]+/[a-z]+/[a-z]+", line)[0]
50+
code_folder = Path(f"sdk/{sdk_folder}")
51+
if is_multiapi and code_folder.exists():
52+
if any(item in str(sdk_folder) for item in special_service):
53+
for folder in code_folder.iterdir():
54+
if folder.is_dir():
55+
shutil.rmtree(folder)
56+
else:
57+
shutil.rmtree(code_folder)
58+
_LOGGER.info(f"remove code folder: {code_folder}")
59+
else:
60+
_LOGGER.info(f"code folder does not exist or it is not multiapi: {code_folder}")
4561
return
4662

4763
_LOGGER.info(f"do not find {pattern} in {python_readme}")
@@ -79,7 +95,7 @@ def main(generate_input, generate_output):
7995
is_cadl = False
8096
if "resource-manager" in input_readme:
8197
relative_path_readme = str(Path(spec_folder, input_readme))
82-
del_outdated_samples(relative_path_readme)
98+
del_outdated_folder(relative_path_readme)
8399
config = generate(
84100
CONFIG_FILE,
85101
sdk_folder,

0 commit comments

Comments
 (0)