def processCMDBManifest(pf): """ create the autodeploy file system from a released repository supposes a structure as in svn BuildDeliverables """ repoPath = pf.get("manifest.repository.root") manifest = CMDBManifest(pf.get("manifest.file")) releaseId = manifest.getReleaseId() pscs = manifest.getPSCs() deployables = [] # cater for different transport protocols - right now only file antFile = AntCopyProject("antBuildtmpFS.xml", pf.get("manifest.repository.protocol")) antFile.setName("createtmpfs") antFile.deleteDir("tmp/" + releaseId) # cater for getting metadata in different ways - right now only config registry metadata = DeploymentMetadata(pf.get("manifest.metadata.source"), pf.get("manifest.metadata.file")) for psc in pscs: deployable = metadata.getMetadataForPSC(psc) if deployable: deployables.append(deployable) source = repoPath + "/" + deployable["repo-path"] pattern = "**/**" target = "tmp/" + releaseId + "/" + deployable["name"] + "_" + deployable["version"] antFile.copyDir(source, pattern, target) # generic name for config folder DC-SR-ORAPP-XX_ROOT hard-coded antFile.copyDir(target + "/config", "**", "tmp/" + releaseId + "/DC-SR-ORAPP-XX_ROOT/PSCConfig") createAutodeployProperties(antFile, releaseId, deployables)
def testWriteBuildfile(self): print "TestAntCopyProject : writeBuildfile" project = AntCopyProject("sample_properties/testAntCopyProject.xml", "file") project.setName("written-project") self.assertEqual(len(self.deployables), 2) processed = 0 project.deleteDir("tmp/package-home") for deployable in self.deployables: processed += 1 project.copyDir("d:/repo/" + deployable["repo-path"], "/**/*.*", "temp/deployment-root/" + deployable["name"] + "_" + deployable["version"]) self.assertEqual(processed, 2) project.property(name="package.home", value="tmp/package-home") project.updateConfigProps("config.properties", "package.home", "tmp/package-home") project.createSetEnvFile("PACKAGE_HOME", "/tmp/package-home") project.writeBuildfile()
def testDisplayProject(self): """ kinda difficult to do strict unit testing here - just displat the results for now """ print "TestAntCopyProject : displayProject" project = AntCopyProject("sample_properties/testCopyProject.xml", "file") project.setName("display-project") self.assertEqual(len(self.deployables), 2) processed = 0 for deployable in self.deployables: processed += 1 project.copyDir("d:/repo/" + deployable["repo-path"], "/**/*.*", "temp/deployment-root/" + deployable["name"] + "_" + deployable["version"]) self.assertEqual(processed, 2) project.copyDir(".", "psc_details.properties", "tmp/package.home") project.property(name="package.home", value="tmp/package-home") print "--- project xml ---" for line in project.project: print line