)]}'
{"novaclient/v1_1/shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"731027dc64068497ca08c89d16c1925dfdd1ab28","unresolved":false,"context_lines":[{"line_number":1934,"context_line":"def do_keypair_add(cs, args):"},{"line_number":1935,"context_line":"    \"\"\"Create a new key pair for use with instances\"\"\""},{"line_number":1936,"context_line":"    name \u003d args.name"},{"line_number":1937,"context_line":"    pub_key \u003d os.path.expanduser(args.pub_key)"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"    if pub_key:"},{"line_number":1940,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FTp0%3D","line":1937,"updated":"2013-01-29 16:45:21.000000000","message":"And when the user does not provide the --pub-key option, what then?\n\n    \u003e\u003e\u003e os.path.expanduser(None)\n    Traceback (most recent call last):\n      File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\n      File \"/usr/lib64/python2.7/posixpath.py\", line 248, in expanduser\n        if not path.startswith(\u0027~\u0027):\n    AttributeError: \u0027NoneType\u0027 object has no attribute \u0027startswith\u0027\n\nThe best place to put this is inside the \"if pub_key\" block just below…","commit_id":"76da706b693442af4237aa8646594c8d05168b86"},{"author":{"_account_id":6316,"name":"Anita Kuno","email":"anteaya@anteaya.info","username":"anteaya"},"change_message_id":"7aade646d491b146da27915323fd122df82ed024","unresolved":false,"context_lines":[{"line_number":1934,"context_line":"def do_keypair_add(cs, args):"},{"line_number":1935,"context_line":"    \"\"\"Create a new key pair for use with instances\"\"\""},{"line_number":1936,"context_line":"    name \u003d args.name"},{"line_number":1937,"context_line":"    pub_key \u003d os.path.expanduser(args.pub_key)"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"    if pub_key:"},{"line_number":1940,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FTpM%3D","line":1937,"in_reply_to":"AAAAM3%2F%2FTp0%3D","updated":"2013-01-29 16:56:14.000000000","message":"Thank you, Kevin, I will move it.","commit_id":"76da706b693442af4237aa8646594c8d05168b86"},{"author":{"_account_id":6316,"name":"Anita Kuno","email":"anteaya@anteaya.info","username":"anteaya"},"change_message_id":"7aade646d491b146da27915323fd122df82ed024","unresolved":false,"context_lines":[{"line_number":1934,"context_line":"def do_keypair_add(cs, args):"},{"line_number":1935,"context_line":"    \"\"\"Create a new key pair for use with instances\"\"\""},{"line_number":1936,"context_line":"    name \u003d args.name"},{"line_number":1937,"context_line":"    pub_key \u003d os.path.expanduser(args.pub_key)"},{"line_number":1938,"context_line":""},{"line_number":1939,"context_line":"    if pub_key:"},{"line_number":1940,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FTlA%3D","line":1937,"updated":"2013-01-29 17:11:21.000000000","message":"Yes, you are correct. I forgot to take this code out. *shakes head*\nI will look to add some tests. Thanks Kevin.","commit_id":"567320df0bd6a9ee60bbb7bf0d7a056df9411138"}]}
