Ejemplo n.º 1
0
def main():
    from seiscomp3 import Logging
    Logging.enableConsoleLogging(Logging.getGlobalChannel("debug"))
    Logging.enableConsoleLogging(Logging.getGlobalChannel("info"))
    Logging.enableConsoleLogging(Logging.getGlobalChannel("warning"))
    Logging.enableConsoleLogging(Logging.getGlobalChannel("error"))
    
    parser = OptionParser(usage="usage: %prog -n <nrt_directory> -a <cur_arch_directory> -i <iso_directory>")
    parser.add_option("-n", "--nrtdir", type="string", dest="nrtdir", help="nrt directory")   
    parser.add_option("-a", "--archdir", type="string", dest="archdir", help="current archive directory")
    parser.add_option("-i", "--isodir", type="string", dest="isodir", help="iso archive directory")
    (options, args) = parser.parse_args()
    
    if options.nrtdir is None:
        parser.error("Error: nrt directory not specified!")
    if options.archdir is None:
        parser.error("Error: sds archive directory not specified!")
    if options.isodir is None:
        parser.error("Error: iso archive directory not specified!")
                
    sdsobj = SDS(options.nrtdir,options.archdir,options.isodir)
    reqlist = [(datetime.datetime(2005,12,20,16,50,0),datetime.datetime(2006,1,30,2,8,0),"WM","EMAL","BHZ","")]
    count = 0
    for req in reqlist:
        count += 1
        print count,". request"
        data = sdsobj.getwin(*req)
        if data is not None:
            print "data_%d" % count
            fh = file("data_%d" % count,"w")
            fh.write(data)
            fh.close()
        else:
            print "No data available"
Ejemplo n.º 2
0
def main():
    from seiscomp3 import Logging
    Logging.enableConsoleLogging(Logging.getGlobalChannel("debug"))
    Logging.enableConsoleLogging(Logging.getGlobalChannel("info"))
    Logging.enableConsoleLogging(Logging.getGlobalChannel("warning"))
    Logging.enableConsoleLogging(Logging.getGlobalChannel("error"))

    parser = OptionParser(
        usage=
        "usage: %prog -n <nrt_directory> -a <cur_arch_directory> -i <iso_directory>"
    )
    parser.add_option("-n",
                      "--nrtdir",
                      type="string",
                      dest="nrtdir",
                      help="nrt directory")
    parser.add_option("-a",
                      "--archdir",
                      type="string",
                      dest="archdir",
                      help="current archive directory")
    parser.add_option("-i",
                      "--isodir",
                      type="string",
                      dest="isodir",
                      help="iso archive directory")
    (options, args) = parser.parse_args()

    if options.nrtdir == None:
        parser.error("Error: nrt directory not specified!")
    if options.archdir == None:
        parser.error("Error: sds archive directory not specified!")
    if options.isodir == None:
        parser.error("Error: iso archive directory not specified!")

    sdsobj = SDS(options.nrtdir, options.archdir, options.isodir)
    reqlist = [(datetime.datetime(2005, 12, 20, 16, 50, 0),
                datetime.datetime(2006, 1, 30, 2, 8,
                                  0), "WM", "EMAL", "BHZ", "")]
    count = 0
    for req in reqlist:
        count += 1
        print count, ". request"
        data = sdsobj.getwin(*req)
        if data != None:
            print "data_%d" % count
            fh = file("data_%d" % count, "w")
            fh.write(data)
            fh.close()
        else:
            print "No data available"
