)]}'
{"nova/api/openstack/placement/handlers/allocation_candidate.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"da09865dc74b3c7f44744779dfaee6588439808f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"_GET_SCHEMA_1_11 \u003d copy.deepcopy(_GET_SCHEMA_1_10)"},{"line_number":50,"context_line":"_GET_SCHEMA_1_11[\u0027properties\u0027][\u0027traits\u0027] \u003d {"},{"line_number":51,"context_line":"    \"type\": \"string\","},{"line_number":52,"context_line":"    \"minLength\": 1, \"maxLength\": 255"},{"line_number":53,"context_line":"}"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f2577a7_31f85179","line":52,"range":{"start_line":52,"start_character":20,"end_line":52,"end_character":36},"updated":"2017-09-18 05:24:38.000000000","message":"I don\u0027t think we need the maxLength","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"9aab1d61353f17c114a9af095e48c1a199aed9f2","unresolved":false,"context_lines":[{"line_number":49,"context_line":"_GET_SCHEMA_1_11 \u003d copy.deepcopy(_GET_SCHEMA_1_10)"},{"line_number":50,"context_line":"_GET_SCHEMA_1_11[\u0027properties\u0027][\u0027traits\u0027] \u003d {"},{"line_number":51,"context_line":"    \"type\": \"string\","},{"line_number":52,"context_line":"    \"minLength\": 1, \"maxLength\": 255"},{"line_number":53,"context_line":"}"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f2577a7_b131e15c","line":52,"range":{"start_line":52,"start_character":5,"end_line":52,"end_character":14},"updated":"2017-09-18 05:25:37.000000000","message":"I\u0027m not sure about \u0027minLength\u0027 also, we can accept an empty string, that is a convenience for people constructs the query parameters in the code.","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"0f6ed6a9838357b6bad0e8cd61e2bddb07f971d7","unresolved":false,"context_lines":[{"line_number":49,"context_line":"_GET_SCHEMA_1_11 \u003d copy.deepcopy(_GET_SCHEMA_1_10)"},{"line_number":50,"context_line":"_GET_SCHEMA_1_11[\u0027properties\u0027][\u0027traits\u0027] \u003d {"},{"line_number":51,"context_line":"    \"type\": \"string\","},{"line_number":52,"context_line":"    \"minLength\": 1, \"maxLength\": 255"},{"line_number":53,"context_line":"}"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f2577a7_2c26b416","line":52,"range":{"start_line":52,"start_character":5,"end_line":52,"end_character":14},"in_reply_to":"5f2577a7_b131e15c","updated":"2017-09-18 08:28:26.000000000","message":"Done","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dc795ac83ffa5ee99997009923b83bbdf6f0e61d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                \u0027capacity\u0027: 4,"},{"line_number":113,"context_line":"                \u0027used\u0027: 0,"},{"line_number":114,"context_line":"              }"},{"line_number":115,"context_line":"           }"},{"line_number":116,"context_line":"           \u0027traits\u0027: [\u0027CUSTOM_TRAIT_A\u0027] # Only existed when include_traits"},{"line_number":117,"context_line":"                                        # equals `True`"},{"line_number":118,"context_line":"       },"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_526b7b1e","line":115,"range":{"start_line":115,"start_character":11,"end_line":115,"end_character":12},"updated":"2017-09-01 17:02:16.000000000","message":"s/\"}\"/\"},\"/ as strict coding sample","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"0f6ed6a9838357b6bad0e8cd61e2bddb07f971d7","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                \u0027capacity\u0027: 4,"},{"line_number":113,"context_line":"                \u0027used\u0027: 0,"},{"line_number":114,"context_line":"              }"},{"line_number":115,"context_line":"           }"},{"line_number":116,"context_line":"           \u0027traits\u0027: [\u0027CUSTOM_TRAIT_A\u0027] # Only existed when include_traits"},{"line_number":117,"context_line":"                                        # equals `True`"},{"line_number":118,"context_line":"       },"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f2577a7_8ce7e8ac","line":115,"range":{"start_line":115,"start_character":11,"end_line":115,"end_character":12},"in_reply_to":"7f287b81_526b7b1e","updated":"2017-09-18 08:28:26.000000000","message":"Done","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dc795ac83ffa5ee99997009923b83bbdf6f0e61d","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                \u0027capacity\u0027: 4,"},{"line_number":127,"context_line":"                \u0027used\u0027: 0,"},{"line_number":128,"context_line":"              }"},{"line_number":129,"context_line":"           }"},{"line_number":130,"context_line":"           \u0027traits\u0027: [\u0027CUSTOM_TRAIT_B\u0027] # Only existed when include_traits"},{"line_number":131,"context_line":"                                        # equals `True`"},{"line_number":132,"context_line":"       }"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_1275f3fa","line":129,"range":{"start_line":129,"start_character":11,"end_line":129,"end_character":12},"updated":"2017-09-01 17:02:16.000000000","message":"ditto","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"0f6ed6a9838357b6bad0e8cd61e2bddb07f971d7","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                \u0027capacity\u0027: 4,"},{"line_number":127,"context_line":"                \u0027used\u0027: 0,"},{"line_number":128,"context_line":"              }"},{"line_number":129,"context_line":"           }"},{"line_number":130,"context_line":"           \u0027traits\u0027: [\u0027CUSTOM_TRAIT_B\u0027] # Only existed when include_traits"},{"line_number":131,"context_line":"                                        # equals `True`"},{"line_number":132,"context_line":"       }"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f2577a7_6cecbc8e","line":129,"range":{"start_line":129,"start_character":11,"end_line":129,"end_character":12},"in_reply_to":"7f287b81_1275f3fa","updated":"2017-09-18 08:28:26.000000000","message":"Done","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dc795ac83ffa5ee99997009923b83bbdf6f0e61d","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    \"\"\""},{"line_number":171,"context_line":"    a_reqs \u003d _transform_allocation_requests(alloc_cands.allocation_requests)"},{"line_number":172,"context_line":"    p_sums \u003d _transform_provider_summaries(alloc_cands.provider_summaries,"},{"line_number":173,"context_line":"                                          include_traits)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    return {"},{"line_number":176,"context_line":"        \u0027allocation_requests\u0027: a_reqs,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_12585354","line":173,"range":{"start_line":173,"start_character":41,"end_line":173,"end_character":42},"updated":"2017-09-01 17:02:16.000000000","message":"nit: one more space","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"0f6ed6a9838357b6bad0e8cd61e2bddb07f971d7","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    \"\"\""},{"line_number":171,"context_line":"    a_reqs \u003d _transform_allocation_requests(alloc_cands.allocation_requests)"},{"line_number":172,"context_line":"    p_sums \u003d _transform_provider_summaries(alloc_cands.provider_summaries,"},{"line_number":173,"context_line":"                                          include_traits)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    return {"},{"line_number":176,"context_line":"        \u0027allocation_requests\u0027: a_reqs,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f2577a7_ecf78c58","line":173,"range":{"start_line":173,"start_character":41,"end_line":173,"end_character":42},"in_reply_to":"7f287b81_12585354","updated":"2017-09-18 08:28:26.000000000","message":"Done","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c954ded35a2b7bd43c4ed04828def163ae75cbcd","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"_GET_SCHEMA_1_11 \u003d copy.deepcopy(_GET_SCHEMA_1_10)"},{"line_number":50,"context_line":"_GET_SCHEMA_1_11[\u0027properties\u0027][\u0027traits\u0027] \u003d {"},{"line_number":51,"context_line":"    \"type\": \"string\""},{"line_number":52,"context_line":"}"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7f515b1d_dce275d5","line":50,"range":{"start_line":50,"start_character":32,"end_line":50,"end_character":38},"updated":"2017-10-07 15:49:08.000000000","message":"Per the spec, this should be \"required\".","commit_id":"4d06cfb72a1398ec450f39defb48c3a061683d5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c954ded35a2b7bd43c4ed04828def163ae75cbcd","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"_GET_SCHEMA_1_11 \u003d copy.deepcopy(_GET_SCHEMA_1_10)"},{"line_number":50,"context_line":"_GET_SCHEMA_1_11[\u0027properties\u0027][\u0027traits\u0027] \u003d {"},{"line_number":51,"context_line":"    \"type\": \"string\""},{"line_number":52,"context_line":"}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7f515b1d_fcdd3114","line":51,"updated":"2017-10-07 15:49:08.000000000","message":"We agreed in the spec that if specified, \"required\" would need to be a list of at least length 1. Specifying ?required\u003d\u0027\u0027 should be a 400 response.","commit_id":"4d06cfb72a1398ec450f39defb48c3a061683d5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c954ded35a2b7bd43c4ed04828def163ae75cbcd","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"@wsgi_wrapper.PlacementWsgify"},{"line_number":181,"context_line":"@microversion.version_handler(\u00271.10\u0027)"},{"line_number":182,"context_line":"@util.check_accept(\u0027application/json\u0027)"},{"line_number":183,"context_line":"def list_allocation_candidates(req):"},{"line_number":184,"context_line":"    \"\"\"GET a JSON object with a list of allocation requests and a JSON object"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f515b1d_7cd141fb","line":181,"range":{"start_line":181,"start_character":31,"end_line":181,"end_character":35},"updated":"2017-10-07 15:49:08.000000000","message":"Doesn\u0027t this need to change?","commit_id":"4d06cfb72a1398ec450f39defb48c3a061683d5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c954ded35a2b7bd43c4ed04828def163ae75cbcd","unresolved":false,"context_lines":[{"line_number":201,"context_line":"    filters \u003d {"},{"line_number":202,"context_line":"        \u0027resources\u0027: resources,"},{"line_number":203,"context_line":"    }"},{"line_number":204,"context_line":"    if include_traits and req.GET.get(\u0027traits\u0027):"},{"line_number":205,"context_line":"        filters[\u0027traits\u0027] \u003d req.GET[\u0027traits\u0027].split(\u0027,\u0027)"},{"line_number":206,"context_line":"        valid_traits \u003d [tr.name"},{"line_number":207,"context_line":"                        for tr in rp_obj.TraitList.get_all("}],"source_content_type":"text/x-python","patch_set":8,"id":"7f515b1d_1cd48de8","line":204,"range":{"start_line":204,"start_character":26,"end_line":204,"end_character":47},"updated":"2017-10-07 15:49:08.000000000","message":"If this is not None but is empty, it\u0027s a 400 response.","commit_id":"4d06cfb72a1398ec450f39defb48c3a061683d5e"}],"nova/api/openstack/placement/rest_api_version_history.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c954ded35a2b7bd43c4ed04828def163ae75cbcd","unresolved":false,"context_lines":[{"line_number":156,"context_line":"1.11 Supports traits in allocation candidates"},{"line_number":157,"context_line":"---------------------------------------------"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"The 1.11 version adds `traits` query parameter to the"},{"line_number":160,"context_line":"`GET /allocation_candidates` resource endpoint. Also return the `traits` in"},{"line_number":161,"context_line":"each resource provider\u0027s summary."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7f515b1d_fc065186","line":159,"range":{"start_line":159,"start_character":23,"end_line":159,"end_character":29},"updated":"2017-10-07 15:49:08.000000000","message":"required","commit_id":"4d06cfb72a1398ec450f39defb48c3a061683d5e"}],"nova/tests/functional/api/openstack/placement/fixtures.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3b00aa4a6c986b5eac174a1057a679984fc234d0","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        )"},{"line_number":293,"context_line":"        cn1.set_traits(objects.TraitList(objects\u003d[t]))"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        # Add a traits for cn2"},{"line_number":296,"context_line":"        t1 \u003d objects.Trait.get_by_name("},{"line_number":297,"context_line":"            self.context,"},{"line_number":298,"context_line":"            \"HW_CPU_X86_BMI\""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_6d9e50b9","line":295,"range":{"start_line":295,"start_character":14,"end_line":295,"end_character":15},"updated":"2017-09-26 05:50:51.000000000","message":"typo","commit_id":"c4b29cd9ad2b1a1da59d96a644e048231a5326e0"}],"nova/tests/functional/api/openstack/placement/gabbits/allocation-candidates.yaml":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dc795ac83ffa5ee99997009923b83bbdf6f0e61d","unresolved":false,"context_lines":[{"line_number":79,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027SS_UUID\u0027]\"].traits.`len`: 1"},{"line_number":80,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027SS_UUID\u0027]\"].traits[0]: \u0027MISC_SHARES_VIA_AGGREGATE\u0027"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"- name: get allocation candidiates with invalid trait"},{"line_number":83,"context_line":"  GET: /allocation_candidates?resources\u003dVCPU:1,MEMORY_MB:1024,DISK_GB:100\u0026\u0026traits\u003dNOT_EXIST_TRAIT"},{"line_number":84,"context_line":"  status: 400"},{"line_number":85,"context_line":"  response_strings:"},{"line_number":86,"context_line":"      - \u0027Invalid trait name in traits parameter: NOT_EXIST_TRAIT\u0027"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7f287b81_7249d789","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":97},"updated":"2017-09-01 17:02:16.000000000","message":"Can we add jsonschema case which is invalid length of traits like\n\n GET: /allocation_candidates?resources\u003dVCPU:1,MEMORY_MB:1024,DISK_GB:100\u0026\u0026traits\u003d\n\n?","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"0f6ed6a9838357b6bad0e8cd61e2bddb07f971d7","unresolved":false,"context_lines":[{"line_number":79,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027SS_UUID\u0027]\"].traits.`len`: 1"},{"line_number":80,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027SS_UUID\u0027]\"].traits[0]: \u0027MISC_SHARES_VIA_AGGREGATE\u0027"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"- name: get allocation candidiates with invalid trait"},{"line_number":83,"context_line":"  GET: /allocation_candidates?resources\u003dVCPU:1,MEMORY_MB:1024,DISK_GB:100\u0026\u0026traits\u003dNOT_EXIST_TRAIT"},{"line_number":84,"context_line":"  status: 400"},{"line_number":85,"context_line":"  response_strings:"},{"line_number":86,"context_line":"      - \u0027Invalid trait name in traits parameter: NOT_EXIST_TRAIT\u0027"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f2577a7_42142944","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":97},"in_reply_to":"7f287b81_7249d789","updated":"2017-09-18 08:28:26.000000000","message":"As Alex suggested, I removed length restriction on traits parameter.","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"57e97d96b6f92ce3c77a84539eb7d5311b3c0d98","unresolved":false,"context_lines":[{"line_number":86,"context_line":"      - \u0027Invalid trait name in traits parameter: NOT_EXIST_TRAIT\u0027"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"- name: get allocation candidates with single trait"},{"line_number":89,"context_line":"  GET: /allocation_candidates?resources\u003dVCPU:1,MEMORY_MB:1024,DISK_GB:100\u0026\u0026traits\u003dHW_CPU_X86_ABM"},{"line_number":90,"context_line":"  status: 200"},{"line_number":91,"context_line":"  response_json_paths:"},{"line_number":92,"context_line":"      # There are 2 providers involved. 1 compute nodes cn1, 1 shared storage"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f2577a7_51d2bd01","line":89,"range":{"start_line":89,"start_character":73,"end_line":89,"end_character":75},"updated":"2017-09-18 05:23:32.000000000","message":"why there is double \"\u0026\"?","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"0f6ed6a9838357b6bad0e8cd61e2bddb07f971d7","unresolved":false,"context_lines":[{"line_number":86,"context_line":"      - \u0027Invalid trait name in traits parameter: NOT_EXIST_TRAIT\u0027"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"- name: get allocation candidates with single trait"},{"line_number":89,"context_line":"  GET: /allocation_candidates?resources\u003dVCPU:1,MEMORY_MB:1024,DISK_GB:100\u0026\u0026traits\u003dHW_CPU_X86_ABM"},{"line_number":90,"context_line":"  status: 200"},{"line_number":91,"context_line":"  response_json_paths:"},{"line_number":92,"context_line":"      # There are 2 providers involved. 1 compute nodes cn1, 1 shared storage"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f2577a7_c7294b8a","line":89,"range":{"start_line":89,"start_character":73,"end_line":89,"end_character":75},"in_reply_to":"5f2577a7_51d2bd01","updated":"2017-09-18 08:28:26.000000000","message":"good catch","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"57e97d96b6f92ce3c77a84539eb7d5311b3c0d98","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027SS_UUID\u0027]\"].traits.`len`: 1"},{"line_number":116,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027SS_UUID\u0027]\"].traits[0]: \u0027MISC_SHARES_VIA_AGGREGATE\u0027"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"- name: get allocation candidates with multiple trait"},{"line_number":119,"context_line":"  GET: /allocation_candidates?resources\u003dVCPU:1,MEMORY_MB:1024,DISK_GB:100\u0026\u0026traits\u003dHW_CPU_X86_BMI,HW_CPU_X86_BMI2"},{"line_number":120,"context_line":"  status: 200"},{"line_number":121,"context_line":"  response_json_paths:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f2577a7_11d8b51b","line":118,"updated":"2017-09-18 05:23:32.000000000","message":"We need one more testcase for only \u0027traits\u0027 parameter in the request, without \u0027resources\u0027 parameter","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"0f6ed6a9838357b6bad0e8cd61e2bddb07f971d7","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027SS_UUID\u0027]\"].traits.`len`: 1"},{"line_number":116,"context_line":"      $.provider_summaries[\"$ENVIRON[\u0027SS_UUID\u0027]\"].traits[0]: \u0027MISC_SHARES_VIA_AGGREGATE\u0027"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"- name: get allocation candidates with multiple trait"},{"line_number":119,"context_line":"  GET: /allocation_candidates?resources\u003dVCPU:1,MEMORY_MB:1024,DISK_GB:100\u0026\u0026traits\u003dHW_CPU_X86_BMI,HW_CPU_X86_BMI2"},{"line_number":120,"context_line":"  status: 200"},{"line_number":121,"context_line":"  response_json_paths:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f2577a7_675cd7ec","line":118,"in_reply_to":"5f2577a7_11d8b51b","updated":"2017-09-18 08:28:26.000000000","message":"Done","commit_id":"6a473b0134309d17d6e64de0e22b2aaa8035807a"}]}
