Пример #1
0
def getDBConn():
    dbConn = {}
    config = getConfig(["/etc/dtnrm-site-fe.conf"])
    for sitename in config.get('general', 'sites').split(','):
        if config.has_option(sitename, "database"):
            dbConn[sitename] = dbinterface(config.get(sitename, "database"))
    return dbConn
Пример #2
0
def getDBConn(serviceName=''):
    """Get datanase connection."""
    dbConn = {}
    config = getConfig()
    for sitename in config.get('general', 'sites').split(','):
        dbConn[sitename] = dbinterface(serviceName, config, sitename)
    return dbConn
Пример #3
0
def check_initialized(environ):
    """Env and configuration initialization"""
    global _INITIALIZED
    global _CP
    if not _INITIALIZED:
        _CP = getConfig(["/etc/dtnrm-site-fe.conf"])
        _INITIALIZED = True
Пример #4
0
 def __init__(self, logger, config=None):
     self.dbI = getDBConn()
     self.config = getConfig(["/etc/dtnrm-site-fe.conf"])
     if config:
         self.config = config
     self.logger = logger
     self.policer = polS.PolicyService(self.config, self.logger)
     self.stateM = stateM.StateMachine(self.logger)
     self.siteDB = contentDB(logger=self.logger, config=self.config)
Пример #5
0
def execute(config=None, logger=None):
    """Main Execute"""
    if not config:
        config = getConfig()
    if not logger:
        component = 'LookUpService'
        logger = getLogger("%s/%s/" % (config.get('general', 'logDir'), component), config.get(component, 'logLevel'))
    for siteName in config.get('general', 'sites').split(','):
        policer = LookUpService(config, logger, siteName)
        policer.startwork()
Пример #6
0
def check_initialized(environ):
    """Env and configuration initialization"""
    global _INITIALIZED
    global _CP
    global _SITES
    if not _INITIALIZED:
        _CP = getConfig()
        for sitename in _CP.get('general', 'sites').split(','):
            _SITES.append(sitename)
        _INITIALIZED = True
Пример #7
0
 def __init__(self, config, logger):
     self.config = config if config else getConfig()
     self.logger = logger if logger else getLogger(
         "%s/%s/" % (self.config.get('general', 'logDir'), COMPONENT),
         self.config.get('general', 'logLevel'))
     self.fullURL = getFullUrl(self.config,
                               self.config.get('general', 'siteName'))
     self.hostname = self.config.get('agent', 'hostname')
     self.logger.info("====== Debugger Start Work. Hostname: %s",
                      self.hostname)
Пример #8
0
def execute(config=None, logger=None, args=None):
    """Main Execute"""
    if not config:
        config = getConfig(["/etc/dtnrm-site-fe.conf"])
    if not logger:
        component = 'LookUpService'
        logger = getLogger(
            "%s/%s/" % (config.get('general', 'logDir'), component),
            config.get(component, 'logLevel'))
    provisioner = ProvisioningService(config, logger, args)
    provisioner.startwork()
Пример #9
0
 def __init__(self, logger, config=None):
     self.dbI = getDBConn('REST-DELTA')
     self.config = getConfig()
     if config:
         self.config = config
     self.logger = logger
     self.policer = {}
     for sitename in self.config.get('general', 'sites').split(','):
         policer = polS.PolicyService(config, logger, sitename)
         self.policer[sitename] = policer
     self.stateM = stateM.StateMachine(self.logger)
     self.siteDB = contentDB(logger=self.logger, config=self.config)
Пример #10
0
 def __init__(self, config, logger):
     self.config = config if config else getConfig()
     self.logger = logger if logger else getLogger(
         "%s/%s/" % (self.config.get('general', 'logDir'), COMPONENT),
         self.config.get('general', 'logLevel'))
     self.workDir = self.config.get('general',
                                    'private_dir') + "/DTNRM/QOS/"
     self.configDir = self.config.get('general',
                                      'private_dir') + "/DTNRM/RulerAgent/"
     self.hostname = self.config.get('agent', 'hostname')
     createDirs(self.workDir)
     self.debug = self.config.getboolean('general', "debug")
     self.agentdb = contentDB(logger=self.logger, config=self.config)
