本文整理汇总了Python中dao.Dao.getAll方法的典型用法代码示例。如果您正苦于以下问题:Python Dao.getAll方法的具体用法?Python Dao.getAll怎么用?Python Dao.getAll使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dao.Dao
的用法示例。
在下文中一共展示了Dao.getAll方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from dao import Dao [as 别名]
# 或者: from dao.Dao import getAll [as 别名]
class ResourceAllocationReport:
def __init__(self, conf = {}, dao = None):
if any(conf) == False:
self.conf = util.loadConfig()
logger.setLevel(logging.getLevelName(self.conf['logLevel'][moduleName]))
else:
self.conf = conf
if dao is None:
self.dao = Dao(self.conf)
else:
self.dao = dao
def getPods(self):
podObject = self.dao.getAll(Pod)
pods = []
for i in range(len(podObject)):
pod = {}
pod['id'] = podObject[i].id
pod['name'] = podObject[i].name
pod['spineDeviceType'] = podObject[i].spineDeviceType
pod['spineCount'] = podObject[i].spineCount
pod['leafDeviceType'] = podObject[i].leafDeviceType
pod['leafCount'] = podObject[i].leafCount
pod['topologyType'] = podObject[i].topologyType
pods.append(pod)
return pods
def getPod(self, podName):
try:
return self.dao.getUniqueObjectByName(Pod, podName)
except (exc.NoResultFound) as e:
logger.debug("No Pod found with pod name: '%s', exc.NoResultFound: %s" % (podName, e.message))
def getIpFabric(self, ipFabricId):
try:
return self.dao.getObjectById(Pod, ipFabricId)
except (exc.NoResultFound) as e:
logger.debug("No IpFabric found with Id: '%s', exc.NoResultFound: %s" % (ipFabricId, e.message))
def getInterconnectAllocation(self, podName):
pod = self.getPod(podName)
if pod is None: return {}
interconnectAllocation = {}
interconnectAllocation['block'] = pod.interConnectPrefix
interconnectAllocation['allocated'] = pod.allocatedInterConnectBlock
return interconnectAllocation
def getLoopbackAllocation(self, podName):
pod = self.getPod(podName)
if pod is None: return {}
loopbackAllocation = {}
loopbackAllocation['block'] = pod.loopbackPrefix
loopbackAllocation['allocated'] = pod.allocatedLoopbackBlock
return loopbackAllocation
def getIrbAllocation(self, podName):
pod = self.getPod(podName)
if pod is None: return {}
irbAllocation = {}
irbAllocation['block'] = pod.vlanPrefix
irbAllocation['allocated'] = pod.allocatedIrbBlock
return irbAllocation
def getAsnAllocation(self, podName):
pod = self.getPod(podName)
if pod is None: return {}
asnAllocation = {}
asnAllocation['spineBlockStart'] = pod.spineAS
asnAllocation['spineBlockEnd'] = pod.leafAS - 1
asnAllocation['leafBlockStart'] = pod.leafAS
asnAllocation['leafBlockEnd'] = 65535
asnAllocation['spineAllocatedStart'] = pod.spineAS
asnAllocation['spineAllocatedEnd'] = pod.allocatedSpineAS
asnAllocation['leafAllocatedStart'] = pod.leafAS
asnAllocation['leafAllocatedEnd'] = pod.allocatefLeafAS
return asnAllocation
示例2: ZtpServer
# 需要导入模块: from dao import Dao [as 别名]
# 或者: from dao.Dao import getAll [as 别名]
class ZtpServer():
def __init__(self, conf = {}, templateEnv = None):
if any(conf) == False:
self.conf = util.loadConfig()
logger.setLevel(logging.getLevelName(self.conf['logLevel'][moduleName]))
else:
self.conf = conf
self.dao = Dao(self.conf)
if templateEnv is None:
self.templateEnv = Environment(loader=PackageLoader('jnpr.openclos', ztpTemplateLocation))
def dcpServerReloadConfig(self):
#TODO: sudo service isc-dhcp-server force-reload
# Not needed as of now
pass
''' TODO: for 2.0, Not needed as of now
def createSingleDhcpConfFile(self):
pods = self.dao.getAll(Pod)
if len(pods) > 0:
confWriter = DhcpConfWriter(self.conf, pods[0], self.dao)
confWriter.writeSingle(self.generateSingleDhcpConf())
'''
def generateSingleDhcpConf(self):
if util.isPlatformUbuntu():
ztp = self.populateDhcpGlobalSettings()
dhcpTemplate = self.templateEnv.get_template('dhcp.conf.ubuntu')
return dhcpTemplate.render(ztp = self.populateDhcpDeviceSpecificSettingForAllPods(ztp))
def createPodSpecificDhcpConfFile(self, podName):
pod = self.dao.getUniqueObjectByName(Pod, podName)
confWriter = DhcpConfWriter(self.conf, pod, self.dao)
confWriter.write(self.generatePodSpecificDhcpConf(pod.name))
def generatePodSpecificDhcpConf(self, podName):
ztp = self.populateDhcpGlobalSettings()
conf = None
if util.isPlatformUbuntu():
dhcpTemplate = self.templateEnv.get_template('dhcp.conf.ubuntu')
ztp = self.populateDhcpDeviceSpecificSetting(podName, ztp)
conf = dhcpTemplate.render(ztp = ztp)
elif util.isPlatformCentos():
dhcpTemplate = self.templateEnv.get_template('dhcp.conf.centos')
ztp = self.populateDhcpDeviceSpecificSetting(podName, ztp)
conf = dhcpTemplate.render(ztp = ztp)
logger.debug('dhcpd.conf\n%s' % (conf))
return conf
def populateDhcpGlobalSettings(self):
ztp = {}
ztpGlobalSettings = util.loadClosDefinition()['ztp']
subnet = ztpGlobalSettings['dhcpSubnet']
dhcpBlock = IPNetwork(subnet)
ipList = list(dhcpBlock.iter_hosts())
ztp['network'] = str(dhcpBlock.network)
ztp['netmask'] = str(dhcpBlock.netmask)
ztp['defaultRoute'] = ztpGlobalSettings.get('dhcpOptionRoute')
if ztp['defaultRoute'] is None or ztp['defaultRoute'] == '':
ztp['defaultRoute'] = str(ipList[0])
ztp['rangeStart'] = ztpGlobalSettings.get('dhcpOptionRangeStart')
if ztp['rangeStart'] is None or ztp['rangeStart'] == '':
ztp['rangeStart'] = str(ipList[1])
ztp['rangeEnd'] = ztpGlobalSettings.get('dhcpOptionRangeEnd')
if ztp['rangeEnd'] is None or ztp['rangeEnd'] == '':
ztp['rangeEnd'] = str(ipList[-1])
ztp['broadcast'] = str(dhcpBlock.broadcast)
ztp['httpServerIp'] = self.conf['httpServer']['ipAddr']
ztp['imageUrl'] = ztpGlobalSettings.get('junosImage')
return ztp
def populateDhcpDeviceSpecificSettingForAllPods(self, ztp = {}):
pods = self.dao.getAll(Pod)
for pod in pods:
ztp = self.populateDhcpDeviceSpecificSetting(pod.name, ztp)
return ztp
def populateDhcpDeviceSpecificSetting(self, podName, ztp = {}):
if ztp.get('devices') is None:
ztp['devices'] = []
pod = self.dao.getUniqueObjectByName(Pod, podName)
for device in pod.devices:
if device.role == 'spine':
image = pod.spineJunosImage
elif device.role == 'leaf':
image = pod.leafJunosImage
else:
#.........这里部分代码省略.........
示例3: RestServer
# 需要导入模块: from dao import Dao [as 别名]
# 或者: from dao.Dao import getAll [as 别名]
class RestServer():
def __init__(self, conf = {}):
if any(conf) == False:
self.conf = util.loadConfig()
logger.setLevel(logging.getLevelName(self.conf['logLevel'][moduleName]))
global webServerRoot
webServerRoot = self.conf['outputDir']
else:
self.conf = conf
self.dao = Dao(self.conf)
if 'httpServer' in self.conf and 'ipAddr' in self.conf['httpServer'] and self.conf['httpServer']['ipAddr'] is not None:
self.host = self.conf['httpServer']['ipAddr']
else:
self.host = 'localhost'
if 'httpServer' in self.conf and 'port' in self.conf['httpServer']:
self.port = self.conf['httpServer']['port']
else:
self.port = 8080
self.baseUrl = 'http://%s:%d' % (self.host, self.port)
def initRest(self):
self.addRoutes(self.baseUrl)
self.app = bottle.app()
def start(self):
logger.info('REST server started at %s:%d' % (self.host, self.port))
bottle.run(self.app, host=self.host, port=self.port)
def addRoutes(self, baseUrl):
self.indexLinks = []
bottle.route('/', 'GET', self.getIndex)
bottle.route('/<junosImageName>', 'GET', self.getJunosImage)
bottle.route('/pods/<podName>/devices/<deviceName>/config', 'GET', self.getDeviceConfig)
# TODO: the resource lookup should hierarchical
# /pods/*
# /pods/{podName}/devices/*
# /pods/{podName}/devices/{deviceName}/config
self.createLinkForConfigs()
def createLinkForConfigs(self):
pods = self.dao.getAll(Pod)
for pod in pods:
for device in pod.devices:
self.indexLinks.append(ResourceLink(self.baseUrl,
'/pods/%s/devices/%s/config' % (pod.name, device.name)))
def getIndex(self):
jsonLinks = []
for link in self.indexLinks:
jsonLinks.append({'link': link.toDict()})
jsonBody = \
{'href': self.baseUrl,
'links': jsonLinks
}
return jsonBody
def getDeviceConfig(self, podName, deviceName):
if not self.isDeviceExists(podName, deviceName):
raise bottle.HTTPError(404, "No device found with pod name: '%s', device name: '%s'" % (podName, deviceName))
fileName = os.path.join(podName, deviceName+'.conf')
logger.debug('webServerRoot: %s, fileName: %s, exists: %s' % (webServerRoot, fileName, os.path.exists(os.path.join(webServerRoot, fileName))))
config = bottle.static_file(fileName, root=webServerRoot)
if isinstance(config, bottle.HTTPError):
logger.debug("Device exists but no config found. Pod name: '%s', device name: '%s'" % (podName, deviceName))
raise bottle.HTTPError(404, "Device exists but no config found, probably fabric script is not ran. Pod name: '%s', device name: '%s'" % (podName, deviceName))
return config
def isDeviceExists(self, podName, deviceName):
try:
self.dao.Session.query(Device).join(Pod).filter(Device.name == deviceName).filter(Pod.name == podName).one()
return True
except (exc.NoResultFound):
logger.debug("No device found with pod name: '%s', device name: '%s'" % (podName, deviceName))
return False
def getJunosImage(self, junosImageName):
fileName = os.path.join(junosImageRoot, junosImageName)
logger.debug('junosImageRoot: %s, image: %s, exists: %s' % (junosImageRoot, junosImageName, os.path.exists(fileName)))
config = bottle.static_file(junosImageName, root=junosImageRoot)
if isinstance(config, bottle.HTTPError):
logger.debug("Junos image file found. name: '%s'" % (junosImageName))
raise bottle.HTTPError(404, "Junos image file not found. name: '%s'" % (junosImageName))
return config