]>
Commit | Line | Data |
---|---|---|
421ccda3 HC |
1 | ## @file\r |
2 | # Inventory workspace's distribution package information.\r | |
3 | #\r | |
4 | # Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r | |
5 | #\r | |
6 | # This program and the accompanying materials are licensed and made available \r | |
7 | # under the terms and conditions of the BSD License which accompanies this \r | |
8 | # distribution. The full text of the license may be found at \r | |
9 | # http://opensource.org/licenses/bsd-license.php\r | |
10 | #\r | |
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r | |
12 | # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r | |
13 | #\r | |
14 | """\r | |
15 | Inventory workspace's distribution package information.\r | |
16 | """\r | |
17 | ##\r | |
18 | # Import Modules\r | |
19 | #\r | |
20 | from sys import platform\r | |
21 | from traceback import format_exc\r | |
22 | from platform import python_version\r | |
23 | \r | |
24 | from Logger import StringTable as ST\r | |
25 | from Logger.ToolError import FatalError\r | |
26 | from Logger.ToolError import ABORT_ERROR\r | |
27 | from Logger.ToolError import CODE_ERROR\r | |
28 | import Logger.Log as Logger\r | |
29 | \r | |
30 | from Library import GlobalData\r | |
31 | \r | |
32 | ## InventoryDistInstalled\r | |
33 | #\r | |
34 | # This method retrieves the installed distribution information from the internal UPT database\r | |
35 | #\r | |
36 | # @param DataBase: the UPT database\r | |
37 | #\r | |
38 | def InventoryDistInstalled(DataBase):\r | |
39 | DistInstalled = DataBase.InventoryDistInstalled()\r | |
40 | \r | |
41 | #\r | |
42 | # find the max length for each item\r | |
43 | #\r | |
44 | DpNameStr = "DpName"\r | |
45 | DpGuidStr = "DpGuid"\r | |
46 | DpVerStr = "DpVer"\r | |
47 | DpOriginalNameStr = "DpOriginalName"\r | |
48 | MaxGuidlen = len(DpGuidStr)\r | |
49 | MaxVerlen = len(DpVerStr)\r | |
50 | MaxDpAliasFileNameLen = len(DpNameStr) \r | |
51 | MaxDpOrigFileNamelen = len(DpOriginalNameStr)\r | |
52 | \r | |
53 | for (DpGuid, DpVersion, DpOriginalName, DpAliasFileName) in DistInstalled:\r | |
54 | MaxGuidlen = max(MaxGuidlen, len(DpGuid))\r | |
55 | MaxVerlen = max(MaxVerlen, len(DpVersion))\r | |
56 | MaxDpAliasFileNameLen = max(MaxDpAliasFileNameLen, len(DpAliasFileName))\r | |
57 | MaxDpOrigFileNamelen = max(MaxDpOrigFileNamelen, len(DpOriginalName))\r | |
58 | \r | |
59 | OutMsgFmt = "%-*s\t%-*s\t%-*s\t%-s"\r | |
60 | OutMsg = OutMsgFmt % (MaxDpAliasFileNameLen, \r | |
61 | DpNameStr, \r | |
62 | MaxGuidlen, \r | |
63 | DpGuidStr, \r | |
64 | MaxVerlen, \r | |
65 | DpVerStr, \r | |
66 | DpOriginalNameStr)\r | |
67 | Logger.Info(OutMsg)\r | |
68 | \r | |
69 | for (DpGuid, DpVersion, DpFileName, DpAliasFileName) in DistInstalled:\r | |
70 | OutMsg = OutMsgFmt % (MaxDpAliasFileNameLen, \r | |
71 | DpAliasFileName, \r | |
72 | MaxGuidlen, \r | |
73 | DpGuid, \r | |
74 | MaxVerlen, \r | |
75 | DpVersion, \r | |
76 | DpFileName)\r | |
77 | Logger.Info(OutMsg)\r | |
78 | \r | |
79 | ## Tool entrance method\r | |
80 | #\r | |
81 | # This method mainly dispatch specific methods per the command line options.\r | |
82 | # If no error found, return zero value so the caller of this tool can know\r | |
83 | # if it's executed successfully or not.\r | |
84 | #\r | |
85 | # @param Options: command Options\r | |
86 | #\r | |
87 | def Main(Options = None):\r | |
88 | if Options:\r | |
89 | pass\r | |
90 | \r | |
91 | try:\r | |
92 | DataBase = GlobalData.gDB\r | |
93 | InventoryDistInstalled(DataBase) \r | |
94 | ReturnCode = 0 \r | |
95 | except FatalError, XExcept:\r | |
96 | ReturnCode = XExcept.args[0]\r | |
97 | if Logger.GetLevel() <= Logger.DEBUG_9:\r | |
98 | Logger.Quiet(ST.MSG_PYTHON_ON % (python_version(), platform) + format_exc())\r | |
99 | except KeyboardInterrupt: \r | |
100 | ReturnCode = ABORT_ERROR\r | |
101 | if Logger.GetLevel() <= Logger.DEBUG_9:\r | |
102 | Logger.Quiet(ST.MSG_PYTHON_ON % (python_version(), platform) + format_exc())\r | |
103 | except:\r | |
104 | ReturnCode = CODE_ERROR\r | |
105 | Logger.Error("\nInventoryWs",\r | |
106 | CODE_ERROR,\r | |
107 | ST.ERR_UNKNOWN_FATAL_INVENTORYWS_ERR,\r | |
108 | ExtraData=ST.MSG_SEARCH_FOR_HELP,\r | |
109 | RaiseError=False\r | |
110 | )\r | |
111 | Logger.Quiet(ST.MSG_PYTHON_ON % (python_version(),\r | |
112 | platform) + format_exc())\r | |
113 | \r | |
114 | if ReturnCode == 0:\r | |
115 | Logger.Quiet(ST.MSG_FINISH)\r | |
116 | \r | |
117 | return ReturnCode |