This file is indexed.

/usr/share/doc/python-boto/examples/cfadmin is in python-boto 2.20.1-2ubuntu2.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
#!/usr/bin/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__)