예제 #1
0
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))
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
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)
예제 #8
0
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))
예제 #9
0
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)
예제 #10
0
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)
예제 #11
0
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))