Skip to content

Commit b5a5157

Browse files
authored
Merge pull request #201 from nokia/fix-yocto-logics
Fixing yocto referring logics
2 parents 72d367e + 2ae60f7 commit b5a5157

File tree

5 files changed

+1658
-10
lines changed

5 files changed

+1658
-10
lines changed

tools/openchain_telco_sbom_validator/src/openchain_telco_sbom_validator/validator.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,11 @@ def validate(self,
238238

239239
file = os.path.basename(filePath)
240240
dir_name = os.path.dirname(filePath)
241-
logger.debug(f"File path is {dir_name}, filename is {file}")
241+
match = re.search(r'\.(.+)$', file)
242+
extension = ""
243+
if match:
244+
extension = match.group(1)
245+
logger.debug(f"File path is {dir_name}, filename is {file}, extension is {extension}")
242246
print(f"Validating {file}")
243247

244248

@@ -593,7 +597,7 @@ def validate(self,
593597

594598
if referringLogic in self.referringLogics:
595599
logger.debug(f"Executing referring logic: {referringLogic}, {self.referringLogics[referringLogic]}")
596-
list_of_referred_sboms, problems = self.referringLogics[referringLogic](self, doc, dir_name, problems)
600+
list_of_referred_sboms, problems = self.referringLogics[referringLogic](self, doc, dir_name, problems, extension)
597601
else:
598602
logger.error(f"Referring logic “{referringLogic}” is not in the registered referring logic list {self.getReferringLogicNames()}")
599603
print(f"Referring logic error. Referring logic “{referringLogic}” is not in the registered referring logic list {self.getReferringLogicNames()}")
@@ -668,8 +672,8 @@ def __ntiaErrorLogNew(self, components, problems, doc, problemText, file):
668672
Problem.SEVERITY_ERROR,
669673
file)
670674

671-
def referred_yocto_all(self, doc: Document, dir_name: str, problems: Problems):
672-
logger.debug("In Yocto all")
675+
def referred_yocto_all(self, doc: Document, dir_name: str, problems: Problems, extension: str=""):
676+
logger.debug(f"In Yocto all. Extension is {extension}")
673677
documents = []
674678
ref_base = ""
675679
if doc.creation_info.document_namespace:
@@ -691,14 +695,14 @@ def referred_yocto_all(self, doc: Document, dir_name: str, problems: Problems):
691695
if result:
692696
doc_location = result.group(1)
693697
if dir_name == "":
694-
doc_location = f"{doc_location}.spdx.json"
698+
doc_location = f"{doc_location}.{extension}"
695699
else:
696-
doc_location = f"{dir_name}/{doc_location}.spdx.json"
700+
doc_location = f"{dir_name}/{doc_location}.{extension}"
697701
logger.debug(f"Document location is: {doc_location}")
698702
documents.append(doc_location)
699703
return documents, problems
700704

701-
def referred_yocto_contains_only(self, doc: Document, dir_name: str, problems: Problems):
705+
def referred_yocto_contains_only(self, doc: Document, dir_name: str, problems: Problems, extension: str=""):
702706
logger.debug("In Yocto contains only")
703707
documents = []
704708
ref_base = ""
@@ -736,7 +740,7 @@ def referred_yocto_contains_only(self, doc: Document, dir_name: str, problems: P
736740
documents.append(external_refs[spdx_document_id])
737741
return documents, problems
738742

739-
def referred_checksum_all(self, doc: Document, dir_name: str, problems: Problems):
743+
def referred_checksum_all(self, doc: Document, dir_name: str, problems: Problems, extension: str=""):
740744
# Known limitations: MD2, MD4 and MD6 hashes are not supported
741745
import hashlib
742746
from pathlib import Path
@@ -823,8 +827,8 @@ def referred_checksum_all(self, doc: Document, dir_name: str, problems: Problems
823827

824828
return documents_dd, problems
825829

826-
def referred_none(self, doc: Document, dir_name: str, problems: Problems):
830+
def referred_none(self, doc: Document, dir_name: str, problems: Problems, extension: str=""):
827831
return [], problems
828832

829-
def _dummy_referred_logic(self, doc: Document, dir_name: str, problems: Problems):
833+
def _dummy_referred_logic(self, doc: Document, dir_name: str, problems: Problems, extension: str = ""):
830834
pass

0 commit comments

Comments
 (0)