use of org.eclipse.virgo.util.parser.manifest.ManifestContents in project winery by eclipse.
the class CsarExporterTest method csarFilesHaveImmutableStorageAddresses.
@Test
// todo check how to enable
@Disabled
public void csarFilesHaveImmutableStorageAddresses() throws Exception {
Map<String, Object> exportConfiguration = new HashMap<>();
exportConfiguration.put(STORE_IMMUTABLY.name(), null);
try (InputStream inputStream = this.createOutputAndInputStream("origin/plain", new ServiceTemplateId("http://plain.winery.opentosca.org/servicetemplates", "ServiceTemplateWithAllReqCapVariants", false), exportConfiguration);
ZipInputStream zis = new ZipInputStream(inputStream)) {
ManifestContents manifestContents = parseManifest(zis);
assertNotNull(manifestContents);
for (String section : manifestContents.getSectionNames()) {
assertNotNull(manifestContents.getAttributesForSection(section).get(TOSCAMetaFileAttributes.IMMUTABLE_ADDRESS));
}
}
}
use of org.eclipse.virgo.util.parser.manifest.ManifestContents in project winery by eclipse.
the class AccountabilityManagerImpl method getHistoryOfSingleFile.
protected List<FileProvenanceElement> getHistoryOfSingleFile(List<ModelProvenanceElement> historyElements, String fileId, AuthorizationInfo authorizationInfo) {
List<FileProvenanceElement> history = new ArrayList<>();
if (Objects.nonNull(historyElements) && historyElements.size() > 0) {
for (ModelProvenanceElement modelProvenanceElement : historyElements) {
if (Objects.nonNull(modelProvenanceElement.getFingerprint())) {
ManifestContents manifestContents = new RecoveringManifestParser().parse(modelProvenanceElement.getFingerprint());
for (String name : manifestContents.getSectionNames()) {
if (name.equals(fileId)) {
modelProvenanceElement.setAuthorizedFlag(authorizationInfo);
modelProvenanceElement.setAuthorName(authorizationInfo.getRealWorldIdentity(modelProvenanceElement.getAuthorAddress()).orElseGet(String::new));
FileProvenanceElement currentFile = new FileProvenanceElement(modelProvenanceElement);
currentFile.setAddressInImmutableStorage(manifestContents.getAttributesForSection(name).get(TOSCAMetaFileAttributes.IMMUTABLE_ADDRESS));
currentFile.setFileHash(TOSCAMetaFileAttributes.HASH + "-" + manifestContents.getAttributesForSection(name).get(TOSCAMetaFileAttributes.HASH));
currentFile.setFileName(fileId);
history.add(currentFile);
break;
}
}
}
}
}
if (history.size() > 0)
return history;
return null;
}
use of org.eclipse.virgo.util.parser.manifest.ManifestContents in project winery by eclipse.
the class CsarExporterTest method testHashesForEachFile.
@Test
public void testHashesForEachFile() throws Exception {
Map<String, Object> exportConfiguration = new HashMap<>();
exportConfiguration.put(INCLUDE_HASHES.name(), null);
try (InputStream inputStream = this.createOutputAndInputStream(// quick fix - should work if eclipse/winery#305 is merged
"7c8d8c7057403a07fde90dec1f44f0190ae65ae2", new ServiceTemplateId("http://plain.winery.opentosca.org/servicetemplates", "ServiceTemplateWithAllReqCapVariants", false), exportConfiguration);
ZipInputStream zis = new ZipInputStream(inputStream)) {
ZipEntry entry;
List<CsarContentProperties> elementsList = new ArrayList<>();
ManifestContents manifestContents = null;
while ((entry = zis.getNextEntry()) != null) {
CsarContentProperties fileProperties = new CsarContentProperties(entry.getName());
elementsList.add(fileProperties);
byte[] array = IOUtils.toByteArray(zis);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(array);
fileProperties.setFileHash(HashingUtil.getChecksum(byteArrayInputStream, TOSCAMetaFileAttributes.HASH));
if ("TOSCA-Metadata/TOSCA.meta".equals(fileProperties.getPathInsideCsar())) {
String s = new String(array, StandardCharsets.UTF_8);
manifestContents = new RecoveringManifestParser().parse(s);
}
}
assertNotNull(manifestContents);
for (CsarContentProperties fileProperties : elementsList) {
Map<String, String> attributes = manifestContents.getAttributesForSection(fileProperties.getPathInsideCsar());
if (!"TOSCA-Metadata/TOSCA.meta".equals(fileProperties.getPathInsideCsar())) {
// ensure each file has a hash
assertTrue(attributes.containsKey(TOSCAMetaFileAttributes.HASH));
// ensure that the hashes match
assertEquals(fileProperties.getFileHash(), attributes.get(TOSCAMetaFileAttributes.HASH));
}
}
// ensures that every file in the archive has a hash in the manifest
assertEquals(elementsList.size() - 1, manifestContents.getSectionNames().size());
}
}
use of org.eclipse.virgo.util.parser.manifest.ManifestContents in project winery by eclipse.
the class CsarExporterTest method metafileDoesNotContainUnnecessaryFileAttributes.
@Test
public void metafileDoesNotContainUnnecessaryFileAttributes() throws Exception {
// create an empty configuration object
Map<String, Object> exportConfiguration = new HashMap<>();
try (InputStream inputStream = this.createOutputAndInputStream("origin/plain", new ArtifactTemplateId("http://plain.winery.opentosca.org/artifacttemplates", "ArtifactTemplateWithFilesAndSources-ArtifactTypeWithoutProperties", false), exportConfiguration);
ZipInputStream zis = new ZipInputStream(inputStream)) {
ManifestContents manifestContents = parseManifest(zis);
assertNotNull(manifestContents);
for (String section : manifestContents.getSectionNames()) {
assertNull(manifestContents.getAttributesForSection(section).get(TOSCAMetaFileAttributes.HASH));
assertNull(manifestContents.getAttributesForSection(section).get(TOSCAMetaFileAttributes.IMMUTABLE_ADDRESS));
}
}
}
Aggregations