#Licensed to the Apache Software Foundation (ASF) under one #or more contributor license agreements. See the NOTICE file #distributed with this work for additional information #regarding copyright ownership. The ASF licenses this file #to you under the Apache License, Version 2.0 (the #"License"); you may not use this file except in compliance #with the License. You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 #Unless required by applicable law or agreed to in writing, software #distributed under the License is distributed on an "AS IS" BASIS, #WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #See the License for the specific language governing permissions and #limitations under the License. """manage hod configuration""" # -*- python -*- import sys, csv, os from optparse import Option, OptionParser from xml.dom import minidom from sets import Set from select import select, poll, POLLIN from hodlib.Common.desc import * class DescGenerator: """Contains the conversion to descriptors and other method calls to config""" def __init__(self, hodConfig): """parse all the descriptors""" self.hodConfig = hodConfig def initializeDesc(self): self.hodConfig['nodepooldesc'] = self.createNodePoolDesc() self.hodConfig['servicedesc'] = self.createServiceDescDict() return self.hodConfig def getServices(self): """get all the services from the config""" sdd = {} for keys in self.hodConfig: if keys.startswith('gridservice-'): str = keys.split('-') dict = self.hodConfig[keys] if 'server-params' in dict: dict['attrs'] = dict['server-params'] if 'final-server-params' in dict: dict['final-attrs'] = dict['final-server-params'] dict['id'] = str[1] desc = ServiceDesc(dict) sdd[desc.getName()] = desc return sdd def createNodePoolDesc(self): """ create a node pool descriptor and store it in hodconfig""" desc = NodePoolDesc(self.hodConfig['resource_manager']) return desc def createServiceDescDict(self): """create a service descriptor for all the services and store it in the hodconfig""" sdd = self.getServices() return sdd