Пример #11
0
def getNetdataConfig():
    """
    Get netdata server config and also check backend configuration
    Returns: boolean: True - success in getting config and all parameters defined correctly.
                      False - Failure in retrieving one or another configuration parameters.
             dict: {} - if boolean return is False, always empty as failed to retrieve.
                   otherwise dictionary of all parsed configuration parameters
    """
    outDict = {}
    with tempfile.NamedTemporaryFile(delete=False) as fd:
        try:
            tmpConf = makeGETRequest("http://localhost:19999/netdata.conf")
            for line in tmpConf[1].splitlines():
                fd.write(line.replace('\t', '') + "\n")
        except urllib2.URLError as ex:
            print 'Received URLError %s. Checking if config file is present locally' % ex
            return False, {}
    tempfileName = fd.name
    hostConfig = getConfig([tempfileName])
    if not hostConfig.has_section('backend'):
        print 'Netdata server is not configured to publish anything to any backend'
        print '* Skipping this node check.'
        return False, {}
    if not hostConfig.has_option('backend', 'enabled'):
        print 'Netdata does not have enabled option in backend configuration'
        print '* Skipping this node check.'
        return False, {}
    if not hostConfig.has_option('backend', 'destination'):
        print 'Netdata is configured to send metrics but destination is not set.'
        print '* Skipping this node check.'
        return False, {}
    for optionKey in hostConfig.options('backend'):
        outDict[optionKey] = hostConfig.get('backend', optionKey)
    # Make boolean from send names instead of ids
    if 'send names instead of ids' in outDict:
        if outDict['send names instead of ids'] == 'yes':
            outDict['dimensionids'] = True
        elif outDict['send names instead of ids'] == 'no':
            outDict['dimensionids'] = False
        else:
            outDict['dimensionids'] = True
    else:
        outDict['dimensionids'] = False
        outDict['send names instead of ids'] = 'no'
    if 'host tags' in outDict:
        outDict['tags'] = {}
        for item in outDict['host tags'].split(" "):
            tmpTags = item.split('=')
            outDict['tags'][tmpTags[0]] = tmpTags[1]
        # host tags = hostname=sensei3.ultralight.org nodetype=sense-service sitename=T2_US_Caltech
    return True, outDict
Пример #12
0
 def __init__(self, config, logger):
     self.config = config if config else getConfig()
     self.logger = logger if logger else getLogger(
         "%s/%s/" % (self.config.get('general', 'logDir'), COMPONENT),
         self.config.get('general', 'logLevel'))
     self.workDir = self.config.get('general',
                                    'private_dir') + "/DTNRM/RulerAgent/"
     createDirs(self.workDir)
     self.fullURL = getFullUrl(self.config,
                               self.config.get('general', 'siteName'))
     self.noRules = self.config.getboolean('agent', 'norules')
     self.hostname = self.config.get('agent', 'hostname')
     self.logger.info("====== Ruler Start Work. Hostname: %s",
                      self.hostname)
     self.vInterface = VInterfaces(self.config, self.logger)
Пример #13
0
def execute(config=None, logger=None, args=None):
    """Main Execute"""
    if not config:
        config = getConfig(["/etc/dtnrm-site-fe.conf"])
    if not logger:
        component = 'PolicyService'
        logger = getLogger(
            "%s/%s/" % (config.get('general', 'logDir'), component),
            config.get(component, 'logLevel'), True)

    policer = PolicyService(config, logger)
    if args:
        print policer.parseDeltaRequest(args[1], [], args[2])
    else:
        policer.startwork()
Пример #14
0
def execute(config=None, logger=None, args=None):
    """Main Execute."""
    if not config:
        config = getConfig()
    if not logger:
        component = 'LookUpService'
        logger = getLogger(
            "%s/%s/" % (config.get('general', 'logDir'), component),
            config.get(component, 'logLevel'))
    if args:
        provisioner = ProvisioningService(config, logger, args[1])
        provisioner.startwork()
    else:
        for sitename in config.get('general', 'sites').split(','):
            provisioner = ProvisioningService(config, logger, sitename)
            provisioner.startwork()
Пример #15
0
def execute(config=None, logger=None, args=None):
    """Main Execute"""
    if not config:
        config = getConfig()
    if not logger:
        component = 'PolicyService'
        logger = getLogger("%s/%s/" % (config.get('general', 'logDir'), component),
                           config.get(component, 'logLevel'), True)

    if args:
        policer = PolicyService(config, logger, args[3])
        # This is only for debugging purposes.
        print policer.parseDeltaRequest(args[1], {args[2]: []})
    else:
        for sitename in config.get('general', 'sites').split(','):
            policer = PolicyService(config, logger, sitename)
            policer.startwork()
Пример #16
0
                    outputForFE["interfaces"].setdefault(
                        mainInf, {'vlans': {}})
                    outputForFE["interfaces"][mainInf]['vlans'][
                        vlankey] = vlandict
        else:
            print 'This interface was defined in configuration, but not available. Will not add it to final output'
            print intfName, intfDict
    # Get Routing Information
    outputForFE["routes"] = getRoutes(config)
    return outputForFE


