async def start(self): p = argparse.ArgumentParser() p.add_argument("rd_uri", help="Preconfigured address of the resource" " directory", nargs='?', default='coap://[ff05::fd]') p.add_argument("--simple", help="Run simple registration rather than" " full (incomplete: Never renews)", action="store_true") p.add_argument("--register-as", help="Endpoint name to register as (default: node$SITE", default=None) p.add_argument("--site", help="Use a different resource / link layout", default=1, type=int) add_server_arguments(p) opts = p.parse_args() if opts.site == 1: site = build_site_node1() elif opts.site == 2: site = build_site_node2() elif opts.site == 3: site = build_site_node3() else: raise p.error("Invalid site value") if opts.register_as is None: opts.register_as = "node%s" % opts.site self.context = await server_context_from_arguments(site, opts) if opts.simple: rd_wkc = urljoin(opts.rd_uri, '/.well-known/core?ep=%s<=6000' % opts.register_as) await self.context.request(Message(code=POST, uri=rd_wkc)).response else: self.registerer = Registerer(self.context, opts.rd_uri, lt=120, registration_parameters={'ep': opts.register_as})
def build_parser(): p = argparse.ArgumentParser(description=__doc__) p.add_argument("-v", "--verbose", help="Be more verbose (repeat to debug)", action='count', dest="verbosity", default=0) p.add_argument("--register", help="Register with a Resource directory", metavar='RD-URI', nargs='?', default=False) p.add_argument("path", help="Root directory of the server", nargs="?", default=".", type=Path) add_server_arguments(p) return p
def build_parser(): p = argparse.ArgumentParser(description=__doc__) mode = p.add_argument_group( "mode", "Required argument for setting the operation mode") mode.add_argument('--forward', help="Run as forward proxy", action='store_const', const=ForwardProxyWithPooledObservations, dest='direction') mode.add_argument('--reverse', help="Run as reverse proxy", action='store_const', const=ReverseProxyWithPooledObservations, dest='direction') details = p.add_argument_group( "details", "Options that govern how requests go in and out") add_server_arguments(details) details.add_argument( '--proxy', help="Relay outgoing requests through yet another proxy", metavar="HOST[:PORT]") r = p.add_argument_group( 'Rules', description= "Sequence of forwarding rules that, if matched by a request, specify a forwarding destination" ) class TypedAppend(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): if getattr(namespace, self.dest) is None: setattr(namespace, self.dest, []) getattr(namespace, self.dest).append((option_string, values)) r.add_argument('--namebased', help="If Uri-Host matches NAME, route to DEST", metavar="NAME:DEST", action=TypedAppend, dest='r') r.add_argument( '--pathbased', help= "If a requested path starts with PATH, split that part off and route to DEST", metavar="PATH:DEST", action=TypedAppend, dest='r') r.add_argument('--unconditional', help="Route all requests not previously matched to DEST", metavar="DEST", action=TypedAppend, dest='r') return p
def build_parser(): p = argparse.ArgumentParser(description=__doc__) mode = p.add_argument_group( "mode", "Required argument for setting the operation mode") mode.add_argument('--forward', help="Run as forward proxy", action='store_true') mode.add_argument('--reverse', help="Run as reverse proxy", action='store_true') details = p.add_argument_group( "details", "Options that govern how requests go in and out") add_server_arguments(details) r = p.add_argument_group( 'Rules', description="Sequence of forwarding rules " "that, if matched by a request, specify a forwarding destination. Destinations can be prefixed to change their behavior: With an '@' sign, they are treated as forward proxies. With a '!' sign, the destination is set as Uri-Host." ) class TypedAppend(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): if getattr(namespace, self.dest) is None: setattr(namespace, self.dest, []) getattr(namespace, self.dest).append((option_string, values)) r.add_argument('--namebased', help="If Uri-Host matches NAME, route to DEST", metavar="NAME:DEST", action=TypedAppend, dest='r') r.add_argument('--subdomainbased', help="If Uri-Host is anything.NAME, route to DEST", metavar="NAME:DEST", action=TypedAppend, dest='r') r.add_argument( '--pathbased', help= "If a requested path starts with PATH, split that part off and route to DEST", metavar="PATH:DEST", action=TypedAppend, dest='r') r.add_argument('--unconditional', help="Route all requests not previously matched to DEST", metavar="DEST", action=TypedAppend, dest='r') return p
def build_parser(): p = argparse.ArgumentParser(description=__doc__) add_server_arguments(p) return p