)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"425510a41d5337c24b95a9e00930bd9b2b9e084f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is no formal definition for the VM diagnostics. It was decided"},{"line_number":10,"context_line":"that the diagnostics should be namespaced. The libvirt diagnostics"},{"line_number":11,"context_line":"will be namespaced with \u0027libvirt\u0027."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Part of the blueprint diagnostics-namespace"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9VDc%3D","line":11,"updated":"2013-12-12 16:02:36.000000000","message":"Really, where was the decision for this made ?\n\nIMHO this is a really very bad idea because this guarantees all existing users of the API will break when updated to Icehouse.\n\nIMHO we should just declare the existing api deprecated, and *not* change its current semantics. Add a new API for anything where we want standardized behaviour.","commit_id":"cd26a75f29bb52085c0e8b3319ac673818fdaebd"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"97cb9f6d04c6b4bcd0270808b4043bb7c07a87f6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is no formal definition for the VM diagnostics. It was decided"},{"line_number":10,"context_line":"that the diagnostics should be namespaced. The libvirt diagnostics"},{"line_number":11,"context_line":"will be namespaced with \u0027libvirt\u0027."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Part of the blueprint diagnostics-namespace"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9UV8%3D","line":11,"in_reply_to":"AAAATn%2F9UYE%3D","updated":"2013-12-12 17:58:30.000000000","message":"I\u0027d rather see the blueprint gain a link to a wiki page which could describe the current problems, the requirements from apps or admins using this kind of API and design proposals to address those needs, before we have more patches. We\u0027ll need that kind of writeup before the blueprint can be approved really, which in turn is a blocker for approval of any patches.","commit_id":"cd26a75f29bb52085c0e8b3319ac673818fdaebd"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0129d545719219e6b29da047f7269210c3026016","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is no formal definition for the VM diagnostics. It was decided"},{"line_number":10,"context_line":"that the diagnostics should be namespaced. The libvirt diagnostics"},{"line_number":11,"context_line":"will be namespaced with \u0027libvirt\u0027."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Part of the blueprint diagnostics-namespace"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9UYE%3D","line":11,"in_reply_to":"AAAATn%2F9VDc%3D","updated":"2013-12-12 17:53:21.000000000","message":"i will post an update. my thinking is that the v2 api should stay the same and the v3 api should support namespaces.\nthat should be a feasbile and proper solution. i\u0027ll post the changes for that","commit_id":"cd26a75f29bb52085c0e8b3319ac673818fdaebd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bdb8d7fc3b16e901544a48da379c9451b3a2898e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"V2 API the diagnostics will be returned as they are today. For the V3"},{"line_number":11,"context_line":"api the diagnostics will be prefixed with the driver namespace."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"That is the diagnostics will be resturned as follows:"},{"line_number":14,"context_line":"{\u0027libvirt\u0027: {\u0027key1\u0027: \u0027value1\u0027,"},{"line_number":15,"context_line":"             \u0027key2\u0027: \u0027value2\u0027,"},{"line_number":16,"context_line":"             ...}}"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F9LiI%3D","line":13,"updated":"2013-12-15 15:43:43.000000000","message":"s/resturned/returned/","commit_id":"ad0c0ff88d60cd50666da554f1839a5aa9751690"}],"doc/v3/api_samples/os-server-diagnostics/server-diagnostics-get-resp.json":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"80768afb32eb27f87b20c4c9d54c943f26c8c15d","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        \"maximum\": 524288"},{"line_number":19,"context_line":"    },"},{"line_number":20,"context_line":"    \"network_details\": ["},{"line_number":21,"context_line":"        {"},{"line_number":22,"context_line":"            \"rx_drop\": 0,"},{"line_number":23,"context_line":"            \"rx_errors\": 0,"},{"line_number":24,"context_line":"            \"rx_octets\": 2070139,"}],"source_content_type":"application/json","patch_set":22,"id":"AAAAUX%2F%2Ff%2F8%3D","line":21,"updated":"2014-02-12 18:55:29.000000000","message":"I guess this network_details is network info of each virtual NIC, so does each dictionary contain a NIC id such as \"vnet1\" or something?\n\nI have the same question about cpu_details and disk_details also.","commit_id":"5967b6f29de4ec958f194bf5f1439256e0794fe7"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"32367f664938f0c3c91cc36eacf6b94d2e1e64b5","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        \"maximum\": 524288"},{"line_number":19,"context_line":"    },"},{"line_number":20,"context_line":"    \"network_details\": ["},{"line_number":21,"context_line":"        {"},{"line_number":22,"context_line":"            \"rx_drop\": 0,"},{"line_number":23,"context_line":"            \"rx_errors\": 0,"},{"line_number":24,"context_line":"            \"rx_octets\": 2070139,"}],"source_content_type":"application/json","patch_set":22,"id":"AAAAUX%2F%2FHuU%3D","line":21,"in_reply_to":"AAAAUX%2F%2FI3s%3D","updated":"2014-02-16 23:47:07.000000000","message":"@garyk\n\nThanks for the explanation, I got it.\nCurrent implementation is good for now.","commit_id":"5967b6f29de4ec958f194bf5f1439256e0794fe7"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1b534d0358d9c7367c16bfa2ccee81c08501f421","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        \"maximum\": 524288"},{"line_number":19,"context_line":"    },"},{"line_number":20,"context_line":"    \"network_details\": ["},{"line_number":21,"context_line":"        {"},{"line_number":22,"context_line":"            \"rx_drop\": 0,"},{"line_number":23,"context_line":"            \"rx_errors\": 0,"},{"line_number":24,"context_line":"            \"rx_octets\": 2070139,"}],"source_content_type":"application/json","patch_set":22,"id":"AAAAUX%2F%2FI3s%3D","line":21,"in_reply_to":"AAAAUX%2F%2FMk8%3D","updated":"2014-02-16 11:05:21.000000000","message":"The name of the nic is just the index in the array. Same with the cpus, disks etc.\n\nI guess that in the future we can look into trying to add the name. I am not sure if this is possible.","commit_id":"5967b6f29de4ec958f194bf5f1439256e0794fe7"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f4dad193ce23241772c6a440e45b68638ef24a3f","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        \"maximum\": 524288"},{"line_number":19,"context_line":"    },"},{"line_number":20,"context_line":"    \"network_details\": ["},{"line_number":21,"context_line":"        {"},{"line_number":22,"context_line":"            \"rx_drop\": 0,"},{"line_number":23,"context_line":"            \"rx_errors\": 0,"},{"line_number":24,"context_line":"            \"rx_octets\": 2070139,"}],"source_content_type":"application/json","patch_set":22,"id":"AAAAUX%2F%2FMk8%3D","line":21,"in_reply_to":"AAAAUX%2F%2FQJc%3D","updated":"2014-02-14 23:38:47.000000000","message":"@garyk\n\nThanks for the info.\nI saw the wiki, so I have a question about the design.\n\nI feel a virtual nic name would be useful in some network problem situation. For example, when each virtual nic is connected to different network(virtual machines on the same compute node, virtual machine on different compute node, the internet, etc.) and some network bottleneck problem happens, we would be able to know whether all virtual nics are in the problem or particular virtual nic is in.\n\nIn addition, the previous sample contains virtual nic name.\nSo I felt we could get the name. Is that wrong idea?","commit_id":"5967b6f29de4ec958f194bf5f1439256e0794fe7"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8f55ee8df69efd8d8cc154449b3bf2aa34ef3afe","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        \"maximum\": 524288"},{"line_number":19,"context_line":"    },"},{"line_number":20,"context_line":"    \"network_details\": ["},{"line_number":21,"context_line":"        {"},{"line_number":22,"context_line":"            \"rx_drop\": 0,"},{"line_number":23,"context_line":"            \"rx_errors\": 0,"},{"line_number":24,"context_line":"            \"rx_octets\": 2070139,"}],"source_content_type":"application/json","patch_set":22,"id":"AAAAUX%2F%2FQJc%3D","line":21,"in_reply_to":"AAAAUX%2F%2Ff%2F8%3D","updated":"2014-02-14 14:24:48.000000000","message":"no, this is by design. we do not need a name for the virtual nic, cpu, disk etc. please see https://wiki.openstack.org/wiki/Nova_VM_Diagnostics\nI do not see how the diagnostics can or should know the internal names.","commit_id":"5967b6f29de4ec958f194bf5f1439256e0794fe7"}],"nova/api/openstack/compute/plugins/v3/server_diagnostics.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"19c4f6beb4cbf2ebc4069726a904ab9fa5280697","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class ServerDiagnosticsController(object):"},{"line_number":40,"context_line":"    @extensions.expected_errors(404)"},{"line_number":41,"context_line":"    @wsgi.serializers(xml\u003dServerDiagnosticsTemplate)"},{"line_number":42,"context_line":"    def index(self, req, server_id):"},{"line_number":43,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":44,"context_line":"        authorize(context)"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F9%2Bzs%3D","side":"PARENT","line":41,"updated":"2014-01-31 12:04:30.000000000","message":"If3e8d82d6db2a2ff328ba477bffd5081f098be9a has removed this already, so need to rebase.","commit_id":"23a2465df13484b5db9d91cd076b097b50d5ab7a"}],"nova/compute/manager.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5af83e24d0d952d4b8dde5d8ac56cd5b01845c19","unresolved":false,"context_lines":[{"line_number":3375,"context_line":"        if current_power_state \u003d\u003d power_state.RUNNING:"},{"line_number":3376,"context_line":"            LOG.audit(_(\"Retrieving diagnostics\"), context\u003dcontext,"},{"line_number":3377,"context_line":"                      instance\u003dinstance)"},{"line_number":3378,"context_line":"            return self.driver.get_diagnostics(instance,"},{"line_number":3379,"context_line":"                                               use_namespace\u003duse_namespace)"},{"line_number":3380,"context_line":""},{"line_number":3381,"context_line":"    @wrap_exception()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9IJA%3D","line":3378,"updated":"2013-12-16 15:11:29.000000000","message":"It might be better to do the namespacing here I feel. if use_namespace \u003d False, collapse the returned namespace from the driver maybe?\n\nNot sure though, I need to think about it more, but it would be nicer not to blead the api implementation detail straight into the driver code.","commit_id":"1aa35da73e0b9b3268ed3cc24d1b34d73fb7ca2c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4cb3b81736aca1483c9fcf0bb24c038941c157c1","unresolved":false,"context_lines":[{"line_number":3375,"context_line":"        if current_power_state \u003d\u003d power_state.RUNNING:"},{"line_number":3376,"context_line":"            LOG.audit(_(\"Retrieving diagnostics\"), context\u003dcontext,"},{"line_number":3377,"context_line":"                      instance\u003dinstance)"},{"line_number":3378,"context_line":"            return self.driver.get_diagnostics(instance,"},{"line_number":3379,"context_line":"                                               use_namespace\u003duse_namespace)"},{"line_number":3380,"context_line":""},{"line_number":3381,"context_line":"    @wrap_exception()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9H6o%3D","line":3378,"in_reply_to":"AAAATn%2F9H70%3D","updated":"2013-12-16 15:37:37.000000000","message":"An alternative is we could still map the namespace to the CONF.compute_driver option if we split on just the virt driver parent module, which would be in the compute_driver value regardless of whether it\u0027s fully qualified or not.  For example, we parse the compute_driver value and strip everything but the last module from the path, which could be our namespace, and that would give us libvirt, vmwareapi, xenapi, fake, etc.","commit_id":"1aa35da73e0b9b3268ed3cc24d1b34d73fb7ca2c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"77c160be61da6ca29c595356cd340635e551a8d8","unresolved":false,"context_lines":[{"line_number":3375,"context_line":"        if current_power_state \u003d\u003d power_state.RUNNING:"},{"line_number":3376,"context_line":"            LOG.audit(_(\"Retrieving diagnostics\"), context\u003dcontext,"},{"line_number":3377,"context_line":"                      instance\u003dinstance)"},{"line_number":3378,"context_line":"            return self.driver.get_diagnostics(instance,"},{"line_number":3379,"context_line":"                                               use_namespace\u003duse_namespace)"},{"line_number":3380,"context_line":""},{"line_number":3381,"context_line":"    @wrap_exception()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9H70%3D","line":3378,"in_reply_to":"AAAATn%2F9IJA%3D","updated":"2013-12-16 15:34:51.000000000","message":"I was thinking about the same but didn\u0027t have a great answer.  One thought was we just use the CONF.compute_driver option from nova.conf to namespace the diagnostics dict from the driver.  Some problems with that though are:\n\n1. The value for the compute_driver option can itself be namespaced, e.g. nova.virt.libvirt.driver.LibvirtDriver vs just libvirt.Driver.  The code that loads the driver can handle fully qualified and namespaced.  The client consuming this would have to know the difference as well.\n\n2. When there are multiple vendor drivers for the same namespace, i.e. having to distinguish between VMwareESXDriver and VMwareVCDriver.","commit_id":"1aa35da73e0b9b3268ed3cc24d1b34d73fb7ca2c"}],"nova/compute/rpcapi.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"87954a8585efd1f12979e8986c1fd0f142128313","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    def get_diagnostics(self, ctxt, instance, common_api\u003dTrue):"},{"line_number":414,"context_line":"        instance_p \u003d jsonutils.to_primitive(instance)"},{"line_number":415,"context_line":"        # NOTE(russellb) Havana compat"},{"line_number":416,"context_line":"        if self.client.can_send_version(\u00273.5\u0027):"},{"line_number":417,"context_line":"            version \u003d \u00273.5\u0027"},{"line_number":418,"context_line":"            kwargs \u003d {\u0027instance\u0027: instance_p,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAT3%2F%2F2lw%3D","line":415,"updated":"2013-12-30 05:58:55.000000000","message":"This comments should belong to havana logic in Line 421","commit_id":"55faff3e21c99d5094992ff09f11690b9224cff4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b9993f659767a73700c331aa700759958bf15754","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    def get_diagnostics(self, ctxt, instance, common_api\u003dTrue):"},{"line_number":414,"context_line":"        instance_p \u003d jsonutils.to_primitive(instance)"},{"line_number":415,"context_line":"        # NOTE(russellb) Havana compat"},{"line_number":416,"context_line":"        if self.client.can_send_version(\u00273.5\u0027):"},{"line_number":417,"context_line":"            version \u003d \u00273.5\u0027"},{"line_number":418,"context_line":"            kwargs \u003d {\u0027instance\u0027: instance_p,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAT3%2F%2F2L8%3D","line":415,"in_reply_to":"AAAAT3%2F%2F2lw%3D","updated":"2013-12-30 09:05:26.000000000","message":"Done","commit_id":"55faff3e21c99d5094992ff09f11690b9224cff4"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"7ea7d5611b71aded7f62ac5d16c57225ce6bdbe8","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        else:"},{"line_number":420,"context_line":"            # NOTE(russellb) Havana compat"},{"line_number":421,"context_line":"            version \u003d self._get_compat_version(\u00273.0\u0027, \u00272.0\u0027)"},{"line_number":422,"context_line":"            kwargs \u003d {\u0027instance\u0027: instance_p}"},{"line_number":423,"context_line":"        cctxt \u003d self.client.prepare(server\u003d_compute_host(None, instance),"},{"line_number":424,"context_line":"                version\u003dversion)"},{"line_number":425,"context_line":"        return cctxt.call(ctxt, \u0027get_diagnostics\u0027, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAT3%2F%2F1sE%3D","line":422,"updated":"2013-12-30 15:12:44.000000000","message":"Sorry Gary, I should have point this for your last patch, what about use following logic?\n\nkwargs \u003d {\u0027instance\u0027: instance_p}\nif self.client.can_send_version(\u00273.5\u0027):\n    version \u003d \u00273.5\u0027\n    kwargs[\u0027common_api\u0027] \u003d common_api\nelse:\n    # NOTE(russellb) Havana compat\n    version \u003d self._get_compat_version(\u00273.0\u0027, \u00272.0\u0027)","commit_id":"3c8ba6472e7ba2fb24155431b203e0af98c67cc0"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"fd98433d8050b8c664291bbb8333744f6b4548df","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        else:"},{"line_number":420,"context_line":"            # NOTE(russellb) Havana compat"},{"line_number":421,"context_line":"            version \u003d self._get_compat_version(\u00273.0\u0027, \u00272.0\u0027)"},{"line_number":422,"context_line":"            kwargs \u003d {\u0027instance\u0027: instance_p}"},{"line_number":423,"context_line":"        cctxt \u003d self.client.prepare(server\u003d_compute_host(None, instance),"},{"line_number":424,"context_line":"                version\u003dversion)"},{"line_number":425,"context_line":"        return cctxt.call(ctxt, \u0027get_diagnostics\u0027, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAT3%2F%2F1Hg%3D","line":422,"in_reply_to":"AAAAT3%2F%2F1sE%3D","updated":"2013-12-30 15:19:34.000000000","message":"Done","commit_id":"3c8ba6472e7ba2fb24155431b203e0af98c67cc0"}],"nova/tests/fake_policy.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"f37c5c050d191d68c9ab4e645f14bad31f4fcee4","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    \"compute:get_instance_faults\": \"\","},{"line_number":40,"context_line":"    \"compute:get_diagnostics\": \"\","},{"line_number":41,"context_line":"    \"compute:get_instance_diagnostics\": \"\","},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    \"compute:get_lock\": \"\","},{"line_number":44,"context_line":"    \"compute:lock\": \"\","}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUX%2F%2F9Oo%3D","line":41,"updated":"2014-02-08 13:53:44.000000000","message":"I think the v3 policy check will not be this?\nsomething like \u0027os-server-diagnostics\u0027 ?\n\nif only v3 is affected, why should we add this?","commit_id":"9ed56ee7b83acf0b3a52404a81ec55b954a73d5b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"96ae27bced776d19fcfcfaf148b31c481b12f4ec","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    \"compute:get_instance_faults\": \"\","},{"line_number":40,"context_line":"    \"compute:get_diagnostics\": \"\","},{"line_number":41,"context_line":"    \"compute:get_instance_diagnostics\": \"\","},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    \"compute:get_lock\": \"\","},{"line_number":44,"context_line":"    \"compute:lock\": \"\","}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAUX%2F%2F7RI%3D","line":41,"in_reply_to":"AAAAUX%2F%2F9Oo%3D","updated":"2014-02-09 15:35:36.000000000","message":"for some reason the tests fail without this","commit_id":"9ed56ee7b83acf0b3a52404a81ec55b954a73d5b"}],"nova/virt/driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"753d9a314fcd5ed9f89b694ee15a538a3b076259","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        \"\"\""},{"line_number":308,"context_line":"        raise NotImplementedError()"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def get_diagnostics(self, instance, use_namespace\u003dFalse):"},{"line_number":311,"context_line":"        \"\"\"Return data about VM diagnostics.\"\"\""},{"line_number":312,"context_line":"        # TODO(Vek): Need to pass context in for access to auth_token"},{"line_number":313,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9Lho%3D","line":310,"updated":"2013-12-15 15:49:54.000000000","message":"We should cleanup the docstring while we\u0027re changing this, i.e. explain what use_namespace means and how it\u0027s used.","commit_id":"ad0c0ff88d60cd50666da554f1839a5aa9751690"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b75082b6d48a2fcd0de96e436881a8d6db21a90b","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def get_diagnostics(self, instance):"},{"line_number":311,"context_line":"        \"\"\"Return data about VM diagnostics.\"\"\""},{"line_number":312,"context_line":"        # TODO(Vek): Need to pass context in for access to auth_token"},{"line_number":313,"context_line":"        raise NotImplementedError()"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    def get_all_bw_counters(self, instances):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9LfM%3D","side":"PARENT","line":312,"updated":"2013-12-15 16:26:38.000000000","message":"Hmm, we should probably leave the TODO here.  Note that Russell was implementing the TODO when he changed get_console_output here:\n\nhttps://review.openstack.org/#/c/55751/\n\nI\u0027m not saying you need to start passing the context down in this patch (I\u0027d probably prefer you don\u0027t), but it\u0027s still probably something that needs to be done at some point so probably want to leave the TODO.","commit_id":"caa2775793753f21667ad883fe7565bc4773e7f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3bc46f34a695c9f35ff71ee16149bbf41e4a242b","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def get_diagnostics(self, instance):"},{"line_number":311,"context_line":"        \"\"\"Return data about VM diagnostics.\"\"\""},{"line_number":312,"context_line":"        # TODO(Vek): Need to pass context in for access to auth_token"},{"line_number":313,"context_line":"        raise NotImplementedError()"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    def get_all_bw_counters(self, instances):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9LU4%3D","side":"PARENT","line":312,"in_reply_to":"AAAATn%2F9LfM%3D","updated":"2013-12-15 19:14:34.000000000","message":"Done","commit_id":"caa2775793753f21667ad883fe7565bc4773e7f2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b75082b6d48a2fcd0de96e436881a8d6db21a90b","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        {\u0027\u003cdriver_name\u003e\u0027: {\u0027key1\u0027: \u0027value1\u0027,"},{"line_number":318,"context_line":"                           \u0027key2\u0027: \u0027value2\u0027, ...}}"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"        When the V2 API is deprecated then the default for the use_namespace"},{"line_number":321,"context_line":"        should be set to True."},{"line_number":322,"context_line":"        \"\"\""},{"line_number":323,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9LfA%3D","line":320,"updated":"2013-12-15 16:26:38.000000000","message":"When V2 is deprecated or removed?  I\u0027d think you can\u0027t change the default for the V2 API, you\u0027d have to change the default when V2 is gone.","commit_id":"480ee589a68a6cada5d533113429e395cd8fbb5f"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3bc46f34a695c9f35ff71ee16149bbf41e4a242b","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        {\u0027\u003cdriver_name\u003e\u0027: {\u0027key1\u0027: \u0027value1\u0027,"},{"line_number":318,"context_line":"                           \u0027key2\u0027: \u0027value2\u0027, ...}}"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"        When the V2 API is deprecated then the default for the use_namespace"},{"line_number":321,"context_line":"        should be set to True."},{"line_number":322,"context_line":"        \"\"\""},{"line_number":323,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9LU0%3D","line":320,"in_reply_to":"AAAATn%2F9LfA%3D","updated":"2013-12-15 19:14:34.000000000","message":"Done","commit_id":"480ee589a68a6cada5d533113429e395cd8fbb5f"},{"author":{"_account_id":642,"name":"Matt Dietz","email":"matthew.dietz@gmail.com","username":"cerberus"},"change_message_id":"efa3eb3561c42fd2b8ae3ef51bcac8b0e16c8a79","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        https://wiki.openstack.org/wiki/Nova_VM_Diagnostics."},{"line_number":380,"context_line":"        All of the keys are optional."},{"line_number":381,"context_line":"        \"\"\""},{"line_number":382,"context_line":"        # TODO(Vek): Need to pass context in for access to auth_token"},{"line_number":383,"context_line":"        raise NotImplementedError()"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    def get_all_bw_counters(self, instances):"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAUH%2F9ehw%3D","line":382,"updated":"2014-02-06 16:45:35.000000000","message":"I feel like you probably shouldn\u0027t be carrying around other people\u0027s TODOs","commit_id":"867682ec0c5764a0ca820190ee28e41bb773698a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"10bb2810024f36ea0314178b716796881250243a","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        https://wiki.openstack.org/wiki/Nova_VM_Diagnostics."},{"line_number":380,"context_line":"        All of the keys are optional."},{"line_number":381,"context_line":"        \"\"\""},{"line_number":382,"context_line":"        # TODO(Vek): Need to pass context in for access to auth_token"},{"line_number":383,"context_line":"        raise NotImplementedError()"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    def get_all_bw_counters(self, instances):"}],"source_content_type":"text/x-python","patch_set":20,"id":"AAAAUH%2F9Xp0%3D","line":382,"in_reply_to":"AAAAUH%2F9ehw%3D","updated":"2014-02-07 11:50:11.000000000","message":"Done","commit_id":"867682ec0c5764a0ca820190ee28e41bb773698a"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"f216ed2336964b2d65c2c507b485e06731c05f37","unresolved":false,"context_lines":[{"line_number":405,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":406,"context_line":"        :param diags: nova.virt.diagnostics.Diagnostics"},{"line_number":407,"context_line":"        \"\"\""},{"line_number":408,"context_line":"        raise NotImplementedError()"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"    def get_all_bw_counters(self, instances):"},{"line_number":411,"context_line":"        \"\"\"Return bandwidth usage counters for each interface on each"}],"source_content_type":"text/x-python","patch_set":31,"id":"dab895d6_361a086f","line":408,"updated":"2014-06-30 09:10:41.000000000","message":"Why is the diagnostics parameter passed in pre-created ? To me it would feel more natural if the impl sub-class just created it and sent it back as a return value.","commit_id":"6c57668a9d26eee71f5ad409b34b6797c97be61d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9d6939fe6692e57971dd5861d6eaee5d0eaa0f88","unresolved":false,"context_lines":[{"line_number":405,"context_line":"        :param instance: nova.objects.instance.Instance"},{"line_number":406,"context_line":"        :param diags: nova.virt.diagnostics.Diagnostics"},{"line_number":407,"context_line":"        \"\"\""},{"line_number":408,"context_line":"        raise NotImplementedError()"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"    def get_all_bw_counters(self, instances):"},{"line_number":411,"context_line":"        \"\"\"Return bandwidth usage counters for each interface on each"}],"source_content_type":"text/x-python","patch_set":31,"id":"baada198_5f1ddc72","line":408,"in_reply_to":"dab895d6_361a086f","updated":"2014-06-30 18:13:50.000000000","message":"Done","commit_id":"6c57668a9d26eee71f5ad409b34b6797c97be61d"}],"nova/virt/fake.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"cdb30dc9185d98a421c7d5bcfca5d64e89e58474","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                                  \u0027write_requests\u0027: 488,"},{"line_number":301,"context_line":"                                  \u0027errors\u0027: 0}],"},{"line_number":302,"context_line":"                \u0027memory_details\u0027: {\u0027maximum\u0027: 524288},"},{"line_number":303,"context_line":"                \u0027raw_data\u0027: {\u0027raw\u0027: \u0027data\u0027}}"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"    def get_all_bw_counters(self, instances):"},{"line_number":306,"context_line":"        \"\"\"Return bandwidth usage counters for each interface on each"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2B7GU%3D","line":303,"updated":"2014-01-20 17:55:41.000000000","message":"I\u0027m still not entirely comfortable with the the \u0027raw_data\u0027 field. Personally I\u0027d suggest we just leave it out entirely. If we really want it though, can we call it  \u0027driver_private_data\u0027 to make it clearer that this varies per driver.","commit_id":"03c29cfbe1c66fb0eab0f60e72cabf9a58728fcf"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"e085e04a2e55fa50060119f23d5194c4226de374","unresolved":false,"context_lines":[{"line_number":4889,"context_line":"            pass"},{"line_number":4890,"context_line":""},{"line_number":4891,"context_line":"        if common_api:"},{"line_number":4892,"context_line":"            output[\u0027raw_data\u0027] \u003d raw"},{"line_number":4893,"context_line":"        else:"},{"line_number":4894,"context_line":"            output \u003d raw"},{"line_number":4895,"context_line":"        return output"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2FYO0%3D","line":4892,"updated":"2014-01-14 12:54:24.000000000","message":"Ewww, this means that \"new\" API includes all the well designed/structured data, plus all the old horrible junk too, which is mostly duplicating data. We\u0027ll never be able to simplify this code even once v2 API support is deleted elsewhere with this kind of approach.\n\nI like the new structured data that is specified, but really dislike the API integration/design here.\n\nI think we really should have a new API that makes a clean break with the past for this\n\n   get_instance_statistics(self, instance)\n\nand exclusively returns the well structured stats for the domain.","commit_id":"428d0152ab09ec20172f9eea4579d3605d4ab588"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3ee2c425af0de4c31e12940d346dd06db68c6b33","unresolved":false,"context_lines":[{"line_number":4889,"context_line":"            pass"},{"line_number":4890,"context_line":""},{"line_number":4891,"context_line":"        if common_api:"},{"line_number":4892,"context_line":"            output[\u0027raw_data\u0027] \u003d raw"},{"line_number":4893,"context_line":"        else:"},{"line_number":4894,"context_line":"            output \u003d raw"},{"line_number":4895,"context_line":"        return output"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2FWlI%3D","line":4892,"in_reply_to":"AAAAUH%2F%2FYO0%3D","updated":"2014-01-14 18:28:14.000000000","message":"I will add this in the libvirt patch set","commit_id":"428d0152ab09ec20172f9eea4579d3605d4ab588"}],"nova/virt/vmwareapi/driver.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"93a04ab776a56d79eb54ad34bacb4f2296e760d2","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        \"\"\"Return info about the VM instance.\"\"\""},{"line_number":238,"context_line":"        return self._vmops.get_info(instance)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def get_diagnostics(self, instance, common_api\u003dTrue):"},{"line_number":241,"context_line":"        \"\"\"Return data about VM diagnostics.\"\"\""},{"line_number":242,"context_line":"        return self._vmops.get_diagnostics(instance)"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F8go%3D","line":240,"updated":"2014-01-06 12:17:51.000000000","message":"What about update test case for this function though its a keyword here?","commit_id":"5634e380d0b563ee797443efc19288cf2a47ac74"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"239bb6adbeb5edf64e16a7a97ebabc4d281aa1fd","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        \"\"\"Return info about the VM instance.\"\"\""},{"line_number":238,"context_line":"        return self._vmops.get_info(instance)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def get_diagnostics(self, instance, common_api\u003dTrue):"},{"line_number":241,"context_line":"        \"\"\"Return data about VM diagnostics.\"\"\""},{"line_number":242,"context_line":"        return self._vmops.get_diagnostics(instance)"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F8eE%3D","line":240,"in_reply_to":"AAAAUH%2F%2F8go%3D","updated":"2014-01-06 12:41:05.000000000","message":"Done\nplease note that this will be tested thoroughly in the patch https://review.openstack.org/#/c/62240/","commit_id":"5634e380d0b563ee797443efc19288cf2a47ac74"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"93a04ab776a56d79eb54ad34bacb4f2296e760d2","unresolved":false,"context_lines":[{"line_number":688,"context_line":"        _vmops \u003d self._get_vmops_for_compute_node(instance[\u0027node\u0027])"},{"line_number":689,"context_line":"        return _vmops.get_info(instance)"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"    def get_diagnostics(self, instance, use_namespace\u003dFalse):"},{"line_number":692,"context_line":"        \"\"\"Return data about VM diagnostics.\"\"\""},{"line_number":693,"context_line":"        _vmops \u003d self._get_vmops_for_compute_node(instance[\u0027node\u0027])"},{"line_number":694,"context_line":"        return _vmops.get_diagnostics(instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F8jw%3D","line":691,"updated":"2014-01-06 12:17:51.000000000","message":"Why does the parameter is not common_api?","commit_id":"5634e380d0b563ee797443efc19288cf2a47ac74"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"239bb6adbeb5edf64e16a7a97ebabc4d281aa1fd","unresolved":false,"context_lines":[{"line_number":688,"context_line":"        _vmops \u003d self._get_vmops_for_compute_node(instance[\u0027node\u0027])"},{"line_number":689,"context_line":"        return _vmops.get_info(instance)"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"    def get_diagnostics(self, instance, use_namespace\u003dFalse):"},{"line_number":692,"context_line":"        \"\"\"Return data about VM diagnostics.\"\"\""},{"line_number":693,"context_line":"        _vmops \u003d self._get_vmops_for_compute_node(instance[\u0027node\u0027])"},{"line_number":694,"context_line":"        return _vmops.get_diagnostics(instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F8d8%3D","line":691,"in_reply_to":"AAAAUH%2F%2F8jw%3D","updated":"2014-01-06 12:41:05.000000000","message":"my bad","commit_id":"5634e380d0b563ee797443efc19288cf2a47ac74"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"e085e04a2e55fa50060119f23d5194c4226de374","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        \"\"\"Return info about the VM instance.\"\"\""},{"line_number":227,"context_line":"        return self._vmops.get_info(instance)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    def get_diagnostics(self, instance, common_api\u003dTrue):"},{"line_number":230,"context_line":"        \"\"\"Return data about VM diagnostics.\"\"\""},{"line_number":231,"context_line":"        return self._vmops.get_diagnostics(instance)"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2FYOQ%3D","line":229,"updated":"2014-01-14 12:54:24.000000000","message":"If a driver doesn\u0027t support \u0027common_api\u003d\u003dTrue\u0027 then I\u0027d expect an exception to be raised. This design makes we wonder what a hypothetical newly written hypervisor driver in Nova would do. Ideally it would not want to support \u0027common_api\u003d\u003dFalse\u0027 at all. If we had separate methods here, it could just implement the new API and skip \u0027get_diagnostics\u0027 entirely.","commit_id":"428d0152ab09ec20172f9eea4579d3605d4ab588"}],"nova/virt/xenapi/driver.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"93a04ab776a56d79eb54ad34bacb4f2296e760d2","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        \"\"\"Return data about VM instance.\"\"\""},{"line_number":362,"context_line":"        return self._vmops.get_info(instance)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    def get_diagnostics(self, instance, common_api\u003dTrue):"},{"line_number":365,"context_line":"        \"\"\"Return data about VM diagnostics.\"\"\""},{"line_number":366,"context_line":"        return self._vmops.get_diagnostics(instance)"},{"line_number":367,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F8hE%3D","line":364,"updated":"2014-01-06 12:17:51.000000000","message":"Just check, there is no unit test for this function in xenserver test_driver, it is better that we add one unit test for this in this patch.","commit_id":"5634e380d0b563ee797443efc19288cf2a47ac74"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"239bb6adbeb5edf64e16a7a97ebabc4d281aa1fd","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        \"\"\"Return data about VM instance.\"\"\""},{"line_number":362,"context_line":"        return self._vmops.get_info(instance)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    def get_diagnostics(self, instance, common_api\u003dTrue):"},{"line_number":365,"context_line":"        \"\"\"Return data about VM diagnostics.\"\"\""},{"line_number":366,"context_line":"        return self._vmops.get_diagnostics(instance)"},{"line_number":367,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F8d4%3D","line":364,"in_reply_to":"AAAAUH%2F%2F8hE%3D","updated":"2014-01-06 12:41:05.000000000","message":"Done","commit_id":"5634e380d0b563ee797443efc19288cf2a47ac74"}]}
