Subversion Repositories DevTools

Rev

Rev 5513 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'|                                                   |
'|                  REPORT                           |
'|                  Escrow                           |
'=====================================================
%>
<%
Option explicit
' Good idea to set when using redirect
Response.Expires = 0   ' always load the page, dont store

'To enable the script timeout to 10 mins
Server.ScriptTimeout=600
%>
<!--#include file="common/config.asp"-->
<!--#include file="common/common_subs.asp"-->
<!--#include file="common/globals.asp"-->
<!--#include file="common/formating.asp"-->
<!--#include file="common/qstr.asp"-->
<!--#include file="common/common_dbedit.asp"-->
<%
'------------ ACCESS CONTROL ------------------
%>
<!--#include file="_access_control_general.asp"-->
<%
'------------ Variable Definition -------------
Dim rsQry
Dim rsTemp
Dim parPv_id, parExt
Dim objReleaseContent
Dim aReleaseContent
Dim objPackageDetails
Dim BldStd
Dim outobjDetails
Dim pvIdList
Dim dpv_id
'------------ Constants Declaration -----------
'------------ Variable Init -------------------
parBom_id = Request("bom_id")
parExt = Request("ext")
Set objReleaseContent = CreateObject("Scripting.Dictionary")
Set objPackageDetails = CreateObject("Scripting.Dictionary")
Set outobjDetails = CreateObject("Scripting.Dictionary")
'----------------------------------------------
%>
<%
'----------------------------------------------------------------------------------------------------------------------------------------
Sub GetPackageInformation ( nPv_id, ByRef oPackageDetails )
   Dim rsQry, query
   query = _
   " SELECT pkg.pkg_name, pv.* "&_
   "   FROM PACKAGES pkg,"&_
   "        PACKAGE_VERSIONS pv"&_
   "  WHERE pv.pv_id = "& nPv_id &_
   "    AND pv.pkg_id = pkg.pkg_id   "

   Set rsQry = OraDatabase.DbCreateDynaset( query, 0)

   oPackageDetails.RemoveAll

   If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then
      oPackageDetails("pkg_name") = rsQry("pkg_name")
      oPackageDetails("pkg_version") = rsQry("pkg_version")
      oPackageDetails("v_ext") = rsQry("v_ext")
      oPackageDetails("pv_description") = rsQry("pv_description")
      oPackageDetails("pv_overview") = rsQry("pv_overview")
      oPackageDetails("src_path") = rsQry("src_path")
      oPackageDetails("pkg_label") = rsQry("pkg_label")
      oPackageDetails("is_build_env_required") = rsQry("is_build_env_required")

   End If

   rsQry.Close()
   Set rsQry = Nothing
End Sub
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Build_Std ( nPv_id )
   SQL_Build_Std = _
   " SELECT bs.bs_name"&_
   "  FROM RELEASE_MANAGER.PACKAGE_VERSIONS pv,"&_
   "       RELEASE_MANAGER.BUILD_STANDARDS bs"&_
   " WHERE pv.PV_ID = "& nPv_id &_
   "   AND pv.BS_ID = bs.BS_ID "
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Build_Env ( nPv_id )
   SQL_Build_Env = _
   " SELECT bm.bm_name"&_
   "  FROM  RELEASE_MANAGER.PACKAGE_BUILD_INFO pbi,"&_
   "        RELEASE_MANAGER.BUILD_MACHINES bm"&_
   " WHERE pbi.PV_ID = "& nPv_id &_
   "   AND pbi.BM_ID = bm.BM_ID "&_
   " ORDER BY UPPER(bm.BM_NAME) "
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Modules (nPv_idList)
   SQL_Modules   = _
   "SELECT DISTINCT"&_
    "   qry.DPV_ID "&_
    " FROM ("&_
    "      SELECT dep.*,"&_
    "             LEVEL AS LEVEL_NUM"&_
    "        FROM PACKAGE_DEPENDENCIES dep"&_
    "      START WITH dep.PV_ID IN ( "& nPv_idList &" ) "&_
    "      CONNECT BY PRIOR dep.DPV_ID = dep.PV_ID"&_
    "   ) qry,"&_
    "   PACKAGES pkg,"&_
   "   PACKAGE_VERSIONS pv"&_
    " WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID"
