def testTostringWithListOfLocations(self):
     info1 = ManifestInfo()
     info1._template = self.template
     info1.parseManifest(self.rdfFull1)
     manifest = info1.tostring()
     
     info2 = ManifestInfo()
     info2.parseManifest(manifest)
     
     self.failUnlessEqual(info1.locations, info2.locations, 
                          "Lists of locations don't match. Serialization failed.")
    def testListOfManifests(self):
        metadata = """<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<metadata>
%s
%s
</metadata>
""" % (self.rdfFull1, self.rdfFull2)
        info = ManifestInfo()
        info.parseManifest(metadata)
        
        self.failUnlessEqual(info.publisher, self._publisher1, "Failure in parsing list of manifests.")
        self.failUnlessEqual(info.locations, [self._location1_1, self._location1_2,
                                             self._location2_1, self._location2_2],
                                             "Failure in parsing list of manifests.")
Exemple #3
0
    def testGenerateManifest(self):
        manifest_info = ManifestInfo()
        manifest_info.parseManifest(self.TEST_MANIFEST)
        ManifestDownloader.getManifestInfo = Mock(return_value=manifest_info)

        PDISK_ENDPOINT = 'pdisk:0.0.0.0:8445'

        TMSaveCache._getAttachedVolumeURIs = Mock(
            return_value=[PDISK_ENDPOINT + ':48ac4190-9a11-4a06-8bef-03fd97080eba'])

        tm = TMSaveCache({TMSaveCache._ARG_SRC_POS: 'foo:/bar/1'},
                         conf_filename=self.conf_filename)
        tm._parseArgs()
        tm._retrieveAttachedVolumeInfo()
        tm.createImageInfo = {VmManager.CREATE_IMAGE_KEY_CREATOR_EMAIL: '*****@*****.**',
                              VmManager.CREATE_IMAGE_KEY_CREATOR_NAME: 'Jay Random',
                              VmManager.CREATE_IMAGE_KEY_NEWIMAGE_COMMENT: 'test',
                              VmManager.CREATE_IMAGE_KEY_NEWIMAGE_VERSION: '0.0',
                              VmManager.CREATE_IMAGE_KEY_NEWIMAGE_MARKETPLACE: 'http://new.markeplace.org'}
        tm.imageSha1 = 'ea7d0ddf7af4e2ea431db89639feb7036fb23062'
        tm.createdPDiskId = 'foo-bar-baz'

        try:
            tm._generateP12Cert()
            self.failUnless(os.path.exists(tm.p12cert))

            tm._generateP12Cert()
            tm._retrieveManifestsPath()
            tm.pdiskPathNew = tm._buildPDiskPath(tm.createdPDiskId)
            tm._buildAndSaveManifest()
            self.failUnless(os.path.exists(tm.manifestNotSignedPath))

            minfo = ManifestInfo()
            minfo.parseManifestFromFile(tm.manifestNotSignedPath)
            assert minfo.comment == 'test'
            assert minfo.creator == 'Jay Random'
            assert minfo.version == '0.0'
            assert minfo.sha1 == tm.imageSha1
            assert minfo.locations == ['pdisk:' + Util.getHostnamePortFromUri(tm.persistentDiskPublicBaseUrl) + ':foo-bar-baz']

            self.failUnless('foo-bar-baz' in str(tm._emailText()))

            if not Signator.findJar():
                print "Skipping signature sub-test as Signator jar can not be found."
                return
            tm._signManifest()
            self.failUnless(os.path.exists(tm.manifestPath))
        finally:
            tm._cleanup()
    def testUpdateManifest(self):

        info = ManifestInfo()
        info._template = self.template
        info.parseManifest(ManifestInfoTest.manifestDcFull)

        self.assertEqual('machine', info.type)
        info.type = 'disk'

        xml = info.tostring()
        info = ManifestInfo()
        info.template = self.template
        info.parseManifest(xml)

        self.assertEqual('disk', info.type)
Exemple #5
0
    def upload(self, manifestFilename):
        client = HttpClient(self.confHolder)
        if not os.path.exists(manifestFilename):
            raise InputException('Can\'t find metadata file: %s' % manifestFilename)

        manifest = open(manifestFilename).read()

        info = ManifestInfo(self.confHolder)
        info.parseManifest(manifest)

        url = MarketplaceUtil.metadataEndpointUrl(self.marketplaceEndpoint)
        try:
            client.post(url, manifest)
        except ClientException, ex:
            error = ''
            try:
                error = etree_from_text(ex.content).text
            except: pass
            raise ExecutionException("Failed to upload: %s: %s" % (ex.reason, error))
    def testGetInfo(self):
        infoDC = ManifestInfo()
        infoDC.parseManifest(ManifestInfoTest.manifestDcFull)

        self.assertEqual('2011-01-24T09:59:42Z', infoDC.created)