Ejemplo n.º 3
0
def process_options():
    parser = OptionParser(usage="usage: %prog [options]",
      version="%prog v" + VERSION)

    parser.set_defaults(address = "webdc.eu:18001",
                        proxyport = 18001,
                        organization = "proxy",
                        dcid = "GFZ",
                        max_sessions = 500,
                        max_queued = 500,
                        max_queued_per_user = 10,
                        max_executing = 10,
                        max_lines = 5000,
                        max_age = 860000,
                        socket_timeout = 300,
                        request_timeout = 300,
                        download_retries = 5,
                        proxychain = False,
                        local = False)

    parser.add_option("-a", "--address", type="string", dest="address",
      help="address of primary ArcLink node (default %default)")

    parser.add_option("-P", "--proxyport", type="int", dest="proxyport",
      help="proxy port (default %default)")

    parser.add_option("-O", "--organization", type="string", dest="organization",
      help="organization name (default %default)")

    parser.add_option("-d", "--dcid", type="string", dest="dcid",
      help="datacenter ID (default %default)")

    parser.add_option("-S", "--max-sessions", type="int", dest="max_sessions",
      help="maximum number of sessions (default %default)")

    parser.add_option("-Q", "--max-queued", type="int", dest="max_queued",
      help="maximum number of queued requests (default %default)")

    parser.add_option("-U", "--max-queued-per-user", type="int", dest="max_queued_per_user",
      help="maximum number of queued requests (default %default)")

    parser.add_option("-X", "--max-executing", type="int", dest="max_executing",
      help="maximum number of requests executed in parallel (default %default)")

    parser.add_option("-L", "--max-lines", type="int", dest="max_lines",
      help="maximum number of lines in request (default %default)")

    parser.add_option("-T", "--max-age", type="int", dest="max_age",
      help="maximum age of request (default %default)")

    parser.add_option("-t", "--socket-timeout", type="int", dest="socket_timeout",
      help="socket timeout in seconds (default %default)")

    #parser.add_option("-r, "--request-timeout", type="int", dest="request_timeout",
    #  help="request timeout in seconds (default %default)")

    parser.add_option("-R", "--download-retries", type="int", dest="download_retries",
      help="download retries (default %default)")

    parser.add_option("-N", "--nrtdir", type="string", dest="nrtdir",
      help="NRT SDS directory (default %default)")

    parser.add_option("-A", "--arcdir", type="string", dest="arcdir",
      help="SDS archive directory (default %default)")

    parser.add_option("-I", "--isodir", type="string", dest="isodir",
      help="ISO archive directory (default %default)")

    parser.add_option("-p", "--disable-routing", action="store_true", dest="proxychain",
      help="disable routing")

    parser.add_option("-l", "--local-only", action="store_true", dest="local",
      help="use local SDS only")

    parser.add_option("-x", "--state-file", type="string", dest="state_file",
      help="save/restore request information to this file")

    parser.add_option("-v", action="callback", callback=add_verbosity,
      help="increase verbosity level")
    
    parser.add_option("-q", action="callback", callback=add_quietness,
      help="decrease verbosity level")
    
    global g_options
    (g_options, args) = parser.parse_args()

    if args:
        parser.error("incorrect number of arguments")

    if g_options.nrtdir is None:
        g_options.nrtdir = os.getenv("SEISCOMP_ROOT", "") + "/var/lib/archive"

    if g_options.arcdir is None:
        g_options.arcdir = "/dummy"

    if g_options.isodir is None:
        g_options.isodir = "/dummy"

    if g_verbosity > 1:
        Logging.enableConsoleLogging(Logging.getGlobalChannel("debug"))
        Logging.enableConsoleLogging(Logging.getGlobalChannel("info"))
        Logging.enableConsoleLogging(Logging.getGlobalChannel("notice"))
        Logging.enableConsoleLogging(Logging.getGlobalChannel("warning"))
        Logging.enableConsoleLogging(Logging.getGlobalChannel("error"))
Ejemplo n.º 4
0
    def init(self):
        """
        SC3 specific method.

        Returning False means that we do not enter the SeisComP3 run loop.
        """

        if Application.init(self) == False:
            return False

        result: Optional[model.WPhaseResult] = None

        Logging.enableConsoleLogging(Logging.getGlobalChannel("error"))
        wphase_failed = False

        if self.filename is not None:
            # Output JSON was provided, so we just send it to messaging.
            logger.info("Parsing W-Phase result from file.")
            result = model.WPhaseResult.parse_file(self.filename)
        else:
            # Run the inversion.
            try:
                logger.info("Starting W-Phase.")
                result = runwphase(
                    output_dir=self.output,
                    server=self.fdsn_client,
                    eqinfo=self.eqinfo,
                    networks=self.networks,
                    make_maps=self.make_maps,
                    output_dir_can_exist=self.overwrite,
                    save_waveforms=self.save_waveforms,
                    save_inventory=self.save_inventory,
                    waveforms=self.waveforms,
                    inventory=self.inventory,
                )
            except Exception:
                logger.exception("W-Phase run failed.")
                wphase_failed = True

        if result is not None:
            try:
                objs = createAndSendObjects(result,
                                            self.connection(),
                                            evid=self.evid,
                                            agency=self.agency)
            except Exception:
                logger.exception("Failed to create objects for SC3.")
            else:
                filename = os.path.join(str(self.output), "sc3.xml")
                try:
                    # write output to file
                    writeSCML(filename, objs)
                    logger.info("Stored results in SCML as %s", filename)
                except Exception:
                    logger.exception("Failed to write SCML to %s.", filename)

        if self.write_s3:
            # We always want to write to S3, even in the event of failure as
            # the JSON output may explain the failure. We also want to do it
            # at the very end since we keep the sc3 log file.

            try:
                from wphase.aws import write_to_s3
                write_to_s3(self.output, self.bucket_name, self.evid,
                            self.resultid,
                            [(self._logfile_for_s3.name, 'sc3.log')],
                            logger.error)
            except Exception as e:
                logger.error('failed write to S3: %s', e)
            finally:
                self._logfile_for_s3.close()

        if self.notificationemail:
            # must be done after writing to S3
            success = result is not None and result.MomentTensor is not None
            subject, body = self.createEmail(
                event_id=self.evid,
                result_id=self.resultid,
                result=result,
                call_succeeded=success,
            )
            send_email(
                recipients=self.notificationemail,
                subject=self.email_subject_prefix + str(subject) +
                self.email_subject_postfix,
                message=body,
                from_email=self.fromemail,
                method=self.email_method,
                email_aws_region=self.email_aws_region,
                server=self.smtp_server,
                port=self.smtp_port,
                user=self.smtp_user,
                password=self.smtp_password,
                ssl=self.smtp_ssl,
                tls=self.smtp_tls,
            )

        sys.exit(1 if wphase_failed else 0)
