additionalArtifacts is not implemented in the response of the Query VNF API
[modeling/etsicatalog.git] / catalog / pub / utils / fileutil.py
index 6ddfc72..e6eb6f2 100644 (file)
@@ -19,7 +19,6 @@ import traceback
 import urllib
 import zipfile
 
-
 logger = logging.getLogger(__name__)
 
 
@@ -55,7 +54,9 @@ def download_file_from_http(url, local_dir, file_name):
 
 
 def unzip_file(zip_src, dst_dir, csar_path):
+    logger.debug("unzip_file %s to %s.", zip_src, dst_dir)
     if os.path.exists(zip_src):
+        logger.debug("unzip_file %s.", zip_src)
         fz = zipfile.ZipFile(zip_src, 'r')
         for file in fz.namelist():
             fz.extract(file, dst_dir)
@@ -64,6 +65,17 @@ def unzip_file(zip_src, dst_dir, csar_path):
         return ""
 
 
+def unzip_csar(zip_src, dst_dir):
+    if os.path.exists(zip_src):
+        fz = zipfile.ZipFile(zip_src, 'r')
+        for file in fz.namelist():
+            fz.extract(file, dst_dir)
+        return dst_dir
+    else:
+        logger.error("%s doesn't exist", zip_src)
+        return ""
+
+
 def unzip_csar_to_tmp(zip_src):
     dirpath = tempfile.mkdtemp()
     zip_ref = zipfile.ZipFile(zip_src, 'r')
@@ -76,3 +88,36 @@ def get_artifact_path(vnf_path, artifact_file):
         if artifact_file in files:
             return os.path.join(root, artifact_file)
     return None
+
+
+def end_with(_s_in, *suffix):
+    array = map(_s_in.endswith, suffix)
+    if True in array:
+        return True
+    return False
+
+
+def filter_files(search_path, suffix):
+    f_find = []
+    file_list = os.listdir(search_path)
+    for file_item in file_list:
+        if end_with(file_item, suffix):
+            f_find.append(file_item)
+    return f_find
+
+
+def recreate_dir(path):
+    if os.path.exists(path):
+        shutil.rmtree(path)
+    os.makedirs(path, mode=0o777)
+
+
+def copy(src_file, dest_dir, new_file_name=None):
+    if not os.path.exists(dest_dir):
+        os.makedirs(dest_dir)
+    if new_file_name is None:
+        dst = os.path.join(dest_dir, os.path.basename(src_file))
+    else:
+        dst = os.path.join(dest_dir, new_file_name)
+    shutil.copyfile(src_file, dst)
+    shutil.copymode(src_file, dst)