def _signManifest(self): configHolder = ConfigHolder(self.__dict__) signator = Signator(self.manifestFile, configHolder) rc = signator.sign() if rc: raise ExecutionException('Failed to sign manifest.') self.manifestFile = signator.outputManifestFile
def doWork(self): configHolder = ConfigHolder(self.options.__dict__) signator = Signator(self.manifestFile, configHolder) isError = signator.sign() if isError: Util.printError('Error signing metadata file') else: Util.printDetail('Metadata file successfully signed: %s' % signator.outputManifestFile)
def deprecate(self, imageId): tempDeprecatedMetadataFilename = tempfile.mktemp() tempMetadataFilename = tempfile.mktemp() try: imageURI = imageId + '/' + self.email if len(self.created) != 0: imageURI = imageURI + '/' + self.created # Get metadata file self.manifestDownloader.getManifestAsFile(imageURI, tempMetadataFilename) # Strip signature xml = etree.ElementTree(file=tempMetadataFilename) root = xml.getroot() if (root.tag == "metadata"): rootElement = root.find('.//{%s}RDF' % ManifestInfo.NS_RDF) else: rootElement = root descriptionElement = rootElement.find('.//{%s}Description' % ManifestInfo.NS_RDF) descriptionElement.remove(descriptionElement.find('.//{%s}endorsement' % ManifestInfo.NS_SLREQ)) endorsement = etree.Element('{%s}%s' % (ManifestInfo.NS_SLREQ, 'endorsement'), parseType="Resource") descriptionElement.append(endorsement) signatureElement = rootElement.find('.//{%s}Signature' % 'http://www.w3.org/2000/09/xmldsig#') rootElement.remove(signatureElement) xml._setroot(rootElement) # Add deprecated entry elem = etree.Element('{%s}%s' % (ManifestInfo.NS_SLTERMS, 'deprecated')) elem.text = self.reason descriptionElement.append(elem) xml.write(tempDeprecatedMetadataFilename) # Sign and upload signator = Signator(tempDeprecatedMetadataFilename, self.configHolder) isError = signator.sign() if isError: raise ExecutionException('Error signing new manifest') return self.uploader.upload(tempDeprecatedMetadataFilename) finally: try: os.unlink(tempMetadataFilename) os.unlink(tempDeprecatedMetadataFilename) os.unlink(tempDeprecatedMetadataFilename+'.orig') except: pass