Exemple #1
0
    def do_activity(self, data=None):

        """
        Do the work
        """
        if self.logger:
            self.logger.info('data: %s' % json.dumps(data, sort_keys=True, indent=4))

        self.expanded_bucket_name = (self.settings.publishing_buckets_prefix
                                     + self.settings.expanded_bucket)
        self.crossref_bucket_name = (self.settings.publishing_buckets_prefix
                                     + self.settings.poa_packaging_bucket)

        session = Session(self.settings)

        run = data['run']
        version = session.get_value(run, 'version')
        article_id = session.get_value(run, 'article_id')
        expanded_folder_name = session.get_value(run, 'expanded_folder')


        conn = S3Connection(self.settings.aws_access_key_id,
                            self.settings.aws_secret_access_key)
        bucket = conn.get_bucket(self.expanded_bucket_name)

        self.emit_monitor_event(self.settings, article_id, version, run,
                                "Schedule Crossref", "start",
                                "Starting scheduling of crossref deposit for " + article_id)

        try:
            (xml_key, xml_filename) = ConvertJATS.get_article_xml_key(bucket, expanded_folder_name)

            # Rename the XML file to match what is used already
            new_key_name = self.new_crossref_xml_name(
                prefix=self.crossref_outbox_folder,
                journal='elife',
                article_id=str(article_id).zfill(5))

            self.copy_article_xml_to_crossref_outbox(
                new_key_name=new_key_name,
                source_bucket_name=self.expanded_bucket_name,
                old_key_name=xml_key.name)

            self.emit_monitor_event(self.settings, article_id, version, run, "Schedule Crossref",
                                    "end", "Finished scheduling of crossref deposit " + article_id +
                                    " for version " + version + " run " + str(run))
        except Exception as e:
            self.logger.exception("Exception when scheduling crossref")
            self.emit_monitor_event(self.settings, article_id, version, run, "Schedule Crossref",
                                    "error", "Error scheduling crossref " + article_id +
                                    " message:" + e.message)
            return False

        return True
    def do_activity(self, data=None):

        """
        Do the work
        """
        if self.logger:
            self.logger.info('data: %s' % json.dumps(data, sort_keys=True, indent=4))

        self.expanded_bucket_name = (self.settings.publishing_buckets_prefix
                                     + self.settings.expanded_bucket)

        article_id = data['article_id']
        version = data['version']
        run = data['run']
        expanded_folder_name = data['expanded_folder']
        status = data['status'].lower()

        conn = S3Connection(self.settings.aws_access_key_id,
                            self.settings.aws_secret_access_key)
        bucket = conn.get_bucket(self.expanded_bucket_name)

        self.emit_monitor_event(self.settings, article_id, version, run,
                                "Schedule Downstream", "start",
                                "Starting scheduling of downstream deposits for " + article_id)

        try:
            (xml_key, xml_filename) = ConvertJATS.get_article_xml_key(bucket, expanded_folder_name)

            outbox_list = self.choose_outboxes(status)

            for outbox in outbox_list:
                self.rename_and_copy_to_outbox(xml_key, article_id, outbox)

            self.emit_monitor_event(self.settings, article_id, version, run, "Schedule Downstream",
                                    "end", "Finished scheduling of downstream deposits " +
                                    article_id + " for version " + version + " run " + str(run))
        except Exception as e:
            self.logger.exception("Exception when scheduling downstream")
            self.emit_monitor_event(self.settings, article_id, version, run, "Schedule Downstream",
                                    "error", "Error scheduling downstream " + article_id +
                                    " message:" + e.message)
            return False

        return True