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)
示例#2
0
	def test_CreateDate(self):
		print "testGetLatestFromPattern : test_CreateDate"
		ftp = FTPSiteNav("build.gateway.michaelpage.local")
		d = ftp._createDate("01-31-12", "05:49PM")
		self.assertEqual(d.getDate(), 31)
		self.assertEqual(d.getMonth(), 0)
		self.assertEqual(d.getYear(), 112)
		d = ftp._createDate("01-31-88", "05:49PM")
		self.assertEqual(d.getDate(), 31)
		self.assertEqual(d.getMonth(), 0)
		self.assertEqual(d.getYear(), 88)
示例#3
0
	def testGetLatestFromPattern(self):
		print "TestFTPSiteNav : testGetLatestFromPattern"
		ftp = FTPSiteNav("build.gateway.michaelpage.local")
		dir = "TempBookingParentPOM/trunk"
		pattern = "TempBookingApplicationEar-tempbookingbuild-3.0.0-SNAPSHOT-build.*.ear"
		expected = ("TempBookingApplicationEar-tempbookingbuild-3.0.0-SNAPSHOT-build.279.ear", "279")
		latest = ftp.getLatestFromPattern(dir, pattern)
		self.assertNotEqual(len(ftp.lines), 0)
		print "--- output from ftp command ---"
		for line in ftp.lines:
			print line
		self.assertEqual(latest[0], expected[0])
		print "--- filename returned ---"
		print latest[0]
		self.assertEqual(latest[1], expected[1])
		print "--- pattern match returned ---"
		print latest[1]