|
| 1 | +# Write a script to generate the deploy info for each yaml file based on the directory and write to a json calleds deploy_info.json |
| 2 | + |
| 3 | +# Example |
| 4 | +# "aes-python-20000-20200": { |
| 5 | +# "yaml-location": "./yamls/aes-python/kn-aes-python-20000-20200.yaml", |
| 6 | +# "predeployment-commands": [] |
| 7 | +# }, |
| 8 | +# |
| 9 | +import os |
| 10 | +import glob |
| 11 | +import json |
| 12 | + |
| 13 | +# Get the current working directory |
| 14 | +current_dir = os.getcwd()+"/yamls" |
| 15 | + |
| 16 | +# Get the list of directories |
| 17 | +directories = [d for d in os.listdir(current_dir) if os.path.isdir(d)] |
| 18 | + |
| 19 | +predeployment_required = ["hotel-app", "image-rotate-python", "image-rotate-go", "video-processing", "video-analytics-standalone", "online-shop"] |
| 20 | + |
| 21 | +deploy_info = {} |
| 22 | +for directory in directories: |
| 23 | + os.chdir(directory) |
| 24 | + # Get the list of yaml files |
| 25 | + yaml_files = glob.glob("*.yaml") |
| 26 | + function_name = {} |
| 27 | + for yaml_file in yaml_files: |
| 28 | + function_name[yaml_file] = yaml_file.replace(".yaml", "") |
| 29 | + function_name[yaml_file] = function_name[yaml_file].replace("kn-", "") |
| 30 | + for yaml_file in yaml_files: |
| 31 | + if directory in predeployment_required: |
| 32 | + if directory == "hotel-app": |
| 33 | + deploy_info[directory + '-' + function_name[yaml_file]] = { |
| 34 | + "YamlLocation": f"workloads/container/yamls/{directory}/{yaml_file}", |
| 35 | + "PredeploymentPath": [f"workloads/container/yamls/hotel-app/database.yaml"] |
| 36 | + } |
| 37 | + elif directory == "online-shop": |
| 38 | + deploy_info[function_name[yaml_file]] = { |
| 39 | + "YamlLocation": f"workloads/container/yamls/{directory}/{yaml_file}", |
| 40 | + "PredeploymentPath": [f"workloads/container/yamls/online-shop/database.yaml"] |
| 41 | + } |
| 42 | + elif directory == "image-rotate-go" or directory == "image-rotate-python": |
| 43 | + deploy_info[function_name[yaml_file]] = { |
| 44 | + "YamlLocation": f"workloads/container/yamls/{directory}/{yaml_file}", |
| 45 | + "PredeploymentPath": [f"workloads/container/yamls/{directory}/image-rotate-database.yaml"] |
| 46 | + } |
| 47 | + elif directory == "video-processing": |
| 48 | + deploy_info[function_name[yaml_file]] = { |
| 49 | + "YamlLocation": f"workloads/container/yamls/{directory}/{yaml_file}", |
| 50 | + "PredeploymentPath": [f"workloads/container/yamls/{directory}/video-processing-database.yaml"] |
| 51 | + } |
| 52 | + elif directory == "video-analytics-standalone": |
| 53 | + deploy_info[function_name[yaml_file]] = { |
| 54 | + "YamlLocation": f"workloads/container/yamls/{directory}/{yaml_file}", |
| 55 | + "PredeploymentPath": [f"workloads/container/yamls/{directory}/video-analytics-standalone-database.yaml"] |
| 56 | + } |
| 57 | + else: |
| 58 | + deploy_info[function_name[yaml_file]] = { |
| 59 | + "YamlLocation": f"workloads/container/yamls/{directory}/{yaml_file}", |
| 60 | + "PredeploymentPath": [] |
| 61 | + } |
| 62 | + |
| 63 | + |
| 64 | + os.chdir(current_dir) |
| 65 | + |
| 66 | +# Write the deploy info to a json file |
| 67 | +deploy_keys = sorted(deploy_info) |
| 68 | +sorted_deploy_info = {} |
| 69 | +for key in deploy_keys: |
| 70 | + sorted_deploy_info[key] = deploy_info[key] |
| 71 | +with open("deploy_info.json", "w") as f: |
| 72 | + f.write(json.dumps(sorted_deploy_info, indent=4)) |
| 73 | +print("Generated deploy info json file") |
| 74 | + |
0 commit comments