End   Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Build_Dependencies ( nPv_id )
   SQL_Build_Dependencies = _
   " SELECT dpkg.pkg_name, dpv.pkg_version"&_
   "     FROM PACKAGE_DEPENDENCIES dep,"&_
   "          PACKAGES dpkg,"&_
   "          PACKAGE_VERSIONS dpv"&_
   "    WHERE dep.pv_id = "& nPv_id &_
   "      AND dep.DPV_ID = dpv.pv_id"&_
   "      AND dpv.pkg_id = dpkg.pkg_id   "&_
   "   ORDER BY UPPER(dpkg.pkg_name) "
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Sub GetReleaseContent ( nBom_id, ByRef oReleaseContent )
   Dim rsQry, query



   query = _
   " SELECT qry.prod_id"&_
   "  FROM ("&_
   "         SELECT DISTINCT"&_
   "          osc.PROD_ID,"&_
   "            pkg.pkg_name,"&_
   "         pv.pkg_version,"&_
   "         1   as   seq_num"&_
   "         FROM bom_contents bc,"&_
   "         operating_systems os, "&_
   "         os_contents osc,"&_
   "         PACKAGES pkg,"&_
   "         PACKAGE_VERSIONS pv,"&_
   "         PRODUCT_DETAILS pd"&_
   "          WHERE osc.os_id = os.os_id "&_
   "         AND os.node_id = bc.node_id"&_
   "         AND bc.bom_id =   "&   nBom_id &_
   "         AND pd.PROD_ID (+) = osc.PROD_ID"&_
   "         AND pv.pkg_id = pkg.pkg_id"&_
   "         AND osc.prod_id = pv.pv_id "&_
   "         AND (pd.is_rejected IS NULL or pd.IS_REJECTED != 'Y')  "&_
   "      UNION   "&_
   "      SELECT DISTINCT bec.prod_id,  pkg.pkg_name, pkg_version, 2   as   seq_num"&_
   "       FROM boms bm,"&_
   "            bom_contents bc,"&_
   "            network_nodes nn,"&_
   "            operating_systems os,"&_
   "            os_base_env obe,"&_
   "            base_env_contents bec,"&_
   "            PACKAGES pkg,"&_
   "            package_versions pv,"&_
   "            base_env be,"&_
   "            bos_types bt,"&_
   "            PRODUCT_DETAILS pd"&_
   "      WHERE bm.bom_id =   "&   nBom_id   &_
   "        AND bm.bom_id = bc.bom_id"&_
   "        AND nn.node_id = bc.node_id"&_
   "        AND os.node_id = nn.node_id"&_
   "        AND obe.os_id = os.os_id"&_
   "      AND pd.PROD_ID (+) = bec.PROD_ID"&_
   "      AND (pd.is_rejected IS NULL or pd.IS_REJECTED != 'Y')  "&_
   "        AND bec.base_env_id = obe.base_env_id"&_
   "        AND bec.prod_id = pv.pv_id"&_
   "        AND pkg.pkg_id = pv.pkg_id"&_
   "        AND be.base_env_id = obe.base_env_id"&_
   "       AND bt.bos_id = be.bos_id"&_
   "      ) qry  "&_
   " ORDER BY  qry.seq_num, UPPER(qry.pkg_name), UPPER(qry.pkg_version)"

   Set rsQry = OraDatabase.DbCreateDynaset( query, 0)
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
      oReleaseContent( CStr( rsQry("prod_id")) ) = ""
      rsQry.MoveNext()
   WEnd

   rsQry.Close()
   Set rsQry = Nothing
End Sub
'----------------------------------------------------------------------------------------------------------------------------------------

%>
<%
'---------------------- Run Before Page ---------------------------
Call GetReleaseContent ( parBom_id, objReleaseContent )

Call   GetBomDetails   (parBom_id, outobjDetails)
outobjDetails.Item("bom_full_version") = outobjDetails.Item("bom_name")&"   "&   outobjDetails.Item("bom_version") &"."& outobjDetails.Item("bom_lifecycle")


'------------------------------------------------------------------
%>
<html>
<head>
<title>Deployment Manager - Escrow Report</title>
<link rel="shortcut icon" href="<%=FavIcon%>"/>
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<div align="center"><b><font col color="#FF0000" size="+3"><%=outobjDetails.Item("bom_full_version")%></font></b></div>
<%
Set outobjDetails = Nothing

