)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d97a0087b7d7ba8a2e79c9639f69f10f7488526","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"It is using the .ini file syntax in order to record the data in"},{"line_number":19,"context_line":"an easily machine parsable format, while remaining human friendly"},{"line_number":20,"context_line":"by avoiding the syntax horror of something like XML or JSON."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"An extension is registered with sphinx that can convert the"},{"line_number":23,"context_line":".ini file content into docutils content that then gets rendered"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a961159_c8171053","line":20,"updated":"2015-01-04 15:13:31.000000000","message":"First thing that came to mine was doing the file in yaml vs ini since I\u0027m getting used to the plethora of infra configs written in yaml, which is easy(ish) to read and super easy to parse into json.  Any thoughts about yaml vs ini?","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"beb560631fa57d1ebda89f2048e0950da37ff369","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"It is using the .ini file syntax in order to record the data in"},{"line_number":19,"context_line":"an easily machine parsable format, while remaining human friendly"},{"line_number":20,"context_line":"by avoiding the syntax horror of something like XML or JSON."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"An extension is registered with sphinx that can convert the"},{"line_number":23,"context_line":".ini file content into docutils content that then gets rendered"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a961159_e3b682db","line":20,"in_reply_to":"3a961159_3102a23e","updated":"2015-01-06 09:03:37.000000000","message":"Well, using ConfigParser is definitely mainstream so I\u0027m happy with it, but indeed a YAML file describing the matrix is more an OpenStack-ish way.\n\nThat said, we can live with INI files and for once a time, use mainstream things :-)","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"78437e47ef7118e52a4a958f143d4aa882daa157","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"It is using the .ini file syntax in order to record the data in"},{"line_number":19,"context_line":"an easily machine parsable format, while remaining human friendly"},{"line_number":20,"context_line":"by avoiding the syntax horror of something like XML or JSON."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"An extension is registered with sphinx that can convert the"},{"line_number":23,"context_line":".ini file content into docutils content that then gets rendered"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a961159_3102a23e","line":20,"in_reply_to":"3a961159_49aa3b1b","updated":"2015-01-05 22:31:42.000000000","message":"Sure, I\u0027m good with that.  I was actually just expecting this all hard-coded in a devref rst formatted file, not a nicely generated page from a config style file.","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c2b304b40555dd8f859be76a1767a9f941e647c0","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"It is using the .ini file syntax in order to record the data in"},{"line_number":19,"context_line":"an easily machine parsable format, while remaining human friendly"},{"line_number":20,"context_line":"by avoiding the syntax horror of something like XML or JSON."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"An extension is registered with sphinx that can convert the"},{"line_number":23,"context_line":".ini file content into docutils content that then gets rendered"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a961159_49aa3b1b","line":20,"in_reply_to":"3a961159_c8171053","updated":"2015-01-05 11:47:03.000000000","message":"I did consider YAML and JSON since they\u0027re pretty much semantically equivalent, but after doing some experiments I felt the simplicity of .ini was better.","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"eb2af08c06ec0cfc0aa8778b20ceff816fda9012","unresolved":false,"context_lines":[{"line_number":15,"context_line":"of API operations and and coverage of important configuration"},{"line_number":16,"context_line":"information that users will care about."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"It is using the .ini file syntax in order to record the data in"},{"line_number":19,"context_line":"an easily machine parsable format, while remaining human friendly"},{"line_number":20,"context_line":"by avoiding the syntax horror of something like XML or JSON."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"da86d52c_8b64494a","line":18,"updated":"2015-02-02 19:53:29.000000000","message":"I would prefer yaml, as we use that a lot in other parts of OpenStack","commit_id":"bcd49fc405fad48f78d208a4e719156071275f10"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d0ea6c7a807dcc95d65b27f3533f034dd114978f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"of API operations and and coverage of important configuration"},{"line_number":16,"context_line":"information that users will care about."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"It is using the .ini file syntax in order to record the data in"},{"line_number":19,"context_line":"an easily machine parsable format, while remaining human friendly"},{"line_number":20,"context_line":"by avoiding the syntax horror of something like XML or JSON."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"da86d52c_993562dc","line":18,"in_reply_to":"da86d52c_7c21814c","updated":"2015-02-03 13:58:04.000000000","message":"Hmm, wait, where is YAML used in Nova ?  I see lots of use of JSON in Nova, but no use of YAML.","commit_id":"bcd49fc405fad48f78d208a4e719156071275f10"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"769c885cf401ac39a23f32e090c0d1c205a23fe0","unresolved":false,"context_lines":[{"line_number":15,"context_line":"of API operations and and coverage of important configuration"},{"line_number":16,"context_line":"information that users will care about."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"It is using the .ini file syntax in order to record the data in"},{"line_number":19,"context_line":"an easily machine parsable format, while remaining human friendly"},{"line_number":20,"context_line":"by avoiding the syntax horror of something like XML or JSON."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"da86d52c_7c21814c","line":18,"in_reply_to":"da86d52c_8b64494a","updated":"2015-02-03 12:32:46.000000000","message":"I did look at yaml too when starting this, but I found the .ini file easier to read. If really desired I could upload a example yaml format for comparison","commit_id":"bcd49fc405fad48f78d208a4e719156071275f10"}],"doc/ext/support_matrix.py":[{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"015eba2198b5b11382ff5bccd2c934bf4c894759","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        return self._build_markup(matrix)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _load_support_matrix(self):"},{"line_number":91,"context_line":"        cfg \u003d ConfigParser.SafeConfigParser()"},{"line_number":92,"context_line":"        env \u003d self.state.document.settings.env"},{"line_number":93,"context_line":"        fname \u003d self.options.get(\"support-matrix\","},{"line_number":94,"context_line":"                                 \"support-matrix.ini\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_ef42c43c","line":91,"updated":"2014-12-12 09:34:20.000000000","message":"I\u0027d rather have this method shorter.","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"44bc7af34ec0f9606503aa63cdc56628b8d3408f","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        return self._build_markup(matrix)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _load_support_matrix(self):"},{"line_number":91,"context_line":"        cfg \u003d ConfigParser.SafeConfigParser()"},{"line_number":92,"context_line":"        env \u003d self.state.document.settings.env"},{"line_number":93,"context_line":"        fname \u003d self.options.get(\"support-matrix\","},{"line_number":94,"context_line":"                                 \"support-matrix.ini\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_32042f17","line":91,"in_reply_to":"3a961159_32e50f38","updated":"2014-12-12 10:17:03.000000000","message":"From a readability and maintainability point I think it would add a value. Even if this code \"just produces docs\" it should be maintainable. And long (imho \u003e25 LoC) methods tend to be less maintainable.","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"30a1fb785bb77505619602234464d74145ff4e59","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        return self._build_markup(matrix)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _load_support_matrix(self):"},{"line_number":91,"context_line":"        cfg \u003d ConfigParser.SafeConfigParser()"},{"line_number":92,"context_line":"        env \u003d self.state.document.settings.env"},{"line_number":93,"context_line":"        fname \u003d self.options.get(\"support-matrix\","},{"line_number":94,"context_line":"                                 \"support-matrix.ini\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_32e50f38","line":91,"in_reply_to":"3a961159_ef42c43c","updated":"2014-12-12 09:56:24.000000000","message":"I don\u0027t think splitting it up adds any value","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"015eba2198b5b11382ff5bccd2c934bf4c894759","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        return content"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def _build_summary(self, matrix, content):"},{"line_number":203,"context_line":"        summarytitle \u003d nodes.subtitle(text\u003d\"Summary\")"},{"line_number":204,"context_line":"        summary \u003d nodes.table()"},{"line_number":205,"context_line":"        cols \u003d len(matrix.targets.keys())"},{"line_number":206,"context_line":"        cols +\u003d 2"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_0f40f032","line":203,"updated":"2014-12-12 09:34:20.000000000","message":"I\u0027d rather have this method shorter.","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"015eba2198b5b11382ff5bccd2c934bf4c894759","unresolved":false,"context_lines":[{"line_number":273,"context_line":"            summarybody.append(item)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def _build_details(self, matrix, content):"},{"line_number":276,"context_line":"        detailstitle \u003d nodes.subtitle(text\u003d\"Details\")"},{"line_number":277,"context_line":"        details \u003d nodes.bullet_list()"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        content.append(detailstitle)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_4f467850","line":276,"updated":"2014-12-12 09:34:20.000000000","message":"I\u0027d rather have this method shorter.","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"beb560631fa57d1ebda89f2048e0950da37ff369","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import ConfigParser"},{"line_number":26,"context_line":"import os"},{"line_number":27,"context_line":"import re"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_4814d54c","line":25,"updated":"2015-01-06 09:03:37.000000000","message":"nit : using six.moves.ConfigParser would allow to have Py3 support","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"beb560631fa57d1ebda89f2048e0950da37ff369","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self):"},{"line_number":39,"context_line":"        super(SupportMatrix, self).__init__()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        # List of SupportMatrixFeature instances, describing"},{"line_number":42,"context_line":"        # all the features present in Nova virt drivers"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_2306ca1c","line":39,"updated":"2015-01-06 09:03:37.000000000","message":"not necessary","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"beb560631fa57d1ebda89f2048e0950da37ff369","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    STATUS_ALL \u003d [STATUS_MANDATORY, STATUS_CHOICE, STATUS_CONDITION, STATUS_OPTIONAL]"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def __init__(self, key, title, status\u003dSTATUS_OPTIONAL, group\u003dNone, notes\u003dNone):"},{"line_number":62,"context_line":"        super(SupportMatrixFeature, self).__init__()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        # A unique key (eg \u0027foo.bar.wizz\u0027) to identify the feature"},{"line_number":65,"context_line":"        self.key \u003d key"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_83105e4f","line":62,"updated":"2015-01-06 09:03:37.000000000","message":"see L39 comment","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"beb560631fa57d1ebda89f2048e0950da37ff369","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        # All sections except \u0027targets\u0027 describe some feature of"},{"line_number":184,"context_line":"        # the Nova hypervisor driver implementation"},{"line_number":185,"context_line":"        for section in cfg.sections():"},{"line_number":186,"context_line":"            if section \u003d\u003d \"targets\":"},{"line_number":187,"context_line":"                continue"},{"line_number":188,"context_line":"            if not cfg.has_option(section, \"title\"):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_e3e9221b","line":185,"updated":"2015-01-06 09:03:37.000000000","message":"That way, you explicitely avoid the DEFAULT section, but I\u0027m fine with that as the ini file you provided showed it was unnecessary","commit_id":"de141487831ace5145f69599808159e4527113ea"}],"doc/source/index.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"beb560631fa57d1ebda89f2048e0950da37ff369","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"   devref/index"},{"line_number":50,"context_line":"   man/index"},{"line_number":51,"context_line":"   support-matrix"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"API Extensions"},{"line_number":54,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_637c5221","line":51,"updated":"2015-01-06 09:03:37.000000000","message":"I appreciate the goal of adding a whole chapter separated from devref but we could maybe reproduce the above layout by providing opsref/index including support-matrix ?\n\nNote : I\u0027m not speaking about duplicating Ops docs that we have in the openstack-docs repo, but having specific ops-related information about a Nova version like you did","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"84fee7692a098c16c0cf48cd275e76e7d8b871e0","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"   devref/index"},{"line_number":50,"context_line":"   man/index"},{"line_number":51,"context_line":"   support-matrix"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"API Extensions"},{"line_number":54,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_f964b9b4","line":51,"in_reply_to":"3a961159_637c5221","updated":"2015-01-13 11:46:22.000000000","message":"I\u0027m not convinced an \u0027Ops docs\u0027 section makes sense for this, not least because Ops are only one target of this information - it is just as much targetted towards developers. IOW I think this current structure is fine.","commit_id":"de141487831ace5145f69599808159e4527113ea"}],"doc/source/support-matrix.ini":[{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"015eba2198b5b11382ff5bccd2c934bf4c894759","unresolved":false,"context_lines":[{"line_number":70,"context_line":"#                    must be implemented"},{"line_number":71,"context_line":"#  - conditional(cond) - required, if the referenced condition is met."},{"line_number":72,"context_line":"#"},{"line_number":73,"context_line":"#"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"[targets]"},{"line_number":76,"context_line":"# List of driver impls we are going to record info for later"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3a961159_8f3ea08a","line":73,"updated":"2014-12-12 09:34:20.000000000","message":"A short notice of the meaning of \"complete\", \"partial\" and \"missing\" would be good (for the case one wants to add a new column to the matrix).","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"015eba2198b5b11382ff5bccd2c934bf4c894759","unresolved":false,"context_lines":[{"line_number":81,"context_line":"driver-impl-libvirt-xen\u003dLibvirt Xen"},{"line_number":82,"context_line":"driver-impl-vmware\u003dVMWare VCenter"},{"line_number":83,"context_line":"driver-impl-hyperv\u003dHyper-V"},{"line_number":84,"context_line":"driver-impl-ironic\u003dIronic"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"[operation.launch]"},{"line_number":87,"context_line":"title\u003dLaunch instance"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3a961159_4ffe78af","line":84,"updated":"2014-12-12 09:34:20.000000000","message":"Why are \"Docker\" and \"PowerKVM\" not part of this file? They are present in the current table of the wiki. Is there a planned process how to add a column to the matrix via this file?","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"30a1fb785bb77505619602234464d74145ff4e59","unresolved":false,"context_lines":[{"line_number":81,"context_line":"driver-impl-libvirt-xen\u003dLibvirt Xen"},{"line_number":82,"context_line":"driver-impl-vmware\u003dVMWare VCenter"},{"line_number":83,"context_line":"driver-impl-hyperv\u003dHyper-V"},{"line_number":84,"context_line":"driver-impl-ironic\u003dIronic"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"[operation.launch]"},{"line_number":87,"context_line":"title\u003dLaunch instance"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3a961159_f24c6744","line":84,"in_reply_to":"3a961159_4ffe78af","updated":"2014-12-12 09:56:24.000000000","message":"They are not part of the Nova codebase so it is not appropriate to include them here.\n\nThe code for generating the docutils content is able to be pointed at a different .ini file, so if they wish to provide their own documentation they can re-use this facility.\n\nWhen a driver is added to the Nova codebase, they will be expected to update this file as part of the code commit which adds the driver.py file features.","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"44bc7af34ec0f9606503aa63cdc56628b8d3408f","unresolved":false,"context_lines":[{"line_number":81,"context_line":"driver-impl-libvirt-xen\u003dLibvirt Xen"},{"line_number":82,"context_line":"driver-impl-vmware\u003dVMWare VCenter"},{"line_number":83,"context_line":"driver-impl-hyperv\u003dHyper-V"},{"line_number":84,"context_line":"driver-impl-ironic\u003dIronic"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"[operation.launch]"},{"line_number":87,"context_line":"title\u003dLaunch instance"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3a961159_4d184075","line":84,"in_reply_to":"3a961159_f24c6744","updated":"2014-12-12 10:17:03.000000000","message":"OK, thanks for clarification.","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"015eba2198b5b11382ff5bccd2c934bf4c894759","unresolved":false,"context_lines":[{"line_number":154,"context_line":"driver-impl-vmware\u003dcomplete"},{"line_number":155,"context_line":"driver-impl-hyperv\u003dcomplete"},{"line_number":156,"context_line":"driver-impl-ironic\u003dpartial"},{"line_number":157,"context_line":"driver-notes-ironic\u003dOnly certain ironic drivers support this"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"[operation.rescue]"},{"line_number":160,"context_line":"title\u003dRescue instance"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3a961159_cf850808","line":157,"updated":"2014-12-12 09:34:20.000000000","message":"Maybe it makes sense to explain the syntax of the \"driver-notes-\u003cdrivername\u003e\" item at the top. Or is the \"support_matrix.py\" supposed to be the source of information?","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"44bc7af34ec0f9606503aa63cdc56628b8d3408f","unresolved":false,"context_lines":[{"line_number":154,"context_line":"driver-impl-vmware\u003dcomplete"},{"line_number":155,"context_line":"driver-impl-hyperv\u003dcomplete"},{"line_number":156,"context_line":"driver-impl-ironic\u003dpartial"},{"line_number":157,"context_line":"driver-notes-ironic\u003dOnly certain ironic drivers support this"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"[operation.rescue]"},{"line_number":160,"context_line":"title\u003dRescue instance"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3a961159_b2cf3f28","line":157,"in_reply_to":"3a961159_720797ca","updated":"2014-12-12 10:17:03.000000000","message":"Yes, that\u0027s what I try to say. Something at the top of this file like:\n\nA new column to the matrix is added with:\n`driver-impl-\u003cname_of_new_driver\u003e`\n\nNotes to this driver for a specific operation is added with:\n`driver-notes-\u003cname_of_new_driver\u003e`\n\nThis information can be derived by reading the current content, but a summary at the top could be useful.","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"30a1fb785bb77505619602234464d74145ff4e59","unresolved":false,"context_lines":[{"line_number":154,"context_line":"driver-impl-vmware\u003dcomplete"},{"line_number":155,"context_line":"driver-impl-hyperv\u003dcomplete"},{"line_number":156,"context_line":"driver-impl-ironic\u003dpartial"},{"line_number":157,"context_line":"driver-notes-ironic\u003dOnly certain ironic drivers support this"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"[operation.rescue]"},{"line_number":160,"context_line":"title\u003dRescue instance"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3a961159_720797ca","line":157,"in_reply_to":"3a961159_cf850808","updated":"2014-12-12 09:56:24.000000000","message":"This file should really document it all. Making people read the source is unpleasant.","commit_id":"b706231fae07feefe7e3da6ae320f9fefbde496c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"78437e47ef7118e52a4a958f143d4aa882daa157","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# used and what aspects of the guest machine can be configured. The capabilities"},{"line_number":29,"context_line":"# can be considered to be structured into nested groups, but in this file they"},{"line_number":30,"context_line":"# have been flattened for ease of representation. The section names represent"},{"line_number":31,"context_line":"# the group structure. A the top level there are the following groups defined"},{"line_number":32,"context_line":"#"},{"line_number":33,"context_line":"# - operation  - public API operations"},{"line_number":34,"context_line":"# - storage    - host storage configuration options"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3a961159_31b0e28a","line":31,"updated":"2015-01-05 22:31:42.000000000","message":"s/A/At/.","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"78437e47ef7118e52a4a958f143d4aa882daa157","unresolved":false,"context_lines":[{"line_number":62,"context_line":"#                 to illustrate that many features need not be considered"},{"line_number":63,"context_line":"#                 mandatory in order to get useful work done."},{"line_number":64,"context_line":"#"},{"line_number":65,"context_line":"# The \u0027status\u0027 field takes possible values"},{"line_number":66,"context_line":"#"},{"line_number":67,"context_line":"#  - mandatory - unconditionally required to be implemented"},{"line_number":68,"context_line":"#  - optional  - optional to support, nice to have"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3a961159_6310e14e","line":65,"updated":"2015-01-05 22:31:42.000000000","message":"It would be really nice to see the legend above the table here:\n\nhttp://docs-draft.openstack.org/80/136380/4/check//gate-nova-docs/b8b946d//doc/build/html/support-matrix.html\n\nI was wondering how the values were chosen for mandatory vs optional, etc - would be also nice to see the above information on how the mandatory ones were chosen in the rendered matrix page if possible.","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"384a5a3edab5ecd2f7e51c96fb41a7e5cf41db7f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"#                 to illustrate that many features need not be considered"},{"line_number":63,"context_line":"#                 mandatory in order to get useful work done."},{"line_number":64,"context_line":"#"},{"line_number":65,"context_line":"# The \u0027status\u0027 field takes possible values"},{"line_number":66,"context_line":"#"},{"line_number":67,"context_line":"#  - mandatory - unconditionally required to be implemented"},{"line_number":68,"context_line":"#  - optional  - optional to support, nice to have"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3a961159_c9ffe4a9","line":65,"in_reply_to":"3a961159_6310e14e","updated":"2015-01-06 12:34:20.000000000","message":"++ \nit will let reader know the difference \n\nand for other hypervisors which only locate in stackforge\nit would be nice to know the meaning following info \n(mandatory/optional/choice/conditional) \nand maintain their own table","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"84fee7692a098c16c0cf48cd275e76e7d8b871e0","unresolved":false,"context_lines":[{"line_number":62,"context_line":"#                 to illustrate that many features need not be considered"},{"line_number":63,"context_line":"#                 mandatory in order to get useful work done."},{"line_number":64,"context_line":"#"},{"line_number":65,"context_line":"# The \u0027status\u0027 field takes possible values"},{"line_number":66,"context_line":"#"},{"line_number":67,"context_line":"#  - mandatory - unconditionally required to be implemented"},{"line_number":68,"context_line":"#  - optional  - optional to support, nice to have"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3a961159_79de0940","line":65,"in_reply_to":"3a961159_6310e14e","updated":"2015-01-13 11:46:22.000000000","message":"I\u0027ll see about including some text for it.","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6b86c9b1aae21392ad265368edc6ea069995b74c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"driver-impl-ironic\u003dIronic"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"[operation.attach-volume]"},{"line_number":103,"context_line":"title\u003dAttach block volume to isntance"},{"line_number":104,"context_line":"status\u003doptional"},{"line_number":105,"context_line":"notes\u003dThe attach volume operation provides a means to hotplug"},{"line_number":106,"context_line":"  additional block storage to a running instance. This allows"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3a961159_434be52a","line":103,"updated":"2015-01-05 22:44:36.000000000","message":"typo :(","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6b86c9b1aae21392ad265368edc6ea069995b74c","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"[operation.attach-volume]"},{"line_number":103,"context_line":"title\u003dAttach block volume to isntance"},{"line_number":104,"context_line":"status\u003doptional"},{"line_number":105,"context_line":"notes\u003dThe attach volume operation provides a means to hotplug"},{"line_number":106,"context_line":"  additional block storage to a running instance. This allows"},{"line_number":107,"context_line":"  storage capabilities to be expanded without interruption of"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3a961159_a3fc89b6","line":104,"updated":"2015-01-05 22:44:36.000000000","message":"Has a decision been made for attach/detach volume to be optional? It\u0027s shown as \"?\" at https://wiki.openstack.org/wiki/HypervisorSupportMatrix/Requirements and IIRC the docker driver\u0027s ability to return to tree depends on it. (I thought this is the feature from the matrix required features that docker driver does not support)","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"84fee7692a098c16c0cf48cd275e76e7d8b871e0","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"[operation.attach-volume]"},{"line_number":103,"context_line":"title\u003dAttach block volume to isntance"},{"line_number":104,"context_line":"status\u003doptional"},{"line_number":105,"context_line":"notes\u003dThe attach volume operation provides a means to hotplug"},{"line_number":106,"context_line":"  additional block storage to a running instance. This allows"},{"line_number":107,"context_line":"  storage capabilities to be expanded without interruption of"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3a961159_39d4811e","line":104,"in_reply_to":"3a961159_a3fc89b6","updated":"2015-01-13 11:46:22.000000000","message":"If you look at the wiki matrix, there\u0027s only 3 rows which have a green check across all drivers. So by virtue of the fact there is at least one existing in-tree virt driver not implementing all the other features, the other features must be considered optional currently. It is open for debate as to whether some of them should be switch to mandatory and existing in-tree virt drivers fixed or kicked out, but we shouldn\u0027t do that right now.","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d97a0087b7d7ba8a2e79c9639f69f10f7488526","unresolved":false,"context_lines":[{"line_number":352,"context_line":"driver-impl-hyperv\u003dmissing"},{"line_number":353,"context_line":"driver-impl-ironic\u003dmissing"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"[operation.snapshot]"},{"line_number":356,"context_line":"title\u003dSave snapshot of instance disk"},{"line_number":357,"context_line":"status\u003doptional"},{"line_number":358,"context_line":"notes\u003dThe snapshot operation allows the current state of the"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3a961159_e81a0c7b","line":355,"updated":"2015-01-04 15:13:31.000000000","message":"How about distinguishing cold vs live snapshot given there is an ops doc on live snapshot:\n\nhttp://docs.openstack.org/openstack-ops/content/snapshots.html#live-snapshots\n\nAnd the libvirt driver has the live_snapshot method, even though we effectively disabled it in Juno due to the gate race bug.","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c2b304b40555dd8f859be76a1767a9f941e647c0","unresolved":false,"context_lines":[{"line_number":352,"context_line":"driver-impl-hyperv\u003dmissing"},{"line_number":353,"context_line":"driver-impl-ironic\u003dmissing"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"[operation.snapshot]"},{"line_number":356,"context_line":"title\u003dSave snapshot of instance disk"},{"line_number":357,"context_line":"status\u003doptional"},{"line_number":358,"context_line":"notes\u003dThe snapshot operation allows the current state of the"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3a961159_2976cfd8","line":355,"in_reply_to":"3a961159_e81a0c7b","updated":"2015-01-05 11:47:03.000000000","message":"This initial commit is intended to be a direct conversion of the existing wiki support matrix. There are *tonnes* of changes I\u0027d like to make to this document to make the feature list more fine grained. I figure we should do those separately though, so that we can avoid arguing over semantics of the features here and instead focus on just the mechanics of recording \u0026 reporting this data to start with. Once this is merged then we can iterate on improving the feature list itself.","commit_id":"de141487831ace5145f69599808159e4527113ea"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"19db30553e247316851ab8ce5150b407ce08e9b5","unresolved":false,"context_lines":[{"line_number":726,"context_line":"[networking.firewallrules]"},{"line_number":727,"context_line":"title\u003dNetwork firewall rules"},{"line_number":728,"context_line":"status\u003doptional"},{"line_number":729,"context_line":"notes\u003dUnclear how this is different from security groups"},{"line_number":730,"context_line":"driver-impl-xenserver\u003dcomplete"},{"line_number":731,"context_line":"driver-impl-libvirt-kvm-x86\u003dcomplete"},{"line_number":732,"context_line":"driver-impl-libvirt-qemu-x86\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3a961159_c9728449","line":729,"updated":"2015-01-06 12:38:49.000000000","message":"do we need to clear it ? \nseems put something in the doc and tell user it\u0027s unclear \ndidn\u0027t make sense","commit_id":"de141487831ace5145f69599808159e4527113ea"}]}
