Tested uploading a rimel that had multiple matching manufacturer and

model.  The repo to check for this wasn't returning a single unique result
and causes and error
This commit is contained in:
Cyrus 2023-11-06 15:36:34 -05:00
parent 90add23025
commit 433087961c
3 changed files with 15 additions and 15 deletions

View File

@ -18,7 +18,7 @@ public interface ReferenceManifestRepository extends JpaRepository<ReferenceMani
ReferenceManifest findByBase64Hash(String base64Hash);
ReferenceManifest findByHexDecHashAndRimType(String hexDecHash, String rimType);
@Query(value = "SELECT * FROM ReferenceManifest WHERE platformManufacturer = ?1 AND platformModel = ?2 AND rimType = 'Base'", nativeQuery = true)
BaseReferenceManifest getBaseByManufacturerModel(String manufacturer, String model);
List<BaseReferenceManifest> getBaseByManufacturerModel(String manufacturer, String model);
@Query(value = "SELECT * FROM ReferenceManifest WHERE platformManufacturer = ?1 AND DTYPE = ?2", nativeQuery = true)
List<BaseReferenceManifest> getByManufacturer(String manufacturer, String dType);
@Query(value = "SELECT * FROM ReferenceManifest WHERE platformModel = ?1 AND DTYPE = ?2", nativeQuery = true)

View File

@ -448,7 +448,7 @@ public class IdentityClaimProcessor extends AbstractProcessor {
referenceManifestRepository.delete(measurements);
}
BaseReferenceManifest baseRim = referenceManifestRepository
List<BaseReferenceManifest> baseRims = referenceManifestRepository
.getBaseByManufacturerModel(dv.getHw().getManufacturer(),
dv.getHw().getProductName());
measurements = temp;
@ -456,20 +456,20 @@ public class IdentityClaimProcessor extends AbstractProcessor {
measurements.setPlatformModel(dv.getHw().getProductName());
measurements.setTagId(tagId);
measurements.setDeviceName(dv.getNw().getHostname());
if (baseRim != null) {
measurements.setAssociatedRim(baseRim.getAssociatedRim());
}
this.referenceManifestRepository.save(measurements);
if (baseRim != null) {
// pull the base versions of the swidtag and rimel and set the
// event log hash for use during provision
SupportReferenceManifest sBaseRim = referenceManifestRepository
.getSupportRimEntityById(baseRim.getAssociatedRim());
baseRim.setEventLogHash(temp.getHexDecHash());
sBaseRim.setEventLogHash(temp.getHexDecHash());
referenceManifestRepository.save(baseRim);
referenceManifestRepository.save(sBaseRim);
for (BaseReferenceManifest baseRim : baseRims) {
if (baseRim != null) {
// pull the base versions of the swidtag and rimel and set the
// event log hash for use during provision
SupportReferenceManifest sBaseRim = referenceManifestRepository
.getSupportRimEntityById(baseRim.getAssociatedRim());
baseRim.setEventLogHash(temp.getHexDecHash());
sBaseRim.setEventLogHash(temp.getHexDecHash());
referenceManifestRepository.save(baseRim);
referenceManifestRepository.save(sBaseRim);
}
}
} catch (IOException ioEx) {
log.error(ioEx);

View File

@ -475,7 +475,7 @@ public class ReferenceManifestPageController extends PageController<NoPageParams
if (supportRim != null && (supportRim.getId() != null
&& !supportRim.getId().toString().equals(""))) {
List<BaseReferenceManifest> baseRims = new LinkedList<>();
baseRims.add(this.referenceManifestRepository
baseRims.addAll(this.referenceManifestRepository
.getBaseByManufacturerModel(supportRim.getPlatformManufacturer(),
supportRim.getPlatformModel()));