)]}'
{"nova/api/openstack/placement/handlers/trait.py":[{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"76f5b072846e932c51c950fce37330f293246eea","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    resource_provider \u003d objects.ResourceProvider.get_by_uuid("},{"line_number":130,"context_line":"        context, uuid)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    trait_objs \u003d objects.TraitList.get_all(context, filters\u003d{\u0027traits\u0027: traits})"},{"line_number":133,"context_line":"    if len(trait_objs) !\u003d len(traits):"},{"line_number":134,"context_line":"        # TODO(alex_xu): better error info."},{"line_number":135,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":136,"context_line":"            _(\"Invalid Traits in the request\"),"},{"line_number":137,"context_line":"            json_formatter\u003dutil.json_error_formatter)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    resource_provider.set_traits(trait_objs)"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a8bc5a2_1576d605","line":137,"range":{"start_line":132,"start_character":4,"end_line":137,"end_character":53},"updated":"2016-09-26 08:24:32.000000000","message":"By adding non-exist traits into database, this error can be healed automatically.","commit_id":"d6f29ef5fb8c7bb92328162549959a5cf8df7fb3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4487c3fc69750caf965ca365ebad86dd93f45e33","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    resource_provider \u003d objects.ResourceProvider.get_by_uuid("},{"line_number":130,"context_line":"        context, uuid)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    trait_objs \u003d objects.TraitList.get_all(context, filters\u003d{\u0027traits\u0027: traits})"},{"line_number":133,"context_line":"    if len(trait_objs) !\u003d len(traits):"},{"line_number":134,"context_line":"        # TODO(alex_xu): better error info."},{"line_number":135,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":136,"context_line":"            _(\"Invalid Traits in the request\"),"},{"line_number":137,"context_line":"            json_formatter\u003dutil.json_error_formatter)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    resource_provider.set_traits(trait_objs)"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a8bc5a2_b0853008","line":137,"range":{"start_line":132,"start_character":4,"end_line":137,"end_character":53},"in_reply_to":"5a8bc5a2_1576d605","updated":"2016-09-26 08:34:17.000000000","message":"I don\u0027t want to heal this automatically. I want a validation at here to tell user, they may input a wrong trait.","commit_id":"d6f29ef5fb8c7bb92328162549959a5cf8df7fb3"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"75bd30a7ece0c2d4ebbce78daad3f6b158bc9bc5","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        if req.GET[\u0027associated\u0027].lower() not in [\u0027true\u0027, \u0027false\u0027]:"},{"line_number":140,"context_line":"            raise webob.exc.HTTPBadRequest("},{"line_number":141,"context_line":"                explanation\u003d_(\u0027The query parameter \"associated\" only accepts \u0027"},{"line_number":142,"context_line":"                              \u0027\"true\" or \"false\"\u0027))"},{"line_number":143,"context_line":"        filters[\u0027associated\u0027] \u003d ("},{"line_number":144,"context_line":"            True if req.GET[\u0027associated\u0027].lower() \u003d\u003d \u0027true\u0027 else False)"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fa31d9ce_ce10a1ab","line":142,"range":{"start_line":142,"start_character":31,"end_line":142,"end_character":48},"updated":"2017-02-17 10:38:33.000000000","message":"maybe indicate case insenstive?","commit_id":"a0c3374cb12ddf29e0b00194ca55ad871fe4ce2d"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"75bd30a7ece0c2d4ebbce78daad3f6b158bc9bc5","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    uuid \u003d util.wsgi_path_item(req.environ, \u0027uuid\u0027)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    resource_provider \u003d objects.ResourceProvider.get_by_uuid("},{"line_number":194,"context_line":"        context, uuid)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    response_body \u003d _serialize_traits(resource_provider.get_traits())"},{"line_number":197,"context_line":"    response_body["}],"source_content_type":"text/x-python","patch_set":9,"id":"fa31d9ce_4e1d91bc","line":194,"range":{"start_line":194,"start_character":17,"end_line":194,"end_character":21},"updated":"2017-02-17 10:38:33.000000000","message":"should we check uuid not exist?","commit_id":"a0c3374cb12ddf29e0b00194ca55ad871fe4ce2d"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"75bd30a7ece0c2d4ebbce78daad3f6b158bc9bc5","unresolved":false,"context_lines":[{"line_number":243,"context_line":"    context \u003d req.environ[\u0027placement.context\u0027]"},{"line_number":244,"context_line":"    uuid \u003d util.wsgi_path_item(req.environ, \u0027uuid\u0027)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    resource_provider \u003d objects.ResourceProvider.get_by_uuid(context, uuid)"},{"line_number":247,"context_line":"    resource_provider.set_traits(objects.TraitList(objects\u003d[]))"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    req.response.status \u003d 204"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa31d9ce_2e777d03","line":246,"range":{"start_line":246,"start_character":70,"end_line":246,"end_character":74},"updated":"2017-02-17 10:38:33.000000000","message":"ditto","commit_id":"a0c3374cb12ddf29e0b00194ca55ad871fe4ce2d"}]}
