Rev 3616 | Blame | Last modification | View Log | RSS feed
<?xml version="1.0" ?><package><comment>PrimalCode wizard generated file.</comment><job id="GetComponents" args="/pv_id:24498 /f:Y" prompt="no"><?job error="true" debug="true" ?><runtime><named helpstring="Package Name" name="pkg_name" required="false" type="string"/><named helpstring="Package Version" name="pkg_version" required="false" type="string"/><named helpstring="Package primary key" name="pv_id" required="false" type="string"/><named helpstring="Force Release Notes Generation" name="f" required="false" type="string"/><usage>Usage:on_Make_Official.wsf [/pkg_name:value] [/pkg_version:value]ORon_Make_Official.wsf [/pv_id:value]Options:pkg_name : Package Namepkg_version : Package Versionpv_id : Package Version primary keyf: Set to [Y] to force release notes generation</usage></runtime><object id="CDOMessage_Class" progid="CDO.Message" events="true"/><object id="Oracle_Objects_For_OLE" progid="OracleInProcServer.XOraSession" events="true"/><script language="VBScript" src="common_subs.vbs"/><script language="VBScript" src="config.vbs"/><script language="VBScript" src="pkg_archive.vbs"/><script id="GetComponents" language="VBScript"><![CDATA[Option Explicit'=====================================================' Name: GetComponents' Description: Connects to dpkg_archive and gets the' content of folders and files of certain' package. It then stores this info into' Release Manager database. This info can' later be included in release notes Or' searched with search engine.' INPUT: pkg_name' pkg_version'====================================================='================ Variable Definition ================Dim compARR()Dim objArgsDim parPv_idDim parPkg_nameDim parRtag_nameDim parProj_idDim parPkg_VersionDim No_Components'=============== Constants Declaration ===============Const COL_file_name = 0Const COL_file_path = 1Const COL_byte_size = 2Const COL_crc_cksum = 3Const COL_crc_modcrc= 4Const NUMBER_OF_COLS_IN_ARRcomp = 5Const MODCRC_FILE_TYPES = "*.thx" ' Comma separated file types to be CRCed with modcrc. E.g. "*.thx, *.bin, *.blah"'================== Variable Init ====================No_Components = True'====================================================='-----------------------------------------------------------------------------------------------------------------Function Get_All_Files ( SSpath )Dim sysShell, oExec, outStdErr, outStrOutSet sysShell = WScript.CreateObject("WScript.Shell")Set oExec = sysShell.Exec( "cmd /c dir /S /B /A:-D "& SSpath )outStrOut = oExec.StdOut.ReadAllGet_All_Files = outStrOutEnd Function'-----------------------------------------------------------------------------------------------------------------Function Get_All_Folders ( SSpath )Dim sysShell, oExec, outStdErr, outStrOutSet sysShell = WScript.CreateObject("WScript.Shell")Set oExec = sysShell.Exec( "cmd /c dir /S /B /A:D "& SSpath )outStrOut = oExec.StdOut.ReadAllGet_All_Folders = outStrOutEnd Function'-----------------------------------------------------------------------------------------------------------------Function File_Extention ( SSfile_name )If InStr ( SSfile_name, "." ) ThenFile_Extention = Right ( SSfile_name, Len(SSfile_name) - InStrRev( SSfile_name, "." ) + 1 )Else' No dot seperatorFile_Extention = ""End IfEnd Function'-----------------------------------------------------------------------------------------------------------------Sub Split_Path ( SSpath, outFile_name, outFile_path, outFile_ext )Dim rightSlashLocIf InStr( SSpath, "\" ) ThenrightSlashLoc = InStrRev( SSpath, "\" )outFile_path = Left( SSpath, rightSlashLoc )outFile_name = Replace( SSpath, outFile_path, "" )outFile_ext = File_Extention ( outFile_name )ElseoutFile_name = SSpathoutFile_path = ""outFile_ext = File_Extention ( outFile_name )End IfEnd Sub'-----------------------------------------------------------------------------------------------------------------Sub Generate_CRC ( SSfile_name, SSfile_path, SSfile_ext, outSize, outCRC_cksum, outCRC_modcrc )Dim ModCRC_fileTypesModCRC_fileTypes = Replace( MODCRC_FILE_TYPES, " ", "" ) ' Remove spacesModCRC_fileTypes = Replace( ModCRC_fileTypes, "*", "" ) ' Remove *ModCRC_fileTypes = "|"& Replace( ModCRC_fileTypes, ",", "||" ) &"|" ' Convert to from "a,b,c" to "|a||b||c|"' --- cksum CRC ---Call CRC_cksum ( SSfile_path & SSfile_name, outCRC_cksum, outSize )' --- modcrc CRC ---If InStr( ModCRC_fileTypes, "|"& SSfile_ext &"|" ) > 0 ThenCall CRC_modcrc ( Left( SSfile_name, Len(SSfile_name) - Len(SSfile_ext) ), SSfile_path, outCRC_modcrc, outSize )End IfWScript.Echo SSfile_name &" "& outCRC_cksum &" "& outSize &" "& outCRC_modcrcEnd Sub'-----------------------------------------------------------------------------------------------------------------Sub Get_Components ( ARRcomp )Dim fileSys, rootPath, contentsDump, recCnt, objPkgFileSysDim file_ext, path, tempARRSet objPkgFileSys = New PkgArchive' Configure target machineobjPkgFileSys.Remote_Host = TELNET_MACHINEobjPkgFileSys.Archive_Path = TELNET_DPKG_ARCHIVEobjPkgFileSys.Map_Network_Drive UNC_ARCHIVE, MappedDrive ' Map Drive if requiredrootPath = MappedDrive & DPKG_ARCHIVE &"\"& parPkg_name &"\"& parPkg_VersionSet fileSys = CreateObject("Scripting.FileSystemObject")Dim contentsFolderDump, aFolders, oFolders, sFolderNameIf fileSys.FolderExists( rootPath ) ThenobjPkgFileSys.Ensure_Read_Write parPkg_name, parPkg_version ' Make sure all files and folders can be readcontentsDump = Get_All_Files ( rootPath )contentsFolderDump = Get_All_Folders ( rootPath )contentsDump = contentsFolderDump & contentsDump ' Combine Files and FolderscontentsDump = Replace( contentsDump, "/", "\" ) ' Make sure "\" is usedcontentsDump = Replace( contentsDump, rootPath &"\", "" ) ' Remove UNC root pathcontentsFolderDump = Replace( contentsFolderDump, "/", "\" ) ' Make sure "\" is usedcontentsFolderDump = Replace( contentsFolderDump, rootPath &"\", "" ) ' Remove UNC root pathtempARR = Split( contentsDump, VBNewLine ) ' Split each line containing path + file nameaFolders = Split( contentsFolderDump, VBNewLine ) ' Split each line containing path'-- Populate Folder dictionary --Set oFolders = CreateObject("Scripting.Dictionary")' Continue if folders existIf Len(contentsFolderDump) > 1 ThenFor Each sFolderName In aFoldersoFolders.Item ( sFolderName ) = ""NextEnd If'-- Generate file listWScript.Echo "Attempting to generate file list..."recCnt = 0For Each path In tempARRIf path <> "" ThenReDim Preserve ARRcomp( NUMBER_OF_COLS_IN_ARRcomp, recCnt )Call Split_Path ( path, _ARRcomp( COL_file_name, recCnt ), _ARRcomp( COL_file_path, recCnt ), _file_ext )' Don't do CRC on foldersIf oFolders.Exists( path ) Then' Store Folder informationARRcomp( COL_file_name, recCnt ) = ""ARRcomp( COL_file_path, recCnt ) = pathARRcomp( COL_byte_size, recCnt ) = 0ARRcomp( COL_crc_cksum, recCnt ) = ""ARRcomp( COL_crc_modcrc, recCnt ) = ""ElseCall Generate_CRC ( ARRcomp( COL_file_name, recCnt ), _rootPath &"\"& ARRcomp( COL_file_path, recCnt ), _file_ext, _ARRcomp( COL_byte_size, recCnt ), _ARRcomp( COL_crc_cksum, recCnt ), _ARRcomp( COL_crc_modcrc, recCnt ) )End IfrecCnt = recCnt + 1End IfNo_Components = FALSENextElseCall Raise_Event ( enumEVENT_ERROR, "[job:GetComponents sub:Get_Components]", rootPath, "Path not found!", enum_RELEASE_NOTES_NOT_FOUND_IN_ARCHIVE )End IfEnd Sub'-----------------------------------------------------------------------------------------------------------------Sub Insert_Into_Database ( ARRcomp )Dim iIf No_Components Then Exit Sub ' If no file components are found, there is nothing to do.' Insert into databaseIf parPv_id <> -1 ThenOraSession.BeginTransWScript.Echo "Deleting old entries from [release_components] table for PV_ID = "& parPv_idOraDatabase.ExecuteSQL "DELETE FROM release_components WHERE pv_id = "& parPv_id ' Make sure it doesnot existsWScript.Echo "Inserting new component details In [release_components] table."For i = 0 To UBound( ARRcomp, 2 )OraDatabase.ExecuteSQL _" INSERT INTO release_components ( pv_id, file_name, file_path, byte_size, crc_cksum, crc_modcrc )"&_" VALUES ( "&_parPv_id &", "&_" '"& ARRcomp( COL_file_name, i ) &"', "&_" '"& ARRcomp( COL_file_path, i ) &"', "&_ARRcomp( COL_byte_size, i ) &", "&_" '"& ARRcomp( COL_crc_cksum, i ) &"', "&_" '"& ARRcomp( COL_crc_modcrc, i ) &"' "&_" )"NextOraSession.CommitTransEnd IfEnd Sub'-----------------------------------------------------------------------------------------------------------------'-------------------- MAIN LINE ----------------------WScript.Echo "==================== job:GenerateComponents ===================="Set objArgs = WScript.ArgumentsIf (objArgs.Unnamed.Count > 0) ThenWscript.Echo "ERROR: Unnamed parameters!"objArgs.ShowUsageWScript.QuitElseparPkg_name = objArgs.Named.Item("pkg_name")parPkg_Version = objArgs.Named.Item("pkg_version")parPv_id = objArgs.Named.Item("pv_id")parRtag_name = objArgs.Named.Item("rtag_name")parProj_id = objArgs.Named.Item("proj_id")If ( parPkg_name <> "" AND parPkg_Version <> "") ThenCall Get_PV_ID ( parPkg_name, parPkg_Version, parPv_id )ElseIf parPv_id <> "" ThenCall Get_Pkg_Name_Version ( parPv_id, parPkg_name, parPkg_Version )ElseobjArgs.ShowUsageWScript.QuitEnd IfEnd IfCall Check_Requirements_To_Proceed ( parPv_id )Call Get_Components ( compARR )Call Insert_Into_Database ( compARR )WScript.Echo "Components generated successfully!"]]></script></job><job id="GenerateReleaseNotes" args="/pv_id:30261 /f:Y" prompt="no"><?job error="true" debug="true" ?><runtime><named helpstring="Package Name" name="pkg_name" required="false" type="string"/><named helpstring="Package Version" name="pkg_version" required="false" type="string"/><named helpstring="Package primary key" name="pv_id" required="false" type="simple"/><named helpstring="Force Release Notes Generation" name="f" required="false" type="string"/><named helpstring="Output release notes file" name="file" required="false" type="string"/><usage>Usage:on_Make_Official.wsf [/pkg_name:value] [/pkg_version:value]ORon_Make_Official.wsf [/pv_id:value]Options:pkg_name : Package Namepkg_version : Package Versionpv_id : Package Version primary key</usage></runtime><object id="Oracle_Objects_For_OLE" progid="OracleInProcServer.XOraSession" events="true"/><resource id="Runtime Dependencies"><![CDATA[**** SSH keySSH needs to be run manually first time to obtain the key fromthe telnet server.Example: plink -ssh username@telnetserver**** SMTP serverTo be able to receive email notifications from the web server,make sure that SMTP server is running. This server is also usedby Release Manager notification facility.]]></resource><script language="VBScript" src="templates\style_b_generator.vbs"/><script language="VBScript" src="templates\style_a_generator.vbs"/><script language="VBScript" src="common_subs.vbs"/><script language="VBScript" src="config.vbs"/><script language="VBScript" src="pkg_archive.vbs"/><script id="GenerateReleaseNotes" language="VBScript"><![CDATA[Option Explicit'=====================================================' Name: GenerateReleaseNotes' Description: Generates release notes from' Release Manager database and stores' it into doc folder on dpkg / deploy' INPUT: pkg_name' pkg_version'====================================================='================ Variable Definition ================Dim objArgsDim parPv_idDim parPkg_nameDim parRtag_nameDim parProj_idDim parPkg_Version'=============== Constants Declaration ===============Const enumLoc_iss_db = 0Const enumLoc_iss_id = 1Const enumLoc_iss_num = 2Const enumLoc_summary = 3Const enumLoc_status = 4Const enumLoc_priority = 5Const enumLoc_issue_type = 6Const enumLoc_submitter = 7Const enumLoc_defect_in = 8Const enumLoc_submit_date = 9Const enumLoc_project = 10Const enumLoc_owner = 11Const enumLoc_product = 12Const enumLoc_approver = 13Const enumLoc_package = 14Const enumLoc_description = 15Const enumLoc_notes_log = 16Const enumLoc_release_id = 17Const enumLoc_client_ref = 18Const enumLoc_severity = 19Const enumLoc_change_request = 20'================== Variable Init ===================='====================================================='-----------------------------------------------------------------------------------------------------------------Sub Get_Snippet ( SSname, SSnotesSTR, outSnippetSTR, outInsertFrom )Dim beginSnippet, endSnippetbeginSnippet = InStr( SSnotesSTR, "SnippetName="""& SSname &"""")If beginSnippet <> 0 ThenbeginSnippet = InStr( beginSnippet, SSnotesSTR, VBNewLine ) ' Find beginning of the codeendSnippet = InStr( beginSnippet, SSnotesSTR, "EndOfSnippet" ) - 1outInsertFrom = InStr( endSnippet, SSnotesSTR, "-->" ) + 3outSnippetSTR = Mid( SSnotesSTR, beginSnippet, endSnippet - beginSnippet )ElseCall Raise_Event ( enumEVENT_ERROR, "[job:GenerateReleaseNotes sub:Get_Snippet]", _"SnippetName: "& SSname , _"SnippetName not found!", enum_RELEASE_NOTES_FAILED )End IfEnd Sub'-----------------------------------------------------------------------------------------------------------------Function ArrayRecord ( NNcolumn, SSrecCode, DDdepIss, AAdepIss )If NOT DDdepIss.Exists ( SSrecCode ) Then Exit FunctionArrayRecord = NVL( AAdepIss ( NNcolumn, CInt( DDdepIss.Item (SSrecCode) ) ) )End Function'-----------------------------------------------------------------------------------------------------------------Sub Insert_To_Page ( notesSTR, insertFrom, insterSTR )notesSTR = Left( notesSTR, insertFrom ) & insterSTR & Right( notesSTR, Len(notesSTR) - insertFrom )insterSTR = NULL ' Clear the insert stringEnd Sub'-----------------------------------------------------------------------------------------------------------------Sub Group_By ( rsG, outCurrG, snippetSTR, outSTR, BBchanged )If rsG = outCurrG Then Exit SuboutSTR = outSTR & snippetSTRoutCurrG = rsGBBchanged = TRUEEnd Sub'-----------------------------------------------------------------------------------------------------------------Sub Generate_Release_Notes ( )Dim objPkgFileSys, docPath, rootPathDim notesSTR, pkgTypeSet objPkgFileSys = New PkgArchiveobjPkgFileSys.Map_Network_Drive UNC_ARCHIVE, MappedDrive ' Map Drive if requiredpkgType = Get_Package_Type ( parPv_id )objPkgFileSys.Remote_Host = TELNET_MACHINErootPath = MappedDrive & DPKG_ARCHIVE &"\"& parPkg_name &"\"& parPkg_VersionobjPkgFileSys.Archive_Path = TELNET_DPKG_ARCHIVEobjPkgFileSys.Create_Doc_Folder parPkg_name, parPkg_Version, DOC_FOLDER ' Create document folder if required' --------------- RELEASE NOTES ----------------Select Case pkgTypeCase enumPKG_TYPE_GENERIC_DPKGCall Generate_Notes_Style_A ( parPv_id, notesSTR, parRtag_name, parProj_id )Case enumPKG_TYPE_DB_PATCH_DPKGCall Generate_Notes_Style_A ( parPv_id, notesSTR, parRtag_name, parProj_id )Case enumPKG_TYPE_DEVICE_DPKGCall Generate_Notes_Style_A ( parPv_id, notesSTR, parRtag_name, parProj_id )Case enumPKG_TYPE_ERG_PRODUCTCall Generate_Notes_Style_B ( parPv_id, notesSTR, parRtag_name, parProj_id )Case ElseCall Generate_Notes_Style_A ( parPv_id, notesSTR, parRtag_name, parProj_id )End SelectIf WScript.Arguments.Named.Item("file") = "" ThenCall SaveFile( rootPath &"\"& DOC_FOLDER, Format_FileName( parPkg_name, parPkg_Version, parPv_id ) , notesSTR )ElseCall SaveFile( AppPath &"temp", WScript.Arguments.Named.Item("file") , notesSTR )End If' ----------------------------------------------End Sub'-----------------------------------------------------------------------------------------------------------------Function Format_CQ_CHANGE_REQUEST ( sInternal, sExternal )If NOT IsNull( sInternal ) ThenIf UCase( sInternal ) = "TRUE" AND UCase( sExternal ) = "TRUE" ThenFormat_CQ_CHANGE_REQUEST = "Internal/External"ElseIf UCase( sInternal ) = "TRUE" ThenFormat_CQ_CHANGE_REQUEST = "Internal"ElseIf UCase( sExternal) = "TRUE" ThenFormat_CQ_CHANGE_REQUEST = "External"ElseFormat_CQ_CHANGE_REQUEST = "--"End IfElseFormat_CQ_CHANGE_REQUEST = "--"End IfEnd Function'-----------------------------------------------------------------------------------------------------------------Function Format_Reason_For_Release ( nIss_id, sReason )If IsNull( nIss_id ) ThenIf IsNull( sReason ) ThenFormat_Reason_For_Release = "Reason for this version is not specified."ElseFormat_Reason_For_Release = FormatTextBox( HTML_Encode ( sReason ) )End IfElseIf IsNull( sReason ) ThenFormat_Reason_For_Release = ""ElseFormat_Reason_For_Release = FormatTextBox( HTML_Encode ( sReason ) )End IfEnd IfEnd Function'-----------------------------------------------------------------------------------------------------------------Sub Get_Dependency_CQ_Issues ( SSsql, OOrsCQ, DDdepIss, AAiss )Dim recCntIf OOrsCQ.State = 1 ThenOOrsCQ.CloseEnd IfOOrsCQ.ActiveConnection = CQ_connOOrsCQ.Source = SSsqlOOrsCQ.CursorType = 0OOrsCQ.CursorLocation = 2OOrsCQ.LockType = 3OOrsCQ.Open()recCnt = 1While ((NOT OOrsCQ.BOF) AND (NOT OOrsCQ.EOF))ReDim Preserve AAiss( 20, recCnt )DDdepIss.Add Cstr(OOrsCQ("iss_db") &"."& OOrsCQ("iss_id")), Cstr(recCnt)AAiss( enumLoc_iss_db, recCnt ) = NVL( OOrsCQ("iss_db") )AAiss( enumLoc_iss_id, recCnt ) = NVL( OOrsCQ("iss_id") )AAiss( enumLoc_iss_num, recCnt ) = NVL( OOrsCQ("iss_num") )AAiss( enumLoc_summary, recCnt ) = NVL( FormatTextBox ( HTML_Encode ( OOrsCQ("summary") ) ) )AAiss( enumLoc_status, recCnt ) = NVL( OOrsCQ("status") )AAiss( enumLoc_priority, recCnt ) = NVL( OOrsCQ("priority") )AAiss( enumLoc_issue_type, recCnt ) = NVL( OOrsCQ("issue_type") )AAiss( enumLoc_submitter, recCnt ) = NVL( OOrsCQ("submitter") )AAiss( enumLoc_defect_in, recCnt ) = NVL( OOrsCQ("release_part1") &"."& OOrsCQ("release_part2") &"."& OOrsCQ("release_part3") )AAiss( enumLoc_submit_date, recCnt ) = NVL( EuroDate ( OOrsCQ("submit_date") ) )AAiss( enumLoc_project, recCnt ) = NVL( OOrsCQ("project") )AAiss( enumLoc_owner, recCnt ) = NVL( OOrsCQ("owner") )AAiss( enumLoc_product, recCnt ) = NVL( OOrsCQ("product") )AAiss( enumLoc_approver, recCnt ) = NVL( OOrsCQ("approver") )AAiss( enumLoc_package, recCnt ) = NVL( OOrsCQ("package_ref") )AAiss( enumLoc_description, recCnt ) = NVL( FormatTextBox ( HTML_Encode ( OOrsCQ("description") ) ) )AAiss( enumLoc_notes_log, recCnt ) = NVL( FormatTextBox ( HTML_Encode ( OOrsCQ("notes_log") ) ) )AAiss( enumLoc_release_id, recCnt ) = NVL( OOrsCQ("release_id") )AAiss( enumLoc_client_ref, recCnt ) = NVL( OOrsCQ("client_ref") )AAiss( enumLoc_severity, recCnt ) = NVL( OOrsCQ("severity") )AAiss( enumLoc_change_request, recCnt ) = Format_CQ_CHANGE_REQUEST ( OOrsCQ("cr_internal"), OOrsCQ("cr_external") )recCnt = recCnt + 1OOrsCQ.MoveNextWEndOOrsCQ.CloseEnd Sub'-----------------------------------------------------------------------------------------------------------------Sub Get_ORA_Package_Issues ( SSstate, outCQSQL )Dim rsTemp, sqlstr, DEVIiss, TDSEissSelect Case SSstateCase "Fixed_Issues"sqlstr = " SELECT iss_db, iss_id, iss_state"&_" FROM CQ_ISSUES "&_" WHERE pv_id = "& parPv_id &_" AND iss_state = "& enumISSUES_STATE_FIXEDCase "Outstanding_Issues"sqlstr = " SELECT iss_db, iss_id, iss_state"&_" FROM CQ_ISSUES "&_" WHERE pv_id = "& parPv_id &_" AND iss_state = "& enumISSUES_STATE_IMPORTEDCase "Dependency_Issues"sqlstr = " SELECT iss_db, iss_id"&_" FROM CQ_ISSUES "&_" WHERE iss_state = "& enumISSUES_STATE_FIXED &_" AND pv_id IN ( SELECT dpv_id FROM PACKAGE_DEPENDENCIES WHERE pv_id = "& parPv_id &" )"End SelectSet rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))DEVIiss = "-1"TDSEiss = "-1"While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))If CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) ThenDEVIiss = DEVIiss &","& rsTemp("iss_id")ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) ThenTDSEiss = TDSEiss &","& rsTemp("iss_id")End IfrsTemp.MoveNextWEnd' Construct SQL statement for CQ databaseoutCQSQL = ReadFile( AppPath & QUERIES_FOLDER & "\cq_issues_full.sql" )outCQSQL = Replace( outCQSQL, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)outCQSQL = Replace( outCQSQL, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID)outCQSQL = Replace( outCQSQL, "/*DEVIiss*/", DEVIiss)outCQSQL = Replace( outCQSQL, "/*TDSEiss*/", TDSEiss)rsTemp.CloseSet rsTemp = nothingEnd Sub'-----------------------------------------------------------------------------------------------------------------Sub Get_JIRA_Package_Issues ( outJIRASQL )Dim rsTemp, sqlstr, JIRAisssqlstr = " SELECT *"&_" FROM JIRA_ISSUES"&_" WHERE pv_id = "& parPv_idSet rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))JIRAiss = "'-1'"While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))JIRAiss = JIRAiss &",'"& rsTemp("iss_key")&"'"rsTemp.MoveNextWEnd'Construct SQL statement for JIRA databaseIf Len(JIRAiss) <> 1 ThenoutJIRASQL = "SELECT I.pkey AS iss_num, I.summary, ISS.pname AS state, IT.pname as IssueType, PR.pname as Priority, I.RESOLUTION "&_" FROM jiraissue I, issuestatus ISS, issuetype IT, priority PR "&_" WHERE I.pkey IN ("& JIRAIss &") "&_" AND I.issuestatus = ISS.ID "&_" AND IT.ID = I.issuetype "&_" AND PR.ID = I.PRIORITY "End IfrsTemp.CloseSet rsTemp = nothingEnd Sub'-----------------------------------------------------------------------------------------------------------------Sub Get_CQ_Issues ( SSsql, OOrsCQ )OOrsCQ.ActiveConnection = CQ_connOOrsCQ.Source = SSsqlOOrsCQ.CursorType = 0OOrsCQ.CursorLocation = 2OOrsCQ.LockType = 3OOrsCQ.Open()End Sub'-----------------------------------------------------------------------------------------------------------------Sub Get_JIRA_Issues ( SSsql, OOrsJIRA )OOrsJIRA.ActiveConnection = JIRA_connOOrsJIRA.Source = SSsqlOOrsJIRA.CursorType = 0OOrsJIRA.CursorLocation = 2OOrsJIRA.LockType = 3OOrsJIRA.Open()End Sub'-----------------------------------------------------------------------------------------------------------------Sub EditReleaseInfoDetails ( nIssDB, nIssId, sNewInfo, sCurrentInfo )Dim rsQry, Source, posIf NOT IsNull(sCurrentInfo) Thenpos = InStr( sCurrentInfo, sNewInfo )'Wscript.Echo pos'Wscript.Echo Len(sCurrentInfo)If pos = 0 ThenIf Len(sCurrentInfo) = 0 ThensCurrentInfo = sNewInfoElsesCurrentInfo = sCurrentInfo + VBNewLine + sNewInfoEnd IfElsesCurrentInfo = sCurrentInfoEnd IfElsesCurrentInfo = sNewInfoEnd IfWscript.Echo sCurrentInfoSet rsQry = CreateObject("ADODB.Connection")rsQry.Open CQ_connIf CInt(nIssDB) = enumCLEARQUEST_DEVI_ID ThenSource = "EXEC cq_devi.dbo.sp_RM_editReleaseInfoDetails "& nIssId &", '"& sCurrentInfo &"';"rsQry.Execute SourceEnd If'On Error Resume NextrsQry.Close()Set rsQry = nothingEnd Sub'-----------------------------------------------------------------------------------------------------------------'-------------------- MAIN LINE ----------------------WScript.Echo "==================== job:GenerateReleaseNotes ===================="Set objArgs = WScript.ArgumentsIf (objArgs.Unnamed.Count > 0) ThenWscript.Echo "ERROR: Unnamed parameters!"objArgs.ShowUsageWScript.QuitElseparPkg_name = objArgs.Named.Item("pkg_name")parPkg_Version = objArgs.Named.Item("pkg_version")parPv_id = objArgs.Named.Item("pv_id")parRtag_name = objArgs.Named.Item("rtag_name")parProj_id = objArgs.Named.Item("proj_id")If ( parPkg_name <> "" AND parPkg_Version <> "") ThenCall Get_PV_ID ( parPkg_name, parPkg_Version, parPv_id )ElseIf parPv_id <> "" ThenCall Get_Pkg_Name_Version ( parPv_id, parPkg_name, parPkg_Version )ElseobjArgs.ShowUsageWScript.QuitEnd IfEnd IfCall Check_Requirements_To_Proceed ( parPv_id )Call Generate_Release_Notes ()WScript.Echo "Release Notes generated successfully!"]]></script></job><job id="PostRun" args="/pv_id:30261 /f:Y" prompt="no"><?job error="true" debug="true" ?><runtime><named helpstring="Package Name" name="pkg_name" required="false" type="string"/><named helpstring="Package Version" name="pkg_version" required="false" type="string"/><named helpstring="Package primary key" name="pv_id" required="false" type="simple"/><named helpstring="Force Release Notes Generation" name="f" required="false" type="string"/><usage>Usage:on_Make_Official.wsf [/pkg_name:value] [/pkg_version:value]ORon_Make_Official.wsf [/pv_id:value]Options:pkg_name : Package Namepkg_version : Package Versionpv_id : Package Version primary key</usage></runtime><object id="Oracle_Objects_For_OLE" progid="OracleInProcServer.XOraSession" events="true"/><script language="VBScript" src="common_subs.vbs"/><script language="VBScript" src="config.vbs"/><script language="VBScript" src="pkg_archive.vbs"/><script id="PostRun" language="VBScript"><![CDATA[Option Explicit'=====================================================' Name: PostRun' Description: Process ran after the release notes' have been generated.' INPUT: pkg_name' pkg_version'====================================================='================ Variable Definition ================Dim objArgsDim parPv_idDim parPkg_nameDim parRtag_nameDim parProj_idDim parPkg_VersionDim objPkgFileSysDim rootPathDim notesLocationDim outRTAG_IDDim outPKG_ID'=============== Constants Declaration ==============='================== Variable Init ====================Set objPkgFileSys = New PkgArchive'====================================================='-----------------------------------------------------------------------------------------------------------------Sub Move_Files_From_Web_Archive ()Dim oFileSys, sPath, sSourcePath, sDestPathSet oFileSys = CreateObject("Scripting.FileSystemObject")' Move doc folder contentssSourcePath = AppPath & TEMP_FOLDER &"\"& parPkg_name &"\"& parPkg_Version &"\"& DOC_FOLDERsDestPath = rootPath &"\"& DOC_FOLDERIf oFileSys.FolderExists( sSourcePath ) ThenWScript.Echo "Moving attachments from Web Server..."On Error Resume NextoFileSys.CopyFile sSourcePath &"\*", sDestPath, True ' Copy with overwriteCall ErrorCheck ( "[job:PostRun sub:Move_Files_From_Web_Archive]", _"sSourcePath: "& sSourcePath & VBNewLine &_"sDestPath: "& sDestPath )oFileSys.DeleteFolder sSourcePath, True ' Clean up'Call ErrorCheck ( "[job:PostRun sub:Move_Files_From_Web_Archive]", _' "Delete Folder: "& sSourcePath )End IfCall CleanUp_Folders ( AppPath & TEMP_FOLDER )End Sub'-----------------------------------------------------------------------------------------------------------------Sub CleanUp_Folders ( sPath )Dim currentFolder' Attempt to remove PKG_NAME/PKG_VERSION folders on web serverWScript.Echo "Cleaning temp files/folders at Web Server..."On Error Resume Next' Attempting to remove PKG_VERSION/currentFolder = sPath &"\"& parPkg_name &"\"& parPkg_versionIf Folder_Is_Empty ( currentFolder ) ThenCall DeleteFolder( currentFolder )'Else' Call Raise_Event ( enumEVENT_WARNING, "[job:PostRun sub:CleanUp_Folders]", _' "Deleting Folder: "& currentFolder , _' "PKG_VERSION Folder is not empty and is not removed! Skipping this process.", NULL )End IfCall ErrorCheck ( "[job:PostRun sub:CleanUp_Folders]", _"Delete Folder: "& currentFolder )' Attempting to remove PKG_NAME/currentFolder = sPath &"\"& parPkg_nameIf Folder_Is_Empty ( currentFolder ) ThenCall DeleteFolder( currentFolder )'Else' Call Raise_Event ( enumEVENT_WARNING, "[job:PostRun sub:CleanUp_Folders]", _' "Deleting Folder: "& currentFolder , _' "PKG_NAME Folder is not empty and is not removed! Skipping this process.", NULL )End IfCall ErrorCheck ( "[job:PostRun sub:CleanUp_Folders]", _"Delete Folder: "& currentFolder )End Sub'-----------------------------------------------------------------------------------------------------------------Sub Initial_Setup ( oPkgFileSys, sRootPath, sNotesLocation )Dim MappedDriveoPkgFileSys.Map_Network_Drive UNC_ARCHIVE, MappedDrive ' Map Drive if requiredoPkgFileSys.Remote_Host = TELNET_MACHINEoPkgFileSys.Archive_Path = TELNET_DPKG_ARCHIVEsNotesLocation = URL_PATH_DPKG_ARCHIVE &"/"& parPkg_name &"/"& parPkg_Version &"/"& DOC_FOLDER &"/"& Format_FileName( parPkg_name, parPkg_Version, parPv_id )sRootPath = MappedDrive & DPKG_ARCHIVE &"\"& parPkg_name &"\"& parPkg_VersionEnd Sub'-----------------------------------------------------------------------------------------------------------------'-------------------- MAIN LINE ----------------------WScript.Echo "==================== job:PostRun ===================="Set objArgs = WScript.ArgumentsIf (objArgs.Unnamed.Count > 0) ThenWscript.Echo "ERROR: Unnamed parameters!"objArgs.ShowUsageWScript.QuitElseparPkg_name = objArgs.Named.Item("pkg_name")parPkg_Version = objArgs.Named.Item("pkg_version")parPv_id = objArgs.Named.Item("pv_id")parRtag_name = objArgs.Named.Item("rtag_name")parProj_id = objArgs.Named.Item("proj_id")If ( parPkg_name <> "" AND parPkg_Version <> "") ThenCall Get_PV_ID ( parPkg_name, parPkg_Version, parPv_id )ElseIf parPv_id <> "" ThenCall Get_Pkg_Name_Version ( parPv_id, parPkg_name, parPkg_Version )ElseobjArgs.ShowUsageWScript.QuitEnd IfEnd IfCall Check_Requirements_To_Proceed ( parPv_id )Call Initial_Setup ( objPkgFileSys, rootPath, notesLocation )Call Move_Files_From_Web_Archive ()WScript.Echo "Making all READ ONLY from folder "& parPkg_Version &"/"objPkgFileSys.All_Read_Only parPkg_name, parPkg_Version ' Make sure all file and folders are read only. Starting from version folder.Call Write_To_Release_Notes_Info ( parPv_id, notesLocation )Set objPkgFileSys = NothingWScript.Echo "PostRun completed successfully!"]]></script></job><job id="ReleaseChanged" args="/pkg_name:jats_tutorial /pkg_version:1.0.0 /rtag_id:2 /pkg_id:30261 /pv_id:30261 /proj_id:3 /mode_id:1" prompt="no"><?job error="true" debug="true" ?><runtime><named helpstring="Package Name" name="pkg_name" required="false" type="string"/><named helpstring="Package Version" name="pkg_version" required="false" type="string"/><named helpstring="Release Tag Id" name="rtag_id" required="false" type="string"/><named helpstring="Package Id" name="pkg_id" required="false" type="string"/><named helpstring="Package version Id" name="pv_id" required="false" type="string"/><named helpstring="Project Id" name="proj_id" required="false" type="string"/><named helpstring="Change Mode Id" name="mode_id" required="false" type="simple"/><usage>Usage:on_Make_Official.wsf [/pv_id:value] [/pkg_name:"value"] [/pkg_version:"value"] [/rtag_id:value] [/pkg_id:value] [/pv_id:value] [/proj_id:value] [/mode_id:value]Options:pkg_name : Package Namepkg_version : Package Versionrtag_id : Release Tag Idpkg_id : Package Idpv_id : Package version Idproj_id : Project Idmode_id : Package Change Mode Id</usage></runtime><object id="Object1" progid="OracleInProcServer.XOraSession" events="true"/><script language="VBScript" src="common_subs.vbs"/><script language="VBScript" src="config.vbs"/><script language="VBScript" src="pkg_archive.vbs"/><script id="ReleaseChanged" language="VBScript"><![CDATA[Option Explicit'=====================================================' Name: ReleaseChanged' Description: Process that is called after the content of a release has changed' INPUT:' pkg_name' pkg_version' rtag_id' pkg_id' pv_id' proj_id' mode_id'====================================================='================ Variable Definition ================Dim objArgsDim parPkg_name,parPkg_version,parRtag_id,parPkg_id,parPv_id,parProj_id,parMode_idDim objPkgFileSys'=============== Constants Declaration ==============='-----------------------------------------------------------------------------------------------------------------'================== Variable Init ====================Set objPkgFileSys = New PkgArchive'====================================================='-------------------- MAIN LINE ----------------------WScript.Echo "==================== job:ReleaseChanged ===================="Set objArgs = WScript.ArgumentsIf (objArgs.Unnamed.Count > 0) ThenWscript.Echo "ERROR: Unnamed parameters!"objArgs.ShowUsageWScript.QuitElseparPkg_name = objArgs.Named.Item("pkg_name")parPkg_Version = objArgs.Named.Item("pkg_version")parRtag_id = objArgs.Named.Item("rtag_id")parPkg_id = objArgs.Named.Item("pkg_id")parPv_id = objArgs.Named.Item("pv_id")parProj_id = objArgs.Named.Item("proj_id")parMode_id = objArgs.Named.Item("mode_id")If parPv_id = "" ThenobjArgs.ShowUsageWScript.QuitEnd IfEnd IfobjPkgFileSys.Map_Network_Drive UNC_ARCHIVE, MappedDrive ' Map Drive if requiredobjPkgFileSys.Remote_Host = TELNET_MACHINEobjPkgFileSys.Archive_Path = TELNET_DPKG_ARCHIVECall objPkgFileSys.Make_Release_Changed(parPkg_name,parPkg_version,parRtag_id,parPkg_id,parPv_id,parProj_id,parMode_id,false)Set objPkgFileSys = NothingWScript.Echo "ReleaseChanged completed successfully!"]]></script></job></package>