Exemple #1
0
 def setup_scoreboards(self):
     try:
         # Create Redis Forwarder table with Forwarder info
         self.FWD_SCBD = ForwarderScoreboard('PP_FWD_SCBD',
                                             self._scbd_dict['PP_FWD_SCBD'],
                                             self._forwarder_dict)
         self.JOB_SCBD = JobScoreboard('PP_JOB_SCBD',
                                       self._scbd_dict['PP_JOB_SCBD'])
         self.ACK_SCBD = AckScoreboard('PP_ACK_SCBD',
                                       self._scbd_dict['PP_ACK_SCBD'])
     except L1RabbitConnectionError as e:
         LOGGER.error(
             "PP_Device unable to complete setup_scoreboards-No Rabbit Connect: %s"
             % e.arg)
         print(
             "PP_Device unable to complete setup_scoreboards - No Rabbit Connection: %s"
             % e.arg)
         sys.exit(self.ErrorCodePrefix + 11)
     except L1RedisError as e:
         LOGGER.error(
             "PP_Device unable to complete setup_scoreboards - no Redis connect: %s"
             % e.arg)
         print(
             "PP_Device unable to complete setup_scoreboards - no Redis connection: %s"
             % e.arg)
         sys.exit(self.ErrorCodePrefix + 12)
     except Exception as e:
         LOGGER.error(
             "PP_Device init unable to complete setup_scoreboards: %s" %
             e.arg)
         print("PP_Device unable to complete setup_scoreboards: %s" % e.arg)
         sys.exit(self.ErrorCodePrefix + 10)
    def __init__(self, filename=None):
        toolsmod.singleton(self)

        cdm = self.loadConfigFile(filename)

        try:
            self._msg_name = cdm[ROOT][
                PFM_BROKER_NAME]  # Message broker user & passwd
            self._msg_passwd = cdm[ROOT][PFM_BROKER_PASSWD]
            self._ncsa_name = cdm[ROOT][NCSA_BROKER_NAME]
            self._ncsa_passwd = cdm[ROOT][NCSA_BROKER_PASSWD]
            self._base_broker_addr = cdm[ROOT][BASE_BROKER_ADDR]
            self._ncsa_broker_addr = cdm[ROOT][NCSA_BROKER_ADDR]
            forwarder_dict = cdm[ROOT][XFER_COMPONENTS][FORWARDERS]
        except KeyError as e:
            print("Dictionary error")
            print("Bailing out...")
            sys.exit(99)

        #if 'QUEUE_PURGES' in cdm[ROOT]:
        #    self.purge_broker(cdm['ROOT']['QUEUE_PURGES'])

        self._base_msg_format = self.YAML
        self._ncsa_msg_format = self.YAML

        if 'BASE_MSG_FORMAT' in cdm[ROOT]:
            self._base_msg_format = cdm[ROOT][BASE_MSG_FORMAT]

        if 'NCSA_MSG_FORMAT' in cdm[ROOT]:
            self._ncsa_msg_format = cdm[ROOT][NCSA_MSG_FORMAT]

        self._base_broker_url = 'amqp_url'
        self._ncsa_broker_url = 'amqp_url'
        self._next_timed_ack_id = 0

        # Create Redis Forwarder table with Forwarder info

        self.FWD_SCBD = ForwarderScoreboard(forwarder_dict)
        self.JOB_SCBD = JobScoreboard()
        self.ACK_SCBD = AckScoreboard()
        self._msg_actions = {
            'NEW_JOB': self.process_dmcs_new_job,
            'READOUT': self.process_dmcs_readout,
            'NCSA_RESOURCE_QUERY_ACK': self.process_ack,
            'NCSA_STANDBY_ACK': self.process_ack,
            'NCSA_READOUT_ACK': self.process_ack,
            'FORWARDER_HEALTH_ACK': self.process_ack,
            'FORWARDER_JOB_PARAMS_ACK': self.process_ack,
            'FORWARDER_READOUT_ACK': self.process_ack,
            'NEW_JOB_ACK': self.process_ack
        }

        self._base_broker_url = "amqp://" + self._msg_name + ":" + self._msg_passwd + "@" + str(
            self._base_broker_addr)
        self._ncsa_broker_url = "amqp://" + self._ncsa_name + ":" + self._ncsa_passwd + "@" + str(
            self._ncsa_broker_addr)
        LOGGER.info('Building _base_broker_url. Result is %s',
                    self._base_broker_url)
        LOGGER.info('Building _ncsa_broker_url. Result is %s',
                    self._ncsa_broker_url)
    def __init__(self):

        self.next_timed_ack_id = 46
        self.jscbd = JobScoreboard()
        self.ascbd = AckScoreboard()

        self.fill_job_scoreboard()
 def setup_scoreboards(self):
     # Create Redis Distributor table with Distributor info
     self.DIST_SCBD = DistributorScoreboard('NCSA_DIST_SCBD', \
                                            self._scbd_dict['NCSA_DIST_SCBD'], \
                                            self.distributor_dict)
     self.JOB_SCBD = JobScoreboard('NCSA_JOB_SCBD',
                                   self._scbd_dict['NCSA_JOB_SCBD'])
     self.ACK_SCBD = AckScoreboard('NCSA_ACK_SCBD',
                                   self._scbd_dict['NCSA_ACK_SCBD'])
    def setup_scoreboards(self):
        """ Create Redis Forwarder table with Forwarder info. Create Job and Ack Scoreboard
            objects with values retrieved from configuration file.

            :params: None.

            :return: None.
        """
        # Create Redis Forwarder table with Forwarder info
        self.FWD_SCBD = ForwarderScoreboard('AR_FWD_SCBD',
                                            self._scbd_dict['AR_FWD_SCBD'],
                                            self._forwarder_dict)
        self.JOB_SCBD = JobScoreboard('AR_JOB_SCBD',
                                      self._scbd_dict['AR_JOB_SCBD'])
        self.ACK_SCBD = AckScoreboard('AR_ACK_SCBD',
                                      self._scbd_dict['AR_ACK_SCBD'])
Exemple #6
0
 def __init__(self):
     self.jscbd = JobScoreboard()
     self.fill_job_scoreboard()