)]}'
{"doc/source/plugins/nova.rst":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"c5b3588df076a4a1ea113038272f11ff21cf3640","unresolved":false,"context_lines":[{"line_number":56,"context_line":".. note::"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    There are no notifications for hypervisor from nova yet, so you have to"},{"line_number":59,"context_line":"    manually sync index periodically to make the hypervisor data up to date."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Nova Configuration"},{"line_number":62,"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":7,"id":"dab17558_70a05cf5","line":59,"updated":"2016-05-06 23:31:44.000000000","message":"We should change this to recommend putting it in its own resource group (assuming re-enable multiple indexes lands). This way you could schedule a chron job to re-sync with very little overhead.","commit_id":"6e32b36cefd246e17f06335c7eb90a54d1113ed3"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"943db6eb9105f8537a8f9bc605c505a8059c1a9b","unresolved":false,"context_lines":[{"line_number":56,"context_line":".. note::"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    There are no notifications for hypervisor from nova yet, so you have to"},{"line_number":59,"context_line":"    manually sync index periodically to make the hypervisor data up to date."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Nova Configuration"},{"line_number":62,"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":7,"id":"dab17558_a1e8a1e3","line":59,"in_reply_to":"dab17558_70a05cf5","updated":"2016-05-09 01:22:33.000000000","message":"Done","commit_id":"6e32b36cefd246e17f06335c7eb90a54d1113ed3"}],"releasenotes/notes/bp-hypervisor-plugin-5d17ed1005004b43.yaml":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"c5b3588df076a4a1ea113038272f11ff21cf3640","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Adds nova plugin for hypervisors."},{"line_number":4,"context_line":"issues:"},{"line_number":5,"context_line":"  - There are no notifications for hypervisor from nova yet, so you have to"},{"line_number":6,"context_line":"    manually sync index periodically to make the hypervisor data up to date."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"dab17558_5530aa01","line":6,"updated":"2016-05-06 23:31:44.000000000","message":"We should change this to recommend putting it in its own resource group (assuming re-enable multiple indexes lands). This way you could schedule a chron job to re-sync with very little overhead.","commit_id":"6e32b36cefd246e17f06335c7eb90a54d1113ed3"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"943db6eb9105f8537a8f9bc605c505a8059c1a9b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Adds nova plugin for hypervisors."},{"line_number":4,"context_line":"issues:"},{"line_number":5,"context_line":"  - There are no notifications for hypervisor from nova yet, so you have to"},{"line_number":6,"context_line":"    manually sync index periodically to make the hypervisor data up to date."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"dab17558_c1ede5f0","line":6,"in_reply_to":"dab17558_5530aa01","updated":"2016-05-09 01:22:33.000000000","message":"Done","commit_id":"6e32b36cefd246e17f06335c7eb90a54d1113ed3"}],"searchlight/elasticsearch/plugins/nova/__init__.py":[{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    serialized \u003d {}"},{"line_number":59,"context_line":"    if not getattr(hypervisor, \u0027updated_at\u0027, None):"},{"line_number":60,"context_line":"        serialized[\u0027updated_at\u0027] \u003d updated_at or utils.get_now_str()"},{"line_number":61,"context_line":"    for k, v in six.iteritems(hypervisor.to_dict()):"},{"line_number":62,"context_line":"        if k \u003d\u003d \u0027id\u0027:"},{"line_number":63,"context_line":"            # The id for hypervisor is an integer, should be changed to"},{"line_number":64,"context_line":"            # string."}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_8820569d","line":61,"range":{"start_line":61,"start_character":11,"end_line":61,"end_character":12},"updated":"2016-03-25 15:01:03.000000000","message":"Should be possibly to simplify this - \nserialized \u003d hypervisor.to_dict()\nserialized[\u0027id\u0027] \u003d str(serialized[\u0027id\u0027])\nserialized[\u0027cpu_info\u0027] \u003d json.loads(serialized[\u0027cpu_info\u0027])\nserialized[\u0027updated_at\u0027] \u003d ....","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7146393bea3ed5abc376d0c4aa646d17462f1b78","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    serialized \u003d {}"},{"line_number":59,"context_line":"    if not getattr(hypervisor, \u0027updated_at\u0027, None):"},{"line_number":60,"context_line":"        serialized[\u0027updated_at\u0027] \u003d updated_at or utils.get_now_str()"},{"line_number":61,"context_line":"    for k, v in six.iteritems(hypervisor.to_dict()):"},{"line_number":62,"context_line":"        if k \u003d\u003d \u0027id\u0027:"},{"line_number":63,"context_line":"            # The id for hypervisor is an integer, should be changed to"},{"line_number":64,"context_line":"            # string."}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_448a82c0","line":61,"range":{"start_line":61,"start_character":11,"end_line":61,"end_character":12},"in_reply_to":"da0c15f0_8820569d","updated":"2016-03-28 01:31:34.000000000","message":"Done","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"592df50d25fc7ec8b60a17284dc759691ff8c52c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    serialized[\u0027cpu_info\u0027] \u003d json.loads(serialized[\u0027cpu_info\u0027])"},{"line_number":63,"context_line":"    if not getattr(hypervisor, \u0027updated_at\u0027, None):"},{"line_number":64,"context_line":"        serialized[\u0027updated_at\u0027] \u003d updated_at or utils.get_now_str()"},{"line_number":65,"context_line":"    return serialized"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"def _format_networks(server, serialized):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_f62c55ad","line":65,"range":{"start_line":65,"start_character":4,"end_line":65,"end_character":10},"updated":"2016-04-12 16:22:07.000000000","message":"We should also remove free_disk_gb, current_workload, memory_mb_used, local_gb_used, free_ram_mb, running_vms","commit_id":"f50eec63c8930deade9ba6524c7f5a2091086d30"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"1655779ee0bc8affa43e8bdeb3203aeeb20c54cc","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    serialized[\u0027cpu_info\u0027] \u003d json.loads(serialized[\u0027cpu_info\u0027])"},{"line_number":63,"context_line":"    if not getattr(hypervisor, \u0027updated_at\u0027, None):"},{"line_number":64,"context_line":"        serialized[\u0027updated_at\u0027] \u003d updated_at or utils.get_now_str()"},{"line_number":65,"context_line":"    return serialized"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"def _format_networks(server, serialized):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_23ce76b4","line":65,"range":{"start_line":65,"start_character":4,"end_line":65,"end_character":10},"in_reply_to":"5a18252c_f62c55ad","updated":"2016-04-13 02:40:31.000000000","message":"Done","commit_id":"f50eec63c8930deade9ba6524c7f5a2091086d30"}],"searchlight/elasticsearch/plugins/nova/hypervisors.py":[{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class HypervisorIndex(base.IndexBase):"},{"line_number":22,"context_line":"    NotificationHandlerCls \u003d notification_handler.HypervisorHandler"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    ADMIN_ONLY_FIELDS \u003d []"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_68aa22d6","line":22,"range":{"start_line":22,"start_character":4,"end_line":22,"end_character":26},"updated":"2016-03-25 15:01:03.000000000","message":"Does the listener code function ok if this isn\u0027t provided? I htink there was a bug or BP for plugins without listener handlers but don\u0027t know off the top of my head if it was implemented. It shouldn\u0027t be necessary to provide a handler that doesn\u0027t do anything","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def get_mapping(self):"},{"line_number":31,"context_line":"        string_not_analyzed \u003d {\u0027type\u0027: \u0027string\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":32,"context_line":"        integer_not_analyzed \u003d {\u0027type\u0027: \u0027integer\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":33,"context_line":"        long_not_analyzed \u003d {\u0027type\u0027: \u0027long\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":34,"context_line":"        # Hypervisor doesn\u0027t have updated_at and created_at."},{"line_number":35,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_8d7ce873","line":32,"range":{"start_line":32,"start_character":61,"end_line":32,"end_character":73},"updated":"2016-03-25 15:01:03.000000000","message":"not_analyzed only makes sense for strings, and causes Elasticsearch not to apply any tokenization, meaning that \"aaaa-bbb-111\" is indexed as \"aaaa-bbb-111\" rather than [\"aaaa\", \"bbb\", \"111\"]\n\nIt doesn\u0027t make sense to apply it to numeric types","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7146393bea3ed5abc376d0c4aa646d17462f1b78","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def get_mapping(self):"},{"line_number":31,"context_line":"        string_not_analyzed \u003d {\u0027type\u0027: \u0027string\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":32,"context_line":"        integer_not_analyzed \u003d {\u0027type\u0027: \u0027integer\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":33,"context_line":"        long_not_analyzed \u003d {\u0027type\u0027: \u0027long\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":34,"context_line":"        # Hypervisor doesn\u0027t have updated_at and created_at."},{"line_number":35,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_64a6a654","line":32,"range":{"start_line":32,"start_character":61,"end_line":32,"end_character":73},"in_reply_to":"da0c15f0_8d7ce873","updated":"2016-03-28 01:31:34.000000000","message":"Done","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                \u0027service\u0027: {"},{"line_number":40,"context_line":"                    \u0027type\u0027: \u0027nested\u0027,"},{"line_number":41,"context_line":"                    \u0027properties\u0027: {"},{"line_number":42,"context_line":"                        \u0027id\u0027: integer_not_analyzed,"},{"line_number":43,"context_line":"                        \u0027host\u0027: string_not_analyzed,"},{"line_number":44,"context_line":"                        \u0027disabled_reason\u0027: string_not_analyzed,"},{"line_number":45,"context_line":"                    }"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_2dbf9cd1","line":42,"range":{"start_line":42,"start_character":30,"end_line":42,"end_character":50},"updated":"2016-03-25 15:01:03.000000000","message":"{\"type\": \"integer\"}","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7146393bea3ed5abc376d0c4aa646d17462f1b78","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                \u0027service\u0027: {"},{"line_number":40,"context_line":"                    \u0027type\u0027: \u0027nested\u0027,"},{"line_number":41,"context_line":"                    \u0027properties\u0027: {"},{"line_number":42,"context_line":"                        \u0027id\u0027: integer_not_analyzed,"},{"line_number":43,"context_line":"                        \u0027host\u0027: string_not_analyzed,"},{"line_number":44,"context_line":"                        \u0027disabled_reason\u0027: string_not_analyzed,"},{"line_number":45,"context_line":"                    }"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_a44d5e9b","line":42,"range":{"start_line":42,"start_character":30,"end_line":42,"end_character":50},"in_reply_to":"da0c15f0_2dbf9cd1","updated":"2016-03-28 01:31:34.000000000","message":"Done","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                    \u0027properties\u0027: {"},{"line_number":42,"context_line":"                        \u0027id\u0027: integer_not_analyzed,"},{"line_number":43,"context_line":"                        \u0027host\u0027: string_not_analyzed,"},{"line_number":44,"context_line":"                        \u0027disabled_reason\u0027: string_not_analyzed,"},{"line_number":45,"context_line":"                    }"},{"line_number":46,"context_line":"                },"},{"line_number":47,"context_line":"                \u0027cpu_info\u0027: {"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_ed73e44b","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":63},"updated":"2016-03-25 15:01:03.000000000","message":"This can probably be an analyzed string if it\u0027s free text, though i don\u0027t know what some examples of this field would be","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7146393bea3ed5abc376d0c4aa646d17462f1b78","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                    \u0027properties\u0027: {"},{"line_number":42,"context_line":"                        \u0027id\u0027: integer_not_analyzed,"},{"line_number":43,"context_line":"                        \u0027host\u0027: string_not_analyzed,"},{"line_number":44,"context_line":"                        \u0027disabled_reason\u0027: string_not_analyzed,"},{"line_number":45,"context_line":"                    }"},{"line_number":46,"context_line":"                },"},{"line_number":47,"context_line":"                \u0027cpu_info\u0027: {"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_e4475675","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":63},"in_reply_to":"da0c15f0_ed73e44b","updated":"2016-03-28 01:31:34.000000000","message":"Done","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":47,"context_line":"                \u0027cpu_info\u0027: {"},{"line_number":48,"context_line":"                    \u0027type\u0027: \u0027nested\u0027,"},{"line_number":49,"context_line":"                    \u0027properties\u0027: {"},{"line_number":50,"context_line":"                        \u0027vendor\u0027: string_not_analyzed,"},{"line_number":51,"context_line":"                        \u0027model\u0027: string_not_analyzed,"},{"line_number":52,"context_line":"                        \u0027arch\u0027: string_not_analyzed,"},{"line_number":53,"context_line":"                        \u0027features\u0027: string_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_ad3c4c30","line":50,"range":{"start_line":50,"start_character":34,"end_line":50,"end_character":53},"updated":"2016-03-25 15:01:03.000000000","message":"not_analyzed is probably right for these, but bear in mind that searches require a full match (arch:x86_64 or arch:x86*) and values won\u0027t match on tokens.","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                        \u0027topology\u0027: {"},{"line_number":55,"context_line":"                            \u0027type\u0027: \u0027nested\u0027,"},{"line_number":56,"context_line":"                            \u0027properties\u0027: {"},{"line_number":57,"context_line":"                                \u0027cores\u0027: integer_not_analyzed,"},{"line_number":58,"context_line":"                                \u0027threads\u0027: integer_not_analyzed,"},{"line_number":59,"context_line":"                                \u0027sockets\u0027: integer_not_analyzed,"},{"line_number":60,"context_line":"                            }"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_4dddb013","line":57,"range":{"start_line":57,"start_character":41,"end_line":57,"end_character":61},"updated":"2016-03-25 15:01:03.000000000","message":"{\"type\": \"integer\"}\n\nsame for other integer fields","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                        }"},{"line_number":62,"context_line":"                    }"},{"line_number":63,"context_line":"                },"},{"line_number":64,"context_line":"                \u0027running_vms\u0027: integer_not_analyzed,"},{"line_number":65,"context_line":"                \u0027state\u0027: string_not_analyzed,"},{"line_number":66,"context_line":"                \u0027status\u0027: string_not_analyzed,"},{"line_number":67,"context_line":"                \u0027vcpus\u0027: integer_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_8d0ce895","line":64,"range":{"start_line":64,"start_character":31,"end_line":64,"end_character":51},"updated":"2016-03-25 15:01:03.000000000","message":"If we don\u0027t receive notifications for hypervisors, this field might be a problem - can we keep it current?","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7146393bea3ed5abc376d0c4aa646d17462f1b78","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                        }"},{"line_number":62,"context_line":"                    }"},{"line_number":63,"context_line":"                },"},{"line_number":64,"context_line":"                \u0027running_vms\u0027: integer_not_analyzed,"},{"line_number":65,"context_line":"                \u0027state\u0027: string_not_analyzed,"},{"line_number":66,"context_line":"                \u0027status\u0027: string_not_analyzed,"},{"line_number":67,"context_line":"                \u0027vcpus\u0027: integer_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_38585232","line":64,"range":{"start_line":64,"start_character":31,"end_line":64,"end_character":51},"in_reply_to":"da0c15f0_8d0ce895","updated":"2016-03-28 01:31:34.000000000","message":"Actually it is a problem for other fields also: *_used, and it wouldn\u0027t work if a compute node is added or removed.","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                \u0027disk_available_least\u0027: integer_not_analyzed,"},{"line_number":78,"context_line":"                \u0027current_workload\u0027: integer_not_analyzed,"},{"line_number":79,"context_line":"                \u0027hypervisor_hostname\u0027: string_not_analyzed,"},{"line_number":80,"context_line":"                \u0027host_ip\u0027: {\u0027type\u0027: \u0027ip\u0027, \u0027index\u0027: \u0027not_analyzed\u0027},"},{"line_number":81,"context_line":"            },"},{"line_number":82,"context_line":"        }"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_ad51ec64","line":80,"range":{"start_line":80,"start_character":37,"end_line":80,"end_character":39},"updated":"2016-03-25 15:01:03.000000000","message":"If there\u0027s a chance this can be ipv6 this won\u0027t work; the ip field only supports v4 (at least in elasticsearch 1.x). not_analyzed is not necessary for type: ip","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7146393bea3ed5abc376d0c4aa646d17462f1b78","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                \u0027disk_available_least\u0027: integer_not_analyzed,"},{"line_number":78,"context_line":"                \u0027current_workload\u0027: integer_not_analyzed,"},{"line_number":79,"context_line":"                \u0027hypervisor_hostname\u0027: string_not_analyzed,"},{"line_number":80,"context_line":"                \u0027host_ip\u0027: {\u0027type\u0027: \u0027ip\u0027, \u0027index\u0027: \u0027not_analyzed\u0027},"},{"line_number":81,"context_line":"            },"},{"line_number":82,"context_line":"        }"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_24082e2d","line":80,"range":{"start_line":80,"start_character":37,"end_line":80,"end_character":39},"in_reply_to":"da0c15f0_ad51ec64","updated":"2016-03-28 01:31:34.000000000","message":"Done","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        }"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @property"},{"line_number":85,"context_line":"    def admin_only_fields(self):"},{"line_number":86,"context_line":"        from_conf \u003d super(HypervisorIndex, self).admin_only_fields"},{"line_number":87,"context_line":"        return HypervisorIndex.ADMIN_ONLY_FIELDS + from_conf"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_adff2c33","line":85,"range":{"start_line":85,"start_character":8,"end_line":85,"end_character":25},"updated":"2016-03-25 15:01:03.000000000","message":"Since this whole plugin is admin only, this can probably return an empty list","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7146393bea3ed5abc376d0c4aa646d17462f1b78","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        }"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @property"},{"line_number":85,"context_line":"    def admin_only_fields(self):"},{"line_number":86,"context_line":"        from_conf \u003d super(HypervisorIndex, self).admin_only_fields"},{"line_number":87,"context_line":"        return HypervisorIndex.ADMIN_ONLY_FIELDS + from_conf"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_1872aead","line":85,"range":{"start_line":85,"start_character":8,"end_line":85,"end_character":25},"in_reply_to":"da0c15f0_adff2c33","updated":"2016-03-28 01:31:34.000000000","message":"Done","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        query. Document type will be added to this list."},{"line_number":96,"context_line":"        \"\"\""},{"line_number":97,"context_line":"        return ["},{"line_number":98,"context_line":"            {\u0027term\u0027: {\u0027tenant_id\u0027: request_context.owner}}"},{"line_number":99,"context_line":"        ]"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def get_objects(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_2dc15ce5","line":98,"range":{"start_line":98,"start_character":23,"end_line":98,"end_character":32},"updated":"2016-03-25 15:01:03.000000000","message":"Hypervisors don\u0027t belong to a tenant; there won\u0027t be any RBAC filter for hypervisors.","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7146393bea3ed5abc376d0c4aa646d17462f1b78","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        query. Document type will be added to this list."},{"line_number":96,"context_line":"        \"\"\""},{"line_number":97,"context_line":"        return ["},{"line_number":98,"context_line":"            {\u0027term\u0027: {\u0027tenant_id\u0027: request_context.owner}}"},{"line_number":99,"context_line":"        ]"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def get_objects(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_f89b7ac7","line":98,"range":{"start_line":98,"start_character":23,"end_line":98,"end_character":32},"in_reply_to":"da0c15f0_2dc15ce5","updated":"2016-03-28 01:31:34.000000000","message":"Done","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"21a35bbded5cc88ab882059d345e134fd0d0dfa6","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class HypervisorIndex(base.IndexBase):"},{"line_number":22,"context_line":"    NotificationHandlerCls \u003d notification_handler.HypervisorHandler"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    @classmethod"},{"line_number":25,"context_line":"    def get_document_type(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_579eed07","line":22,"range":{"start_line":22,"start_character":50,"end_line":22,"end_character":67},"updated":"2016-04-08 15:51:08.000000000","message":"It\u0027s a shame we have to have this at all; I have been meaning to put a patch up to allow notification-less plugins","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"08f67be8ded6de89a7fea8e0505732a5e2203ca9","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class HypervisorIndex(base.IndexBase):"},{"line_number":22,"context_line":"    NotificationHandlerCls \u003d notification_handler.HypervisorHandler"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    @classmethod"},{"line_number":25,"context_line":"    def get_document_type(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_8ffc0940","line":22,"range":{"start_line":22,"start_character":50,"end_line":22,"end_character":67},"in_reply_to":"9a061dce_579eed07","updated":"2016-04-12 06:11:10.000000000","message":"Ok, will remove this after your patch:)","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"21a35bbded5cc88ab882059d345e134fd0d0dfa6","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                \u0027state\u0027: string_not_analyzed,"},{"line_number":64,"context_line":"                \u0027status\u0027: string_not_analyzed,"},{"line_number":65,"context_line":"                \u0027vcpus\u0027: integer,"},{"line_number":66,"context_line":"                \u0027vcpus_used\u0027: integer,"},{"line_number":67,"context_line":"                \u0027memory_mb\u0027: long_not_analyzed,"},{"line_number":68,"context_line":"                \u0027memory_mb_used\u0027: long_not_analyzed,"},{"line_number":69,"context_line":"                \u0027free_ram_mb\u0027: long_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_171115b0","line":66,"range":{"start_line":66,"start_character":17,"end_line":66,"end_character":27},"updated":"2016-04-08 15:51:08.000000000","message":"Given we cannot receive notifications I think we need to not index the \u0027in use\u0027 data. It is almost guaranteed to be out of date unless there\u0027s a polling mechanism.","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"08f67be8ded6de89a7fea8e0505732a5e2203ca9","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                \u0027state\u0027: string_not_analyzed,"},{"line_number":64,"context_line":"                \u0027status\u0027: string_not_analyzed,"},{"line_number":65,"context_line":"                \u0027vcpus\u0027: integer,"},{"line_number":66,"context_line":"                \u0027vcpus_used\u0027: integer,"},{"line_number":67,"context_line":"                \u0027memory_mb\u0027: long_not_analyzed,"},{"line_number":68,"context_line":"                \u0027memory_mb_used\u0027: long_not_analyzed,"},{"line_number":69,"context_line":"                \u0027free_ram_mb\u0027: long_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_17092f2d","line":66,"range":{"start_line":66,"start_character":17,"end_line":66,"end_character":27},"in_reply_to":"9a061dce_171115b0","updated":"2016-04-12 06:11:10.000000000","message":"Done","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"21a35bbded5cc88ab882059d345e134fd0d0dfa6","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                \u0027vcpus\u0027: integer,"},{"line_number":66,"context_line":"                \u0027vcpus_used\u0027: integer,"},{"line_number":67,"context_line":"                \u0027memory_mb\u0027: long_not_analyzed,"},{"line_number":68,"context_line":"                \u0027memory_mb_used\u0027: long_not_analyzed,"},{"line_number":69,"context_line":"                \u0027free_ram_mb\u0027: long_not_analyzed,"},{"line_number":70,"context_line":"                \u0027free_disk_gb\u0027: long_not_analyzed,"},{"line_number":71,"context_line":"                \u0027local_gb_used\u0027: long_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_77221103","line":68,"range":{"start_line":68,"start_character":17,"end_line":68,"end_character":31},"updated":"2016-04-08 15:51:08.000000000","message":"Same regarding in-use","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"08f67be8ded6de89a7fea8e0505732a5e2203ca9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                \u0027vcpus\u0027: integer,"},{"line_number":66,"context_line":"                \u0027vcpus_used\u0027: integer,"},{"line_number":67,"context_line":"                \u0027memory_mb\u0027: long_not_analyzed,"},{"line_number":68,"context_line":"                \u0027memory_mb_used\u0027: long_not_analyzed,"},{"line_number":69,"context_line":"                \u0027free_ram_mb\u0027: long_not_analyzed,"},{"line_number":70,"context_line":"                \u0027free_disk_gb\u0027: long_not_analyzed,"},{"line_number":71,"context_line":"                \u0027local_gb_used\u0027: long_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_f70d9338","line":68,"range":{"start_line":68,"start_character":17,"end_line":68,"end_character":31},"in_reply_to":"9a061dce_77221103","updated":"2016-04-12 06:11:10.000000000","message":"Done","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"21a35bbded5cc88ab882059d345e134fd0d0dfa6","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                \u0027memory_mb\u0027: long_not_analyzed,"},{"line_number":68,"context_line":"                \u0027memory_mb_used\u0027: long_not_analyzed,"},{"line_number":69,"context_line":"                \u0027free_ram_mb\u0027: long_not_analyzed,"},{"line_number":70,"context_line":"                \u0027free_disk_gb\u0027: long_not_analyzed,"},{"line_number":71,"context_line":"                \u0027local_gb_used\u0027: long_not_analyzed,"},{"line_number":72,"context_line":"                \u0027local_gb\u0027: long_not_analyzed,"},{"line_number":73,"context_line":"                \u0027hypervisor_version\u0027: integer,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_57826dc9","line":70,"range":{"start_line":70,"start_character":17,"end_line":70,"end_character":29},"updated":"2016-04-08 15:51:08.000000000","message":"Same","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"08f67be8ded6de89a7fea8e0505732a5e2203ca9","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                \u0027memory_mb\u0027: long_not_analyzed,"},{"line_number":68,"context_line":"                \u0027memory_mb_used\u0027: long_not_analyzed,"},{"line_number":69,"context_line":"                \u0027free_ram_mb\u0027: long_not_analyzed,"},{"line_number":70,"context_line":"                \u0027free_disk_gb\u0027: long_not_analyzed,"},{"line_number":71,"context_line":"                \u0027local_gb_used\u0027: long_not_analyzed,"},{"line_number":72,"context_line":"                \u0027local_gb\u0027: long_not_analyzed,"},{"line_number":73,"context_line":"                \u0027hypervisor_version\u0027: integer,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_5713a75c","line":70,"range":{"start_line":70,"start_character":17,"end_line":70,"end_character":29},"in_reply_to":"9a061dce_57826dc9","updated":"2016-04-12 06:11:10.000000000","message":"Done","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"21a35bbded5cc88ab882059d345e134fd0d0dfa6","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                \u0027memory_mb_used\u0027: long_not_analyzed,"},{"line_number":69,"context_line":"                \u0027free_ram_mb\u0027: long_not_analyzed,"},{"line_number":70,"context_line":"                \u0027free_disk_gb\u0027: long_not_analyzed,"},{"line_number":71,"context_line":"                \u0027local_gb_used\u0027: long_not_analyzed,"},{"line_number":72,"context_line":"                \u0027local_gb\u0027: long_not_analyzed,"},{"line_number":73,"context_line":"                \u0027hypervisor_version\u0027: integer,"},{"line_number":74,"context_line":"                \u0027hypervisor_type\u0027: string_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_7750515f","line":71,"range":{"start_line":71,"start_character":17,"end_line":71,"end_character":30},"updated":"2016-04-08 15:51:08.000000000","message":"Same","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"08f67be8ded6de89a7fea8e0505732a5e2203ca9","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                \u0027memory_mb_used\u0027: long_not_analyzed,"},{"line_number":69,"context_line":"                \u0027free_ram_mb\u0027: long_not_analyzed,"},{"line_number":70,"context_line":"                \u0027free_disk_gb\u0027: long_not_analyzed,"},{"line_number":71,"context_line":"                \u0027local_gb_used\u0027: long_not_analyzed,"},{"line_number":72,"context_line":"                \u0027local_gb\u0027: long_not_analyzed,"},{"line_number":73,"context_line":"                \u0027hypervisor_version\u0027: integer,"},{"line_number":74,"context_line":"                \u0027hypervisor_type\u0027: string_not_analyzed,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_3710ab4e","line":71,"range":{"start_line":71,"start_character":17,"end_line":71,"end_character":30},"in_reply_to":"9a061dce_7750515f","updated":"2016-04-12 06:11:10.000000000","message":"Done","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"21a35bbded5cc88ab882059d345e134fd0d0dfa6","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                \u0027hypervisor_version\u0027: integer,"},{"line_number":74,"context_line":"                \u0027hypervisor_type\u0027: string_not_analyzed,"},{"line_number":75,"context_line":"                \u0027disk_available_least\u0027: integer,"},{"line_number":76,"context_line":"                \u0027current_workload\u0027: integer,"},{"line_number":77,"context_line":"                \u0027hypervisor_hostname\u0027: string_not_analyzed,"},{"line_number":78,"context_line":"                \u0027host_ip\u0027: string_not_analyzed,"},{"line_number":79,"context_line":"            },"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_57d0adc9","line":76,"range":{"start_line":76,"start_character":17,"end_line":76,"end_character":33},"updated":"2016-04-08 15:51:08.000000000","message":"Same","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"08f67be8ded6de89a7fea8e0505732a5e2203ca9","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                \u0027hypervisor_version\u0027: integer,"},{"line_number":74,"context_line":"                \u0027hypervisor_type\u0027: string_not_analyzed,"},{"line_number":75,"context_line":"                \u0027disk_available_least\u0027: integer,"},{"line_number":76,"context_line":"                \u0027current_workload\u0027: integer,"},{"line_number":77,"context_line":"                \u0027hypervisor_hostname\u0027: string_not_analyzed,"},{"line_number":78,"context_line":"                \u0027host_ip\u0027: string_not_analyzed,"},{"line_number":79,"context_line":"            },"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_971d3f69","line":76,"range":{"start_line":76,"start_character":17,"end_line":76,"end_character":33},"in_reply_to":"9a061dce_57d0adc9","updated":"2016-04-12 06:11:10.000000000","message":"Done","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"21a35bbded5cc88ab882059d345e134fd0d0dfa6","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                \u0027disk_available_least\u0027: integer,"},{"line_number":76,"context_line":"                \u0027current_workload\u0027: integer,"},{"line_number":77,"context_line":"                \u0027hypervisor_hostname\u0027: string_not_analyzed,"},{"line_number":78,"context_line":"                \u0027host_ip\u0027: string_not_analyzed,"},{"line_number":79,"context_line":"            },"},{"line_number":80,"context_line":"        }"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_d754bdcb","line":78,"range":{"start_line":78,"start_character":27,"end_line":78,"end_character":46},"updated":"2016-04-08 15:51:08.000000000","message":"If this is always an IPv4 address it can be \u0027type\u0027: \u0027ip\u0027. If it can be v6 we have to stick with string.","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"08f67be8ded6de89a7fea8e0505732a5e2203ca9","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                \u0027disk_available_least\u0027: integer,"},{"line_number":76,"context_line":"                \u0027current_workload\u0027: integer,"},{"line_number":77,"context_line":"                \u0027hypervisor_hostname\u0027: string_not_analyzed,"},{"line_number":78,"context_line":"                \u0027host_ip\u0027: string_not_analyzed,"},{"line_number":79,"context_line":"            },"},{"line_number":80,"context_line":"        }"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_b72afb7c","line":78,"range":{"start_line":78,"start_character":27,"end_line":78,"end_character":46},"in_reply_to":"9a061dce_d754bdcb","updated":"2016-04-12 06:11:10.000000000","message":"Yes, it could be v6","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"21a35bbded5cc88ab882059d345e134fd0d0dfa6","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    @property"},{"line_number":83,"context_line":"    def admin_only_fields(self):"},{"line_number":84,"context_line":"        # Since this whole plugin is admin only, this can return an empty list."},{"line_number":85,"context_line":"        return []"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_37e1b9ff","line":84,"range":{"start_line":84,"start_character":21,"end_line":84,"end_character":26},"updated":"2016-04-08 15:51:08.000000000","message":"I wonder if we should make a modification so that USER_ROLE_FIELD is only set to \u0027admin\u0027 for plugins which cannot be viewed at all by non-admin users, or whether that\u0027s a policy decision (i.e. there are cases where ordinary users might be granted permission to view them).","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"08f67be8ded6de89a7fea8e0505732a5e2203ca9","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    @property"},{"line_number":83,"context_line":"    def admin_only_fields(self):"},{"line_number":84,"context_line":"        # Since this whole plugin is admin only, this can return an empty list."},{"line_number":85,"context_line":"        return []"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_b7d4bb47","line":84,"range":{"start_line":84,"start_character":21,"end_line":84,"end_character":26},"in_reply_to":"9a061dce_37e1b9ff","updated":"2016-04-12 06:11:10.000000000","message":"In nova side this is a policy decision: https://github.com/openstack/nova/blob/master/etc/nova/policy.json#L154-L154, i think it\u0027s better to consistent with nova here.","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"21a35bbded5cc88ab882059d345e134fd0d0dfa6","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @property"},{"line_number":88,"context_line":"    def facets_with_options(self):"},{"line_number":89,"context_line":"        return (\u0027status\u0027, \u0027state\u0027, \u0027hypervisor_version\u0027, \u0027hypervisor_type\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def _get_rbac_field_filters(self, request_context):"},{"line_number":92,"context_line":"        # Hypervisors don\u0027t belong to a tenant; there won\u0027t be any RBAC"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_97a24599","line":89,"range":{"start_line":89,"start_character":36,"end_line":89,"end_character":54},"updated":"2016-04-08 15:51:08.000000000","message":"Arguably could add some of the numeric information to this - vcpus, memory_mb, local_gb","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"08f67be8ded6de89a7fea8e0505732a5e2203ca9","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @property"},{"line_number":88,"context_line":"    def facets_with_options(self):"},{"line_number":89,"context_line":"        return (\u0027status\u0027, \u0027state\u0027, \u0027hypervisor_version\u0027, \u0027hypervisor_type\u0027)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def _get_rbac_field_filters(self, request_context):"},{"line_number":92,"context_line":"        # Hypervisors don\u0027t belong to a tenant; there won\u0027t be any RBAC"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_573a87ce","line":89,"range":{"start_line":89,"start_character":36,"end_line":89,"end_character":54},"in_reply_to":"9a061dce_97a24599","updated":"2016-04-12 06:11:10.000000000","message":"Done","commit_id":"b8b7ceba512f1959112405f6df26437502286b4f"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"592df50d25fc7ec8b60a17284dc759691ff8c52c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        long_not_analyzed \u003d {\u0027type\u0027: \u0027long\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":32,"context_line":"        # Hypervisor doesn\u0027t have updated_at and created_at."},{"line_number":33,"context_line":"        return {"},{"line_number":34,"context_line":"            \u0027dynamic\u0027: False,"},{"line_number":35,"context_line":"            \u0027properties\u0027: {"},{"line_number":36,"context_line":"                \u0027id\u0027: string_not_analyzed,"},{"line_number":37,"context_line":"                \u0027service\u0027: {"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_96b6c188","line":34,"range":{"start_line":34,"start_character":23,"end_line":34,"end_character":28},"updated":"2016-04-12 16:22:07.000000000","message":"This doesn\u0027t stop other fields from being stored (see https://bugs.launchpad.net/searchlight/+bug/1569437). I think we\u0027ll have to strip out the fields that we can\u0027t reliably index (all the in-use ones) during serialization.","commit_id":"f50eec63c8930deade9ba6524c7f5a2091086d30"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"1655779ee0bc8affa43e8bdeb3203aeeb20c54cc","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        long_not_analyzed \u003d {\u0027type\u0027: \u0027long\u0027, \u0027index\u0027: \u0027not_analyzed\u0027}"},{"line_number":32,"context_line":"        # Hypervisor doesn\u0027t have updated_at and created_at."},{"line_number":33,"context_line":"        return {"},{"line_number":34,"context_line":"            \u0027dynamic\u0027: False,"},{"line_number":35,"context_line":"            \u0027properties\u0027: {"},{"line_number":36,"context_line":"                \u0027id\u0027: string_not_analyzed,"},{"line_number":37,"context_line":"                \u0027service\u0027: {"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_a368c688","line":34,"range":{"start_line":34,"start_character":23,"end_line":34,"end_character":28},"in_reply_to":"5a18252c_96b6c188","updated":"2016-04-13 02:40:31.000000000","message":"Thanks for reminder","commit_id":"f50eec63c8930deade9ba6524c7f5a2091086d30"}],"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":"6a711b52d8f05a9f7a71647c9e79ae9b258a4022","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                {\u0027instance_id\u0027: instance_id, \u0027exc\u0027: exc})"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class HypervisorHandler(base.NotificationBase):"},{"line_number":105,"context_line":"    \"\"\"Handles nova hypervisor notifications."},{"line_number":106,"context_line":"    \"\"\""},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_28794a94","line":104,"range":{"start_line":104,"start_character":6,"end_line":104,"end_character":23},"updated":"2016-03-25 15:01:03.000000000","message":"This shouldn\u0027t be necessary at all? If the listener code doesn\u0027t handle plugins without handlers, it\u0027s fine to leave this for now","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"7146393bea3ed5abc376d0c4aa646d17462f1b78","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                {\u0027instance_id\u0027: instance_id, \u0027exc\u0027: exc})"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class HypervisorHandler(base.NotificationBase):"},{"line_number":105,"context_line":"    \"\"\"Handles nova hypervisor notifications."},{"line_number":106,"context_line":"    \"\"\""},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da0c15f0_18f74ef6","line":104,"range":{"start_line":104,"start_character":6,"end_line":104,"end_character":23},"in_reply_to":"da0c15f0_28794a94","updated":"2016-03-28 01:31:34.000000000","message":"Yes, the listener doesn\u0027t handle plugins without handlers, there will be an error: ERROR searchlight.listener [-] Failed to retrieve notification topic(s) and exchanges from search plugin os_nova_hypervisor: \u0027NoneType\u0027 object has no attribute \u0027get_notification_topics_exchanges\u0027","commit_id":"ac5686cb9f42383d94a34c5c91fbffb1da8175c7"}],"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":"6cf9812cfe894cc438d44c08bd1b5b49ced880ce","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def test_hypervisor_rbac(self):"},{"line_number":33,"context_line":"        serialized_hypervisors \u003d [self.hypervisor_plugin.serialize(h)"},{"line_number":34,"context_line":"                                  for h in self.hypervisor_objects]"},{"line_number":35,"context_line":"        self._index(self.hypervisor_plugin.alias_name_listener,"},{"line_number":36,"context_line":"                    self.hypervisor_plugin.get_document_type(),"},{"line_number":37,"context_line":"                    serialized_hypervisors,"},{"line_number":38,"context_line":"                    TENANT1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a18252c_7e5c53ed","line":35,"range":{"start_line":35,"start_character":25,"end_line":35,"end_character":42},"updated":"2016-04-13 19:38:04.000000000","message":"I\u0027ve got a patch to simplify indexing for functional tests that will look like self._index(self.hypervisor_plugin, self.hypervisor_objects) to remove some of the weird inconsistencies between functional test indexing and \u0027real\u0027 indexing; I\u0027ll get the patch up soon and i\u0027d suggest rebasing this onto it.","commit_id":"7e9b9e32086a279f54a8ff3e2db9d9801bc36b54"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"6cf9812cfe894cc438d44c08bd1b5b49ced880ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5a18252c_be1c2b14","line":51,"updated":"2016-04-13 19:38:04.000000000","message":"Would like to add a test for the \u0027missing\u0027 fields to make sure they get removed; again, this will be easier to test once my change lands because it uses the same steps as real indexing.","commit_id":"7e9b9e32086a279f54a8ff3e2db9d9801bc36b54"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"c5b3588df076a4a1ea113038272f11ff21cf3640","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_f0656ce1","line":1,"updated":"2016-05-06 23:31:44.000000000","message":"Should Kylin cloud have a copyright statement at the top?","commit_id":"6e32b36cefd246e17f06335c7eb90a54d1113ed3"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"943db6eb9105f8537a8f9bc605c505a8059c1a9b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_01a52db4","line":1,"in_reply_to":"dab17558_f0656ce1","updated":"2016-05-09 01:22:33.000000000","message":"yes","commit_id":"6e32b36cefd246e17f06335c7eb90a54d1113ed3"}],"searchlight/tests/unit/test_nova_hypervisor_plugin.py":[{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"592df50d25fc7ec8b60a17284dc759691ff8c52c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                u\u0027vendor\u0027: u\u0027Intel\u0027},"},{"line_number":87,"context_line":"            \u0027current_workload\u0027: 0,"},{"line_number":88,"context_line":"            \u0027disk_available_least\u0027: 0,"},{"line_number":89,"context_line":"            \u0027free_disk_gb\u0027: 600000,"},{"line_number":90,"context_line":"            \u0027free_ram_mb\u0027: 799288,"},{"line_number":91,"context_line":"            \u0027host_ip\u0027: \u0027127.0.0.1\u0027,"},{"line_number":92,"context_line":"            \u0027hypervisor_hostname\u0027: \u0027host1\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_f603b50d","line":89,"range":{"start_line":89,"start_character":13,"end_line":89,"end_character":25},"updated":"2016-04-12 16:22:07.000000000","message":"We should expect fields like free_disk_gb to be removed","commit_id":"f50eec63c8930deade9ba6524c7f5a2091086d30"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"1655779ee0bc8affa43e8bdeb3203aeeb20c54cc","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                u\u0027vendor\u0027: u\u0027Intel\u0027},"},{"line_number":87,"context_line":"            \u0027current_workload\u0027: 0,"},{"line_number":88,"context_line":"            \u0027disk_available_least\u0027: 0,"},{"line_number":89,"context_line":"            \u0027free_disk_gb\u0027: 600000,"},{"line_number":90,"context_line":"            \u0027free_ram_mb\u0027: 799288,"},{"line_number":91,"context_line":"            \u0027host_ip\u0027: \u0027127.0.0.1\u0027,"},{"line_number":92,"context_line":"            \u0027hypervisor_hostname\u0027: \u0027host1\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_63ca2e70","line":89,"range":{"start_line":89,"start_character":13,"end_line":89,"end_character":25},"in_reply_to":"5a18252c_f603b50d","updated":"2016-04-13 02:40:31.000000000","message":"Done","commit_id":"f50eec63c8930deade9ba6524c7f5a2091086d30"}]}
