Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Unified Diff: third_party/gsutil/boto/bin/cfadmin

Issue 12317103: Added gsutil to depot tools (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/gsutil/boto/bin/bundle_image ('k') | third_party/gsutil/boto/bin/cq » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/gsutil/boto/bin/cfadmin
diff --git a/third_party/gsutil/boto/bin/cfadmin b/third_party/gsutil/boto/bin/cfadmin
new file mode 100755
index 0000000000000000000000000000000000000000..6fcdd86dc8c697e8ce23e1cc13847ecf5f552266
--- /dev/null
+++ b/third_party/gsutil/boto/bin/cfadmin
@@ -0,0 +1,108 @@
+#!/usr/bin/env python
+# Author: Chris Moyer
+#
+# cfadmin is similar to sdbadmin for CloudFront, it's a simple
+# console utility to perform the most frequent tasks with CloudFront
+#
+def _print_distributions(dists):
+ """Internal function to print out all the distributions provided"""
+ print "%-12s %-50s %s" % ("Status", "Domain Name", "Origin")
+ print "-"*80
+ for d in dists:
+ print "%-12s %-50s %-30s" % (d.status, d.domain_name, d.origin)
+ for cname in d.cnames:
+ print " "*12, "CNAME => %s" % cname
+ print ""
+
+def help(cf, fnc=None):
+ """Print help message, optionally about a specific function"""
+ import inspect
+ self = sys.modules['__main__']
+ if fnc:
+ try:
+ cmd = getattr(self, fnc)
+ except:
+ cmd = None
+ if not inspect.isfunction(cmd):
+ print "No function named: %s found" % fnc
+ sys.exit(2)
+ (args, varargs, varkw, defaults) = inspect.getargspec(cmd)
+ print cmd.__doc__
+ print "Usage: %s %s" % (fnc, " ".join([ "[%s]" % a for a in args[1:]]))
+ else:
+ print "Usage: cfadmin [command]"
+ for cname in dir(self):
+ if not cname.startswith("_"):
+ cmd = getattr(self, cname)
+ if inspect.isfunction(cmd):
+ doc = cmd.__doc__
+ print "\t%s - %s" % (cname, doc)
+ sys.exit(1)
+
+def ls(cf):
+ """List all distributions and streaming distributions"""
+ print "Standard Distributions"
+ _print_distributions(cf.get_all_distributions())
+ print "Streaming Distributions"
+ _print_distributions(cf.get_all_streaming_distributions())
+
+def invalidate(cf, origin_or_id, *paths):
+ """Create a cloudfront invalidation request"""
+ # Allow paths to be passed using stdin
+ if not paths:
+ paths = []
+ for path in sys.stdin.readlines():
+ path = path.strip()
+ if path:
+ paths.append(path)
+ dist = None
+ for d in cf.get_all_distributions():
+ if d.id == origin_or_id or d.origin.dns_name == origin_or_id:
+ dist = d
+ break
+ if not dist:
+ print "Distribution not found: %s" % origin_or_id
+ sys.exit(1)
+ cf.create_invalidation_request(dist.id, paths)
+
+def listinvalidations(cf, origin_or_id):
+ """List invalidation requests for a given origin"""
+ dist = None
+ for d in cf.get_all_distributions():
+ if d.id == origin_or_id or d.origin.dns_name == origin_or_id:
+ dist = d
+ break
+ if not dist:
+ print "Distribution not found: %s" % origin_or_id
+ sys.exit(1)
+ results = cf.get_invalidation_requests(dist.id)
+ if results:
+ for result in results:
+ if result.status == "InProgress":
+ result = result.get_invalidation_request()
+ print result.id, result.status, result.paths
+ else:
+ print result.id, result.status
+
+
+if __name__ == "__main__":
+ import boto
+ import sys
+ cf = boto.connect_cloudfront()
+ self = sys.modules['__main__']
+ if len(sys.argv) >= 2:
+ try:
+ cmd = getattr(self, sys.argv[1])
+ except:
+ cmd = None
+ args = sys.argv[2:]
+ else:
+ cmd = help
+ args = []
+ if not cmd:
+ cmd = help
+ try:
+ cmd(cf, *args)
+ except TypeError, e:
+ print e
+ help(cf, cmd.__name__)
« no previous file with comments | « third_party/gsutil/boto/bin/bundle_image ('k') | third_party/gsutil/boto/bin/cq » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698