Merge "Make the keypair example a bit more robust"

This commit is contained in:
Jenkins
2015-03-10 14:54:40 +00:00
committed by Gerrit Code Review

View File

@@ -68,24 +68,32 @@ def create(conn, name, opts, ports_to_open=[80, 22]):
kp = conn.compute.find_keypair(name) kp = conn.compute.find_keypair(name)
if kp is None: if kp is None:
# TODO(terrylhowe): Perhaps create keypair from id_rsa by default dirname = os.path.expanduser("~/.ssh")
# and maybe create id_rsa if it doesn't exist.
kp = conn.compute.create_keypair(name=name)
try: try:
os.remove(name) os.mkdir(dirname, 0o700)
except OSError: except OSError:
pass pass
filename = os.path.join(dirname, name)
filenamepub = filename + '.pub'
args = {'name': name}
pubkey = None
try: try:
os.remove(name + '.pub') f = open(filenamepub, 'r')
except OSError: pubkey = f.read()
f.close()
args['public_key'] = pubkey
except IOError:
pass pass
print(str(kp)) kp = conn.compute.create_keypair(**args)
f = open(name, 'w') if pubkey is None:
f = open(filename, 'w')
f.write("%s" % kp.private_key) f.write("%s" % kp.private_key)
f.close() f.close()
f = open(name + '.pub', 'w') f = open(filenamepub, 'w')
f.write("%s" % kp.public_key) f.write("%s" % kp.public_key)
f.close() f.close()
os.chmod(filename, 0o640)
os.chmod(filenamepub, 0o644)
print(str(kp)) print(str(kp))
return network return network