def METHOD_NAME():
    upgrade_dict = {}
    firmware_version_current = ""
    firmware_version_available = ""
    if not parse_platform_components():
        logging.error("Reading platform_components.json i, ion exception")
        sys.exit(1)
    if not get_current_chassis_component_map():
        logging.error("Reading firmware i, ion from the driver is abnormal")
        sys.exit(1)
    chassis_name = current_chassis.get_name()
    diff_keys = set(chassis_component_map.keys()) ^ set(current_chassis_component_map.keys())
    if diff_keys:
        logging.error("%s names mismatch: keys=%s", chassis_name, str(list(diff_keys)))
        return None
    for chassis_name, component_map in current_chassis_component_map.items():
        for component_name, component in component_map.items():
            firmware_version_current = component.get_firmware_version()
            if component_name in chassis_component_map[chassis_name]:
                firmware_version_available = chassis_component_map[chassis_name][component_name][VERSION_KEY]
            else:
                logging.warning("can't find %s in %s", component_name, PLATFORM_COMPONENTS_FILE)
                break
            if not os.path.exists(chassis_component_map[chassis_name][component_name][FIRMWARE_KEY]):
                logging.error("%s does not exist", chassis_component_map[chassis_name][component_name][FIRMWARE_KEY])
                break
            if firmware_version_available != firmware_version_current:
                upgrade_dict[component_name] = chassis_component_map[chassis_name][component_name][FIRMWARE_KEY]
    return upgrade_dict