5 def get(nodeurl, root_uri, vdrive_fname, local_file, stdout, stderr):
8 url = nodeurl + "uri/%s/" % urllib.quote(root_uri)
10 url += urllib.quote(vdrive_fname)
12 if local_file is None or local_file == "-":
16 outf = open(local_file, "wb")
18 inf = urllib.urlopen(url)
32 parser = optparse.OptionParser()
33 parser.add_option("-u", "--nodeurl", dest="nodeurl")
34 parser.add_option("-r", "--root-uri", dest="rooturi")
36 (options, args) = parser.parse_args()
38 NODEURL_RE=re.compile("http://([^:]*)(:([1-9][0-9]*))?")
39 if not isinstance(options.nodeurl, basestring) or not NODEURL_RE.match(options.nodeurl):
40 raise ValueError("--node-url is required to be a string and look like \"http://HOSTNAMEORADDR:PORT\", not: %r" % (options.nodeurl,))
42 if not options.rooturi:
43 raise ValueError("must provide --root-uri")
45 vdrive_fname = args[0]
50 get(options.nodeurl, options.rooturi, vdrive_fname, local_file)
52 if __name__ == '__main__':