)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"6f3e7411c7a7e27b6d639d6da04568eabbe429a1","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Flavor Plugin"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds support to index Flavors of Nova."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I190c37a7cce3e0f4d80a994315db7545eb4b6fb6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dab17558_5e8106fb","line":9,"updated":"2016-05-12 14:52:11.000000000","message":"Add here: Implements Blueprint: nova-flavor-plugin","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"6846b3c1e6264470e30a7471bbcd8c3f8de7a231","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds support to index Flavors of Nova."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I190c37a7cce3e0f4d80a994315db7545eb4b6fb6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"dada55a8_b58a0762","line":11,"updated":"2016-07-21 20:45:40.000000000","message":"For the automated tools to work correctly, we need to add the following line:\n\nImplements: blueprint nova-flavor-plugin","commit_id":"b312a61c289ee2af8ce2a956601b76b3d0f8229e"}],"doc/source/plugins/nova.rst":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"6f3e7411c7a7e27b6d639d6da04568eabbe429a1","unresolved":false,"context_lines":[{"line_number":65,"context_line":"::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    [resource_plugin:os_nova_flavor]"},{"line_number":68,"context_line":"    enabled \u003d true"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Nova Configuration"},{"line_number":71,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dab17558_5e59068e","line":68,"updated":"2016-05-12 14:52:11.000000000","message":"Please add a note here that there is no notification for flavor as the hypervisor plugin do","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"d6b2a119f4edb5c1af0c9466801ccb73baf4bdc7","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":".. note::"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    There are no notifications for hypervisor from nova yet, so we recommend"},{"line_number":73,"context_line":"    putting it to its own resource group and scheduling a cron job to re-sync"},{"line_number":74,"context_line":"    with little overhead."},{"line_number":75,"context_line":"    "}],"source_content_type":"text/x-rst","patch_set":3,"id":"9abb7d3a_4bdb2f7c","line":72,"range":{"start_line":72,"start_character":35,"end_line":72,"end_character":45},"updated":"2016-06-01 23:51:23.000000000","message":"Change \"hypervisor\" to \"flavor\".","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    There are no notifications for hypervisor from nova yet, so we recommend"},{"line_number":73,"context_line":"    putting it to its own resource group and scheduling a cron job to re-sync"},{"line_number":74,"context_line":"    with little overhead."},{"line_number":75,"context_line":"    "},{"line_number":76,"context_line":"Nova Configuration"},{"line_number":77,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_f4b3504b","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":4},"updated":"2016-05-25 21:16:29.000000000","message":"Nit - remove unnecessary whitespace","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"7a1e684c3b94c999e47415ac622ccdd444f071a9","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    There are no notifications for hypervisor from nova yet, so we recommend"},{"line_number":73,"context_line":"    putting it to its own resource group and scheduling a cron job to re-sync"},{"line_number":74,"context_line":"    with little overhead."},{"line_number":75,"context_line":"    "},{"line_number":76,"context_line":"Nova Configuration"},{"line_number":77,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9abb7d3a_315da815","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":4},"in_reply_to":"bab6814e_f4b3504b","updated":"2016-06-08 09:36:08.000000000","message":"Done","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"6846b3c1e6264470e30a7471bbcd8c3f8de7a231","unresolved":false,"context_lines":[{"line_number":83,"context_line":".. note::"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    There are no notifications for flavor from nova yet, so we recommend"},{"line_number":86,"context_line":"    putting it to its own resource group and scheduling a cron job to re-sync"},{"line_number":87,"context_line":"    with little overhead."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Nova Configuration"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dada55a8_75c24f86","line":86,"range":{"start_line":86,"start_character":15,"end_line":86,"end_character":17},"updated":"2016-07-21 20:45:40.000000000","message":"Nit: Should be \"in\" (putting it in its own resource group...)","commit_id":"b312a61c289ee2af8ce2a956601b76b3d0f8229e"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"e13fe55c875b3d7865f4a5573c2abb5181ccbf42","unresolved":false,"context_lines":[{"line_number":83,"context_line":".. note::"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    There are no notifications for flavor from nova yet, so we recommend"},{"line_number":86,"context_line":"    putting it to its own resource group and scheduling a cron job to re-sync"},{"line_number":87,"context_line":"    with little overhead."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Nova Configuration"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dada55a8_f7171052","line":86,"range":{"start_line":86,"start_character":15,"end_line":86,"end_character":17},"in_reply_to":"dada55a8_75c24f86","updated":"2016-07-24 11:03:27.000000000","message":"Done","commit_id":"b312a61c289ee2af8ce2a956601b76b3d0f8229e"}],"searchlight/elasticsearch/plugins/nova/__init__.py":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"e6d66170568efa47c77476bfbd32ceea00971ba4","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def serialize_nova_flavor(flavor, updated_at\u003dNone):"},{"line_number":81,"context_line":"    serialized \u003d flavor.to_dict()"},{"line_number":82,"context_line":"    for each_link in serialized[\u0027links\u0027]:"},{"line_number":83,"context_line":"        each_link \u003d json.loads(each_link)"},{"line_number":84,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"},{"line_number":85,"context_line":"        serialized[\u0027updated_at\u0027] \u003d updated_at or utils.get_now_str()"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_3386f465","line":82,"updated":"2016-05-12 16:48:00.000000000","message":"just remove the links.\n\nhttps://github.com/openstack/searchlight/blob/276806f0940a1950effda660b316815219ad0775/searchlight/elasticsearch/plugins/nova/__init__.py#L42","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def serialize_nova_flavor(flavor, updated_at\u003dNone):"},{"line_number":81,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":82,"context_line":"                  if k not in BLACKLISTED_FIELDS}"},{"line_number":83,"context_line":"    extra_specs \u003d {k: v for k, v in six.iteritems(flavor.get_keys())"},{"line_number":84,"context_line":"                   if k not in BLACKLISTED_FIELDS}"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_343dd88f","line":82,"range":{"start_line":82,"start_character":30,"end_line":82,"end_character":48},"updated":"2016-05-25 21:16:29.000000000","message":"This should be a different variable; the same list will not always apply to instances and flavors (\u0027progress\u0027 doesn\u0027t exist on flavors, for example)","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"7a1e684c3b94c999e47415ac622ccdd444f071a9","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def serialize_nova_flavor(flavor, updated_at\u003dNone):"},{"line_number":81,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":82,"context_line":"                  if k not in BLACKLISTED_FIELDS}"},{"line_number":83,"context_line":"    extra_specs \u003d {k: v for k, v in six.iteritems(flavor.get_keys())"},{"line_number":84,"context_line":"                   if k not in BLACKLISTED_FIELDS}"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_6f3916d7","line":82,"range":{"start_line":82,"start_character":30,"end_line":82,"end_character":48},"in_reply_to":"bab6814e_343dd88f","updated":"2016-06-08 09:36:08.000000000","message":"Done","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":82,"context_line":"                  if k not in BLACKLISTED_FIELDS}"},{"line_number":83,"context_line":"    extra_specs \u003d {k: v for k, v in six.iteritems(flavor.get_keys())"},{"line_number":84,"context_line":"                   if k not in BLACKLISTED_FIELDS}"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"},{"line_number":86,"context_line":"        serialized[\u0027updated_at\u0027] \u003d updated_at or utils.get_now_str()"},{"line_number":87,"context_line":"    serialized[\"extra_specs\"] \u003d extra_specs"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_b449c833","line":84,"range":{"start_line":84,"start_character":31,"end_line":84,"end_character":49},"updated":"2016-05-25 21:16:29.000000000","message":"I don\u0027t think filtering by BLACKLISTED is needed here unless there are extra_specs values that we would want to remove","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"7a1e684c3b94c999e47415ac622ccdd444f071a9","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":82,"context_line":"                  if k not in BLACKLISTED_FIELDS}"},{"line_number":83,"context_line":"    extra_specs \u003d {k: v for k, v in six.iteritems(flavor.get_keys())"},{"line_number":84,"context_line":"                   if k not in BLACKLISTED_FIELDS}"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"},{"line_number":86,"context_line":"        serialized[\u0027updated_at\u0027] \u003d updated_at or utils.get_now_str()"},{"line_number":87,"context_line":"    serialized[\"extra_specs\"] \u003d extra_specs"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_8f3c3ac9","line":84,"range":{"start_line":84,"start_character":31,"end_line":84,"end_character":49},"in_reply_to":"bab6814e_b449c833","updated":"2016-06-08 09:36:08.000000000","message":"Done","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"04947b361ff622e8637d06aec5422c34e5064227","unresolved":false,"context_lines":[{"line_number":80,"context_line":"def serialize_nova_flavor(flavor, updated_at\u003dNone):"},{"line_number":81,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":82,"context_line":"                  if k not in BLACKLISTED_FIELDS}"},{"line_number":83,"context_line":"    extra_specs \u003d {k: v for k, v in six.iteritems(flavor.get_keys())"},{"line_number":84,"context_line":"                   if k not in BLACKLISTED_FIELDS}"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"},{"line_number":86,"context_line":"        serialized[\u0027updated_at\u0027] \u003d updated_at or utils.get_now_str()"},{"line_number":87,"context_line":"    serialized[\"extra_specs\"] \u003d extra_specs"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_4a71a9a7","line":84,"range":{"start_line":83,"start_character":0,"end_line":84,"end_character":50},"updated":"2016-06-08 09:07:53.000000000","message":"could you explain what are we doing here?","commit_id":"5ce6442f49a4a86da9a0090227bb871ae8fe750c"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"e0da415a14c21cb335c625929f0bf80936dcab6f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"def serialize_nova_flavor(flavor, updated_at\u003dNone):"},{"line_number":81,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":82,"context_line":"                  if k not in BLACKLISTED_FIELDS}"},{"line_number":83,"context_line":"    extra_specs \u003d {k: v for k, v in six.iteritems(flavor.get_keys())"},{"line_number":84,"context_line":"                   if k not in BLACKLISTED_FIELDS}"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"},{"line_number":86,"context_line":"        serialized[\u0027updated_at\u0027] \u003d updated_at or utils.get_now_str()"},{"line_number":87,"context_line":"    serialized[\"extra_specs\"] \u003d extra_specs"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_caf75957","line":84,"range":{"start_line":83,"start_character":0,"end_line":84,"end_character":50},"in_reply_to":"7aa08908_4a71a9a7","updated":"2016-06-08 09:21:12.000000000","message":"Ok I know :)","commit_id":"5ce6442f49a4a86da9a0090227bb871ae8fe750c"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"7aca49211e650fcc72777259e9454b90a7e95ef5","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def serialize_nova_flavor(flavor, updated_at\u003dNone):"},{"line_number":81,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":82,"context_line":"                  if k is not \"links\"}"},{"line_number":83,"context_line":"    extra_specs \u003d {k: v for k, v in six.iteritems(flavor.get_keys())"},{"line_number":84,"context_line":"                   }"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_e10a09d1","line":82,"range":{"start_line":82,"start_character":30,"end_line":82,"end_character":37},"updated":"2016-06-08 21:59:00.000000000","message":"Do we think the blacklist will expand in the future? If so, we should probably not hard-code this here, but define above.","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"a1ce7cebec1f839c0e304fd16833bd406bdd4d63","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def serialize_nova_flavor(flavor, updated_at\u003dNone):"},{"line_number":81,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":82,"context_line":"                  if k is not \"links\"}"},{"line_number":83,"context_line":"    extra_specs \u003d {k: v for k, v in six.iteritems(flavor.get_keys())"},{"line_number":84,"context_line":"                   }"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_646ec797","line":82,"range":{"start_line":82,"start_character":30,"end_line":82,"end_character":37},"in_reply_to":"7aa08908_968fdecb","updated":"2016-06-23 04:17:31.000000000","message":"Done","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"a1ce7cebec1f839c0e304fd16833bd406bdd4d63","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def serialize_nova_flavor(flavor, updated_at\u003dNone):"},{"line_number":81,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":82,"context_line":"                  if k is not \"links\"}"},{"line_number":83,"context_line":"    extra_specs \u003d {k: v for k, v in six.iteritems(flavor.get_keys())"},{"line_number":84,"context_line":"                   }"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_8473f37f","line":82,"range":{"start_line":82,"start_character":30,"end_line":82,"end_character":37},"in_reply_to":"7aa08908_e10a09d1","updated":"2016-06-23 04:17:31.000000000","message":"Done","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"a605708afbe3102f1807325f918d20e7d8830e55","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def serialize_nova_flavor(flavor, updated_at\u003dNone):"},{"line_number":81,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":82,"context_line":"                  if k is not \"links\"}"},{"line_number":83,"context_line":"    extra_specs \u003d {k: v for k, v in six.iteritems(flavor.get_keys())"},{"line_number":84,"context_line":"                   }"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_968fdecb","line":82,"range":{"start_line":82,"start_character":30,"end_line":82,"end_character":37},"in_reply_to":"7aa08908_e10a09d1","updated":"2016-06-09 16:22:15.000000000","message":"Either way \"links\" needs to be in a list or tuple, otherwise it\u0027s effectively testing \"links\".contains(k)","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"a605708afbe3102f1807325f918d20e7d8830e55","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                   }"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"},{"line_number":86,"context_line":"        serialized[\u0027updated_at\u0027] \u003d updated_at or utils.get_now_str()"},{"line_number":87,"context_line":"    serialized[\"extra_specs\"] \u003d extra_specs"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    return serialized"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_91b52833","line":87,"range":{"start_line":87,"start_character":32,"end_line":87,"end_character":43},"updated":"2016-06-09 16:22:15.000000000","message":"Could simplify this - remove line 83 and \n   serialized[\"extra_specs\"] \u003d flavor.get_keys()","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"a1ce7cebec1f839c0e304fd16833bd406bdd4d63","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                   }"},{"line_number":85,"context_line":"    if not getattr(flavor, \u0027updated_at\u0027, None):"},{"line_number":86,"context_line":"        serialized[\u0027updated_at\u0027] \u003d updated_at or utils.get_now_str()"},{"line_number":87,"context_line":"    serialized[\"extra_specs\"] \u003d extra_specs"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    return serialized"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_44274b64","line":87,"range":{"start_line":87,"start_character":32,"end_line":87,"end_character":43},"in_reply_to":"7aa08908_91b52833","updated":"2016-06-23 04:17:31.000000000","message":"Done","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"30d0ebf4c5fa2c23e0bd3d7a4ec0c5657edadba6","unresolved":false,"context_lines":[{"line_number":31,"context_line":"# All \u0027links\u0027 will also be removed"},{"line_number":32,"context_line":"BLACKLISTED_FIELDS \u003d set((u\u0027progress\u0027, u\u0027links\u0027))"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"def _get_flavor_tenant(flavor):"},{"line_number":36,"context_line":"    if flavor.is_public:"},{"line_number":37,"context_line":"        return \"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_d673bf13","line":34,"updated":"2016-07-05 21:59:22.000000000","message":"+FLAVOR_ACCESS_FIELD \u003d \u0027tenant_access\u0027\n \n \n-def _get_flavor_tenant(flavor):\n+def _get_flavor_access(flavor):\n     if flavor.is_public:\n-        return \"\"\n+        return None\n     try:\n         n_client \u003d openstack_clients.get_novaclient()\n-        flavor_access \u003d n_client.flavor_access.list(flavor\u003dflavor)[0]\n-        tenant_id \u003d flavor_access.tenant_id\n-        return tenant_id\n+        return [access.tenant_id for access in\n+                n_client.flavor_access.list(flavor\u003dflavor)] or None\n     except novaclient.exceptions.Unauthorized:\n         LOG.warning(_LW(\"Could not return tenant for %s; forbidden\") %\n                     flavor)\n-        return \"\"\n+        return None","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"9cf049555b90b1813bfc8cfab21bd1c92bc461b4","unresolved":false,"context_lines":[{"line_number":31,"context_line":"# All \u0027links\u0027 will also be removed"},{"line_number":32,"context_line":"BLACKLISTED_FIELDS \u003d set((u\u0027progress\u0027, u\u0027links\u0027))"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"def _get_flavor_tenant(flavor):"},{"line_number":36,"context_line":"    if flavor.is_public:"},{"line_number":37,"context_line":"        return \"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_975246dc","line":34,"in_reply_to":"1aa78d24_d673bf13","updated":"2016-07-19 18:12:10.000000000","message":"Done","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"95fc6ea024ca0ab930f0548f0d3d34362e01382b","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"def _get_flavor_tenant(flavor):"},{"line_number":36,"context_line":"    if flavor.is_public:"},{"line_number":37,"context_line":"        return \"\""},{"line_number":38,"context_line":"    try:"},{"line_number":39,"context_line":"        n_client \u003d openstack_clients.get_novaclient()"},{"line_number":40,"context_line":"        flavor_access \u003d n_client.flavor_access.list(flavor\u003dflavor)[0]"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_d3f5a3cb","line":37,"range":{"start_line":37,"start_character":15,"end_line":37,"end_character":17},"updated":"2016-07-05 15:32:49.000000000","message":"This should be None","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"95fc6ea024ca0ab930f0548f0d3d34362e01382b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        return \"\""},{"line_number":38,"context_line":"    try:"},{"line_number":39,"context_line":"        n_client \u003d openstack_clients.get_novaclient()"},{"line_number":40,"context_line":"        flavor_access \u003d n_client.flavor_access.list(flavor\u003dflavor)[0]"},{"line_number":41,"context_line":"        tenant_id \u003d flavor_access.tenant_id"},{"line_number":42,"context_line":"        return tenant_id"},{"line_number":43,"context_line":"    except novaclient.exceptions.Unauthorized:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_935cbbee","line":40,"range":{"start_line":40,"start_character":33,"end_line":40,"end_character":46},"updated":"2016-07-05 15:32:49.000000000","message":"It\u0027s not valid to take just the first element of this list. The access list will contain zero or more tenant ids who have access to this flavor, so this function should return a list of tenant ids.","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"95fc6ea024ca0ab930f0548f0d3d34362e01382b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    except novaclient.exceptions.Unauthorized:"},{"line_number":44,"context_line":"        LOG.warning(_LW(\"Could not return tenant for %s; forbidden\") %"},{"line_number":45,"context_line":"                    flavor)"},{"line_number":46,"context_line":"        return \"\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def serialize_nova_server(server):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_5330939e","line":46,"range":{"start_line":46,"start_character":15,"end_line":46,"end_character":17},"updated":"2016-07-05 15:32:49.000000000","message":"None","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"30d0ebf4c5fa2c23e0bd3d7a4ec0c5657edadba6","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            serialized.pop(key)"},{"line_number":96,"context_line":"    return serialized"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"def serialize_nova_flavor(flavor, updated_at\u003dNone):"},{"line_number":100,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":101,"context_line":"                  if k not in (\"links\")}"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_3661633a","line":98,"updated":"2016-07-05 21:59:22.000000000","message":"def serialize_nova_server(server):\n@@ -101,7 +101,7 @@ def serialize_nova_flavor(flavor, updated_at\u003dNone):\n                   if k not in (\"links\")}\n     serialized[\"extra_specs\"] \u003d flavor.get_keys()\n \n-    serialized[\"tenant_id\"] \u003d _get_flavor_tenant(flavor)\n+    serialized[FLAVOR_ACCESS_FIELD] \u003d _get_flavor_access(flavor)","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"9cf049555b90b1813bfc8cfab21bd1c92bc461b4","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            serialized.pop(key)"},{"line_number":96,"context_line":"    return serialized"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"def serialize_nova_flavor(flavor, updated_at\u003dNone):"},{"line_number":100,"context_line":"    serialized \u003d {k: v for k, v in six.iteritems(flavor.to_dict())"},{"line_number":101,"context_line":"                  if k not in (\"links\")}"}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_f7d2a233","line":98,"in_reply_to":"1aa78d24_3661633a","updated":"2016-07-19 18:12:10.000000000","message":"Done","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"}],"searchlight/elasticsearch/plugins/nova/flavors.py":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"6f3e7411c7a7e27b6d639d6da04568eabbe429a1","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# TODO(sjmc7): Parameterize once we have plugin configs"},{"line_number":21,"context_line":"LIST_LIMIT \u003d 100"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class FlavorIndex(base.IndexBase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_81ab0fd6","line":21,"updated":"2016-05-12 14:52:11.000000000","message":"not used, can be removed.","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"03aaad8700ebb6907d3b730f0ab1ea60bcd97642","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# TODO(sjmc7): Parameterize once we have plugin configs"},{"line_number":21,"context_line":"LIST_LIMIT \u003d 100"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class FlavorIndex(base.IndexBase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_70449773","line":21,"in_reply_to":"dab17558_81ab0fd6","updated":"2016-05-23 09:14:01.000000000","message":"Done","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"6f3e7411c7a7e27b6d639d6da04568eabbe429a1","unresolved":false,"context_lines":[{"line_number":21,"context_line":"LIST_LIMIT \u003d 100"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class FlavorIndex(base.IndexBase):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @classmethod"},{"line_number":27,"context_line":"    def get_document_type(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_c17d17b3","line":24,"updated":"2016-05-12 14:52:11.000000000","message":"Steve said he will push a  notification-less plugin patch, unless we get that fix, otherwise you need to add a notification handler here.","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"03aaad8700ebb6907d3b730f0ab1ea60bcd97642","unresolved":false,"context_lines":[{"line_number":21,"context_line":"LIST_LIMIT \u003d 100"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class FlavorIndex(base.IndexBase):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @classmethod"},{"line_number":27,"context_line":"    def get_document_type(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_104d4b99","line":24,"in_reply_to":"dab17558_c17d17b3","updated":"2016-05-23 09:14:01.000000000","message":"Done","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"8d05c74081a670b387586220b585e9ad7ddd7dea","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        bool_not_analyzed \u003d {\u0027type\u0027: \u0027boolean\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":34,"context_line":"        float_analyzed \u003d {\u0027type\u0027: \u0027float\u0027}"},{"line_number":35,"context_line":"        return {"},{"line_number":36,"context_line":"            \u0027dynamic\u0027: False,"},{"line_number":37,"context_line":"            \u0027properties\u0027: {"},{"line_number":38,"context_line":"                \u0027id\u0027: string_not_analyzed,"},{"line_number":39,"context_line":"                \u0027OS-FLV-DISABLED:disabled\u0027: bool_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_8c7cbfb6","line":36,"updated":"2016-05-13 08:43:23.000000000","message":"It may not be related to this patch, but I see some plugins set dynamic to true, others set to false, is it in purpose or do we need a consistent way to handle dynamic fields?","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"e6d66170568efa47c77476bfbd32ceea00971ba4","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                \u0027id\u0027: string_not_analyzed,"},{"line_number":39,"context_line":"                \u0027OS-FLV-DISABLED:disabled\u0027: bool_not_analyzed,"},{"line_number":40,"context_line":"                \u0027OS-FLV-EXT-DATA:ephemeral\u0027: integer,"},{"line_number":41,"context_line":"                \u0027links\u0027: {"},{"line_number":42,"context_line":"                    \u0027type\u0027: \u0027nested\u0027,"},{"line_number":43,"context_line":"                    \u0027properties\u0027: {"},{"line_number":44,"context_line":"                        \u0027href\u0027: string_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_d367a8e8","line":41,"updated":"2016-05-12 16:48:00.000000000","message":"Let\u0027s not index the links.","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"03aaad8700ebb6907d3b730f0ab1ea60bcd97642","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                \u0027id\u0027: string_not_analyzed,"},{"line_number":39,"context_line":"                \u0027OS-FLV-DISABLED:disabled\u0027: bool_not_analyzed,"},{"line_number":40,"context_line":"                \u0027OS-FLV-EXT-DATA:ephemeral\u0027: integer,"},{"line_number":41,"context_line":"                \u0027links\u0027: {"},{"line_number":42,"context_line":"                    \u0027type\u0027: \u0027nested\u0027,"},{"line_number":43,"context_line":"                    \u0027properties\u0027: {"},{"line_number":44,"context_line":"                        \u0027href\u0027: string_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_5047d376","line":41,"in_reply_to":"dab17558_d367a8e8","updated":"2016-05-23 09:14:01.000000000","message":"Done","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"8d05c74081a670b387586220b585e9ad7ddd7dea","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                    }"},{"line_number":47,"context_line":"                },"},{"line_number":48,"context_line":"                \u0027disk\u0027: integer,"},{"line_number":49,"context_line":"                \u0027name\u0027: string_not_analyzed,"},{"line_number":50,"context_line":"                \u0027os-flavor-access:is_public\u0027: bool_not_analyzed,"},{"line_number":51,"context_line":"                \u0027ram\u0027: integer,"},{"line_number":52,"context_line":"                \u0027rxtx_factor\u0027: float_analyzed,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_0ca28f4b","line":49,"updated":"2016-05-13 08:43:23.000000000","message":"Name attribute should be analyzed, allowing for a full text search, also define a raw sub field to ensure sort alphabetically, https://github.com/openstack/searchlight/blob/master/searchlight/elasticsearch/plugins/nova/servers.py#L42","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"6f3e7411c7a7e27b6d639d6da04568eabbe429a1","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                \u0027swap\u0027: string_not_analyzed,"},{"line_number":54,"context_line":"                \u0027vcpus\u0027: integer"},{"line_number":55,"context_line":"            },"},{"line_number":56,"context_line":"        }"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def serialize(self, flavor):"},{"line_number":59,"context_line":"        return serialize_nova_flavor(flavor)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_412ac72d","line":56,"updated":"2016-05-12 14:52:11.000000000","message":"Missing get_objects and facets_with_options methods.","commit_id":"2dedcdcd8d276b22ce3aa1f428d9f43067296ede"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"d6b2a119f4edb5c1af0c9466801ccb73baf4bdc7","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    @classmethod"},{"line_number":28,"context_line":"    def get_document_type(self):"},{"line_number":29,"context_line":"        return \u0027OS::Nova::Flavor\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def get_mapping(self):"},{"line_number":32,"context_line":"        str_analysis \u003d {\u0027type\u0027: \u0027string\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_cba6ffbf","line":29,"range":{"start_line":29,"start_character":15,"end_line":29,"end_character":33},"updated":"2016-06-01 23:51:23.000000000","message":"Should we use resource_types.NOVA_FLAVOR here instead of hard coding it. This way we are not defining it twice (once here and once in searchlight.common.resource_types.py).","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"d6b2a119f4edb5c1af0c9466801ccb73baf4bdc7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        return \u0027OS::Nova::Flavor\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def get_mapping(self):"},{"line_number":32,"context_line":"        str_analysis \u003d {\u0027type\u0027: \u0027string\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":33,"context_line":"        integer \u003d {\u0027type\u0027: \u0027integer\u0027}"},{"line_number":34,"context_line":"        bool_not_analyzed \u003d {\u0027type\u0027: \u0027boolean\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":35,"context_line":"        float_analyzed \u003d {\u0027type\u0027: \u0027float\u0027}"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_2b986b69","line":32,"range":{"start_line":32,"start_character":8,"end_line":32,"end_character":20},"updated":"2016-06-01 23:51:23.000000000","message":"To be consistent, this should probably be \"str_not_analyzed\".","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"7a1e684c3b94c999e47415ac622ccdd444f071a9","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        return \u0027OS::Nova::Flavor\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def get_mapping(self):"},{"line_number":32,"context_line":"        str_analysis \u003d {\u0027type\u0027: \u0027string\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":33,"context_line":"        integer \u003d {\u0027type\u0027: \u0027integer\u0027}"},{"line_number":34,"context_line":"        bool_not_analyzed \u003d {\u0027type\u0027: \u0027boolean\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":35,"context_line":"        float_analyzed \u003d {\u0027type\u0027: \u0027float\u0027}"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_85a26297","line":32,"range":{"start_line":32,"start_character":8,"end_line":32,"end_character":20},"in_reply_to":"9abb7d3a_2b986b69","updated":"2016-06-08 09:36:08.000000000","message":"This variable was becoming too long which was surpassing the pep 8 rules; so I preferred using string_analysis as its name.","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                \u0027vcpus\u0027: integer,"},{"line_number":54,"context_line":"                \u0027extra-specs\u0027: {"},{"line_number":55,"context_line":"                    \u0027type\u0027: \u0027nested\u0027,"},{"line_number":56,"context_line":"                    \u0027properties\u0027: {"},{"line_number":57,"context_line":"                        \u0027capabilities:cpu_info:arch\u0027: str_analysis,"},{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:features\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_d4fa8cbc","line":56,"range":{"start_line":56,"start_character":31,"end_line":56,"end_character":33},"updated":"2016-05-25 21:16:29.000000000","message":"Is there a source for this list somewhere? It would be good to make a note of it","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"7a1e684c3b94c999e47415ac622ccdd444f071a9","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                \u0027vcpus\u0027: integer,"},{"line_number":54,"context_line":"                \u0027extra-specs\u0027: {"},{"line_number":55,"context_line":"                    \u0027type\u0027: \u0027nested\u0027,"},{"line_number":56,"context_line":"                    \u0027properties\u0027: {"},{"line_number":57,"context_line":"                        \u0027capabilities:cpu_info:arch\u0027: str_analysis,"},{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:features\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_8f98bac1","line":56,"range":{"start_line":56,"start_character":31,"end_line":56,"end_character":33},"in_reply_to":"bab6814e_d4fa8cbc","updated":"2016-06-08 09:36:08.000000000","message":"This link contains some of it, but not all; I picked them up from the dashboard.\nhttp://docs.openstack.org/admin-guide/compute-flavors.html","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"d6b2a119f4edb5c1af0c9466801ccb73baf4bdc7","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                        \u0027hw_watchdog_action\u0027: str_analysis,"},{"line_number":93,"context_line":"                        \u0027quota:cpu_limit\u0027: str_analysis,"},{"line_number":94,"context_line":"                        \u0027quota:cpu_reservation\u0027: str_analysis,"},{"line_number":95,"context_line":"                        \u0027trust:trusted_host\u0027: str_analysis,"},{"line_number":96,"context_line":"                        \u0027vmware:hw_version\u0027: str_analysis"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"                    }"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_2b34eb47","line":95,"updated":"2016-06-01 23:51:23.000000000","message":"Is trusted_host an admin-only field?","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        query. Document type will be added to this list."},{"line_number":113,"context_line":"        \"\"\""},{"line_number":114,"context_line":"        return ["},{"line_number":115,"context_line":"            {\u0027term\u0027: {\u0027tenant_id\u0027: request_context.owner}}"},{"line_number":116,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_9423e457","line":115,"range":{"start_line":115,"start_character":35,"end_line":115,"end_character":50},"updated":"2016-05-25 21:16:29.000000000","message":"There is no tenant; I would suggest filtering by os-flavor-access:is_public instead","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"d6b2a119f4edb5c1af0c9466801ccb73baf4bdc7","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        query. Document type will be added to this list."},{"line_number":113,"context_line":"        \"\"\""},{"line_number":114,"context_line":"        return ["},{"line_number":115,"context_line":"            {\u0027term\u0027: {\u0027tenant_id\u0027: request_context.owner}}"},{"line_number":116,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_8bd517e6","line":115,"range":{"start_line":115,"start_character":35,"end_line":115,"end_character":50},"in_reply_to":"bab6814e_9423e457","updated":"2016-06-01 23:51:23.000000000","message":"Will this need to be \"project_id\" once this patch merges with 288853?","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"a605708afbe3102f1807325f918d20e7d8830e55","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def get_mapping(self):"},{"line_number":32,"context_line":"        str_analysis \u003d {\u0027type\u0027: \u0027string\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":33,"context_line":"        integer \u003d {\u0027type\u0027: \u0027integer\u0027}"},{"line_number":34,"context_line":"        bool_not_analyzed \u003d {\u0027type\u0027: \u0027boolean\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":35,"context_line":"        float_analyzed \u003d {\u0027type\u0027: \u0027float\u0027}"},{"line_number":36,"context_line":"        return {"},{"line_number":37,"context_line":"            \u0027dynamic\u0027: False,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_71dcfc74","line":34,"range":{"start_line":34,"start_character":57,"end_line":34,"end_character":58},"updated":"2016-06-09 16:22:15.000000000","message":"not_analyzed is not necessary for boolean values","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"a1ce7cebec1f839c0e304fd16833bd406bdd4d63","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def get_mapping(self):"},{"line_number":32,"context_line":"        str_analysis \u003d {\u0027type\u0027: \u0027string\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":33,"context_line":"        integer \u003d {\u0027type\u0027: \u0027integer\u0027}"},{"line_number":34,"context_line":"        bool_not_analyzed \u003d {\u0027type\u0027: \u0027boolean\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":35,"context_line":"        float_analyzed \u003d {\u0027type\u0027: \u0027float\u0027}"},{"line_number":36,"context_line":"        return {"},{"line_number":37,"context_line":"            \u0027dynamic\u0027: False,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_a4726f47","line":34,"range":{"start_line":34,"start_character":57,"end_line":34,"end_character":58},"in_reply_to":"7aa08908_71dcfc74","updated":"2016-06-23 04:17:31.000000000","message":"Done","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"a605708afbe3102f1807325f918d20e7d8830e55","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        str_analysis \u003d {\u0027type\u0027: \u0027string\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":33,"context_line":"        integer \u003d {\u0027type\u0027: \u0027integer\u0027}"},{"line_number":34,"context_line":"        bool_not_analyzed \u003d {\u0027type\u0027: \u0027boolean\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":35,"context_line":"        float_analyzed \u003d {\u0027type\u0027: \u0027float\u0027}"},{"line_number":36,"context_line":"        return {"},{"line_number":37,"context_line":"            \u0027dynamic\u0027: False,"},{"line_number":38,"context_line":"            \u0027properties\u0027: {"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_3140b407","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":22},"updated":"2016-06-09 16:22:15.000000000","message":"\u0027analyzed\u0027 doesn\u0027t have meaning for floats\nAlso I\u0027d probably just put {\"type\": \"float\"} and {\"type\": \"boolean\"} inline. There aren\u0027t that many of them and it\u0027s easier to read.","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"a1ce7cebec1f839c0e304fd16833bd406bdd4d63","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        str_analysis \u003d {\u0027type\u0027: \u0027string\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":33,"context_line":"        integer \u003d {\u0027type\u0027: \u0027integer\u0027}"},{"line_number":34,"context_line":"        bool_not_analyzed \u003d {\u0027type\u0027: \u0027boolean\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":35,"context_line":"        float_analyzed \u003d {\u0027type\u0027: \u0027float\u0027}"},{"line_number":36,"context_line":"        return {"},{"line_number":37,"context_line":"            \u0027dynamic\u0027: False,"},{"line_number":38,"context_line":"            \u0027properties\u0027: {"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_c477bb38","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":22},"in_reply_to":"7aa08908_3140b407","updated":"2016-06-23 04:17:31.000000000","message":"Done","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"a605708afbe3102f1807325f918d20e7d8830e55","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                \u0027vcpus\u0027: integer,"},{"line_number":54,"context_line":"                \u0027extra-specs\u0027: {"},{"line_number":55,"context_line":"                    \u0027type\u0027: \u0027nested\u0027,"},{"line_number":56,"context_line":"                    \u0027properties\u0027: {"},{"line_number":57,"context_line":"                        \u0027capabilities:cpu_info:arch\u0027: str_analysis,"},{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:features\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_717b5c2a","line":56,"range":{"start_line":56,"start_character":21,"end_line":56,"end_character":31},"updated":"2016-06-09 16:22:15.000000000","message":"I think including a link in the docstring for this function to http://docs.openstack.org/admin-guide/compute-flavors.html would be good to identify where the list of extra-specs comes from","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"7aca49211e650fcc72777259e9454b90a7e95ef5","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def get_objects(self):"},{"line_number":104,"context_line":"        \"\"\"Generator that lists all nova Flavors\"\"\""},{"line_number":105,"context_line":"        return openstack_clients.get_novaclient().flavors.list()"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def serialize(self, flavor):"},{"line_number":108,"context_line":"        return serialize_nova_flavor(flavor)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_e4a057f6","line":105,"updated":"2016-06-08 21:59:00.000000000","message":"Will the number of flavors ever get so large that we need to page the results, using the \"limit\" and \"marker\" parameters to flavors.list()? Or at least increase the number with \"limits\"?","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"a605708afbe3102f1807325f918d20e7d8830e55","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        query. Document type will be added to this list."},{"line_number":113,"context_line":"        \"\"\""},{"line_number":114,"context_line":"        return ["},{"line_number":115,"context_line":"            {\u0027term\u0027: {\u0027tenant_id\u0027: request_context.owner}}"},{"line_number":116,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_c6ba510a","line":115,"range":{"start_line":115,"start_character":35,"end_line":115,"end_character":50},"updated":"2016-06-09 16:22:15.000000000","message":"There is no tenant_id field being mapped so this will never be true. Public flavors will have \"os-flavor-access:is_public\" set to true. \n\nTo get the access list for private flavors (where is_public is false) it\u0027s necessary to call novaclient.flavor_access.list(flavor\u003d\u003cflavor id\u003e) for each flavor. There\u0027s no way for an admin to see flavors they haven\u0027t been granted access to. I\u0027m ok with just indexing public flavors for now.","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                        \u0027capabilities:cpu_info:arch\u0027: str_analysis,"},{"line_number":57,"context_line":"                        \u0027capabilities:cpu_info:features\u0027: str_analysis,"},{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:topology:cores\u0027: str_analysis,"},{"line_number":60,"context_line":"                        \u0027capabilities:cpu_info:topology:sockets\u0027: str_analysis,"},{"line_number":61,"context_line":"                        \u0027capabilities:cpu_info:topology:threads\u0027: str_analysis,"},{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_fd9c485f","line":59,"range":{"start_line":59,"start_character":56,"end_line":59,"end_character":61},"updated":"2016-06-27 15:37:50.000000000","message":"Sorry, I missed this in previous reviews. This is the last thing i\u0027ve found, promise! Some of these fields are numeric, not strings - I don\u0027t know if there\u0027s a definition of them anywhere but looking at them most of these look like they should be integer (number of cores, sockets, threads, iops or bytes per sceond, the vif numbers).","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"986b9d169b23c8dca626615590c42d5662068561","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                        \u0027capabilities:cpu_info:arch\u0027: str_analysis,"},{"line_number":57,"context_line":"                        \u0027capabilities:cpu_info:features\u0027: str_analysis,"},{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:topology:cores\u0027: str_analysis,"},{"line_number":60,"context_line":"                        \u0027capabilities:cpu_info:topology:sockets\u0027: str_analysis,"},{"line_number":61,"context_line":"                        \u0027capabilities:cpu_info:topology:threads\u0027: str_analysis,"},{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_59dc8246","line":59,"range":{"start_line":59,"start_character":56,"end_line":59,"end_character":61},"in_reply_to":"3aaa91ec_07629e16","updated":"2016-06-27 19:27:51.000000000","message":"I think we\u0027ll want to do some multi-field mapping here like is done with raw Strings.  Will think about it.","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                        \u0027capabilities:cpu_info:arch\u0027: str_analysis,"},{"line_number":57,"context_line":"                        \u0027capabilities:cpu_info:features\u0027: str_analysis,"},{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:topology:cores\u0027: str_analysis,"},{"line_number":60,"context_line":"                        \u0027capabilities:cpu_info:topology:sockets\u0027: str_analysis,"},{"line_number":61,"context_line":"                        \u0027capabilities:cpu_info:topology:threads\u0027: str_analysis,"},{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_fb10a950","line":59,"range":{"start_line":59,"start_character":56,"end_line":59,"end_character":61},"in_reply_to":"3aaa91ec_59dc8246","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"b9e23b015e214af981185baf2b13a7694ec30daa","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                        \u0027capabilities:cpu_info:arch\u0027: str_analysis,"},{"line_number":57,"context_line":"                        \u0027capabilities:cpu_info:features\u0027: str_analysis,"},{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:topology:cores\u0027: str_analysis,"},{"line_number":60,"context_line":"                        \u0027capabilities:cpu_info:topology:sockets\u0027: str_analysis,"},{"line_number":61,"context_line":"                        \u0027capabilities:cpu_info:topology:threads\u0027: str_analysis,"},{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_07629e16","line":59,"range":{"start_line":59,"start_character":56,"end_line":59,"end_character":61},"in_reply_to":"3aaa91ec_fd9c485f","updated":"2016-06-27 16:47:27.000000000","message":"Please don\u0027t apologize;I have a small doubt, when we call get_keys, the json returns numbers as unicode strings, so I thought maybe they are stored as strings only and defined them as strings here.","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                        \u0027capabilities:cpu_info:features\u0027: str_analysis,"},{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:topology:cores\u0027: str_analysis,"},{"line_number":60,"context_line":"                        \u0027capabilities:cpu_info:topology:sockets\u0027: str_analysis,"},{"line_number":61,"context_line":"                        \u0027capabilities:cpu_info:topology:threads\u0027: str_analysis,"},{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"},{"line_number":63,"context_line":"                        \u0027hw:cpu_policy\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_5da2bc9b","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":79},"updated":"2016-06-27 15:37:50.000000000","message":"int","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                        \u0027capabilities:cpu_info:features\u0027: str_analysis,"},{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:topology:cores\u0027: str_analysis,"},{"line_number":60,"context_line":"                        \u0027capabilities:cpu_info:topology:sockets\u0027: str_analysis,"},{"line_number":61,"context_line":"                        \u0027capabilities:cpu_info:topology:threads\u0027: str_analysis,"},{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"},{"line_number":63,"context_line":"                        \u0027hw:cpu_policy\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_5b1e1d64","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":79},"in_reply_to":"3aaa91ec_5da2bc9b","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:topology:cores\u0027: str_analysis,"},{"line_number":60,"context_line":"                        \u0027capabilities:cpu_info:topology:sockets\u0027: str_analysis,"},{"line_number":61,"context_line":"                        \u0027capabilities:cpu_info:topology:threads\u0027: str_analysis,"},{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"},{"line_number":63,"context_line":"                        \u0027hw:cpu_policy\u0027: str_analysis,"},{"line_number":64,"context_line":"                        \u0027quota:cpu_period\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_9dac248e","line":61,"range":{"start_line":61,"start_character":56,"end_line":61,"end_character":63},"updated":"2016-06-27 15:37:50.000000000","message":"int","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:topology:cores\u0027: str_analysis,"},{"line_number":60,"context_line":"                        \u0027capabilities:cpu_info:topology:sockets\u0027: str_analysis,"},{"line_number":61,"context_line":"                        \u0027capabilities:cpu_info:topology:threads\u0027: str_analysis,"},{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"},{"line_number":63,"context_line":"                        \u0027hw:cpu_policy\u0027: str_analysis,"},{"line_number":64,"context_line":"                        \u0027quota:cpu_period\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_3b1b5174","line":61,"range":{"start_line":61,"start_character":56,"end_line":61,"end_character":63},"in_reply_to":"3aaa91ec_9dac248e","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                        \u0027capabilities:cpu_info:topology:threads\u0027: str_analysis,"},{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"},{"line_number":63,"context_line":"                        \u0027hw:cpu_policy\u0027: str_analysis,"},{"line_number":64,"context_line":"                        \u0027quota:cpu_period\u0027: str_analysis,"},{"line_number":65,"context_line":"                        \u0027quota:cpu_quota\u0027: str_analysis,"},{"line_number":66,"context_line":"                        \u0027quota:cpu_shares\u0027: str_analysis,"},{"line_number":67,"context_line":"                        \u0027quota:disk_read_bytes_sec\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_3dcd305e","line":64,"range":{"start_line":64,"start_character":25,"end_line":64,"end_character":41},"updated":"2016-06-27 15:37:50.000000000","message":"int","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                        \u0027capabilities:cpu_info:topology:threads\u0027: str_analysis,"},{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"},{"line_number":63,"context_line":"                        \u0027hw:cpu_policy\u0027: str_analysis,"},{"line_number":64,"context_line":"                        \u0027quota:cpu_period\u0027: str_analysis,"},{"line_number":65,"context_line":"                        \u0027quota:cpu_quota\u0027: str_analysis,"},{"line_number":66,"context_line":"                        \u0027quota:cpu_shares\u0027: str_analysis,"},{"line_number":67,"context_line":"                        \u0027quota:disk_read_bytes_sec\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_9b26c5b8","line":64,"range":{"start_line":64,"start_character":25,"end_line":64,"end_character":41},"in_reply_to":"3aaa91ec_3dcd305e","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"},{"line_number":63,"context_line":"                        \u0027hw:cpu_policy\u0027: str_analysis,"},{"line_number":64,"context_line":"                        \u0027quota:cpu_period\u0027: str_analysis,"},{"line_number":65,"context_line":"                        \u0027quota:cpu_quota\u0027: str_analysis,"},{"line_number":66,"context_line":"                        \u0027quota:cpu_shares\u0027: str_analysis,"},{"line_number":67,"context_line":"                        \u0027quota:disk_read_bytes_sec\u0027: str_analysis,"},{"line_number":68,"context_line":"                        \u0027quota:disk_read_iops_sec\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_7dd7b8ed","line":65,"range":{"start_line":65,"start_character":31,"end_line":65,"end_character":40},"updated":"2016-06-27 15:37:50.000000000","message":"int","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                        \u0027capabilities:cpu_info:vendor\u0027: str_analysis,"},{"line_number":63,"context_line":"                        \u0027hw:cpu_policy\u0027: str_analysis,"},{"line_number":64,"context_line":"                        \u0027quota:cpu_period\u0027: str_analysis,"},{"line_number":65,"context_line":"                        \u0027quota:cpu_quota\u0027: str_analysis,"},{"line_number":66,"context_line":"                        \u0027quota:cpu_shares\u0027: str_analysis,"},{"line_number":67,"context_line":"                        \u0027quota:disk_read_bytes_sec\u0027: str_analysis,"},{"line_number":68,"context_line":"                        \u0027quota:disk_read_iops_sec\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_db204d9e","line":65,"range":{"start_line":65,"start_character":31,"end_line":65,"end_character":40},"in_reply_to":"3aaa91ec_7dd7b8ed","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                        \u0027hw:cpu_policy\u0027: str_analysis,"},{"line_number":64,"context_line":"                        \u0027quota:cpu_period\u0027: str_analysis,"},{"line_number":65,"context_line":"                        \u0027quota:cpu_quota\u0027: str_analysis,"},{"line_number":66,"context_line":"                        \u0027quota:cpu_shares\u0027: str_analysis,"},{"line_number":67,"context_line":"                        \u0027quota:disk_read_bytes_sec\u0027: str_analysis,"},{"line_number":68,"context_line":"                        \u0027quota:disk_read_iops_sec\u0027: str_analysis,"},{"line_number":69,"context_line":"                        \u0027quota:disk_total_bytes_sec\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_1dfdd46e","line":66,"range":{"start_line":66,"start_character":31,"end_line":66,"end_character":41},"updated":"2016-06-27 15:37:50.000000000","message":"int","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                        \u0027hw:cpu_policy\u0027: str_analysis,"},{"line_number":64,"context_line":"                        \u0027quota:cpu_period\u0027: str_analysis,"},{"line_number":65,"context_line":"                        \u0027quota:cpu_quota\u0027: str_analysis,"},{"line_number":66,"context_line":"                        \u0027quota:cpu_shares\u0027: str_analysis,"},{"line_number":67,"context_line":"                        \u0027quota:disk_read_bytes_sec\u0027: str_analysis,"},{"line_number":68,"context_line":"                        \u0027quota:disk_read_iops_sec\u0027: str_analysis,"},{"line_number":69,"context_line":"                        \u0027quota:disk_total_bytes_sec\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_1b3bf5d2","line":66,"range":{"start_line":66,"start_character":31,"end_line":66,"end_character":41},"in_reply_to":"3aaa91ec_1dfdd46e","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                        \u0027quota:vif_inbound_peak\u0027: str_analysis,"},{"line_number":76,"context_line":"                        \u0027quota:vif_outbound_average\u0027: str_analysis,"},{"line_number":77,"context_line":"                        \u0027quota:vif_outbound_burst\u0027: str_analysis,"},{"line_number":78,"context_line":"                        \u0027quota:vif_outbound_peak\u0027: str_analysis,"},{"line_number":79,"context_line":"                        \u0027hw:boot_menu\u0027: str_analysis,"},{"line_number":80,"context_line":"                        \u0027hw:cpu_cores\u0027: str_analysis,"},{"line_number":81,"context_line":"                        \u0027hw:cpu_maxcores\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_7dee98b5","line":78,"range":{"start_line":78,"start_character":31,"end_line":78,"end_character":48},"updated":"2016-06-27 15:37:50.000000000","message":"All above are integer","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                        \u0027quota:vif_inbound_peak\u0027: str_analysis,"},{"line_number":76,"context_line":"                        \u0027quota:vif_outbound_average\u0027: str_analysis,"},{"line_number":77,"context_line":"                        \u0027quota:vif_outbound_burst\u0027: str_analysis,"},{"line_number":78,"context_line":"                        \u0027quota:vif_outbound_peak\u0027: str_analysis,"},{"line_number":79,"context_line":"                        \u0027hw:boot_menu\u0027: str_analysis,"},{"line_number":80,"context_line":"                        \u0027hw:cpu_cores\u0027: str_analysis,"},{"line_number":81,"context_line":"                        \u0027hw:cpu_maxcores\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_5b357dd8","line":78,"range":{"start_line":78,"start_character":31,"end_line":78,"end_character":48},"in_reply_to":"3aaa91ec_7dee98b5","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                        \u0027quota:vif_outbound_burst\u0027: str_analysis,"},{"line_number":78,"context_line":"                        \u0027quota:vif_outbound_peak\u0027: str_analysis,"},{"line_number":79,"context_line":"                        \u0027hw:boot_menu\u0027: str_analysis,"},{"line_number":80,"context_line":"                        \u0027hw:cpu_cores\u0027: str_analysis,"},{"line_number":81,"context_line":"                        \u0027hw:cpu_maxcores\u0027: str_analysis,"},{"line_number":82,"context_line":"                        \u0027hw:cpu_maxsockets\u0027: str_analysis,"},{"line_number":83,"context_line":"                        \u0027hw:cpu_maxthreads\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_dd5eac78","line":80,"range":{"start_line":80,"start_character":28,"end_line":80,"end_character":37},"updated":"2016-06-27 15:37:50.000000000","message":"int","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                        \u0027quota:vif_outbound_burst\u0027: str_analysis,"},{"line_number":78,"context_line":"                        \u0027quota:vif_outbound_peak\u0027: str_analysis,"},{"line_number":79,"context_line":"                        \u0027hw:boot_menu\u0027: str_analysis,"},{"line_number":80,"context_line":"                        \u0027hw:cpu_cores\u0027: str_analysis,"},{"line_number":81,"context_line":"                        \u0027hw:cpu_maxcores\u0027: str_analysis,"},{"line_number":82,"context_line":"                        \u0027hw:cpu_maxsockets\u0027: str_analysis,"},{"line_number":83,"context_line":"                        \u0027hw:cpu_maxthreads\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_3b3231f2","line":80,"range":{"start_line":80,"start_character":28,"end_line":80,"end_character":37},"in_reply_to":"3aaa91ec_dd5eac78","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                        \u0027hw:serial_port_count\u0027: str_analysis,"},{"line_number":88,"context_line":"                        \u0027hw_rng:allowed\u0027: str_analysis,"},{"line_number":89,"context_line":"                        \u0027hw_rng:rate_bytes\u0027: str_analysis,"},{"line_number":90,"context_line":"                        \u0027hw_rng:rate_period\u0027: str_analysis,"},{"line_number":91,"context_line":"                        \u0027hw_watchdog_action\u0027: str_analysis,"},{"line_number":92,"context_line":"                        \u0027quota:cpu_limit\u0027: str_analysis,"},{"line_number":93,"context_line":"                        \u0027quota:cpu_reservation\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_fdd448be","line":90,"range":{"start_line":90,"start_character":25,"end_line":90,"end_character":43},"updated":"2016-06-27 15:37:50.000000000","message":"all above are integer","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                        \u0027hw:serial_port_count\u0027: str_analysis,"},{"line_number":88,"context_line":"                        \u0027hw_rng:allowed\u0027: str_analysis,"},{"line_number":89,"context_line":"                        \u0027hw_rng:rate_bytes\u0027: str_analysis,"},{"line_number":90,"context_line":"                        \u0027hw_rng:rate_period\u0027: str_analysis,"},{"line_number":91,"context_line":"                        \u0027hw_watchdog_action\u0027: str_analysis,"},{"line_number":92,"context_line":"                        \u0027quota:cpu_limit\u0027: str_analysis,"},{"line_number":93,"context_line":"                        \u0027quota:cpu_reservation\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_1b42d53e","line":90,"range":{"start_line":90,"start_character":25,"end_line":90,"end_character":43},"in_reply_to":"3aaa91ec_fdd448be","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                        \u0027hw_rng:rate_bytes\u0027: str_analysis,"},{"line_number":90,"context_line":"                        \u0027hw_rng:rate_period\u0027: str_analysis,"},{"line_number":91,"context_line":"                        \u0027hw_watchdog_action\u0027: str_analysis,"},{"line_number":92,"context_line":"                        \u0027quota:cpu_limit\u0027: str_analysis,"},{"line_number":93,"context_line":"                        \u0027quota:cpu_reservation\u0027: str_analysis,"},{"line_number":94,"context_line":"                        \u0027trust:trusted_host\u0027: str_analysis,"},{"line_number":95,"context_line":"                        \u0027vmware:hw_version\u0027: str_analysis"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_7de1789a","line":92,"range":{"start_line":92,"start_character":31,"end_line":92,"end_character":40},"updated":"2016-06-27 15:37:50.000000000","message":"int","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                        \u0027hw_rng:rate_bytes\u0027: str_analysis,"},{"line_number":90,"context_line":"                        \u0027hw_rng:rate_period\u0027: str_analysis,"},{"line_number":91,"context_line":"                        \u0027hw_watchdog_action\u0027: str_analysis,"},{"line_number":92,"context_line":"                        \u0027quota:cpu_limit\u0027: str_analysis,"},{"line_number":93,"context_line":"                        \u0027quota:cpu_reservation\u0027: str_analysis,"},{"line_number":94,"context_line":"                        \u0027trust:trusted_host\u0027: str_analysis,"},{"line_number":95,"context_line":"                        \u0027vmware:hw_version\u0027: str_analysis"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_fb3ee9b6","line":92,"range":{"start_line":92,"start_character":31,"end_line":92,"end_character":40},"in_reply_to":"3aaa91ec_7de1789a","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                        \u0027hw_rng:rate_period\u0027: str_analysis,"},{"line_number":91,"context_line":"                        \u0027hw_watchdog_action\u0027: str_analysis,"},{"line_number":92,"context_line":"                        \u0027quota:cpu_limit\u0027: str_analysis,"},{"line_number":93,"context_line":"                        \u0027quota:cpu_reservation\u0027: str_analysis,"},{"line_number":94,"context_line":"                        \u0027trust:trusted_host\u0027: str_analysis,"},{"line_number":95,"context_line":"                        \u0027vmware:hw_version\u0027: str_analysis"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_bdf1206d","line":93,"range":{"start_line":93,"start_character":31,"end_line":93,"end_character":46},"updated":"2016-06-27 15:37:50.000000000","message":"int","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                        \u0027hw_rng:rate_period\u0027: str_analysis,"},{"line_number":91,"context_line":"                        \u0027hw_watchdog_action\u0027: str_analysis,"},{"line_number":92,"context_line":"                        \u0027quota:cpu_limit\u0027: str_analysis,"},{"line_number":93,"context_line":"                        \u0027quota:cpu_reservation\u0027: str_analysis,"},{"line_number":94,"context_line":"                        \u0027trust:trusted_host\u0027: str_analysis,"},{"line_number":95,"context_line":"                        \u0027vmware:hw_version\u0027: str_analysis"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_5b4c5d70","line":93,"range":{"start_line":93,"start_character":31,"end_line":93,"end_character":46},"in_reply_to":"3aaa91ec_bdf1206d","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"b301cbad5f419c2a96bd17bcb2f676e2e25869b2","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                        \u0027hw_watchdog_action\u0027: str_analysis,"},{"line_number":92,"context_line":"                        \u0027quota:cpu_limit\u0027: str_analysis,"},{"line_number":93,"context_line":"                        \u0027quota:cpu_reservation\u0027: str_analysis,"},{"line_number":94,"context_line":"                        \u0027trust:trusted_host\u0027: str_analysis,"},{"line_number":95,"context_line":"                        \u0027vmware:hw_version\u0027: str_analysis"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"                    }"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_bdb920ce","line":94,"range":{"start_line":94,"start_character":31,"end_line":94,"end_character":43},"updated":"2016-06-27 15:37:50.000000000","message":"boolean","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                        \u0027hw_watchdog_action\u0027: str_analysis,"},{"line_number":92,"context_line":"                        \u0027quota:cpu_limit\u0027: str_analysis,"},{"line_number":93,"context_line":"                        \u0027quota:cpu_reservation\u0027: str_analysis,"},{"line_number":94,"context_line":"                        \u0027trust:trusted_host\u0027: str_analysis,"},{"line_number":95,"context_line":"                        \u0027vmware:hw_version\u0027: str_analysis"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"                    }"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_9b74059d","line":94,"range":{"start_line":94,"start_character":31,"end_line":94,"end_character":43},"in_reply_to":"3aaa91ec_bdb920ce","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"1e986dd4dd713e66af214d17957877e8cb73d66d","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def get_objects(self):"},{"line_number":103,"context_line":"        \"\"\"Generator that lists all nova Flavors\"\"\""},{"line_number":104,"context_line":"        return openstack_clients.get_novaclient().flavors.list()"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def serialize(self, flavor):"},{"line_number":107,"context_line":"        return serialize_nova_flavor(flavor)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_60daaf18","line":104,"updated":"2016-06-30 17:01:25.000000000","message":"You need to specify is_public\u003dNone in the argument list to get all flavors:\n\nhttps://github.com/openstack/python-novaclient/blob/master/novaclient/v2/flavors.py#L101-L103","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def get_objects(self):"},{"line_number":103,"context_line":"        \"\"\"Generator that lists all nova Flavors\"\"\""},{"line_number":104,"context_line":"        return openstack_clients.get_novaclient().flavors.list()"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def serialize(self, flavor):"},{"line_number":107,"context_line":"        return serialize_nova_flavor(flavor)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_bb73c1b0","line":104,"in_reply_to":"3aaa91ec_60daaf18","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"3102794ae6f0adc15dd510bc9c38aaeab004552f","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    def serialize(self, flavor):"},{"line_number":107,"context_line":"        return serialize_nova_flavor(flavor)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _get_rbac_field_filters(self, request_context):"},{"line_number":110,"context_line":"        \"\"\"Return any RBAC field filters to be injected into an indices"},{"line_number":111,"context_line":"        query. Document type will be added to this list."},{"line_number":112,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_bcb55fd1","line":109,"updated":"2016-06-28 16:14:41.000000000","message":"This needs to add project access filters similar to Glance [0].\n\nBasically a non-public flavor can be accessed by any project that has been given access to it.  So the filter is an OR filter of either public or if the project has access.\n\nI\u0027ve provided a sample of how to do this using the nova CLI in the following paste:\n\nhttp://paste.openstack.org/show/523797/\n\nhttps://github.com/openstack/searchlight/blob/master/searchlight/elasticsearch/plugins/glance/images.py#L115-L136","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"38cd28cd9e8a0f975863c52a2bc73b245d9a0010","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    def serialize(self, flavor):"},{"line_number":107,"context_line":"        return serialize_nova_flavor(flavor)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _get_rbac_field_filters(self, request_context):"},{"line_number":110,"context_line":"        \"\"\"Return any RBAC field filters to be injected into an indices"},{"line_number":111,"context_line":"        query. Document type will be added to this list."},{"line_number":112,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_1b6935bf","line":109,"in_reply_to":"3aaa91ec_bcb55fd1","updated":"2016-07-04 14:06:16.000000000","message":"Done","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"30d0ebf4c5fa2c23e0bd3d7a4ec0c5657edadba6","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from searchlight.common import resource_types"},{"line_number":17,"context_line":"from searchlight.elasticsearch.plugins import base"},{"line_number":18,"context_line":"from searchlight.elasticsearch.plugins.nova \\"},{"line_number":19,"context_line":"    import notification_handler"},{"line_number":20,"context_line":"from searchlight.elasticsearch.plugins.nova import serialize_nova_flavor"},{"line_number":21,"context_line":"from searchlight.elasticsearch.plugins import openstack_clients"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_d64a9fab","line":19,"updated":"2016-07-05 21:59:22.000000000","message":"+from searchlight.elasticsearch.plugins.nova import FLAVOR_ACCESS_FIELD","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"30d0ebf4c5fa2c23e0bd3d7a4ec0c5657edadba6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def get_mapping(self):"},{"line_number":33,"context_line":"        str_analysis \u003d {\u0027type\u0027: \u0027string\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":34,"context_line":"        integer \u003d {\u0027type\u0027: \u0027integer\u0027}"},{"line_number":35,"context_line":"        return {"},{"line_number":36,"context_line":"            \u0027dynamic\u0027: False,"},{"line_number":37,"context_line":"            \u0027properties\u0027: {"},{"line_number":38,"context_line":"                \u0027id\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_d6a61f52","line":35,"updated":"2016-07-05 21:59:22.000000000","message":"Make dynamic as per my comments below.","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"95fc6ea024ca0ab930f0548f0d3d34362e01382b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            \u0027dynamic\u0027: False,"},{"line_number":37,"context_line":"            \u0027properties\u0027: {"},{"line_number":38,"context_line":"                \u0027id\u0027: str_analysis,"},{"line_number":39,"context_line":"                \u0027tenant_id\u0027: str_analysis,"},{"line_number":40,"context_line":"                \u0027OS-FLV-DISABLED:disabled\u0027: {\u0027type\u0027: \u0027boolean\u0027},"},{"line_number":41,"context_line":"                \u0027OS-FLV-EXT-DATA:ephemeral\u0027: integer,"},{"line_number":42,"context_line":"                \u0027disk\u0027: integer,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_69efa087","line":39,"range":{"start_line":39,"start_character":17,"end_line":39,"end_character":26},"updated":"2016-07-05 15:32:49.000000000","message":"This should probably be \u0027tenant_access\u0027 or something. It doesn\u0027t have the same meaning as, for instance, a nova server where \u0027tenant_id\u0027 is the the project that created the server. In this case it is a list of tenants with access to the flavor.","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"30d0ebf4c5fa2c23e0bd3d7a4ec0c5657edadba6","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                \u0027vcpus\u0027: integer,"},{"line_number":54,"context_line":"                \u0027extra-specs\u0027: {"},{"line_number":55,"context_line":"                    \u0027type\u0027: \u0027nested\u0027,"},{"line_number":56,"context_line":"                    \u0027properties\u0027: {"},{"line_number":57,"context_line":"                        \u0027capabilities:cpu_info:arch\u0027: str_analysis,"},{"line_number":58,"context_line":"                        \u0027capabilities:cpu_info:features\u0027: str_analysis,"},{"line_number":59,"context_line":"                        \u0027capabilities:cpu_info:model\u0027: str_analysis,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_9685b7ae","line":56,"updated":"2016-07-05 21:59:22.000000000","message":"Let\u0027s not list all these for now and make this dynamic.  This creates a situation where all these facets get listed even when there are no values in elastic search.  In addition, this is only a subset of the possible values from Nova.  So, I think we might as well just not list them for now.","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"30d0ebf4c5fa2c23e0bd3d7a4ec0c5657edadba6","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def get_objects(self):"},{"line_number":104,"context_line":"        \"\"\"Generator that lists all nova Flavors\"\"\""},{"line_number":105,"context_line":"        return openstack_clients.get_novaclient().flavors.list(is_public\u003dNone)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def serialize(self, flavor):"},{"line_number":108,"context_line":"        return serialize_nova_flavor(flavor)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_9673f7e6","line":105,"updated":"2016-07-05 21:59:22.000000000","message":"Let\u0027s add some facets with options here:\n\n+    @property\n+    def facets_with_options(self):\n+        return (\u0027OS-FLV-DISABLED:disabled\u0027, \u0027os-flavor-access:is_public\u0027)\n+","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"95fc6ea024ca0ab930f0548f0d3d34362e01382b","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        \"\"\"Return any RBAC field filters to be injected into an indices"},{"line_number":112,"context_line":"        query. Document type will be added to this list."},{"line_number":113,"context_line":"        \"\"\""},{"line_number":114,"context_line":"        return ["},{"line_number":115,"context_line":"            {\u0027term\u0027: {\u0027os-flavor-access:is_public\u0027: True}}"},{"line_number":116,"context_line":"        ]"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_93803b48","line":114,"range":{"start_line":114,"start_character":8,"end_line":114,"end_character":14},"updated":"2016-07-05 15:32:49.000000000","message":"Need to delete this first clause","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"30d0ebf4c5fa2c23e0bd3d7a4ec0c5657edadba6","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                            \u0027os-flavor-access:is_public\u0027: True"},{"line_number":124,"context_line":"                        }"},{"line_number":125,"context_line":"                    },"},{"line_number":126,"context_line":"                    {"},{"line_number":127,"context_line":"                        \u0027term\u0027: {"},{"line_number":128,"context_line":"                            \u0027tenant_id\u0027: request_context.tenant"},{"line_number":129,"context_line":"                        }"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_56486f87","line":126,"updated":"2016-07-05 21:59:22.000000000","message":"\u0027term\u0027: {\n-                            \u0027tenant_id\u0027: request_context.tenant\n+                            FLAVOR_ACCESS_FIELD: request_context.tenant\n                         }\n                     }","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"30d0ebf4c5fa2c23e0bd3d7a4ec0c5657edadba6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"1aa78d24_962137b7","line":134,"updated":"2016-07-05 21:59:22.000000000","message":"Nova does not let you see the access list unless you are an admin. So we need to filter it out unless you are an admin.\n\nSee end of this paste: http://paste.openstack.org/show/526093/\n\n+\n+    def filter_result(self, hit, request_context):\n+        super(FlavorIndex, self).filter_result(hit, request_context)\n+        # Only admins and tenants who the flavor has been granted\n+        # access can see the full list of access.\n+        if not request_context.is_admin:\n+            source \u003d hit[\u0027_source\u0027]\n+            is_public \u003d source.get(\u0027os-flavor-access:is_public\u0027, False)\n+            access \u003d source.get(FLAVOR_ACCESS_FIELD, [])\n+            if is_public or request_context.tenant not in access:\n+                source.pop(FLAVOR_ACCESS_FIELD, None)","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"4e7b3e40449d530e620bd1cf856a247e407f6bed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"1aa78d24_1bd72b4c","line":134,"in_reply_to":"1aa78d24_962137b7","updated":"2016-07-05 22:04:11.000000000","message":"In thinking about this more, the above filtering probably is not necessary, because only admins, public, or tenants who can see this field will be getting the results due to the rbac filtering.","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"6846b3c1e6264470e30a7471bbcd8c3f8de7a231","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_6b938c5b","line":1,"updated":"2016-07-21 20:45:40.000000000","message":"The date is incorrect for this new file. Should be 2016. Also the HP copyright is for new files created by folks who work for HP. Feel free to change this to your company or the standard Apache license.","commit_id":"b312a61c289ee2af8ce2a956601b76b3d0f8229e"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"e13fe55c875b3d7865f4a5573c2abb5181ccbf42","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2015 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":11,"id":"dada55a8_972a148f","line":1,"in_reply_to":"dada55a8_6b938c5b","updated":"2016-07-24 11:03:27.000000000","message":"Done","commit_id":"b312a61c289ee2af8ce2a956601b76b3d0f8229e"}],"searchlight/elasticsearch/plugins/nova/notification_handler.py":[{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"91d75f56402347bc684cf478603cee9c2af7512a","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    @classmethod"},{"line_number":119,"context_line":"    def _get_notification_exchanges(cls):"},{"line_number":120,"context_line":"        return [\u0027nova\u0027]"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def get_event_handlers(self):"},{"line_number":123,"context_line":"        # TODO(): Currently there is no notification for flavor,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_31a67853","line":120,"range":{"start_line":120,"start_character":17,"end_line":120,"end_character":21},"updated":"2016-06-23 19:16:57.000000000","message":"If this ends up needing another patch, this should be an empty list. I noticed that it\u0027s the same for the hypervisor plugin though, so I\u0027m ok merging this and fixing them both (or implementing the change to allow plugins with no notification handler).","commit_id":"ce2ba1edbbf963c5b2d8acdfbc9a46173a627633"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"b0107c79f16f2e2add94d5a2b21bd9537f93a788","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    @classmethod"},{"line_number":119,"context_line":"    def _get_notification_exchanges(cls):"},{"line_number":120,"context_line":"        return [\u0027nova\u0027]"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def get_event_handlers(self):"},{"line_number":123,"context_line":"        # TODO(): Currently there is no notification for flavor,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_49c9cd58","line":120,"range":{"start_line":120,"start_character":17,"end_line":120,"end_character":21},"in_reply_to":"3aaa91ec_31a67853","updated":"2016-06-24 04:58:19.000000000","message":"Done","commit_id":"ce2ba1edbbf963c5b2d8acdfbc9a46173a627633"}],"searchlight/tests/functional/data/load/flavors.json":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"0cb756a4da7a1d711369903a812473ebf9f8b486","unresolved":false,"context_lines":[{"line_number":1,"context_line":"["},{"line_number":2,"context_line":"    {"},{"line_number":3,"context_line":"        \"name\": \"m1.tiny\","},{"line_number":4,"context_line":"        \"ram\": 512,"},{"line_number":5,"context_line":"        \"__searchlight-user-role\": ["}],"source_content_type":"application/json","patch_set":3,"id":"bab6814e_eec43c93","line":2,"updated":"2016-05-25 13:12:50.000000000","message":"this json file should be the sample data from the nova api","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"7a1e684c3b94c999e47415ac622ccdd444f071a9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"["},{"line_number":2,"context_line":"    {"},{"line_number":3,"context_line":"        \"name\": \"m1.tiny\","},{"line_number":4,"context_line":"        \"ram\": 512,"},{"line_number":5,"context_line":"        \"__searchlight-user-role\": ["}],"source_content_type":"application/json","patch_set":3,"id":"9abb7d3a_71a1f0f7","line":2,"in_reply_to":"bab6814e_eec43c93","updated":"2016-06-08 09:36:08.000000000","message":"Done","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    {"},{"line_number":3,"context_line":"        \"name\": \"m1.tiny\","},{"line_number":4,"context_line":"        \"ram\": 512,"},{"line_number":5,"context_line":"        \"__searchlight-user-role\": ["},{"line_number":6,"context_line":"        \"user\","},{"line_number":7,"context_line":"        \"admin\""},{"line_number":8,"context_line":"        ],"}],"source_content_type":"application/json","patch_set":3,"id":"bab6814e_09ab6176","line":5,"range":{"start_line":5,"start_character":23,"end_line":5,"end_character":27},"updated":"2016-05-25 21:16:29.000000000","message":"As Li says, this should be the data that the API would give from e.g. novaclient.flavors.list()[0].to_dict()\n\n__searchlight-user-role should not be here","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"7a1e684c3b94c999e47415ac622ccdd444f071a9","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    {"},{"line_number":3,"context_line":"        \"name\": \"m1.tiny\","},{"line_number":4,"context_line":"        \"ram\": 512,"},{"line_number":5,"context_line":"        \"__searchlight-user-role\": ["},{"line_number":6,"context_line":"        \"user\","},{"line_number":7,"context_line":"        \"admin\""},{"line_number":8,"context_line":"        ],"}],"source_content_type":"application/json","patch_set":3,"id":"9abb7d3a_51b94c2d","line":5,"range":{"start_line":5,"start_character":23,"end_line":5,"end_character":27},"in_reply_to":"bab6814e_09ab6176","updated":"2016-06-08 09:36:08.000000000","message":"Done","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":6,"context_line":"        \"user\","},{"line_number":7,"context_line":"        \"admin\""},{"line_number":8,"context_line":"        ],"},{"line_number":9,"context_line":"        \"updated_at\": \"2016-05-24T10:27:29Z\","},{"line_number":10,"context_line":"        \"OS-FLV-DISABLED:disabled\": false,"},{"line_number":11,"context_line":"        \"vcpus\": 1,"},{"line_number":12,"context_line":"        \"extra_specs\": {"}],"source_content_type":"application/json","patch_set":3,"id":"bab6814e_a9e5f509","line":9,"range":{"start_line":9,"start_character":23,"end_line":9,"end_character":27},"updated":"2016-05-25 21:16:29.000000000","message":"This isn\u0027t in the API response","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"7a1e684c3b94c999e47415ac622ccdd444f071a9","unresolved":false,"context_lines":[{"line_number":6,"context_line":"        \"user\","},{"line_number":7,"context_line":"        \"admin\""},{"line_number":8,"context_line":"        ],"},{"line_number":9,"context_line":"        \"updated_at\": \"2016-05-24T10:27:29Z\","},{"line_number":10,"context_line":"        \"OS-FLV-DISABLED:disabled\": false,"},{"line_number":11,"context_line":"        \"vcpus\": 1,"},{"line_number":12,"context_line":"        \"extra_specs\": {"}],"source_content_type":"application/json","patch_set":3,"id":"9abb7d3a_9185745b","line":9,"range":{"start_line":9,"start_character":23,"end_line":9,"end_character":27},"in_reply_to":"bab6814e_a9e5f509","updated":"2016-06-08 09:36:08.000000000","message":"Done","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"        \"updated_at\": \"2016-05-24T10:27:29Z\","},{"line_number":10,"context_line":"        \"OS-FLV-DISABLED:disabled\": false,"},{"line_number":11,"context_line":"        \"vcpus\": 1,"},{"line_number":12,"context_line":"        \"extra_specs\": {"},{"line_number":13,"context_line":"            \"quota:disk_write_bytes_sec\": \"1\","},{"line_number":14,"context_line":"            \"quota:vif_outbound_average\": \"1\","},{"line_number":15,"context_line":"            \"quota:vif_outbound_burst\": \"1\","}],"source_content_type":"application/json","patch_set":3,"id":"bab6814e_4989e925","line":12,"range":{"start_line":12,"start_character":9,"end_line":12,"end_character":20},"updated":"2016-05-25 21:16:29.000000000","message":"This isn\u0027t in the API response though it\u0027d be ok to leave it here and remove it during load (assigning it instead as the return value of get_keys() )","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"        \"extra_specs\": {"},{"line_number":13,"context_line":"            \"quota:disk_write_bytes_sec\": \"1\","},{"line_number":14,"context_line":"            \"quota:vif_outbound_average\": \"1\","},{"line_number":15,"context_line":"            \"quota:vif_outbound_burst\": \"1\","},{"line_number":16,"context_line":"            \"quota:vif_inbound_peak\": \"1\","},{"line_number":17,"context_line":"            \"quota:cpu_shares\": \"1\","},{"line_number":18,"context_line":"            \"quota:cpu_period\": \"1000\","}],"source_content_type":"application/json","patch_set":3,"id":"bab6814e_c97dd91d","line":15,"range":{"start_line":15,"start_character":19,"end_line":15,"end_character":37},"updated":"2016-05-25 21:16:29.000000000","message":"Leave a couple of these but we don\u0027t need all of them","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"7a1e684c3b94c999e47415ac622ccdd444f071a9","unresolved":false,"context_lines":[{"line_number":12,"context_line":"        \"extra_specs\": {"},{"line_number":13,"context_line":"            \"quota:disk_write_bytes_sec\": \"1\","},{"line_number":14,"context_line":"            \"quota:vif_outbound_average\": \"1\","},{"line_number":15,"context_line":"            \"quota:vif_outbound_burst\": \"1\","},{"line_number":16,"context_line":"            \"quota:vif_inbound_peak\": \"1\","},{"line_number":17,"context_line":"            \"quota:cpu_shares\": \"1\","},{"line_number":18,"context_line":"            \"quota:cpu_period\": \"1000\","}],"source_content_type":"application/json","patch_set":3,"id":"9abb7d3a_31e2c82f","line":15,"range":{"start_line":15,"start_character":19,"end_line":15,"end_character":37},"in_reply_to":"bab6814e_c97dd91d","updated":"2016-06-08 09:36:08.000000000","message":"which one shall I leave?","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"95fc6ea024ca0ab930f0548f0d3d34362e01382b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"["},{"line_number":2,"context_line":"    {"},{"line_number":3,"context_line":"        \"name\": \"m1.tiny\","},{"line_number":4,"context_line":"        \"tenant_id\": \"\","},{"line_number":5,"context_line":"        \"ram\": 512,"},{"line_number":6,"context_line":"        \"extra_spec\": {},"},{"line_number":7,"context_line":"        \"OS-FLV-DISABLED:disabled\": false,"}],"source_content_type":"application/json","patch_set":10,"id":"1aa78d24_33dd070f","line":4,"range":{"start_line":4,"start_character":9,"end_line":4,"end_character":18},"updated":"2016-07-05 15:32:49.000000000","message":"This should be None. Also, if tenant_id is part of this structure then it no longer accurately represents what we get from the nova API (retrieving the tenant list is a separate call) which is ok for testing searches but it won\u0027t work the same way for testing serialization.","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"}],"searchlight/tests/functional/generate_load_data.py":[{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"95fc6ea024ca0ab930f0548f0d3d34362e01382b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    if flavor.is_public:"},{"line_number":38,"context_line":"        return \"\""},{"line_number":39,"context_line":"    n_client \u003d get_novaclient()"},{"line_number":40,"context_line":"    flavor_access \u003d n_client.flavor_access.list(flavor\u003dflavor)[0]"},{"line_number":41,"context_line":"    tenant_id \u003d flavor_access.tenant_id"},{"line_number":42,"context_line":"    return tenant_id"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_53bed3d4","line":40,"range":{"start_line":40,"start_character":64,"end_line":40,"end_character":65},"updated":"2016-07-05 15:32:49.000000000","message":"This function should return a list of tenant_ids, not just one of them","commit_id":"e6941b56d190cab1864b3a859ad66656e992ca45"}],"searchlight/tests/functional/test_nova_plugin.py":[{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        self.server_plugin \u003d self.initialized_plugins[\u0027OS::Nova::Server\u0027]"},{"line_number":28,"context_line":"        self.server_objects \u003d self._load_fixture_data(\u0027load/servers.json\u0027)"},{"line_number":29,"context_line":"        self.flavor_plugin \u003d self.initialized_plugins[\u0027OS::Nova::Flavor\u0027]"},{"line_number":30,"context_line":"        self.flavor_objects \u003d self._load_fixture_data(\u0027load/flavors.json\u0027)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def test_hypervisor_rbac(self):"},{"line_number":33,"context_line":"        self._index(self.hyper_plugin,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_e97b7dbc","line":30,"range":{"start_line":30,"start_character":13,"end_line":30,"end_character":27},"updated":"2016-05-25 21:16:29.000000000","message":"Given that you\u0027ll need to patch in get_keys, it might make sense to do the DictObj initialization here, pop extra_specs and assign it as the return value to get_keys.\n\nSomething like:\n\nclass FlavorDictObj(DictObj):\n  def get_keys(self):\n      return self.extra_specs\n\n  def to_dict(self):\n      d \u003d copy.deepcopy(super(FlavorDictObj, self).to_dict())\n      d.pop(\u0027extra_specs\u0027)\n      return d","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"7a1e684c3b94c999e47415ac622ccdd444f071a9","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        self.server_plugin \u003d self.initialized_plugins[\u0027OS::Nova::Server\u0027]"},{"line_number":28,"context_line":"        self.server_objects \u003d self._load_fixture_data(\u0027load/servers.json\u0027)"},{"line_number":29,"context_line":"        self.flavor_plugin \u003d self.initialized_plugins[\u0027OS::Nova::Flavor\u0027]"},{"line_number":30,"context_line":"        self.flavor_objects \u003d self._load_fixture_data(\u0027load/flavors.json\u0027)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def test_hypervisor_rbac(self):"},{"line_number":33,"context_line":"        self._index(self.hyper_plugin,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_4c743467","line":30,"range":{"start_line":30,"start_character":13,"end_line":30,"end_character":27},"in_reply_to":"bab6814e_e97b7dbc","updated":"2016-06-08 09:36:08.000000000","message":"Done","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"0cb756a4da7a1d711369903a812473ebf9f8b486","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        actual_sources \u003d [process(hit[\u0027_source\u0027]) for hit in hits]"},{"line_number":157,"context_line":"        self.assertEqual(expected_sources, actual_sources)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def test_flavor_rbac(self):"},{"line_number":160,"context_line":"            self._index(self.flavor_plugin,"},{"line_number":161,"context_line":"                        [utils.DictObj(**flavor) for flavor in self.flavor_objects]"},{"line_number":162,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_cec5f83d","line":159,"updated":"2016-05-25 13:12:50.000000000","message":"The test failure is caused because there is no get_keys() in DictObj https://github.com/openstack/searchlight/blob/master/searchlight/tests/utils.py#L558, you should either add a fake get_keys method in DictObj or mock out it, i\u0027d prefer mock it here.","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"7a1e684c3b94c999e47415ac622ccdd444f071a9","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        actual_sources \u003d [process(hit[\u0027_source\u0027]) for hit in hits]"},{"line_number":157,"context_line":"        self.assertEqual(expected_sources, actual_sources)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def test_flavor_rbac(self):"},{"line_number":160,"context_line":"            self._index(self.flavor_plugin,"},{"line_number":161,"context_line":"                        [utils.DictObj(**flavor) for flavor in self.flavor_objects]"},{"line_number":162,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_ac0b18d5","line":159,"in_reply_to":"bab6814e_cec5f83d","updated":"2016-06-08 09:36:08.000000000","message":"Done","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"9a0f1b7d6c086deea861ae463cddac86c600041e","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def test_flavor_rbac(self):"},{"line_number":160,"context_line":"            self._index(self.flavor_plugin,"},{"line_number":161,"context_line":"                        [utils.DictObj(**flavor) for flavor in self.flavor_objects]"},{"line_number":162,"context_line":"                        )"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"            query \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_9c7ee7ac","line":161,"updated":"2016-06-05 08:52:43.000000000","message":"too long here","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                        [utils.DictObj(**flavor) for flavor in self.flavor_objects]"},{"line_number":162,"context_line":"                        )"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"            query \u003d {"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"                \"query\": {"},{"line_number":167,"context_line":"                    \"match_all\": {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_34c03850","line":164,"range":{"start_line":164,"start_character":19,"end_line":164,"end_character":20},"updated":"2016-05-25 21:16:29.000000000","message":"Can restrict \"type\": \"OS::Nova::Flavor\" as well","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"0cb756a4da7a1d711369903a812473ebf9f8b486","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            response, json_content \u003d self._search_request("},{"line_number":172,"context_line":"                query, TENANT_ID)"},{"line_number":173,"context_line":"            self.assertEqual(200, response.status)"},{"line_number":174,"context_line":"            self.assertEqual(1, json_content[\u0027hits\u0027][\u0027total\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_2ef3e49f","line":174,"updated":"2016-05-25 13:12:50.000000000","message":"please also check hit[\u0027_source\u0027]","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"34512c258342db07b218a73353cdb7da5f93ca2d","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            response, json_content \u003d self._search_request("},{"line_number":172,"context_line":"                query, TENANT_ID)"},{"line_number":173,"context_line":"            self.assertEqual(200, response.status)"},{"line_number":174,"context_line":"            self.assertEqual(1, json_content[\u0027hits\u0027][\u0027total\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_14eff4e9","line":174,"in_reply_to":"bab6814e_2ef3e49f","updated":"2016-05-25 21:16:29.000000000","message":"This should also test that a non-admin cannot see flavors where os-flavor-access:is_public is False; I\u0027d recommend adding a second flavor test fixture and running the match_all query as both admin and non admin, checking that the admin gets both and the non admin does not.","commit_id":"0ef11ef9e2609e7105e6bf714e3747ee62330775"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"51f65643ce04c3bf4dd5a499ae34ce436e381688","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                    )"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        query \u003d {"},{"line_number":166,"context_line":"            \"type\": \"OS::Nova::Server\","},{"line_number":167,"context_line":"            \"query\": {"},{"line_number":168,"context_line":"                \"match_all\": {}"},{"line_number":169,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_0a86f712","line":166,"range":{"start_line":166,"start_character":31,"end_line":166,"end_character":37},"updated":"2016-06-22 15:03:07.000000000","message":"Flavor, not Server","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"a1ce7cebec1f839c0e304fd16833bd406bdd4d63","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                    )"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        query \u003d {"},{"line_number":166,"context_line":"            \"type\": \"OS::Nova::Server\","},{"line_number":167,"context_line":"            \"query\": {"},{"line_number":168,"context_line":"                \"match_all\": {}"},{"line_number":169,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_e4b917cd","line":166,"range":{"start_line":166,"start_character":31,"end_line":166,"end_character":37},"in_reply_to":"3aaa91ec_0a86f712","updated":"2016-06-23 04:17:31.000000000","message":"Done","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"4310e824cacfe05a7fc38223d18ae7a8c1c43593","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            query, TENANT_ID)"},{"line_number":174,"context_line":"        expected_sources \u003d [{"},{"line_number":175,"context_line":"            \"name\": \"m1.tiny\","},{"line_number":176,"context_line":"            \"links\": [{"},{"line_number":177,"context_line":"                \"href\": \"http://127.0.0.1:8774/v2.1/flavors/1\","},{"line_number":178,"context_line":"                \"rel\": \"self\"},"},{"line_number":179,"context_line":"                {\"href\": \"http://127.0.0.1:8774/flavors/1\","}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_6afa1bbf","line":176,"range":{"start_line":176,"start_character":13,"end_line":176,"end_character":18},"updated":"2016-06-22 15:00:29.000000000","message":"links shouldn\u0027t be in the response since we ignore it during serialization","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"a1ce7cebec1f839c0e304fd16833bd406bdd4d63","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            query, TENANT_ID)"},{"line_number":174,"context_line":"        expected_sources \u003d [{"},{"line_number":175,"context_line":"            \"name\": \"m1.tiny\","},{"line_number":176,"context_line":"            \"links\": [{"},{"line_number":177,"context_line":"                \"href\": \"http://127.0.0.1:8774/v2.1/flavors/1\","},{"line_number":178,"context_line":"                \"rel\": \"self\"},"},{"line_number":179,"context_line":"                {\"href\": \"http://127.0.0.1:8774/flavors/1\","}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_04b703d9","line":176,"range":{"start_line":176,"start_character":13,"end_line":176,"end_character":18},"in_reply_to":"3aaa91ec_6afa1bbf","updated":"2016-06-23 04:17:31.000000000","message":"Done","commit_id":"8baba5250a8c8e3cb25d47cf6fd61af4f4c193e8"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"3102794ae6f0adc15dd510bc9c38aaeab004552f","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        actual_sources \u003d [process(hit[\u0027_source\u0027]) for hit in hits]"},{"line_number":166,"context_line":"        self.assertEqual(expected_sources, actual_sources)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def test_flavor_rbac(self):"},{"line_number":169,"context_line":"        self._index(self.flavor_plugin,"},{"line_number":170,"context_line":"                    [utils.FlavorDictObj(**flavor)"},{"line_number":171,"context_line":"                     for flavor in self.flavor_objects]"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_5c443bb6","line":168,"updated":"2016-06-28 16:14:41.000000000","message":"This will need to also test for membership RBAC.","commit_id":"cbe59d384217d9bb2009af537b76d3eaf65b05e2"}],"searchlight/tests/utils.py":[{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"91d75f56402347bc684cf478603cee9c2af7512a","unresolved":false,"context_lines":[{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    def to_dict(self):"},{"line_number":577,"context_line":"        d \u003d copy.deepcopy(super(FlavorDictObj, self).to_dict())"},{"line_number":578,"context_line":"        return d"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_b1470876","line":578,"range":{"start_line":578,"start_character":8,"end_line":578,"end_character":14},"updated":"2016-06-23 19:16:57.000000000","message":"Missing d.pop(\u0027extra_spec\u0027, None) to remove extra_spec from the to_dict() response.","commit_id":"ce2ba1edbbf963c5b2d8acdfbc9a46173a627633"},{"author":{"_account_id":15062,"name":"GB21","email":"geetika791@gmail.com","username":"GB21"},"change_message_id":"b0107c79f16f2e2add94d5a2b21bd9537f93a788","unresolved":false,"context_lines":[{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    def to_dict(self):"},{"line_number":577,"context_line":"        d \u003d copy.deepcopy(super(FlavorDictObj, self).to_dict())"},{"line_number":578,"context_line":"        return d"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_6fb12947","line":578,"range":{"start_line":578,"start_character":8,"end_line":578,"end_character":14},"in_reply_to":"3aaa91ec_b1470876","updated":"2016-06-24 04:58:19.000000000","message":"Done","commit_id":"ce2ba1edbbf963c5b2d8acdfbc9a46173a627633"}]}
