blob: 03852cca64e703c00f015597a3b5408c474d8ba7 [file] [log] [blame]
#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