def getRoutes(config):
    """ Get Routing information from host """
    del config
    routes = []
    with IPRoute() as ipr:
        for route in ipr.get_routes(table=254, family=2):
            newroute = {"dst_len": route['dst_len']}
            for item in route['attrs']:
                if item[0] in ['RTA_GATEWAY', 'RTA_DST', 'RTA_PREFSRC']:
                    newroute[item[0]] = item[1]
            routes.append(newroute)
    print routes
    return routes


if __name__ == "__main__":
    PRETTY = pprint.PrettyPrinter(indent=4)
    PRETTY.pprint(get(getConfig(), getStreamLogger()))
Пример #17
0
#!/usr/bin/env python
""" List all deltas inFrontend """
import sys
from DTNRMLibs.MainUtilities import getVal
from DTNRMLibs.MainUtilities import evaldict
from DTNRMLibs.MainUtilities import getConfig, getStreamLogger
from DTNRMLibs.FECalls import getDBConn
from SiteFE.PolicyService.stateMachine import StateMachine


LOGGER = getStreamLogger()
CONFIG = getConfig()
STATEMACHINE = StateMachine(LOGGER)


def getdeltaAll(sitename):
    dbI = getDBConn('listalldeltas')
    dbobj = getVal(dbI, sitename=sitename)
    for delta in dbobj.get('deltas'):
        delta['addition'] = evaldict(delta['addition'])
        delta['reduction'] = evaldict(delta['reduction'])
        print '='*80
        print 'Delta UID  :  ', delta['uid']
        print 'Delta RedID:  ', delta['reductionid']
        print 'Delta State:  ', delta['state']
        print 'Delta ModAdd: ', delta['modadd']
        print 'Delta InsDate:', delta['insertdate']
        print 'Delta Update: ', delta['updatedate']
        print 'Delta Model:  ', delta['modelid']
        print 'Delta connID: ', delta['connectionid']
        print 'Delta Deltatype: ', delta['deltat']
Пример #18
0
from DTNRMAgent.RecurringActions.Utilities import externalCommand, tryConvertToNumeric
from DTNRMLibs.MainUtilities import getConfig

NAME = 'MemInfo'


def get(config):
    """Get memory info from /proc/meminfo"""
    del config
    memInfo = {}
    tmpOut = externalCommand('cat /proc/meminfo')
    for item in tmpOut:
        for desc in item.split('\n'):
            vals = desc.split(':')
            if len(vals) == 2:
                value = vals[1].strip().split(' ')
                # We strip it to remove white spaces and split to remove kb in the end
                name = vals[0].strip()
                if len(value) == 2:
                    name += "_%s" % value[1]
                memInfo[name] = tryConvertToNumeric(value[0])
            else:
                print 'MemInfo: Skipped this item: ', vals
    memInfo['memory_mb'] = int(memInfo['MemTotal_kB'] / 1000)
    return memInfo


if __name__ == "__main__":
    PRETTY = pprint.PrettyPrinter(indent=4)
    PRETTY.pprint(get(getConfig(['/etc/dtnrm/main.conf', 'main.conf'])))
Пример #19
0
 def __init__(self):
     self.dbI = getDBConn('REST-Frontend')
     self.initialized = False
     self.config = getConfig()
     self.siteDB = contentDB()
Пример #20
0
Email 			: justas.balcas (at) cern.ch
@Copyright		: Copyright (C) 2016 California Institute of Technology
Date			: 2017/09/26
"""
from shutil import copy2
from DTNRMLibs.MainUtilities import evaldict
from DTNRMLibs.MainUtilities import readFile
from DTNRMLibs.MainUtilities import getLogger
from DTNRMLibs.MainUtilities import getConfig
from DTNRMLibs.MainUtilities import getFullUrl
from DTNRMLibs.MainUtilities import createDirs
from DTNRMLibs.MainUtilities import externalCommand
from DTNRMLibs.MainUtilities import getDataFromSiteFE
from DTNRMLibs.CustomExceptions import FailedToParseError

CONFIG = getConfig(["/etc/dtnrm-site-fe.conf"])
COMPONENT = 'ForwardingService'
LOGGER = getLogger("%s/%s/" % (CONFIG.get('general', 'logDir'), COMPONENT),
                   CONFIG.get(COMPONENT, 'logLevel'))


def checkConsistency(inputDict, currentHttpdConf, start, end):
    """Check current config and information from Site FE. Append what is missing."""
    newConfig = []
    changed = False
    print 'Appending the beginning %s lines' % start
    for lineNum in range(0, start):
        newConfig.append(currentHttpdConf[lineNum])
    print 'Starting to check current configuration with what we received from DB'
    newConfig.append("### HERE STARTS PROXYREWRITERULES")
    for lineNum in range(start, end):
Пример #21
0
 def __init__(self):
     self.dbI = getDBConn()
     self.initialized = False
     self.config = getConfig(["/etc/dtnrm-site-fe.conf"])
     self.siteDB = contentDB()