projects
/
osm
/
osmclient.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix bug 1721: charms can include reference to .charm files
[osm/osmclient.git]
/
osmclient
/
common
/
package_tool.py
diff --git
a/osmclient/common/package_tool.py
b/osmclient/common/package_tool.py
index
1d7f57f
..
436053c
100644
(file)
--- a/
osmclient/common/package_tool.py
+++ b/
osmclient/common/package_tool.py
@@
-54,6
+54,7
@@
class PackageTool(object):
detailed,
netslice_subnets,
netslice_vlds,
detailed,
netslice_subnets,
netslice_vlds,
+ old,
):
"""
**Create a package descriptor**
):
"""
**Create a package descriptor**
@@
-71,6
+72,7
@@
class PackageTool(object):
- detailed: include all possible values for NSD, VNFD, NST
- netslice_subnets: number of netslice_subnets for the NST
- netslice_vlds: number of virtual link descriptors for the NST
- detailed: include all possible values for NSD, VNFD, NST
- netslice_subnets: number of netslice_subnets for the NST
- netslice_vlds: number of virtual link descriptors for the NST
+ - old: flag to create a descriptor using the previous OSM format (pre SOL006, OSM<9)
:return: status
"""
:return: status
"""
@@
-79,7
+81,7
@@
class PackageTool(object):
file_loader = PackageLoader("osmclient")
env = Environment(loader=file_loader)
if package_type == "ns":
file_loader = PackageLoader("osmclient")
env = Environment(loader=file_loader)
if package_type == "ns":
- template = env.get_template("nsd.yaml.j2")
+ template = env.get_template("nsd.yaml.j2"
if not old else "nsd_old.yaml.j2"
)
content = {
"name": package_name,
"vendor": vendor,
content = {
"name": package_name,
"vendor": vendor,
@@
-89,7
+91,9
@@
class PackageTool(object):
"detailed": detailed,
}
elif package_type == "vnf":
"detailed": detailed,
}
elif package_type == "vnf":
- template = env.get_template("vnfd.yaml.j2")
+ template = env.get_template(
+ "vnfd.yaml.j2" if not old else "vnfd_old.yaml.j2"
+ )
content = {
"name": package_name,
"vendor": vendor,
content = {
"name": package_name,
"vendor": vendor,
@@
-103,6
+107,7
@@
class PackageTool(object):
"detailed": detailed,
}
elif package_type == "nst":
"detailed": detailed,
}
elif package_type == "nst":
+ # TODO: repo-index did not support nst in OSM<9, no changes in template
template = env.get_template("nst.yaml.j2")
content = {
"name": package_name,
template = env.get_template("nst.yaml.j2")
content = {
"name": package_name,
@@
-117,9
+122,9
@@
class PackageTool(object):
"Wrong descriptor type {}. Options: ns, vnf, nst".format(package_type)
)
"Wrong descriptor type {}. Options: ns, vnf, nst".format(package_type)
)
-
# print
("To be rendered: {}".format(content))
+
self._logger.debug
("To be rendered: {}".format(content))
output = template.render(content)
output = template.render(content)
-
# print
(output)
+
self._logger.debug
(output)
structure = self.discover_folder_structure(
base_directory, package_name, override
structure = self.discover_folder_structure(
base_directory, package_name, override
@@
-150,12
+155,15
@@
class PackageTool(object):
f for f in glob.glob(base_directory + "/*.yaml", recursive=recursive)
]
self._logger.info("Base directory: {}".format(base_directory))
f for f in glob.glob(base_directory + "/*.yaml", recursive=recursive)
]
self._logger.info("Base directory: {}".format(base_directory))
- self._logger.info("{} Descriptors found to validate".format(len(descriptors_paths)))
+ self._logger.info(
+ "{} Descriptors found to validate".format(len(descriptors_paths))
+ )
for desc_path in descriptors_paths:
with open(desc_path) as descriptor_file:
descriptor_data = descriptor_file.read()
desc_type = "-"
try:
for desc_path in descriptors_paths:
with open(desc_path) as descriptor_file:
descriptor_data = descriptor_file.read()
desc_type = "-"
try:
+ # TODO: refactor validation_im.yaml_validation to @staticmethod
desc_type, descriptor_data = validation_im.yaml_validation(
self, descriptor_data
)
desc_type, descriptor_data = validation_im.yaml_validation(
self, descriptor_data
)
@@
-179,6
+187,7
@@
class PackageTool(object):
{"type": desc_type, "path": desc_path, "valid": "OK", "error": "-"}
)
except Exception as e:
{"type": desc_type, "path": desc_path, "valid": "OK", "error": "-"}
)
except Exception as e:
+ self._logger.error(f"Validation error: {e}", exc_info=True)
table.append(
{
"type": desc_type,
table.append(
{
"type": desc_type,
@@
-533,6
+542,8
@@
class PackageTool(object):
else:
if not os.path.isdir(
"{}/charms/{}".format(package_folder, charmName)
else:
if not os.path.isdir(
"{}/charms/{}".format(package_folder, charmName)
+ ) and not os.path.isfile(
+ "{}/charms/{}".format(package_folder, charmName)
):
raise ClientException(
"The charm: {} referenced in the descriptor file "
):
raise ClientException(
"The charm: {} referenced in the descriptor file "
@@
-714,9
+725,12
@@
class PackageTool(object):
self._logger.debug(
"Copying tree: {} -> {}".format(s_charm, d_temp)
)
self._logger.debug(
"Copying tree: {} -> {}".format(s_charm, d_temp)
)
- shutil.copytree(
- s_charm, d_temp, symlinks=True, ignore=ignore
- )
+ if os.path.isdir(s_charm):
+ shutil.copytree(
+ s_charm, d_temp, symlinks=True, ignore=ignore
+ )
+ else:
+ shutil.copy2(s_charm, d_temp)
self._logger.debug("DONE")
else:
self._logger.debug("Copying tree: {} -> {}".format(s, d))
self._logger.debug("DONE")
else:
self._logger.debug("Copying tree: {} -> {}".format(s, d))