Permalink
Browse files

Updated cfadmin to optionally take arguments from STDIN for

invalidation,
Also fixed tabs
  • Loading branch information...
1 parent 4f2d303 commit 64212326dedfa3fcb8cba3c02e2ad7a4e51591e7 @kopertop kopertop committed Apr 4, 2011
Showing with 73 additions and 69 deletions.
  1. +73 −69 bin/cfadmin
View
@@ -5,80 +5,84 @@
# 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 ""
+ """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)
+ """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())
+ """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"""
- if not paths:
- print "Usage: cfadmin invalidate distribution_origin_or_id [path] [path2]..."
- sys.exit(1)
- 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)
+ """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)
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__)
+ 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__)

0 comments on commit 6421232

Please sign in to comment.