Enbo Wang | 818f76a | 2020-03-04 00:42:31 +0800 | [diff] [blame] | 1 | #!/usr/bin/python3 |
| 2 | # ============LICENSE_START======================================================= |
| 3 | # ONAP - SO |
| 4 | # ================================================================================ |
| 5 | # Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. |
| 6 | # ================================================================================ |
| 7 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 8 | # you may not use this file except in compliance with the License. |
| 9 | # You may obtain a copy of the License at |
| 10 | # |
| 11 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 12 | # |
| 13 | # Unless required by applicable law or agreed to in writing, software |
| 14 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 16 | # See the License for the specific language governing permissions and |
| 17 | # limitations under the License. |
| 18 | # ============LICENSE_END========================================================= |
Enbo Wang | 6ab8b62 | 2019-04-23 13:42:21 +0000 | [diff] [blame] | 19 | |
| 20 | import sys |
| 21 | import argparse |
| 22 | import json |
Enbo Wang | 6ab8b62 | 2019-04-23 13:42:21 +0000 | [diff] [blame] | 23 | |
| 24 | import conf |
Enbo Wang | 818f76a | 2020-03-04 00:42:31 +0800 | [diff] [blame] | 25 | import download_n_e_sw |
| 26 | import install_n_e_sw |
Enbo Wang | 6ab8b62 | 2019-04-23 13:42:21 +0000 | [diff] [blame] | 27 | |
| 28 | |
| 29 | def main(): |
| 30 | parser = argparse.ArgumentParser() |
| 31 | |
| 32 | parser.add_argument("--swToBeDownloaded", help="The NE software to be downloaded", required=True) |
| 33 | parser.add_argument("--neIdentifier", help="The NE where the software can be downloaded", required=True) |
| 34 | |
| 35 | args = parser.parse_args() |
| 36 | |
| 37 | sw_to_be_downloaded = json.loads(args.swToBeDownloaded) |
| 38 | |
Enbo Wang | 818f76a | 2020-03-04 00:42:31 +0800 | [diff] [blame] | 39 | all_installed_ne_sw_list = [] |
| 40 | all_failed_sw_info = [] |
Enbo Wang | 6ab8b62 | 2019-04-23 13:42:21 +0000 | [diff] [blame] | 41 | |
Enbo Wang | 818f76a | 2020-03-04 00:42:31 +0800 | [diff] [blame] | 42 | download_notification, download_ret_value = download_n_e_sw.download(sw_to_be_downloaded, args.neIdentifier) |
| 43 | |
| 44 | downloaded_ne_sw_list = download_notification.get("downloadedNESwInfo", []) |
| 45 | failed_downloaded_sw_list = download_notification.get("failedSwInfo", []) |
| 46 | all_failed_sw_info.extend(failed_downloaded_sw_list) |
| 47 | |
| 48 | for downloaded_ne_sw in downloaded_ne_sw_list: |
| 49 | install_notification, _ = install_n_e_sw.install(downloaded_ne_sw, args.neIdentifier) |
| 50 | installed_ne_sw_list = install_notification.get("installedNESwInfo", []) |
| 51 | failed_installed_sw_list = install_notification.get("failedSwInfo", []) |
| 52 | |
| 53 | all_installed_ne_sw_list.extend(installed_ne_sw_list) |
| 54 | all_failed_sw_info.extend(failed_installed_sw_list) |
| 55 | |
| 56 | num_all_installed_ne_sw_list = len(all_installed_ne_sw_list) |
| 57 | num_sw_to_be_downloaded = len(sw_to_be_downloaded) |
| 58 | |
| 59 | if num_all_installed_ne_sw_list == num_sw_to_be_downloaded: |
| 60 | download_ret_value["result"] = conf.REQ_SUCCESS |
| 61 | else: |
| 62 | download_ret_value["result"] = conf.REQ_FAILURE |
| 63 | download_ret_value["reason"] = "Failed downloaded or installed SW: %s" % json.dumps(all_failed_sw_info) |
| 64 | |
| 65 | print(json.dumps(download_ret_value)) |
| 66 | |
| 67 | if download_ret_value["result"] == conf.REQ_SUCCESS: |
Enbo Wang | 6ab8b62 | 2019-04-23 13:42:21 +0000 | [diff] [blame] | 68 | sys.exit(conf.RET_CODE_SUCCESS) |
| 69 | else: |
| 70 | sys.exit(conf.RET_CODE_FAILURE) |
| 71 | |
| 72 | |
| 73 | if __name__ == '__main__': |
| 74 | main() |