def generatePlayNowServiceStep(docTempdir, changeLogDir, changeLogFile): Utile.writeLog("生成playnow service更新步骤"); Utile.insertFile(ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_SERVICESTEP_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,changeLogDir+ConstantValue.PLAYNOW_SERVICESETP_FILENAME); Utile.generalFile(ConstantValue.CHANGELOG_PLANNOW_SERVICE_WEBCONFIG_TAG,ConstantValue.CHANGELOG_PLANNOW_SERVICE_WEBCONFIG_TAG_END,changeLogFile,'temp',True,'****'); Utile.insertFile(ConstantValue.PLAYNOWSERVICE_WEBCONFIG_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,'temp'); Utile.generalFile(ConstantValue.CHANGELOG_PLANNOW_SERVICE_APPSETTING_TAG,ConstantValue.CHANGELOG_PLANNOW_SERVICE_APPSETTING_TAG_END,changeLogFile,'temp',True,'****'); Utile.insertFile(ConstantValue.PLAYNOWSERVICE_APPSETTINGS_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,'temp');
def generateTestCaseFile(docTempdir, changeLogFile, changeLogDir): #生成当前测试列表 Utile.writeLog("生成当前测试列表") Utile.deploymentPlan_GenerateTableAction( ConstantValue.CHANGELOG_CURRENT_TESTCASE_TAG, ConstantValue.CHANGELOG_CURRENT_TESTCASE_TAG_END, docTempdir + ConstantValue.DEPLOYMENT_CURRENT_TESTCASE_FILENAME, changeLogFile) Utile.insertFile( ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_TOTALESTCASE_TAG, docTempdir + ConstantValue.DEPLOYMENT_BASE_TESTCASE_FILENAME, changeLogDir + ConstantValue.BASE_TESTCASE_FILENAME)
def generateStepFile(docTempdir,changeLogFile, changeLogDir, installPackageName): #生成部署步骤 Utile.writeLog("生成部署步骤"); tempFile='deployStepsTemp'; Utile.generalFile(ConstantValue.CHANGELOG_UPDATEAPPLICATION_TAG,ConstantValue.CHANGELOG_UPDATEAPPLICATION_TAG_END,changeLogFile,tempFile); orgF = open(tempFile,'r') steps = orgF.readlines() orgF.close(); for line in steps: if(line.strip().strip('\n').split(':')[1] == 'false'): Utile.deleteRow(docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME, ConstantValue.DEPLOYMENT_STEPS_TAG_MAPPING[line.strip().strip('\n').split(':')[0]]); del ConstantValue.DEPLOYMENT_STEPS[line.strip().strip('\n').split(':')[0]] deployStepF = open("temp",'w') for name, steps in OrderedDict(sorted(ConstantValue.DEPLOYMENT_STEPS.items(), key=lambda t: t[0])).items(): deployStepF.write(steps) deployStepF.close(); Utile.insertFile(ConstantValue.DEPLOMENT_RSTFILE_UPDATESTEP_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,"temp"); #生成数据库更新步骤文档 generateDatabaseStep(docTempdir, changeLogDir, changeLogFile) #生成playnow service更新步骤 generatePlayNowServiceStep(docTempdir, changeLogDir, changeLogFile) #生成PlayNow Managerment更新步骤 Utile.writeLog("生成PlayNow Managerment更新步骤"); Utile.insertFile(ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_MANAGERMENTSTEP_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,changeLogDir+ConstantValue.PLAYNOW_MANAGERSETP_FILENAME); Utile.generalFile(ConstantValue.CHANGELOG_PLANNOW_MANAGERMENT_WEBCONFIG_TAG,ConstantValue.CHANGELOG_PLANNOW_MANAGERMENT_WEBCONFIG_TAG_END,changeLogFile,'temp',True,'****'); Utile.insertFile(ConstantValue.PLAYNOWMANAGERMENT_WEBCONFIG_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,'temp'); #生成WebAppStore更新步骤 Utile.writeLog("生成WebAppStore更新步骤"); Utile.insertFile(ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_WEBAPPSTORESTEP_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,changeLogDir+ConstantValue.WEBAPPSTORESETPS_FILENAME); Utile.generalFile(ConstantValue.CHANGELOG_WEBAPPSTORE_WEBCONFIG_TAG,ConstantValue.CHANGELOG_WEBAPPSTORE_WEBCONFIG_TAG_END,changeLogFile,'temp',True,'****'); Utile.insertFile(ConstantValue.WEBAPPSTORE_WEBCONFIG_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,'temp'); #生成WinService更新步骤 Utile.writeLog("生成WinService更新步骤"); Utile.insertFile(ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_WINSERVICESTEP_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,changeLogDir+ConstantValue.PLAYNOW_WINSERVICESETP_FILENAME); Utile.generalFile(ConstantValue.CHANGELOG_PLANNOW_WINSERVICE_CONFIG_TAG,ConstantValue.CHANGELOG_PLANNOW_WINSERVICE_CONFIG_TAG_END,changeLogFile,'temp',True,'****'); Utile.insertFile(ConstantValue.PLAYNOWWINSERVICE_WEBCONFIG_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,'temp'); #替换包名字符串 Utile.writeLog("替换包名字符串"); Utile.replaceFileTag(ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_INSTALLPACEAGENAME_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,installPackageName); os.remove("temp") os.remove(tempFile)
def generateDatabaseStep(docTempdir, changeLogDir, changeLogFile): Utile.writeLog("生成数据库更新步骤文档"); Utile.generalFile(ConstantValue.CHANGELOG_UPDATESQL_PLAYNOW_TAG,ConstantValue.CHANGELOG_UPDATESQL_PLAYNOW_TAG_END,changeLogFile,docTempdir+ConstantValue.DATABASE_UPDATE_PLAYNOW_FILENAME); Utile.generalFile(ConstantValue.CHANGELOG_UPDATESQL_PLAYNOWLOG_TAG,ConstantValue.CHANGELOG_UPDATESQL_PLAYNOWLOG_TAG_END,changeLogFile,docTempdir+ConstantValue.DATABASE_UPDATE_PLAYNOWLOG_FILENAME); Utile.insertFile(ConstantValue.DEPLOMENT_RSTFILE_DATABASESTEP_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,changeLogDir+ConstantValue.PLAYNOW_DATEBASESETP_FILENAME); #生成数据库rollback步骤文档 Utile.writeLog("生成数据库rollback步骤文档"); Utile.generalFile(ConstantValue.CHANGELOG_ROLLBACKSQL_PLAYNOW_TAG,ConstantValue.CHANGELOG_ROLLBACKSQL_PLAYNOW_TAG_END,changeLogFile,docTempdir+ConstantValue.DATEABASE_ROLLBACK_PLAYNOW_FILENAME); Utile.generalFile(ConstantValue.CHANGELOG_ROLLBACKSQL_PLAYNOWLOG_TAG,ConstantValue.CHANGELOG_ROLLBACKSQL_PLAYNOWLOG_TAG_END,changeLogFile,docTempdir+ConstantValue.DATEABASE_ROLLBACK_PLAYNOWLOG_FILENAME); Utile.insertFile(ConstantValue.DEPLOMENT_RSTFILE_DATABASESTEP_TAG,docTempdir+ConstantValue.DEPLOYMENT_STEPS_FILENAME,changeLogDir+ConstantValue.PLAYNOW_DATEBASESETP_FILENAME); doWithSQLFile(docTempdir+ConstantValue.DATABASE_UPDATE_PLAYNOW_FILENAME) doWithSQLFile(docTempdir+ConstantValue.DATEABASE_ROLLBACK_PLAYNOW_FILENAME) doWithSQLFile(docTempdir+ConstantValue.DATABASE_UPDATE_PLAYNOWLOG_FILENAME) doWithSQLFile(docTempdir+ConstantValue.DATEABASE_ROLLBACK_PLAYNOWLOG_FILENAME) DealWithFile.zip_dir(docTempdir+ConstantValue.DATABASE_UPDATE_DIR,docTempdir+ConstantValue.DATABASE_UPDATE_DIR+'.zip' ); DealWithFile.zip_dir(docTempdir+ConstantValue.DATABASE_ROLLBACK_DIR,docTempdir+ConstantValue.DATABASE_ROLLBACK_DIR+'.zip' );
def generatePlayNowServiceStep(docTempdir, changeLogDir, changeLogFile): Utile.writeLog("生成playnow service更新步骤") Utile.insertFile(ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_SERVICESTEP_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, changeLogDir + ConstantValue.PLAYNOW_SERVICESETP_FILENAME) Utile.generalFile( ConstantValue.CHANGELOG_PLANNOW_SERVICE_WEBCONFIG_TAG, ConstantValue.CHANGELOG_PLANNOW_SERVICE_WEBCONFIG_TAG_END, changeLogFile, 'temp', True, '****') Utile.insertFile(ConstantValue.PLAYNOWSERVICE_WEBCONFIG_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, 'temp') Utile.generalFile( ConstantValue.CHANGELOG_PLANNOW_SERVICE_APPSETTING_TAG, ConstantValue.CHANGELOG_PLANNOW_SERVICE_APPSETTING_TAG_END, changeLogFile, 'temp', True, '****') Utile.insertFile(ConstantValue.PLAYNOWSERVICE_APPSETTINGS_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, 'temp')
def generateDatabaseStep(docTempdir, changeLogDir, changeLogFile): Utile.writeLog("生成数据库更新步骤文档") Utile.generalFile( ConstantValue.CHANGELOG_UPDATESQL_PLAYNOW_TAG, ConstantValue.CHANGELOG_UPDATESQL_PLAYNOW_TAG_END, changeLogFile, docTempdir + ConstantValue.DATABASE_UPDATE_PLAYNOW_FILENAME) Utile.generalFile( ConstantValue.CHANGELOG_UPDATESQL_PLAYNOWLOG_TAG, ConstantValue.CHANGELOG_UPDATESQL_PLAYNOWLOG_TAG_END, changeLogFile, docTempdir + ConstantValue.DATABASE_UPDATE_PLAYNOWLOG_FILENAME) Utile.insertFile( ConstantValue.DEPLOMENT_RSTFILE_DATABASESTEP_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, changeLogDir + ConstantValue.PLAYNOW_DATEBASESETP_FILENAME) #生成数据库rollback步骤文档 Utile.writeLog("生成数据库rollback步骤文档") Utile.generalFile( ConstantValue.CHANGELOG_ROLLBACKSQL_PLAYNOW_TAG, ConstantValue.CHANGELOG_ROLLBACKSQL_PLAYNOW_TAG_END, changeLogFile, docTempdir + ConstantValue.DATEABASE_ROLLBACK_PLAYNOW_FILENAME) Utile.generalFile( ConstantValue.CHANGELOG_ROLLBACKSQL_PLAYNOWLOG_TAG, ConstantValue.CHANGELOG_ROLLBACKSQL_PLAYNOWLOG_TAG_END, changeLogFile, docTempdir + ConstantValue.DATEABASE_ROLLBACK_PLAYNOWLOG_FILENAME) Utile.insertFile( ConstantValue.DEPLOMENT_RSTFILE_DATABASESTEP_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, changeLogDir + ConstantValue.PLAYNOW_DATEBASESETP_FILENAME) doWithSQLFile(docTempdir + ConstantValue.DATABASE_UPDATE_PLAYNOW_FILENAME) doWithSQLFile(docTempdir + ConstantValue.DATEABASE_ROLLBACK_PLAYNOW_FILENAME) doWithSQLFile(docTempdir + ConstantValue.DATABASE_UPDATE_PLAYNOWLOG_FILENAME) doWithSQLFile(docTempdir + ConstantValue.DATEABASE_ROLLBACK_PLAYNOWLOG_FILENAME) DealWithFile.zip_dir( docTempdir + ConstantValue.DATABASE_UPDATE_DIR, docTempdir + ConstantValue.DATABASE_UPDATE_DIR + '.zip') DealWithFile.zip_dir( docTempdir + ConstantValue.DATABASE_ROLLBACK_DIR, docTempdir + ConstantValue.DATABASE_ROLLBACK_DIR + '.zip')
def generateDeployPlanFile(docTempdir,changeLogFile): #生成feature的更新列表 Utile.writeLog("生成feature的更新列表 "); Utile.deploymentPlan_GenerateTableAction(ConstantValue.CHANGELOG_FEATURE_TAG,ConstantValue.CHANGELOG_FEATURE_TAG_END, docTempdir+ConstantValue.DEPLOYMENT_PLAN_FILENAME,changeLogFile) #生成bugFix的更新列表 Utile.writeLog("生成bugFix的更新列表"); Utile.deploymentPlan_GenerateTableAction(ConstantValue.CHANGELOG_BUGFIX_TAG,ConstantValue.CHANGELOG_BUGFIX_TAG_END, docTempdir+ConstantValue.DEPLOYMENT_PLAN_FILENAME,changeLogFile) #生成Deployment Plan Utile.writeLog("生成Deployment Plan"); Utile.generalFile(ConstantValue.CHANGELOG_DEPLOYMENT_PLAN_TAG,ConstantValue.CHANGELOG_DEPLOYMENT_PLAN_TAG_END,changeLogFile,'temp'); Utile.generalTableFromFile("temp",'temp') Utile.insertFile(ConstantValue.CHANGELOG_DEPLOYMENT_PLAN_TAG,docTempdir+ConstantValue.DEPLOYMENT_PLAN_FILENAME,'temp'); Utile.deploymentPlan_replaceTagString(ConstantValue.RELEASE_APPLYNAME_TAG, ConstantValue.RELEASE_APPLYNAME_TAG_END, changeLogFile, docTempdir+ConstantValue.DEPLOYMENT_PLAN_FILENAME) Utile.deploymentPlan_replaceTagString(ConstantValue.RELEASE_BACKAGEGROUND_TAG, ConstantValue.RELEASE_BACKAGEGROUND_TAG_END,changeLogFile, docTempdir+ConstantValue.DEPLOYMENT_PLAN_FILENAME) Utile.deploymentPlan_replaceTagString(ConstantValue.RELEASE_DESTINATION_TAG, ConstantValue.RELEASE_DESTINATION_TAG_END, changeLogFile, docTempdir+ConstantValue.DEPLOYMENT_PLAN_FILENAME) Utile.deploymentPlan_replaceTagString(ConstantValue.RELEASE_VERSION_TAG, ConstantValue.RELEASE_VERSION_TAG_END, changeLogFile, docTempdir+ConstantValue.DEPLOYMENT_PLAN_FILENAME) os.remove('temp')
# -*- coding:utf-8 -*- import DealWithFile import os import Utile import ConstantValue import time import GenerateDeployPlanFile import GenerateStepFile import GenerateTestFile import sys Utile.writeLog( "------------BEGIN GENGRATE PLAYNOW PACKAGE AND ZIP THE OUTPUT FILE------------" ) #代码的工作目录 WORKSPACE_DIR = sys.argv[1] print WORKSPACE_DIR #当前日期时间,主要是用于生成文件名 CURRENT_TIME = time.strftime('%Y-%m-%d', time.localtime(time.time())) #ChangeLog目录 CHANGELOG_DIR = WORKSPACE_DIR + "\\ChangeLog" #ChangeLog目录中readme文件路径 CHANGE_LOG_FILE = CHANGELOG_DIR + "\\" + sys.argv[2] #文档模板目录 PLAYNOW_DOCMENT_TEMPLATE_DIR = WORKSPACE_DIR + "\\DeployTemplate" #读出当期上线的版本 CURRENTVERSION = Utile.deploymentPlan_readTagString( ConstantValue.RELEASE_VERSION_TAG, ConstantValue.RELEASE_VERSION_TAG_END, CHANGE_LOG_FILE)
def generateTestCaseFile(docTempdir, changeLogFile,changeLogDir): #生成当前测试列表 Utile.writeLog("生成当前测试列表"); Utile.deploymentPlan_GenerateTableAction(ConstantValue.CHANGELOG_CURRENT_TESTCASE_TAG,ConstantValue.CHANGELOG_CURRENT_TESTCASE_TAG_END, docTempdir+ConstantValue.DEPLOYMENT_CURRENT_TESTCASE_FILENAME, changeLogFile) Utile.insertFile(ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_TOTALESTCASE_TAG,docTempdir+ConstantValue.DEPLOYMENT_BASE_TESTCASE_FILENAME,changeLogDir+ConstantValue.BASE_TESTCASE_FILENAME);
# -*- coding:utf-8 -*- import DealWithFile import os import Utile import ConstantValue import time import GenerateDeployPlanFile import GenerateStepFile import GenerateTestFile import sys Utile.writeLog("------------BEGIN GENGRATE PLAYNOW PACKAGE AND ZIP THE OUTPUT FILE------------") #代码的工作目录 WORKSPACE_DIR = sys.argv[1] print WORKSPACE_DIR #当前日期时间,主要是用于生成文件名 CURRENT_TIME = time.strftime('%Y-%m-%d',time.localtime(time.time())) #ChangeLog目录 CHANGELOG_DIR=WORKSPACE_DIR+"\\ChangeLog" #ChangeLog目录中readme文件路径 CHANGE_LOG_FILE= CHANGELOG_DIR+"\\"+sys.argv[2] #文档模板目录 PLAYNOW_DOCMENT_TEMPLATE_DIR=WORKSPACE_DIR+"\\DeployTemplate" #读出当期上线的版本 CURRENTVERSION = Utile.deploymentPlan_readTagString(ConstantValue.RELEASE_VERSION_TAG, ConstantValue.RELEASE_VERSION_TAG_END, CHANGE_LOG_FILE) Utile.writeLog("---current application version = "+CURRENTVERSION+"---") #输出目录
def generateStepFile(docTempdir, changeLogFile, changeLogDir, installPackageName): #生成部署步骤 Utile.writeLog("生成部署步骤") tempFile = 'deployStepsTemp' Utile.generalFile(ConstantValue.CHANGELOG_UPDATEAPPLICATION_TAG, ConstantValue.CHANGELOG_UPDATEAPPLICATION_TAG_END, changeLogFile, tempFile) orgF = open(tempFile, 'r') steps = orgF.readlines() orgF.close() for line in steps: if (line.strip().strip('\n').split(':')[1] == 'false'): Utile.deleteRow( docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, ConstantValue.DEPLOYMENT_STEPS_TAG_MAPPING[line.strip().strip( '\n').split(':')[0]]) del ConstantValue.DEPLOYMENT_STEPS[line.strip().strip('\n').split( ':')[0]] deployStepF = open("temp", 'w') for name, steps in OrderedDict( sorted(ConstantValue.DEPLOYMENT_STEPS.items(), key=lambda t: t[0])).items(): deployStepF.write(steps) deployStepF.close() Utile.insertFile(ConstantValue.DEPLOMENT_RSTFILE_UPDATESTEP_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, "temp") #生成数据库更新步骤文档 generateDatabaseStep(docTempdir, changeLogDir, changeLogFile) #生成playnow service更新步骤 generatePlayNowServiceStep(docTempdir, changeLogDir, changeLogFile) #生成PlayNow Managerment更新步骤 Utile.writeLog("生成PlayNow Managerment更新步骤") Utile.insertFile( ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_MANAGERMENTSTEP_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, changeLogDir + ConstantValue.PLAYNOW_MANAGERSETP_FILENAME) Utile.generalFile( ConstantValue.CHANGELOG_PLANNOW_MANAGERMENT_WEBCONFIG_TAG, ConstantValue.CHANGELOG_PLANNOW_MANAGERMENT_WEBCONFIG_TAG_END, changeLogFile, 'temp', True, '****') Utile.insertFile(ConstantValue.PLAYNOWMANAGERMENT_WEBCONFIG_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, 'temp') #生成WebAppStore更新步骤 Utile.writeLog("生成WebAppStore更新步骤") Utile.insertFile( ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_WEBAPPSTORESTEP_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, changeLogDir + ConstantValue.WEBAPPSTORESETPS_FILENAME) Utile.generalFile(ConstantValue.CHANGELOG_WEBAPPSTORE_WEBCONFIG_TAG, ConstantValue.CHANGELOG_WEBAPPSTORE_WEBCONFIG_TAG_END, changeLogFile, 'temp', True, '****') Utile.insertFile(ConstantValue.WEBAPPSTORE_WEBCONFIG_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, 'temp') #生成WinService更新步骤 Utile.writeLog("生成WinService更新步骤") Utile.insertFile( ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_WINSERVICESTEP_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, changeLogDir + ConstantValue.PLAYNOW_WINSERVICESETP_FILENAME) Utile.generalFile( ConstantValue.CHANGELOG_PLANNOW_WINSERVICE_CONFIG_TAG, ConstantValue.CHANGELOG_PLANNOW_WINSERVICE_CONFIG_TAG_END, changeLogFile, 'temp', True, '****') Utile.insertFile(ConstantValue.PLAYNOWWINSERVICE_WEBCONFIG_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, 'temp') #替换包名字符串 Utile.writeLog("替换包名字符串") Utile.replaceFileTag( ConstantValue.DEPLOMENT_RSTFILE_PLAYNOW_INSTALLPACEAGENAME_TAG, docTempdir + ConstantValue.DEPLOYMENT_STEPS_FILENAME, installPackageName) os.remove("temp") os.remove(tempFile)