import Logger.Log as Logger\r
from Logger import StringTable as ST\r
from Logger.ToolError import UPT_ALREADY_RUNNING_ERROR\r
+from Logger.ToolError import UPT_DB_UPDATE_ERROR\r
\r
## IpiDb\r
#\r
create table IF NOT EXISTS %s (\r
ModuleGuid TEXT NOT NULL,\r
ModuleVersion TEXT NOT NULL,\r
+ ModuleName TEXT NOT NULL,\r
InstallTime REAL NOT NULL,\r
PackageGuid TEXT,\r
PackageVersion TEXT,\r
InstallPath TEXT NOT NULL,\r
- PRIMARY KEY (ModuleGuid, ModuleVersion, InstallPath)\r
+ PRIMARY KEY (ModuleGuid, ModuleVersion, ModuleName, InstallPath)\r
)""" % self.ModInPkgTable\r
self.Cur.execute(SqlCommand)\r
\r
create table IF NOT EXISTS %s (\r
ModuleGuid TEXT NOT NULL,\r
ModuleVersion TEXT NOT NULL,\r
+ ModuleName TEXT NOT NULL,\r
InstallTime REAL NOT NULL,\r
DpGuid TEXT,\r
DpVersion TEXT,\r
InstallPath TEXT NOT NULL,\r
- PRIMARY KEY (ModuleGuid, ModuleVersion, InstallPath)\r
+ PRIMARY KEY (ModuleGuid, ModuleVersion, ModuleName, InstallPath)\r
)""" % self.StandaloneModTable\r
self.Cur.execute(SqlCommand)\r
\r
create table IF NOT EXISTS %s (\r
ModuleGuid TEXT NOT NULL,\r
ModuleVersion TEXT NOT NULL,\r
+ ModuleName TEXT NOT NULL,\r
InstallPath TEXT NOT NULL,\r
DepexGuid TEXT,\r
DepexVersion TEXT\r
# @param RePackage: A RePackage\r
#\r
def AddDPObject(self, DpObj, NewDpPkgFileName, DpPkgFileName, RePackage):\r
- \r
- for PkgKey in DpObj.PackageSurfaceArea.keys():\r
- PkgGuid = PkgKey[0]\r
- PkgVersion = PkgKey[1]\r
- PkgInstallPath = PkgKey[2]\r
- self._AddPackage(PkgGuid, PkgVersion, DpObj.Header.GetGuid(), \\r
- DpObj.Header.GetVersion(), PkgInstallPath)\r
- PkgObj = DpObj.PackageSurfaceArea[PkgKey]\r
- for ModKey in PkgObj.GetModuleDict().keys():\r
+ try:\r
+ for PkgKey in DpObj.PackageSurfaceArea.keys():\r
+ PkgGuid = PkgKey[0]\r
+ PkgVersion = PkgKey[1]\r
+ PkgInstallPath = PkgKey[2]\r
+ self._AddPackage(PkgGuid, PkgVersion, DpObj.Header.GetGuid(), \\r
+ DpObj.Header.GetVersion(), PkgInstallPath)\r
+ PkgObj = DpObj.PackageSurfaceArea[PkgKey]\r
+ for ModKey in PkgObj.GetModuleDict().keys():\r
+ ModGuid = ModKey[0]\r
+ ModVersion = ModKey[1]\r
+ ModName = ModKey[2]\r
+ ModInstallPath = ModKey[3]\r
+ ModInstallPath = \\r
+ os.path.normpath(os.path.join(PkgInstallPath, ModInstallPath))\r
+ self._AddModuleInPackage(ModGuid, ModVersion, ModName, PkgGuid, \\r
+ PkgVersion, ModInstallPath)\r
+ ModObj = PkgObj.GetModuleDict()[ModKey]\r
+ for Dep in ModObj.GetPackageDependencyList():\r
+ DepexGuid = Dep.GetGuid()\r
+ DepexVersion = Dep.GetVersion()\r
+ self._AddModuleDepex(ModGuid, ModVersion, ModName, ModInstallPath, \\r
+ DepexGuid, DepexVersion)\r
+ for (FilePath, Md5Sum) in PkgObj.FileList:\r
+ self._AddDpFilePathList(DpObj.Header.GetGuid(), \\r
+ DpObj.Header.GetVersion(), FilePath, \\r
+ Md5Sum)\r
+ \r
+ for ModKey in DpObj.ModuleSurfaceArea.keys():\r
ModGuid = ModKey[0]\r
ModVersion = ModKey[1]\r
- ModInstallPath = ModKey[2]\r
- ModInstallPath = \\r
- os.path.normpath(os.path.join(PkgInstallPath, ModInstallPath))\r
- self._AddModuleInPackage(ModGuid, ModVersion, PkgGuid, \\r
- PkgVersion, ModInstallPath)\r
- ModObj = PkgObj.GetModuleDict()[ModKey]\r
+ ModName = ModKey[2]\r
+ ModInstallPath = ModKey[3]\r
+ self._AddStandaloneModule(ModGuid, ModVersion, ModName, \\r
+ DpObj.Header.GetGuid(), \\r
+ DpObj.Header.GetVersion(), \\r
+ ModInstallPath)\r
+ ModObj = DpObj.ModuleSurfaceArea[ModKey]\r
for Dep in ModObj.GetPackageDependencyList():\r
DepexGuid = Dep.GetGuid()\r
DepexVersion = Dep.GetVersion()\r
- self._AddModuleDepex(ModGuid, ModVersion, ModInstallPath, \\r
+ self._AddModuleDepex(ModGuid, ModVersion, ModName, ModInstallPath, \\r
DepexGuid, DepexVersion)\r
- for (FilePath, Md5Sum) in PkgObj.FileList:\r
- self._AddDpFilePathList(DpObj.Header.GetGuid(), \\r
- DpObj.Header.GetVersion(), FilePath, \\r
- Md5Sum)\r
-\r
- for ModKey in DpObj.ModuleSurfaceArea.keys():\r
- ModGuid = ModKey[0]\r
- ModVersion = ModKey[1]\r
- ModInstallPath = ModKey[2]\r
- self._AddStandaloneModule(ModGuid, ModVersion, \\r
- DpObj.Header.GetGuid(), \\r
- DpObj.Header.GetVersion(), \\r
- ModInstallPath)\r
- ModObj = DpObj.ModuleSurfaceArea[ModKey]\r
- for Dep in ModObj.GetPackageDependencyList():\r
- DepexGuid = Dep.GetGuid()\r
- DepexVersion = Dep.GetVersion()\r
- self._AddModuleDepex(ModGuid, ModVersion, ModInstallPath, \\r
- DepexGuid, DepexVersion)\r
- for (Path, Md5Sum) in ModObj.FileList:\r
+ for (Path, Md5Sum) in ModObj.FileList:\r
+ self._AddDpFilePathList(DpObj.Header.GetGuid(), \\r
+ DpObj.Header.GetVersion(), \\r
+ Path, Md5Sum)\r
+ \r
+ #\r
+ # add tool/misc files\r
+ #\r
+ for (Path, Md5Sum) in DpObj.FileList:\r
self._AddDpFilePathList(DpObj.Header.GetGuid(), \\r
- DpObj.Header.GetVersion(), \\r
- Path, Md5Sum)\r
-\r
- #\r
- # add tool/misc files\r
- #\r
- for (Path, Md5Sum) in DpObj.FileList:\r
- self._AddDpFilePathList(DpObj.Header.GetGuid(), \\r
- DpObj.Header.GetVersion(), Path, Md5Sum)\r
- \r
- self._AddDp(DpObj.Header.GetGuid(), DpObj.Header.GetVersion(), \\r
- NewDpPkgFileName, DpPkgFileName, RePackage)\r
+ DpObj.Header.GetVersion(), Path, Md5Sum)\r
+ \r
+ self._AddDp(DpObj.Header.GetGuid(), DpObj.Header.GetVersion(), \\r
+ NewDpPkgFileName, DpPkgFileName, RePackage)\r
+ \r
+ self.Conn.commit()\r
+ except sqlite3.IntegrityError, DetailMsg:\r
+ Logger.Error("UPT",\r
+ UPT_DB_UPDATE_ERROR,\r
+ ST.ERR_UPT_DB_UPDATE_ERROR,\r
+ ExtraData = DetailMsg\r
+ )\r
\r
- self.Conn.commit()\r
- \r
## Add a distribution install information\r
#\r
# @param Guid Guid of the distribution package \r
\r
## Add a module that from a package install information\r
#\r
- # @param Guid: A package guid \r
- # @param Version: A package version\r
- # @param PkgGuid: A package guid\r
- # @param PkgFileName: A package File Name\r
+ # @param Guid: Module Guid \r
+ # @param Version: Module version\r
+ # @param Name: Module Name\r
+ # @param PkgGuid: Package Guid\r
+ # @param PkgVersion: Package version\r
+ # @param Path: Package relative path that module installs\r
#\r
- def _AddModuleInPackage(self, Guid, Version, PkgGuid=None, \\r
+ def _AddModuleInPackage(self, Guid, Version, Name, PkgGuid=None, \\r
PkgVersion=None, Path=''):\r
\r
if Version == None or len(Version.strip()) == 0:\r
#\r
CurrentTime = time.time()\r
SqlCommand = \\r
- """insert into %s values('%s', '%s', %s, '%s', '%s', '%s')""" % \\r
- (self.ModInPkgTable, Guid, Version, CurrentTime, PkgGuid, PkgVersion, \\r
+ """insert into %s values('%s', '%s', '%s', %s, '%s', '%s', '%s')""" % \\r
+ (self.ModInPkgTable, Guid, Version, Name, CurrentTime, PkgGuid, PkgVersion, \\r
Path)\r
self.Cur.execute(SqlCommand)\r
\r
#\r
# @param Guid: a module Guid\r
# @param Version: a module Version\r
+ # @param Name: a module name\r
# @param DpGuid: a DpGuid\r
# @param DpVersion: a DpVersion\r
# @param Path: path\r
#\r
- def _AddStandaloneModule(self, Guid, Version, DpGuid=None, \\r
+ def _AddStandaloneModule(self, Guid, Version, Name, DpGuid=None, \\r
DpVersion=None, Path=''):\r
\r
if Version == None or len(Version.strip()) == 0:\r
#\r
CurrentTime = time.time()\r
SqlCommand = \\r
- """insert into %s values('%s', '%s', %s, '%s', '%s', '%s')""" % \\r
- (self.StandaloneModTable, Guid, Version, CurrentTime, DpGuid, \\r
+ """insert into %s values('%s', '%s', '%s', %s, '%s', '%s', '%s')""" % \\r
+ (self.StandaloneModTable, Guid, Version, Name, CurrentTime, DpGuid, \\r
DpVersion, Path)\r
self.Cur.execute(SqlCommand)\r
\r
#\r
# @param Guid: a module Guid\r
# @param Version: a module Version\r
+ # @param Name: a module name\r
# @param DepexGuid: a module DepexGuid\r
# @param DepexVersion: a module DepexVersion\r
#\r
- def _AddModuleDepex(self, Guid, Version, Path, DepexGuid=None, \\r
+ def _AddModuleDepex(self, Guid, Version, Name, Path, DepexGuid=None, \\r
DepexVersion=None):\r
\r
if DepexGuid == None or len(DepexGuid.strip()) == 0:\r
#\r
# Add module depex information to DB.\r
#\r
- SqlCommand = """insert into %s values('%s', '%s', '%s', '%s', '%s')"""\\r
- % (self.ModDepexTable, Guid, Version, Path, DepexGuid, DepexVersion)\r
+ SqlCommand = """insert into %s values('%s', '%s', '%s', '%s', '%s', '%s')"""\\r
+ % (self.ModDepexTable, Guid, Version, Name, Path, DepexGuid, DepexVersion)\r
self.Cur.execute(SqlCommand)\r
\r
## Remove a distribution install information, if no version specified, \r
and ModDepexInfo.ModuleVersion in\r
(select ModuleVersion from StandaloneModInfo as B \r
where B.DpGuid = '%s' and B.DpVersion = '%s')\r
+ and ModDepexInfo.ModuleName in\r
+ (select ModuleName from StandaloneModInfo as B \r
+ where B.DpGuid = '%s' and B.DpVersion = '%s')\r
and ModDepexInfo.InstallPath in\r
(select InstallPath from StandaloneModInfo as B \r
where B.DpGuid = '%s' and B.DpVersion = '%s') """ % \\r
- (DpGuid, DpVersion, DpGuid, DpVersion, DpGuid, DpVersion)\r
+ (DpGuid, DpVersion, DpGuid, DpVersion, DpGuid, DpVersion, DpGuid, DpVersion)\r
\r
self.Cur.execute(SqlCommand)\r
#\r
(select ModuleVersion from ModInPkgInfo \r
where ModInPkgInfo.PackageGuid ='%s' and \r
ModInPkgInfo.PackageVersion = '%s')\r
+ and ModDepexInfo.ModuleName in\r
+ (select ModuleName from ModInPkgInfo \r
+ where ModInPkgInfo.PackageGuid ='%s' and \r
+ ModInPkgInfo.PackageVersion = '%s')\r
and ModDepexInfo.InstallPath in\r
(select InstallPath from ModInPkgInfo where \r
ModInPkgInfo.PackageGuid ='%s' \r
and ModInPkgInfo.PackageVersion = '%s')""" \\r
- % (Pkg[0], Pkg[1],Pkg[0], Pkg[1],Pkg[0], Pkg[1])\r
+ % (Pkg[0], Pkg[1], Pkg[0], Pkg[1], Pkg[0], Pkg[1],Pkg[0], Pkg[1])\r
\r
self.Cur.execute(SqlCommand)\r
#\r
# @param Guid: A module guid\r
# @param Version: A module version\r
#\r
- def GetModInPackage(self, Guid, Version, PkgGuid='', PkgVersion=''):\r
- \r
+ def GetModInPackage(self, Guid, Version, Name, Path, PkgGuid='', PkgVersion=''):\r
+ (ModuleGuid, ModuleVersion, ModuleName, InstallPath) = (Guid, Version, Name, Path)\r
if PkgVersion == '' or PkgGuid == '':\r
-\r
- (ModuleGuid, ModuleVersion) = (Guid, Version)\r
SqlCommand = """select * from %s where ModuleGuid ='%s' and \r
- ModuleVersion = '%s'""" % (self.ModInPkgTable, ModuleGuid, \\r
- ModuleVersion)\r
+ ModuleVersion = '%s' and InstallPath = '%s' \r
+ and ModuleName = '%s'""" % (self.ModInPkgTable, ModuleGuid, \\r
+ ModuleVersion, InstallPath, ModuleName)\r
self.Cur.execute(SqlCommand)\r
- \r
else:\r
- (ModuleGuid, ModuleVersion) = (Guid, Version)\r
SqlCommand = """select * from %s where ModuleGuid ='%s' and \r
- ModuleVersion = '%s' and PackageGuid ='%s' \r
+ ModuleVersion = '%s' and InstallPath = '%s' \r
+ and ModuleName = '%s' and PackageGuid ='%s' \r
and PackageVersion = '%s'\r
""" % (self.ModInPkgTable, ModuleGuid, \\r
- ModuleVersion, PkgGuid, PkgVersion)\r
+ ModuleVersion, InstallPath, ModuleName, PkgGuid, PkgVersion)\r
self.Cur.execute(SqlCommand)\r
\r
ModList = []\r
# @param Guid: A module guid \r
# @param Version: A module version \r
#\r
- def GetStandaloneModule(self, Guid, Version, DpGuid='', DpVersion=''):\r
- \r
+ def GetStandaloneModule(self, Guid, Version, Name, Path, DpGuid='', DpVersion=''):\r
+ (ModuleGuid, ModuleVersion, ModuleName, InstallPath) = (Guid, Version, Name, Path)\r
if DpGuid == '':\r
- (ModuleGuid, ModuleVersion) = (Guid, Version)\r
SqlCommand = """select * from %s where ModuleGuid ='%s' and \r
- ModuleVersion = '%s'""" % (self.StandaloneModTable, ModuleGuid, \\r
- ModuleVersion)\r
+ ModuleVersion = '%s' and InstallPath = '%s' \r
+ and ModuleName = '%s'""" % (self.StandaloneModTable, ModuleGuid, \\r
+ ModuleVersion, InstallPath, ModuleName)\r
self.Cur.execute(SqlCommand)\r
\r
else:\r
- (ModuleGuid, ModuleVersion) = (Guid, Version)\r
SqlCommand = """select * from %s where ModuleGuid ='%s' and \r
- ModuleVersion = '%s' and DpGuid ='%s' and DpVersion = '%s'\r
+ ModuleVersion = '%s' and InstallPath = '%s' and ModuleName = '%s' and DpGuid ='%s' and DpVersion = '%s' \r
""" % (self.StandaloneModTable, ModuleGuid, \\r
- ModuleVersion, DpGuid, DpVersion)\r
+ ModuleVersion, ModuleName, InstallPath, DpGuid, DpVersion)\r
self.Cur.execute(SqlCommand)\r
\r
ModList = []\r