コード例 #1
0
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)
コード例 #2
0
def processCIManifest(pf):
	""" create a file system for autodeploy from some file system - probably build-system output
	the CIManifest allows the inclusion of a pattern match so that we can get the latest build
	of a particular artefact
	"""
	manifest = CIManifest(pf.get("manifest.file"))
	releaseId = manifest.getReleaseId()
	deployPackageHome = "tmp/" + releaseId
	pscs = manifest.getPSCs()
	deployables = []
	# cater for different repository types - file/ftp
	# TODO implement file for CI
	antFile = AntCopyProject("antBuildtmpFS.xml", pf.get("manifest.repository.protocol"))
	antFile.setName("createtmpfs")
	antFile.deleteDir(deployPackageHome)
	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)
			if pf.get("manifest.repository.protocol").lower() == "ftp":
				repoHome = "ftp://" + pf.get("manifest.repository.root")
			elif pf.get("manifest.repository.protocol").lower() == "file":
				repoHome = pf.get("manifest.repository.root")
			if deployable["artefact"].find("*") > 0 and pf.get("manifest.repository.protocol").lower() == "ftp":
				ftpSite = FTPSiteNav(pf.get("manifest.repository.root"))
				latest = ftpSite.getLatestFromPattern(deployable["repo-path"], deployable["artefact"])[0]
				deployable["artefact"] = latest
			artefact = deployable["artefact"]
			sourceDir = repoHome + "/" + deployable["repo-path"]
			target = deployPackageHome + "/" + deployable["name"]
			antFile.copyFile(sourceDir, artefact, target)
	createAutodeployProperties(antFile, releaseId, deployables)
コード例 #3
0
	def testGetMetadataForPSC(self):
		print "TestDeploymentMetadata : testGetMetadataForPSC"
		md = DeploymentMetadata("cr", "sample_properties/ConfigRegComponents.xls")
		self.assertNotEqual(md.CONFIG_REGISTRY, None)
		self.assertEqual(md.CI_METADATA, None)
		self.assertNotEqual(len(md.deployables), 0)
		for i in range(len(self.crPscs)):
			deployable = md.getMetadataForPSC(self.crPscs[i])
			self.assertNotEqual(deployable, None)
			if self.crPscs[i][0] == "ENTERPRISECONTRACTSANDSCHEMAS":
				self.assertEqual(deployable["name"], "EnterpriseContractsAndSchemas")
				self.assertEqual(deployable["version"], "03_08_04")
				self.assertEqual(deployable["technology"], "OSB")
				self.assertEqual(deployable["packaging"], "JAR")
				self.assertEqual(deployable["artefact"], "EnterpriseContractsAndSchemas-trunk-build.73.jar")
				self.assertEqual(deployable["repo-path"], "EnterpriseContractsAndSchemas/03_08_04")
			if self.crPscs[i][0] == "REFERENCEDATALOOKUPSERVICEIMPL":
				self.assertEqual(deployable["name"], "ReferenceDataLookupServiceImpl")
				self.assertEqual(deployable["version"], "02_04_00")
				self.assertEqual(deployable["technology"], "Webapp")
				self.assertEqual(deployable["packaging"], "Exploded")
				self.assertEqual(deployable["artefact"], "ReferenceDataLookupServiceImpl")
				self.assertEqual(deployable["repo-path"], "ReferenceDataManagement/ReferenceDataLookupServiceImpl/02_04_00")
				self.assertEqual(deployable["deploy-target"], "GWIMP")
		md = DeploymentMetadata("ci", "sample_properties/CIDeploys.xls")
		for i in range(len(self.ciPscs)):
			deployable = md.getMetadataForPSC(self.ciPscs[i])
			if self.ciPscs[i][0] == "TempBookingApplication":
				self.assertEqual(deployable["name"], "TempBookingApplication")
				self.assertEqual(deployable["version"], "SNAPSHOT")
				self.assertEqual(deployable["technology"], "Webapp")
				self.assertEqual(deployable["packaging"], "EAR")
				self.assertEqual(deployable["artefact"], "TempBookingApplicationEar-tempbookingbuild-3.0.0-SNAPSHOT-build.*.ear")
				self.assertEqual(deployable["repo-path"], "TempBookingParentPOM/trunk")
				self.assertEqual(deployable["deploy-target"], "GWAPP")