Skip to content

Commit a0f7017

Browse files
committed
Merge pull request #5 from cinaglia/master
Fixed issue #2: /all errors
2 parents aad86cd + a1725cf commit a0f7017

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

keychain/app.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
app = Flask('keychain')
1818
app.config['DEBUG'] = True
1919

20+
bucket_name = 'keychain.io'
2021
action_expiry = 3600
2122
pending_actions = {}
2223

@@ -26,10 +27,17 @@ def s3key(email, name):
2627
global s3
2728
if not s3:
2829
s3 = boto.connect_s3()
29-
k = boto.s3.key.Key(s3.lookup('keychain.io'))
30+
k = boto.s3.key.Key(s3.lookup(bucket_name))
3031
k.key = '{}.{}'.format(email, name)
3132
return k
3233

34+
def s3keys(email):
35+
global s3
36+
if not s3:
37+
s3 = boto.connect_s3()
38+
b = s3.get_bucket(bucket_name)
39+
return b.list(prefix=email)
40+
3341
def lookup_key(email, name=None):
3442
name = name or 'default'
3543
k = s3key(email, name)
@@ -38,6 +46,13 @@ def lookup_key(email, name=None):
3846
except:
3947
return None
4048

49+
def lookup_keys(email):
50+
keys = s3keys(email)
51+
try:
52+
return [k.get_contents_as_string() for k in keys]
53+
except Exception, e:
54+
return None
55+
4156
def upload_key(email, name, key):
4257
k = s3key(email, name)
4358
k.set_contents_from_string(key.strip())
@@ -112,12 +127,12 @@ def default_fingerprint(email):
112127

113128
@app.route('/<email>/all')
114129
def all_keys(email):
115-
keys_ = [lookup_key(email, key) for key in keys[email]]
130+
keys_ = lookup_keys(email)
116131
return "{0}\n".format('\n'.join(keys_))
117132

118133
@app.route('/<email>/all/install')
119134
def all_install(email):
120-
keys_ = [lookup_key(email, key) for key in keys[email]]
135+
keys_ = lookup_keys(email)
121136
return render_template('install.sh', keys=keys_)
122137

123138
@app.route('/<email>/<keyname>', methods=['GET', 'PUT', 'DELETE'])

0 commit comments

Comments
 (0)