#!/usr/bin/python3 # ============LICENSE_START======================================================= # ONAP - SO # ================================================================================ # Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============LICENSE_END========================================================= import sys import argparse import json import conf import download_n_e_sw import install_n_e_sw def main(): parser = argparse.ArgumentParser() parser.add_argument("--swToBeDownloaded", help="The NE software to be downloaded", required=True) parser.add_argument("--neIdentifier", help="The NE where the software can be downloaded", required=True) args = parser.parse_args() sw_to_be_downloaded = json.loads(args.swToBeDownloaded) all_installed_ne_sw_list = [] all_failed_sw_info = [] download_notification, download_ret_value = download_n_e_sw.download(sw_to_be_downloaded, args.neIdentifier) downloaded_ne_sw_list = download_notification.get("downloadedNESwInfo", []) failed_downloaded_sw_list = download_notification.get("failedSwInfo", []) all_failed_sw_info.extend(failed_downloaded_sw_list) for downloaded_ne_sw in downloaded_ne_sw_list: install_notification, _ = install_n_e_sw.install(downloaded_ne_sw, args.neIdentifier) installed_ne_sw_list = install_notification.get("installedNESwInfo", []) failed_installed_sw_list = install_notification.get("failedSwInfo", []) all_installed_ne_sw_list.extend(installed_ne_sw_list) all_failed_sw_info.extend(failed_installed_sw_list) num_all_installed_ne_sw_list = len(all_installed_ne_sw_list) num_sw_to_be_downloaded = len(sw_to_be_downloaded) if num_all_installed_ne_sw_list == num_sw_to_be_downloaded: download_ret_value["result"] = conf.REQ_SUCCESS else: download_ret_value["result"] = conf.REQ_FAILURE download_ret_value["reason"] = "Failed downloaded or installed SW: %s" % json.dumps(all_failed_sw_info) print(json.dumps(download_ret_value)) if download_ret_value["result"] == conf.REQ_SUCCESS: sys.exit(conf.RET_CODE_SUCCESS) else: sys.exit(conf.RET_CODE_FAILURE) if __name__ == '__main__': main()