Skip to content

Commit ca5473f

Browse files
authored
Merge pull request #168 from cloudify-incubator/0.0.124-build
0.0.124 build
2 parents 505fdfe + 5b953f1 commit ca5473f

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

CHANGELOG.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
releases:
2+
v0.0.124: modify iso support
23
v0.0.123: Tag packaging.
34
v0.0.122: add deprecation_warning decorator.
45
v0.0.121: obfuscation_keywords kw arg in obfuscate_passwords.

cloudify_common_sdk/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version = '0.0.123'
1+
version = '0.0.124'

cloudify_common_sdk/iso9660.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,36 @@ def create_iso(vol_ident, sys_ident, files=None, files_raw=None,
7979
iso.close()
8080

8181
return outiso
82+
83+
84+
def modify_iso(iso_path, output_iso_path, new_directories, new_files):
85+
"""
86+
https://clalancette.github.io/pycdlib/pycdlib-api.html
87+
:param new_directories: a list of dicts with new directories in format
88+
[
89+
{'iso_path': path,
90+
'rr_name': rr_name if rocky ridge iso (optional)
91+
'joliet_path': path only for joliet iso, (optional)
92+
'file_mode': only for rocky ridge iso (optional)
93+
'udf_path': path only for udf iso (optional)
94+
]
95+
:param new_files: a list of dicts with new directories in format
96+
[
97+
{'iso_path': path,
98+
'file_context': context of new file
99+
'rr_name': rr_name if rocky ridge iso (optional)
100+
'joliet_path': path only for joliet iso, (optional)
101+
'file_mode': only for rocky ridge iso (optional)
102+
'udf_path': path only for udf iso (optional)
103+
]
104+
"""
105+
iso = pycdlib.PyCdlib()
106+
iso.open(iso_path)
107+
for new_dir in new_directories:
108+
iso.add_directory(**new_dir)
109+
for new_file in new_files:
110+
context = new_file.pop('file_context')
111+
context = bytes(context, 'utf-8')
112+
iso.add_fp(BytesIO(context), len(context), **new_file)
113+
iso.write(output_iso_path)
114+
iso.close()

0 commit comments

Comments
 (0)