)]}'
{"etc/nova/api-paste.ini":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"a3354559ba5a4d0c011af52babfa61f5a7ad9c04","unresolved":false,"context_lines":[{"line_number":72,"context_line":"paste.filter_factory \u003d nova.api.ec2:Authorizer.factory"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"[filter:validator]"},{"line_number":75,"context_line":"paste.filter_factory \u003d nova.api.ec2:Validator.factory"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"[app:ec2executor]"},{"line_number":78,"context_line":"paste.app_factory \u003d nova.api.ec2:Executor.factory"}],"source_content_type":"text/x-properties","patch_set":2,"id":"AAAAC3%2F%2F7F4%3D","line":75,"updated":"2011-12-22 13:38:43.000000000","message":"Need to include the filter in the pipeline in order for it to be used","commit_id":"5c264584d72def3a0e31a587ec88a36a3c80a792"}],"nova/api/validator.py":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"a3354559ba5a4d0c011af52babfa61f5a7ad9c04","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import base64"},{"line_number":20,"context_line":"import logging"},{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":"import socket"},{"line_number":23,"context_line":"from nova import exception"},{"line_number":24,"context_line":"from nova.api.ec2 import ec2utils"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAC3%2F%2F7Fw%3D","line":22,"updated":"2011-12-22 13:38:43.000000000","message":"Should be a newline here, see HACKING","commit_id":"5c264584d72def3a0e31a587ec88a36a3c80a792"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"a3354559ba5a4d0c011af52babfa61f5a7ad9c04","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    return re.compile(path)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"VALIDATE_PATH_RE \u003d _get_path_validator_regex()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def validate_ec2_id(val):"},{"line_number":43,"context_line":"    if not validate_str()(val):"},{"line_number":44,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAC3%2F%2F7F0%3D","line":41,"updated":"2011-12-22 13:38:43.000000000","message":"pep8 complains here. Please make sure run_tests.sh runs successfully","commit_id":"5c264584d72def3a0e31a587ec88a36a3c80a792"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"8469ff6a1958df8022d5155b6a9a81bad7ce5f92","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    \u0027group_description\u0027: validate_str(max_length\u003d255),"},{"line_number":136,"context_line":"    \u0027size\u0027: validate_int(),"},{"line_number":137,"context_line":"    \u0027user_data\u0027: validate_user_data"},{"line_number":138,"context_line":"}"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"def validate(args, validator):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAD3%2F%2F%2BSQ%3D","line":138,"updated":"2012-01-13 17:41:56.000000000","message":"The above is specific to EC2 and should be in /nova/api/ec2/__init__.py","commit_id":"9a766fca231c2a50148f269ee720eb65a65872d4"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"7a5810a0b6c23f6d125ef128021667e2d2c151cb","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    \u0027group_description\u0027: validate_str(max_length\u003d255),"},{"line_number":136,"context_line":"    \u0027size\u0027: validate_int(),"},{"line_number":137,"context_line":"    \u0027user_data\u0027: validate_user_data"},{"line_number":138,"context_line":"}"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"def validate(args, validator):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAD3%2F%2F9ro%3D","line":138,"in_reply_to":"AAAAD3%2F%2F%2BSQ%3D","updated":"2012-01-16 21:52:20.000000000","message":"I would agree; the EC2-specific stuff should be in nova/api/ec2.","commit_id":"9a766fca231c2a50148f269ee720eb65a65872d4"}],"nova/tests/api/test_validator.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"b7fd7453e32e2c7aa09d082cbf10a96090de5cf5","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        self.assertFalse(validator.validate_user_data(False))"},{"line_number":101,"context_line":"        self.assertFalse(validator.validate_user_data(\u0027hello, world!\u0027))"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def test_default_validator(self):"},{"line_number":104,"context_line":"        expect_pass \u003d {"},{"line_number":105,"context_line":"            \u0027instance_id\u0027: \u0027i-284f3a41\u0027,"},{"line_number":106,"context_line":"            \u0027volume_id\u0027: \u0027i-284f3a41\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F8A4%3D","line":103,"updated":"2011-11-29 21:23:51.000000000","message":"This test looks incorrect somehow.  The expect_pass and expect_fail dictionaries are exactly the same.  I\u0027m not sure how this is passing.  Also, why do volume and image id start with i instead of vol- and ami-","commit_id":"df9514eba1722e2e935dcea717f2fea27f65c1a2"},{"author":{"_account_id":711,"name":"Matthew Hooker","email":"mwhooker@gmail.com","username":"u-matt-h"},"change_message_id":"5a44b6ff32fd40471d5c8929e646d43be20be89f","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        self.assertFalse(validator.validate_user_data(False))"},{"line_number":101,"context_line":"        self.assertFalse(validator.validate_user_data(\u0027hello, world!\u0027))"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def test_default_validator(self):"},{"line_number":104,"context_line":"        expect_pass \u003d {"},{"line_number":105,"context_line":"            \u0027instance_id\u0027: \u0027i-284f3a41\u0027,"},{"line_number":106,"context_line":"            \u0027volume_id\u0027: \u0027i-284f3a41\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F7Lc%3D","line":103,"in_reply_to":"AAAACn%2F%2F8A4%3D","updated":"2011-12-22 01:37:50.000000000","message":"they\u0027re not _exactly_ the same. I\u0027ll rewrite them to be mroe explicit.","commit_id":"df9514eba1722e2e935dcea717f2fea27f65c1a2"}]}