aReleaseContent = objReleaseContent.Keys
For Each parPv_id In aReleaseContent
   pvIdList = pvIdList +   parPv_id   +   ","
   Call GetPackageInformation ( parPv_id, objPackageDetails )
   Response.Flush
   %>
   <a name="<%=objPackageDetails.Item("pkg_name")%>"></a>
   <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
         <td class="body_colb"><h3><%=objPackageDetails.Item("pkg_name")%></h3></td>
      </tr>
   </table>
   <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Version:</strong></td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("pkg_version")%></td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Source Path:</strong> </td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("src_path")%></td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Source Label:</strong></td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("pkg_label")%></td>
      </tr>
      <tr>
         <td width="1%" nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Short Description:</strong></td>
         <td witdh="100%" bgcolor="#FFFFFF" class="sublbox_txt"><%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_description") ) )%></td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Package Overview:</strong> </td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_overview") ) )%></td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>General Sublicense Material:</strong> </td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%If objPackageDetails.Item("v_ext") = parExt Then%>Yes<%Else%>No<%End If%></td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Build Environment:</strong> </td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%If objPackageDetails.Item("is_build_env_required") = enumDB_NO Then%>Not Required.<%End If%>
            <%
            '--- Get Build Env Details
            Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Std ( parPv_id ), cint(0))
            If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
               BldStd = rsQry("bs_name")
               rsQry.Close

               Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Env ( parPv_id ), cint(0))
               %>
               <ul>
                  <%
                  While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                     %>
                     <li><%=BldStd%>, <%=rsQry("bm_name")%></li>
                     <%rsQry.MoveNext
                  WEnd
                  %>
               </ul>
            <%End If%>
         </td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Build Dependencies:</strong> </td>
         <td bgcolor="#FFFFFF" class="sublbox_txt">
            <%
            '--- Get Build Dependencies Details

            Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Dependencies ( parPv_id ), cint(0))
            %>
            <table width="100%"  cellspacing="0" cellpadding="2" border="1">
               <tr>
                  <td nowrap class="sublbox_txt" bgcolor="#FFFFFF" width="1%"><strong>Software Component</strong></td>
                  <td nowrap class="sublbox_txt" bgcolor="#FFFFFF" width="100%"><strong>Version</strong></td>
               </tr>
               <%If rsQry.RecordCount < 1 Then%>
                  <tr>
                     <td nowrap class="sublbox_txt">No Dependencies</td>
                     <td nowrap class="sublbox_txt"></td>
                  </tr>
               <%End If%>
               <%
               While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                  %>
                  <tr>
                     <td nowrap class="sublbox_txt"><a href="#<%=rsQry("pkg_name")%>"><%=rsQry("pkg_name")%></a></td>
                     <td nowrap class="sublbox_txt"><%=rsQry("pkg_version")%></td>
                  </tr>
                  <%rsQry.MoveNext
               WEnd
               %>
            </table>
         </td>
      </tr>
   </table>
   <br><br>
   <%
'Exit For
Next
pvIdList = Mid(pvIdList, 1, Len(pvIdList) - 1)
Set   rsTemp   =   OraDatabase.DbCreateDynaset( SQL_Modules ( pvIdList ), cint(0))


%>
<div align="center"><b><font col color="#FF0000" size="+3">Modules</font></b></div>
<%
While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)
   dpv_id = rsTemp("dpv_id")
   Call GetPackageInformation ( dpv_id, objPackageDetails )
   Response.Flush
   %>
   <a name="<%=objPackageDetails.Item("pkg_name")%>"></a>
   <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
         <td class="body_colb"><h3><%=objPackageDetails.Item("pkg_name")%></h3></td>
      </tr>
   </table>
   <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Version:</strong></td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("pkg_version")%></td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Source Path:</strong> </td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("src_path")%></td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Source Label:</strong></td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("pkg_label")%></td>
      </tr>
      <tr>
         <td width="1%" nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Short Description:</strong></td>
         <td witdh="100%" bgcolor="#FFFFFF" class="sublbox_txt"><%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_description") ) )%></td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Package Overview:</strong> </td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_overview") ) )%></td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>General Sublicense Material:</strong> </td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%If objPackageDetails.Item("v_ext") = parExt Then%>Yes<%Else%>No<%End If%></td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Build Environment:</strong> </td>
         <td bgcolor="#FFFFFF" class="sublbox_txt"><%If objPackageDetails.Item("is_build_env_required") = enumDB_NO Then%>Not Required.<%End If%>
            <%
            '--- Get Build Env Details
            Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Env ( dpv_id ), cint(0))
            %>
            <ul>
               <%
               While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                  %>
                  <li><%=rsQry("be_name")%></li>
                  <%rsQry.MoveNext
               WEnd
               %>
            </ul>
         </td>
      </tr>
      <tr>
         <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Build Dependencies:</strong> </td>
         <td bgcolor="#FFFFFF" class="sublbox_txt">
            <%
            '--- Get Build Dependencies Details

            Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Dependencies ( dpv_id ), cint(0))
            %>
            <table width="100%"  cellspacing="0" cellpadding="2" border="1">
               <tr>
                  <td nowrap class="sublbox_txt" bgcolor="#FFFFFF" width="1%"><strong>Software Component</strong></td>
                  <td nowrap class="sublbox_txt" bgcolor="#FFFFFF" width="100%"><strong>Version</strong></td>
               </tr>
               <%If rsQry.RecordCount < 1 Then%>
                  <tr>
                     <td nowrap class="sublbox_txt">No Dependencies</td>
                     <td nowrap class="sublbox_txt"></td>
                  </tr>
               <%End If%>
               <%
               While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                  %>
                  <tr>
                     <td nowrap class="sublbox_txt"><a href="#<%=rsQry("pkg_name")%>"><%=rsQry("pkg_name")%></a></td>
                     <td nowrap class="sublbox_txt"><%=rsQry("pkg_version")%></td>
                  </tr>
                  <%rsQry.MoveNext
               WEnd
               %>
            </table>
         </td>
      </tr>
   </table>
   <br><br>
   <%
   rsTemp.MoveNext
WEnd

rsTemp.Close()
Set rsTemp = Nothing
%>
</body>
</html>
<!--#include file="common/globals_destructor.asp"-->