예제 #1
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)
예제 #2
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)
예제 #3
0
def getdeltaAll(sitename, deltaUID):
    """ Get all deltas for specific Site.
        INPUT: sitename  - str mandatory
               deltaUID  - str mandatory"""
    siteDB = contentDB(logger=LOGGER, config=CONFIG)
    policer = polS.PolicyService(CONFIG, LOGGER)
    delta, dbObj = getdeltainfo(sitename, deltaUID)
    tmpFile = tempfile.NamedTemporaryFile(delete=False)
    tmpFile.close()
    outContent = {"ID": delta['uid'],
                  "InsertTime": delta['insertdate'],
                  "UpdateTime": delta['updatedate'],
                  "Content": ast.literal_eval(str(delta['content'])),
                  "State": "accepting",
                  "modelId": delta['modelid']}
    siteDB.saveContent(tmpFile.name, outContent)

    policer.acceptDelta(tmpFile.name, sitename)
    delta, dbObj = getdeltainfo(sitename, deltaUID)
    STATEMACHINE._stateChangerDelta(dbObj, 'activating', **delta)
예제 #4
0
def getdeltaAll(sitename, deltaUID):
    dbI = getDBConn('analyzedelta')
    dbobj = getVal(dbI, sitename=sitename)
    policer = polS.PolicyService(CONFIG, LOGGER)
    for delta in dbobj.get('deltas'):
        if delta['uid'] != deltaUID:
            continue
        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'])
        print('-' * 20)
        import pprint
        pprint.pprint(delta)
        print('Delta times')
        for deltatimes in dbobj.get('states',
                                    search=[['deltaid', delta['uid']]]):
            print('State: %s Date: %s' %
                  (deltatimes['state'], deltatimes['insertdate']))
        if delta['deltat'] in ['reduction', 'addition']:
            for hostname in list(delta[delta['deltat']]['hosts'].keys()):
                print('-' * 20)
                print('Host States %s' % hostname)
                for hoststate in dbobj.get('hoststates',
                                           search=[['deltaid', delta['uid']],
                                                   ['hostname', hostname]]):
                    print('Host %s State %s' % (hostname, hoststate['state']))
                    print('Insertdate %s UpdateDate %s' %
                          (hoststate['insertdate'], hoststate['updatedate']))
                    print('-' * 20)
                    print('Host State History')
                    for hstatehistory in dbobj.get(
                            'hoststateshistory',
                            search=[['deltaid', delta['uid']],
                                    ['hostname', hostname]]):
                        print('State: %s, Date: %s' %
                              (hstatehistory['state'],
                               hstatehistory['insertdate']))
        toDict = ast.literal_eval(str(delta['content']))
        jOut = getAllHosts(sitename, LOGGER)
        for key in ['reduction', 'addition']:
            print(list(toDict.keys()))
            if key in toDict and toDict[key]:
                print('Got Content %s for key %s', toDict[key], key)
                tmpFile = tempfile.NamedTemporaryFile(delete=False, mode="w+")
                try:
                    tmpFile.write(toDict[key])
                except ValueError as ex:
                    print(
                        'Received ValueError. More details %s. Try to write normally with decode',
                        ex)
                    tmpFile.write(decodebase64(toDict["Content"][key]))
                tmpFile.close()
                # outputDict[key] = self.parseDeltaRequest(tmpFile.name, jOut)
                print("For %s this is delta location %s" % (key, tmpFile.name))
            out = policer.parseDeltaRequest(tmpFile.name, jOut)
            if not out:
                out = policer.parseDeltaRequest(tmpFile.name, jOut, sitename)
                print(out)