Ejemplo n.º 5
0
def process_options():
    parser = OptionParser(usage="usage: %prog [options]",
                          version="%prog v" + VERSION)

    parser.set_defaults(address="webdc.eu:18001",
                        proxyport=18001,
                        organization="proxy",
                        dcid="GFZ",
                        max_sessions=500,
                        max_queued=500,
                        max_queued_per_user=10,
                        max_executing=10,
                        max_lines=5000,
                        max_age=860000,
                        socket_timeout=300,
                        request_timeout=300,
                        download_retries=5,
                        proxychain=False,
                        local=False)

    parser.add_option(
        "-a",
        "--address",
        type="string",
        dest="address",
        help="address of primary ArcLink node (default %default)")

    parser.add_option("-P",
                      "--proxyport",
                      type="int",
                      dest="proxyport",
                      help="proxy port (default %default)")

    parser.add_option("-O",
                      "--organization",
                      type="string",
                      dest="organization",
                      help="organization name (default %default)")

    parser.add_option("-d",
                      "--dcid",
                      type="string",
                      dest="dcid",
                      help="datacenter ID (default %default)")

    parser.add_option("-S",
                      "--max-sessions",
                      type="int",
                      dest="max_sessions",
                      help="maximum number of sessions (default %default)")

    parser.add_option(
        "-Q",
        "--max-queued",
        type="int",
        dest="max_queued",
        help="maximum number of queued requests (default %default)")

    parser.add_option(
        "-U",
        "--max-queued-per-user",
        type="int",
        dest="max_queued_per_user",
        help="maximum number of queued requests (default %default)")

    parser.add_option(
        "-X",
        "--max-executing",
        type="int",
        dest="max_executing",
        help=
        "maximum number of requests executed in parallel (default %default)")

    parser.add_option(
        "-L",
        "--max-lines",
        type="int",
        dest="max_lines",
        help="maximum number of lines in request (default %default)")

    parser.add_option("-T",
                      "--max-age",
                      type="int",
                      dest="max_age",
                      help="maximum age of request (default %default)")

    parser.add_option("-t",
                      "--socket-timeout",
                      type="int",
                      dest="socket_timeout",
                      help="socket timeout in seconds (default %default)")

    #parser.add_option("-r, "--request-timeout", type="int", dest="request_timeout",
    #  help="request timeout in seconds (default %default)")

    parser.add_option("-R",
                      "--download-retries",
                      type="int",
                      dest="download_retries",
                      help="download retries (default %default)")

    parser.add_option("-N",
                      "--nrtdir",
                      type="string",
                      dest="nrtdir",
                      help="NRT SDS directory (default %default)")

    parser.add_option("-A",
                      "--arcdir",
                      type="string",
                      dest="arcdir",
                      help="SDS archive directory (default %default)")

    parser.add_option("-I",
                      "--isodir",
                      type="string",
                      dest="isodir",
                      help="ISO archive directory (default %default)")

    parser.add_option("-p",
                      "--disable-routing",
                      action="store_true",
                      dest="proxychain",
                      help="disable routing")

    parser.add_option("-l",
                      "--local-only",
                      action="store_true",
                      dest="local",
                      help="use local SDS only")

    parser.add_option("-x",
                      "--state-file",
                      type="string",
                      dest="state_file",
                      help="save/restore request information to this file")

    parser.add_option("-v",
                      action="callback",
                      callback=add_verbosity,
                      help="increase verbosity level")

    parser.add_option("-q",
                      action="callback",
                      callback=add_quietness,
                      help="decrease verbosity level")

    global g_options
    (g_options, args) = parser.parse_args()

    if args:
        parser.error("incorrect number of arguments")

    if g_options.nrtdir is None:
        g_options.nrtdir = os.getenv("SEISCOMP_ROOT", "") + "/var/lib/archive"

    if g_options.arcdir is None:
        g_options.arcdir = "/dummy"

    if g_options.isodir is None:
        g_options.isodir = "/dummy"

    if g_verbosity > 1:
        Logging.enableConsoleLogging(Logging.getGlobalChannel("debug"))
        Logging.enableConsoleLogging(Logging.getGlobalChannel("info"))
        Logging.enableConsoleLogging(Logging.getGlobalChannel("notice"))
        Logging.enableConsoleLogging(Logging.getGlobalChannel("warning"))
        Logging.enableConsoleLogging(Logging.getGlobalChannel("error"))