)]}'
{"common/rest_client.py":[{"author":{"_account_id":1850,"name":"Nachi Ueno","email":"ueno.nachi@lab.ntt.co.jp","username":"ueno-nachi+instance2"},"change_message_id":"f6a7363ef4a739fd9969a8c7b1f2a93ef9b4c3cf","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    def __init__(self, user, key, auth_url, tenant_name\u003dNone):"},{"line_number":8,"context_line":"        self.config \u003d nova.config.OpenStackConfig()"},{"line_number":9,"context_line":"        "},{"line_number":10,"context_line":"        if self.config.env.authentication \u003d\u003d \u0027keystone\u0027:"},{"line_number":11,"context_line":"            self.token, self.base_url \u003d self.keystone_authenticate(user, "},{"line_number":12,"context_line":"                                                                   key, "},{"line_number":13,"context_line":"                                                                   auth_url, "}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F4mo%3D","line":10,"updated":"2011-11-03 23:53:06.000000000","message":"It looks whether  env.authentication is \u0027keystone\u0027 or not, we use keystone authentication. If so,Should this be not \u0027keystone\u0027 but \u0027auth_by_tenant\u0027 ?","commit_id":"e120d1a13732d3489c4ceb595643a27b0a408ff5"},{"author":{"_account_id":1850,"name":"Nachi Ueno","email":"ueno.nachi@lab.ntt.co.jp","username":"ueno-nachi+instance2"},"change_message_id":"f6a7363ef4a739fd9969a8c7b1f2a93ef9b4c3cf","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        "},{"line_number":77,"context_line":"    def put(self, url, body, headers):"},{"line_number":78,"context_line":"        return self.request(\u0027PUT\u0027, url, headers, body)"},{"line_number":79,"context_line":"        "},{"line_number":80,"context_line":"    def request(self, method, url, headers\u003dNone, body\u003dNone):"},{"line_number":81,"context_line":"        \"\"\" A simple HTTP request interface.\"\"\""},{"line_number":82,"context_line":"        "}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F4mk%3D","line":79,"updated":"2011-11-03 23:53:06.000000000","message":"keystone api uses HEAD method based on their WADL coducment. http://localhost:35357/v2.0/tokens/{tokenId}. So may be you need head one.","commit_id":"e120d1a13732d3489c4ceb595643a27b0a408ff5"}],"nova/openstack.py":[{"author":{"_account_id":1850,"name":"Nachi Ueno","email":"ueno.nachi@lab.ntt.co.jp","username":"ueno-nachi+instance2"},"change_message_id":"f6a7363ef4a739fd9969a8c7b1f2a93ef9b4c3cf","unresolved":false,"context_lines":[{"line_number":11,"context_line":"        \"\"\""},{"line_number":12,"context_line":"        "},{"line_number":13,"context_line":"        self.config \u003d nova.config.OpenStackConfig()"},{"line_number":14,"context_line":"        if self.config.env.authentication \u003d\u003d \u0027keystone\u0027:"},{"line_number":15,"context_line":"            self.servers_client \u003d servers_json_client.ServersClient(self.config.nova.username, "},{"line_number":16,"context_line":"                                                                    self.config.nova.api_key, "},{"line_number":17,"context_line":"                                                                    self.config.nova.auth_url, "}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F4mc%3D","line":14,"updated":"2011-11-03 23:53:06.000000000","message":"If see this if condition twice. May be we should have authentication drivers or something? (next step)","commit_id":"e120d1a13732d3489c4ceb595643a27b0a408ff5"}],"storm/common/rest_client.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def basic_authenticate(self, user, api_key, auth_url):"},{"line_number":22,"context_line":"        \"\"\""},{"line_number":23,"context_line":"        Provides authenitication for the target API"},{"line_number":24,"context_line":"        \"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        params \u003d {}"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FrY%3D","line":23,"updated":"2011-11-09 20:06:20.000000000","message":"s/authenitication/authentication/","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def basic_authenticate(self, user, api_key, auth_url):"},{"line_number":22,"context_line":"        \"\"\""},{"line_number":23,"context_line":"        Provides authenitication for the target API"},{"line_number":24,"context_line":"        \"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        params \u003d {}"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fiw%3D","line":23,"in_reply_to":"AAAACn%2F%2F%2FrY%3D","updated":"2011-11-09 23:17:02.000000000","message":"Done","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":33,"context_line":"        except:"},{"line_number":34,"context_line":"            raise"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def keystone_authenticate(self, user, api_key, auth_url, tenant_name):"},{"line_number":37,"context_line":"        \"\"\""},{"line_number":38,"context_line":"        Provides authenitication via Keystone"},{"line_number":39,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FrI%3D","line":36,"updated":"2011-11-09 20:06:20.000000000","message":"The above is V2 Keystone authentication... so I would name this keystone_v2_authenticate. In the constructor, you could set self.keystone_authenticate \u003d self.keystone_v2_authenticate if the identity API version is 2...","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":33,"context_line":"        except:"},{"line_number":34,"context_line":"            raise"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def keystone_authenticate(self, user, api_key, auth_url, tenant_name):"},{"line_number":37,"context_line":"        \"\"\""},{"line_number":38,"context_line":"        Provides authenitication via Keystone"},{"line_number":39,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fik%3D","line":36,"in_reply_to":"AAAACn%2F%2F%2FrI%3D","updated":"2011-11-09 23:17:02.000000000","message":"Done","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def keystone_authenticate(self, user, api_key, auth_url, tenant_name):"},{"line_number":37,"context_line":"        \"\"\""},{"line_number":38,"context_line":"        Provides authenitication via Keystone"},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        creds \u003d {\u0027auth\u0027: {"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FrU%3D","line":38,"updated":"2011-11-09 20:06:20.000000000","message":"same typo as above :)","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def keystone_authenticate(self, user, api_key, auth_url, tenant_name):"},{"line_number":37,"context_line":"        \"\"\""},{"line_number":38,"context_line":"        Provides authenitication via Keystone"},{"line_number":39,"context_line":"        \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        creds \u003d {\u0027auth\u0027: {"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fi0%3D","line":38,"in_reply_to":"AAAACn%2F%2F%2FrU%3D","updated":"2011-11-09 23:17:02.000000000","message":"Done","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.http_obj \u003d httplib2.Http()"},{"line_number":51,"context_line":"        headers \u003d {\u0027Content-Type\u0027: \u0027application/json\u0027}"},{"line_number":52,"context_line":"        body \u003d json.dumps(creds)"},{"line_number":53,"context_line":"        resp, body \u003d self.http_obj.request(auth_url, \u0027POST\u0027, headers\u003dheaders, body\u003dbody)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        try:"},{"line_number":56,"context_line":"            auth_data \u003d json.loads(body)[\u0027access\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FrQ%3D","line":53,"updated":"2011-11-09 20:06:20.000000000","message":"Why not use self.post() here?","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.http_obj \u003d httplib2.Http()"},{"line_number":51,"context_line":"        headers \u003d {\u0027Content-Type\u0027: \u0027application/json\u0027}"},{"line_number":52,"context_line":"        body \u003d json.dumps(creds)"},{"line_number":53,"context_line":"        resp, body \u003d self.http_obj.request(auth_url, \u0027POST\u0027, headers\u003dheaders, body\u003dbody)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        try:"},{"line_number":56,"context_line":"            auth_data \u003d json.loads(body)[\u0027access\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fis%3D","line":53,"in_reply_to":"AAAACn%2F%2F%2FrQ%3D","updated":"2011-11-09 23:17:02.000000000","message":"Right now the request method is using the url for the API endpoint for its requests. Since to authenticate we have to make a request to the auth url, I simply made the request in line. This is certainly something we can refactor and fix in the future.","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"}],"storm/common/utils/data_utils.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"import random"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"def data_gen(self, name\u003d\u0027test\u0027):"},{"line_number":5,"context_line":"    return name + str(random.randint(1, 99999999999))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fq0%3D","line":4,"updated":"2011-11-09 20:06:20.000000000","message":"Hate to be a stickler, but any way we can have a more descriptive name here? :)\n\nPerhaps rand_str_id()?","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"import random"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"def data_gen(self, name\u003d\u0027test\u0027):"},{"line_number":5,"context_line":"    return name + str(random.randint(1, 99999999999))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fig%3D","line":4,"in_reply_to":"AAAACn%2F%2F%2Fq0%3D","updated":"2011-11-09 23:17:02.000000000","message":"Done","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"}],"storm/openstack.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"from storm.services.nova.json import images_json_client"},{"line_number":2,"context_line":"from storm.services.nova.json import flavors_client"},{"line_number":3,"context_line":"from storm.services.nova.json import servers_json_client"},{"line_number":4,"context_line":"import storm.config"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FqU%3D","line":3,"updated":"2011-11-09 20:06:20.000000000","message":"Any reason flavors is different from images and servers above? (missing json_ in module name)","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"from storm.services.nova.json import images_json_client"},{"line_number":2,"context_line":"from storm.services.nova.json import flavors_client"},{"line_number":3,"context_line":"from storm.services.nova.json import servers_json_client"},{"line_number":4,"context_line":"import storm.config"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fhg%3D","line":3,"in_reply_to":"AAAACn%2F%2F%2FqU%3D","updated":"2011-11-09 23:17:02.000000000","message":"Done","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"}],"storm/services/nova/json/images_json_client.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"from storm.common import rest_client"},{"line_number":2,"context_line":"import json"},{"line_number":3,"context_line":"import time"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FqM%3D","line":1,"updated":"2011-11-09 20:06:20.000000000","message":"I\u0027d recommend calling this module simply images_client, not images_json_client, since json is already in the module directory name...","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"from storm.common import rest_client"},{"line_number":2,"context_line":"import json"},{"line_number":3,"context_line":"import time"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fi8%3D","line":1,"in_reply_to":"AAAACn%2F%2F%2FqM%3D","updated":"2011-11-09 23:17:02.000000000","message":"Done","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":71,"context_line":"        image_status \u003d body[\u0027image\u0027][\u0027status\u0027]"},{"line_number":72,"context_line":"        start \u003d int(time.time())"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        while(image_status !\u003d status):"},{"line_number":75,"context_line":"            time.sleep(self.build_interval)"},{"line_number":76,"context_line":"            resp, body \u003d self.get_image(image_id)"},{"line_number":77,"context_line":"            image_status \u003d body[\u0027image\u0027][\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FqI%3D","line":74,"updated":"2011-11-09 20:06:20.000000000","message":"no need for parens above.. tiny nit :)","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":71,"context_line":"        image_status \u003d body[\u0027image\u0027][\u0027status\u0027]"},{"line_number":72,"context_line":"        start \u003d int(time.time())"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        while(image_status !\u003d status):"},{"line_number":75,"context_line":"            time.sleep(self.build_interval)"},{"line_number":76,"context_line":"            resp, body \u003d self.get_image(image_id)"},{"line_number":77,"context_line":"            image_status \u003d body[\u0027image\u0027][\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FjA%3D","line":74,"in_reply_to":"AAAACn%2F%2F%2FqI%3D","updated":"2011-11-09 23:17:02.000000000","message":"Done","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":77,"context_line":"            image_status \u003d body[\u0027image\u0027][\u0027status\u0027]"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"            if(image_status \u003d\u003d \u0027ERROR\u0027):"},{"line_number":80,"context_line":"                raise exceptions.TimeoutException"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"            if (int(time.time()) - start \u003e\u003d self.build_timeout):"},{"line_number":83,"context_line":"                raise exceptions.BuildErrorException"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FqE%3D","line":80,"updated":"2011-11-09 20:06:20.000000000","message":"same comment about no need for parens in if blocks (here and below)","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":77,"context_line":"            image_status \u003d body[\u0027image\u0027][\u0027status\u0027]"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"            if(image_status \u003d\u003d \u0027ERROR\u0027):"},{"line_number":80,"context_line":"                raise exceptions.TimeoutException"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"            if (int(time.time()) - start \u003e\u003d self.build_timeout):"},{"line_number":83,"context_line":"                raise exceptions.BuildErrorException"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FjE%3D","line":80,"in_reply_to":"AAAACn%2F%2F%2FqE%3D","updated":"2011-11-09 23:17:02.000000000","message":"Done","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"}],"storm/services/nova/json/servers_json_client.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"from storm import exceptions"},{"line_number":2,"context_line":"from storm.common import rest_client"},{"line_number":3,"context_line":"import json"},{"line_number":4,"context_line":"import storm.config"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FqA%3D","line":1,"updated":"2011-11-09 20:06:20.000000000","message":"I\u0027d recommend calling this module simply servers_client, not servers_json_client, since json is already in the module directory name...","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"from storm import exceptions"},{"line_number":2,"context_line":"from storm.common import rest_client"},{"line_number":3,"context_line":"import json"},{"line_number":4,"context_line":"import storm.config"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fic%3D","line":1,"in_reply_to":"AAAACn%2F%2F%2FqA%3D","updated":"2011-11-09 23:17:02.000000000","message":"Done","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":197,"context_line":"        if personality !\u003d None:"},{"line_number":198,"context_line":"            post_body[\u0027personality\u0027] \u003d personality"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        post_body \u003d json.dumps({\u0027rebuild\u0027: post_body})"},{"line_number":201,"context_line":"        resp, body \u003d self.client.post(\u0027servers/%s/action\u0027 "},{"line_number":202,"context_line":"                                      % str(server_id), post_body, self.headers)"},{"line_number":203,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fpw%3D","line":200,"updated":"2011-11-09 20:06:20.000000000","message":"See ending whitespace ini a few lines below...","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":197,"context_line":"        if personality !\u003d None:"},{"line_number":198,"context_line":"            post_body[\u0027personality\u0027] \u003d personality"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        post_body \u003d json.dumps({\u0027rebuild\u0027: post_body})"},{"line_number":201,"context_line":"        resp, body \u003d self.client.post(\u0027servers/%s/action\u0027 "},{"line_number":202,"context_line":"                                      % str(server_id), post_body, self.headers)"},{"line_number":203,"context_line":"        body \u003d json.loads(body)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FiY%3D","line":200,"in_reply_to":"AAAACn%2F%2F%2Fpw%3D","updated":"2011-11-09 23:17:02.000000000","message":"Done","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"}],"storm/services/nova/xml/images_xml_client.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"import lxml"},{"line_number":2,"context_line":"import storm.common import rest_client"},{"line_number":3,"context_line":"import time"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fpk%3D","line":1,"updated":"2011-11-09 20:06:20.000000000","message":"Can I assume this module is incomplete?\n\nAlso, recommend s/images_xml_client/images_client since xml is in the module directory name...","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"import lxml"},{"line_number":2,"context_line":"import storm.common import rest_client"},{"line_number":3,"context_line":"import time"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FiU%3D","line":1,"in_reply_to":"AAAACn%2F%2F%2Fpk%3D","updated":"2011-11-09 23:17:02.000000000","message":"Yes, the XML implementation is a WIP. Also changed the file name as recommended.","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"}],"storm/services/nova/xml/servers_xml_client.py":[{"author":{"_account_id":1850,"name":"Nachi Ueno","email":"ueno.nachi@lab.ntt.co.jp","username":"ueno-nachi+instance2"},"change_message_id":"f6a7363ef4a739fd9969a8c7b1f2a93ef9b4c3cf","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        self.maker \u003d objectify.ElementMaker(annotate\u003dFalse)"},{"line_number":18,"context_line":"        self.headers \u003d {\u0027Content-Type\u0027: \u0027application/xml\u0027, \u0027Accept\u0027: \u0027application/xml\u0027}"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    def create_server(self, name, image_ref, flavor_ref, meta\u003dNone, "},{"line_number":21,"context_line":"                      personality\u003dNone, accessIPv4\u003dNone, accessIPv6\u003dNone,"},{"line_number":22,"context_line":"                      adminPass\u003dNone):"},{"line_number":23,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F3ik%3D","line":20,"updated":"2011-11-08 18:43:57.000000000","message":"This code contains some wrong spaces.","commit_id":"1322fd1ad4362771d5dd572ead0cbde7f04b2372"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"from lxml import objectify"},{"line_number":2,"context_line":"from lxml import etree"},{"line_number":3,"context_line":"from storm import exceptions"},{"line_number":4,"context_line":"from storm.common import rest_client"},{"line_number":5,"context_line":"import json"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2Fpc%3D","line":2,"updated":"2011-11-09 20:06:20.000000000","message":"Recommend s/servers_xml_client/servers_client since xml is in the module directory name...","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":1,"context_line":"from lxml import objectify"},{"line_number":2,"context_line":"from lxml import etree"},{"line_number":3,"context_line":"from storm import exceptions"},{"line_number":4,"context_line":"from storm.common import rest_client"},{"line_number":5,"context_line":"import json"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FiQ%3D","line":2,"in_reply_to":"AAAACn%2F%2F%2Fpc%3D","updated":"2011-11-09 23:17:02.000000000","message":"Done","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"unresolved":false,"context_lines":[{"line_number":229,"context_line":"            }"},{"line_number":230,"context_line":"        }"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        post_body \u003d json.dumps(post_body)"},{"line_number":233,"context_line":"        return self.client.post(\u0027servers/%s/action\u0027 % str(server_id),"},{"line_number":234,"context_line":"                                self.headers,"},{"line_number":235,"context_line":"                                post_body)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FpU%3D","line":232,"updated":"2011-11-09 20:06:20.000000000","message":"JSON in the XML client? :) Here and a number of places below, I assume are just incomplete?","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"unresolved":false,"context_lines":[{"line_number":229,"context_line":"            }"},{"line_number":230,"context_line":"        }"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        post_body \u003d json.dumps(post_body)"},{"line_number":233,"context_line":"        return self.client.post(\u0027servers/%s/action\u0027 % str(server_id),"},{"line_number":234,"context_line":"                                self.headers,"},{"line_number":235,"context_line":"                                post_body)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACn%2F%2F%2FiI%3D","line":232,"in_reply_to":"AAAACn%2F%2F%2FpU%3D","updated":"2011-11-09 23:17:02.000000000","message":"Yeah, caught another WIP. Removing the incomplete sections for sake of clarity.","commit_id":"4d05a780b6a9b382d10ae04fd7f3a347e3af3508"}],"storm/tests/test_flavors.py":[{"author":{"_account_id":1850,"name":"Nachi Ueno","email":"ueno.nachi@lab.ntt.co.jp","username":"ueno-nachi+instance2"},"change_message_id":"f6a7363ef4a739fd9969a8c7b1f2a93ef9b4c3cf","unresolved":false,"context_lines":[{"line_number":4,"context_line":"import unittest2 as unittest"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"class FlavorsTest(unittest.TestCase):"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    @classmethod"},{"line_number":10,"context_line":"    def setUpClass(cls):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F3ig%3D","line":7,"updated":"2011-11-08 18:43:57.000000000","message":"This code also contains spaces","commit_id":"1322fd1ad4362771d5dd572ead0cbde7f04b2372"}],"storm/tests/test_server_actions.py":[{"author":{"_account_id":1850,"name":"Nachi Ueno","email":"ueno.nachi@lab.ntt.co.jp","username":"ueno-nachi+instance2"},"change_message_id":"f6a7363ef4a739fd9969a8c7b1f2a93ef9b4c3cf","unresolved":false,"context_lines":[{"line_number":4,"context_line":"import storm.config"},{"line_number":5,"context_line":"from storm.common.utils.data_utils import data_gen"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"class ServerActionsTest(unittest.TestCase):"},{"line_number":9,"context_line":"    resize_available \u003d storm.config.StormConfig().env.resize_available"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F3ic%3D","line":7,"updated":"2011-11-08 18:43:57.000000000","message":"This code also contains spaces","commit_id":"1322fd1ad4362771d5dd572ead0cbde7f04b2372"}],"storm/tests/test_servers.py":[{"author":{"_account_id":1850,"name":"Nachi Ueno","email":"ueno.nachi@lab.ntt.co.jp","username":"ueno-nachi+instance2"},"change_message_id":"f6a7363ef4a739fd9969a8c7b1f2a93ef9b4c3cf","unresolved":false,"context_lines":[{"line_number":6,"context_line":"import storm.config"},{"line_number":7,"context_line":"import unittest2 as unittest"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"class ServersTest(unittest.TestCase):"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAACX%2F%2F3iY%3D","line":9,"updated":"2011-11-08 18:43:57.000000000","message":"This code also contains spaces","commit_id":"1322fd1ad4362771d5dd572ead0cbde7f04b2372"}]}
