)]}'
{"bin/ceilometer-api":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"63aaf6b467537c805f33a1e9e08d3aba7374bfaa","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ceilometer.api import app"},{"line_number":28,"context_line":"from ceilometer import service"},{"line_number":29,"context_line":"from ceilometer.openstack.common import log as logging"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAN3%2F%2F3w0%3D","line":29,"updated":"2013-03-08 02:47:49.000000000","message":"Is this ever used?","commit_id":"ca43fc99c7d590200a0fccbc8cf1eda24b6ed5aa"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"eab6772638098f98565d9702393b5b7eaf9bd483","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ceilometer.api import app"},{"line_number":28,"context_line":"from ceilometer import service"},{"line_number":29,"context_line":"from ceilometer.openstack.common import log as logging"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAN3%2F%2F3qs%3D","line":29,"in_reply_to":"AAAAN3%2F%2F3w0%3D","updated":"2013-03-08 04:10:00.000000000","message":"not at the moment it seems, but I could change the prints below to logs\n instead?","commit_id":"ca43fc99c7d590200a0fccbc8cf1eda24b6ed5aa"}],"ceilometer/api/app.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"63aaf6b467537c805f33a1e9e08d3aba7374bfaa","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        pc \u003d get_pecan_config()"},{"line_number":81,"context_line":"        pc.app.debug \u003d CONF.debug"},{"line_number":82,"context_line":"        if CONF.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":83,"context_line":"            pc.app.enable_acl \u003d False"},{"line_number":84,"context_line":"        self.v1 \u003d v1app.make_app(cfg.CONF, enable_acl\u003dpc.app.enable_acl)"},{"line_number":85,"context_line":"        self.v2 \u003d setup_app(pecan_config\u003dpc)"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAN3%2F%2F3wo%3D","line":83,"updated":"2013-03-08 02:47:49.000000000","message":"What if auth_strategy is set to \u0027keystone\u0027 and pecan config file set enable_acl to False? Do we allow the user to modify pecan config file?","commit_id":"ca43fc99c7d590200a0fccbc8cf1eda24b6ed5aa"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"a651a12deec39140467c03f334cbe85edb45cdd3","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        pc \u003d get_pecan_config()"},{"line_number":81,"context_line":"        pc.app.debug \u003d CONF.debug"},{"line_number":82,"context_line":"        if CONF.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":83,"context_line":"            pc.app.enable_acl \u003d False"},{"line_number":84,"context_line":"        self.v1 \u003d v1app.make_app(cfg.CONF, enable_acl\u003dpc.app.enable_acl)"},{"line_number":85,"context_line":"        self.v2 \u003d setup_app(pecan_config\u003dpc)"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAN3%2F%2F3ps%3D","line":83,"in_reply_to":"AAAAN3%2F%2F3qU%3D","updated":"2013-03-08 04:22:55.000000000","message":"ok, sorry I am being slow, good catch - I\u0027ll fix it.","commit_id":"ca43fc99c7d590200a0fccbc8cf1eda24b6ed5aa"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"af7084696b8e46d7b655be10a95e4a316cbb69f2","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        pc \u003d get_pecan_config()"},{"line_number":81,"context_line":"        pc.app.debug \u003d CONF.debug"},{"line_number":82,"context_line":"        if CONF.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":83,"context_line":"            pc.app.enable_acl \u003d False"},{"line_number":84,"context_line":"        self.v1 \u003d v1app.make_app(cfg.CONF, enable_acl\u003dpc.app.enable_acl)"},{"line_number":85,"context_line":"        self.v2 \u003d setup_app(pecan_config\u003dpc)"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAN3%2F%2F3qU%3D","line":83,"in_reply_to":"AAAAN3%2F%2F3qw%3D","updated":"2013-03-08 04:14:39.000000000","message":"I\u0027m just asking what if the enable_acl in pecan config file is set to false and auth_strategy is set to keystone. Should we enable the acl or not?","commit_id":"ca43fc99c7d590200a0fccbc8cf1eda24b6ed5aa"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"eab6772638098f98565d9702393b5b7eaf9bd483","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        pc \u003d get_pecan_config()"},{"line_number":81,"context_line":"        pc.app.debug \u003d CONF.debug"},{"line_number":82,"context_line":"        if CONF.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":83,"context_line":"            pc.app.enable_acl \u003d False"},{"line_number":84,"context_line":"        self.v1 \u003d v1app.make_app(cfg.CONF, enable_acl\u003dpc.app.enable_acl)"},{"line_number":85,"context_line":"        self.v2 \u003d setup_app(pecan_config\u003dpc)"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAN3%2F%2F3qw%3D","line":83,"in_reply_to":"AAAAN3%2F%2F3wo%3D","updated":"2013-03-08 04:10:00.000000000","message":"shrug, seems ok to me-  it\u0027s just a default boolean.\n It\u0027s not changing the file, just in-memory option that gets passed\n around.","commit_id":"ca43fc99c7d590200a0fccbc8cf1eda24b6ed5aa"}],"tests/test_bin.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"26931e748dbcd0700cc4e578609a384ff2b10050","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            tmp.write("},{"line_number":80,"context_line":"                \"debug\u003dtrue\\n\")"},{"line_number":81,"context_line":"        self.subp \u003d subprocess.Popen([\"../bin/ceilometer-api\","},{"line_number":82,"context_line":"                                      \"--config-file\u003d%s\" % self.tempfile])"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def get_response(self, path):"},{"line_number":85,"context_line":"        url \u003d \u0027http://%s:%d/%s\u0027 % (\u0027127.0.0.1\u0027, self.api_port, path)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2F6y4%3D","line":82,"updated":"2013-03-06 14:29:03.000000000","message":"Would it be useful to have a small sleep here and then use Popen.poll() to see if the process is still alive, or died with an error?","commit_id":"d0d410824f56f8e4e85588d326f7e940af5085d1"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"26931e748dbcd0700cc4e578609a384ff2b10050","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def get_response(self, path):"},{"line_number":85,"context_line":"        url \u003d \u0027http://%s:%d/%s\u0027 % (\u0027127.0.0.1\u0027, self.api_port, path)"},{"line_number":86,"context_line":"        while True:"},{"line_number":87,"context_line":"            try:"},{"line_number":88,"context_line":"                r, c \u003d self.http.request(url, \u0027GET\u0027)"},{"line_number":89,"context_line":"            except socket.error:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2F6zc%3D","line":86,"updated":"2013-03-06 14:29:03.000000000","message":"If the service doesn\u0027t start properly, this will hang forever. How about looping 10 times and then throwing an assertion error, to avoid a complete test hang?","commit_id":"d0d410824f56f8e4e85588d326f7e940af5085d1"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"26931e748dbcd0700cc4e578609a384ff2b10050","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        self.assertEqual(response.status, 200)"},{"line_number":102,"context_line":"        self.assertEqual(json.loads(content), [])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def tearDown(self):"},{"line_number":105,"context_line":"        os.unlink(self.tempfile)"},{"line_number":106,"context_line":"        self.subp.kill()"},{"line_number":107,"context_line":"        self.subp.wait()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2F6zM%3D","line":104,"updated":"2013-03-06 14:29:03.000000000","message":"Could you move this up near the setUp() function so it\u0027s easier to spot?","commit_id":"d0d410824f56f8e4e85588d326f7e940af5085d1"}]}
