def thomson_install(firmware): try: fw_src_path = FW_PATHS[firmware.model][firmware.version] except KeyError: fetchfw.die("unsupported model/version (%s/%s)" % (firmware.model, firmware.version)) assert len(firmware.remote_files) == 1 zip_path = fetchfw.zip_extract_all(firmware.name, firmware.remote_files[0].path) fw_zip_path = os.path.join(zip_path, fw_src_path) fw_dst_dir = os.path.join(fetchfw.TFTP_PATH, "Thomson", "binary") fetchfw.makedirs(fw_dst_dir) if firmware.model == 'TB30': pre_dsp_file = "%sS_V" % firmware.model pre_fw_file = "%sS." % firmware.model else: modelnum = firmware.model[2:] pre_dsp_file = "v%s_dsp_" % modelnum pre_fw_file = "v%sSG." % modelnum for fw_file in os.listdir(fw_zip_path): if fw_file.startswith(pre_dsp_file) or fw_file.startswith(pre_fw_file): shutil.copy2(os.path.join(fw_zip_path, fw_file), os.path.join(fw_dst_dir, fw_file))
def yealink_install(firmware): zip_path = fetchfw.zip_extract_all(firmware.name, firmware.remote_files[0].path) fw_src_name, fw_dst_name = FW_PATHS[firmware.model][firmware.version] fw_src_path = os.path.join(zip_path, fw_src_name) fw_dst_path = os.path.join(fetchfw.TFTP_PATH, 'Yealink', fw_dst_name) fetchfw.makedirs(os.path.dirname(fw_dst_path)) shutil.copy2(fw_src_path, fw_dst_path)
def linksys_dblzip_install_fw(firmware, zip_name, fw_name): zipfile1_path = firmware.remote_files[0].path unzip_dir = fetchfw.zip_extract_all(firmware.name, zipfile1_path) zipfile2_path = os.path.join(unzip_dir, zip_name) fw_dst_path = os.path.join(fetchfw.TFTP_PATH, 'Linksys', 'firmware') fetchfw.makedirs(fw_dst_path) fetchfw.zip_extract_files(zipfile2_path, (fw_name,), fw_dst_path)
def polycom_install_bootrom(xfile): zip_path = fetchfw.zip_extract_all("polycom_bootrom", xfile.path) fw_dst_dir = os.path.join(fetchfw.TFTP_PATH, "Polycom") fetchfw.makedirs(fw_dst_dir) for fw_file in os.listdir(zip_path): fw_src_path = os.path.join(zip_path, fw_file) fw_dst_path = os.path.join(fw_dst_dir, fw_file) shutil.copy2(fw_src_path, fw_dst_path)
def aastra_install_langs(firmware, xfile, i18n_dir): zip_path = fetchfw.zip_extract_all('aastra-langs', xfile.path) fw_dst_dir = os.path.join(fetchfw.TFTP_PATH, "Aastra", i18n_dir) fetchfw.makedirs(fw_dst_dir) for fw_file in os.listdir(zip_path): fw_src_path = os.path.join(zip_path, fw_file) fw_dst_path = os.path.join(fw_dst_dir, fw_file) shutil.copy2(fw_src_path, fw_dst_path)
def aastra_install_fw(firmware, xfile): zip_path = fetchfw.zip_extract_all(firmware.name, xfile.path) fw_src_path = os.path.join(zip_path, "%s.st" % firmware.model) fw_dst_dir = os.path.join(fetchfw.TFTP_PATH, "Aastra") if not (os.access(fw_src_path, os.R_OK) and os.path.isfile(fw_src_path)) \ and AASTRA_MODEL_STANDARDIZE.has_key(firmware.model): fw_src_path = os.path.join(zip_path, "%s.st" % AASTRA_MODEL_STANDARDIZE.get(firmware.model)) fetchfw.makedirs(fw_dst_dir) shutil.copy2(fw_src_path, fw_dst_dir)
def polycom_install_app(xfile): zip_path = fetchfw.zip_extract_all("polycom_app", xfile.path) fw_dst_dir = os.path.join(fetchfw.TFTP_PATH, "Polycom") fetchfw.makedirs(fw_dst_dir) for fw_file in APP_FILES: fw_src_path = os.path.join(zip_path, fw_file) fw_dst_path = os.path.join(fw_dst_dir, fw_file) shutil.copy2(fw_src_path, fw_dst_path) fw_src_path = os.path.join(zip_path, "SoundPointIPLocalization") fw_dst_path = os.path.join(fw_dst_dir, "SoundPointIPLocalization") shutil.rmtree(fw_dst_path, True) shutil.copytree(fw_src_path, fw_dst_path)
def linksys_install_locale(xfile, src_file, dst_file): unzip_dir = fetchfw.zip_extract_all('linksys_langs', xfile.path) lang_dst_path = os.path.join(fetchfw.TFTP_PATH, 'Linksys/i18n') fetchfw.makedirs(lang_dst_path) shutil.copy(os.path.join(unzip_dir, src_file), os.path.join(lang_dst_path, dst_file))
def snom3xx_install_lang(xfile): src_dir = fetchfw.zip_extract_all('snom-lang', xfile.path) dst_dir = os.path.join(fetchfw.TFTP_PATH, "Snom/i18n") distutils.dir_util.copy_tree(src_dir, dst_dir)
def cisco79xx_install_fw(firmware): zipfile_path = firmware.remote_files[0] unzip_dir = fetchfw.zip_extract_all(firmware.name, zipfile_path.path) distutils.dir_util.copy_tree(unzip_dir, fetchfw.TFTP_PATH)
def ciscospa5xx_install_locale(xfile, locale_src_file, locale_dst_file): zipfile_path = xfile.path unzip_dir = fetchfw.zip_extract_all('spa5xx_lang', zipfile_path) fetchfw.makedirs(smb_dict_dst_path) shutil.copy(os.path.join(unzip_dir, locale_src_file), os.path.join(smb_dict_dst_path, locale_dst_file))