vds_bootstrap 流程分析(Red Hat Virtualization)-2

checkRegistration and checkMajorVersion

checkRegistration

checkRegistration是deploy类的一个类方法。

输入:None

输出: Boolen类型,True vdsm存在 ,False vdsm不存在

实现:使用yum module查找是否存在vdsm rpm包,

yum包使用过程:

my = yum.YumBase()

lReturn = my.pkgSack.searchNevra(name=pkgName)

class YumBase(yum.depsolve.Depsolve)

|  This is a primary structure and base class. It houses the objects and

|  methods needed to perform most things in yum. It is almost an abstract

|  class in that you will need to add your own class above it for most

|  real use.

Help on method searchNevra in module yum.packageSack:

searchNevra(self, name=None, epoch=None, ver=None, rel=None, arch=None) method of yum.packageSack.MetaSack instance

return list of pkgobjects matching the nevra requested

这里先定义一个yum的基础实例,然后使用searchNevra方法在repository中查找rpm包,这个查询会返回一个列表,如果没有则返回一个空列表。

summary: 这里必须保证repository中有vdsm



checkMajorVersion

同样checkMajorVersion也是deploy类的一个类方法.

输入:None

输出:Boolen, True 代表vdsm-4.9存在, False vdsm-4.9 不存在

实现:从yum repository中获取rpm列表,然后有俩种模式,模糊匹配即已vdsm-4.9开头,另一种是完全模式,也就是必须是vdsm-4.9,有返回True,没有返回False

summary: 这里必须保证repository中有vdsm-4.9

你可能感兴趣的:(vds_bootstrap 流程分析(Red Hat Virtualization)-2)