)]}'
{"doc/ext/extra_specs.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"f0fda80938a2cba12e16ccdaafd3d1a52c90172c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        for line in validator.description.splitlines():"},{"line_number":77,"context_line":"            yield line"},{"line_number":78,"context_line":"    except AttributeError:"},{"line_number":79,"context_line":"        print(\u0027Broken description\u0027)"},{"line_number":80,"context_line":"        print(validator.name)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    yield \u0027\u0027"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_c20b5c27","line":80,"range":{"start_line":79,"start_character":8,"end_line":80,"end_character":29},"updated":"2020-03-31 10:47:36.000000000","message":"You print this AttributeError, this script just execute in local env?\n\nWhy not use LOG.error()?","commit_id":"f905dcb450daa2c9c1a32007c65f74e742f617af"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"970621c0a55ceb14a60c2e070fd8b10928760c50","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        for line in validator.description.splitlines():"},{"line_number":77,"context_line":"            yield line"},{"line_number":78,"context_line":"    except AttributeError:"},{"line_number":79,"context_line":"        print(\u0027Broken description\u0027)"},{"line_number":80,"context_line":"        print(validator.name)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    yield \u0027\u0027"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_a0a0cb91","line":80,"range":{"start_line":79,"start_character":8,"end_line":80,"end_character":29},"in_reply_to":"df33271e_c20b5c27","updated":"2020-03-31 14:32:31.000000000","message":"Good catch. I should drop this entirely, I suspect","commit_id":"f905dcb450daa2c9c1a32007c65f74e742f617af"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"331968f54c296a1773ddda6146276060b8874881","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    try:"},{"line_number":76,"context_line":"        for line in validator.description.splitlines():"},{"line_number":77,"context_line":"            yield line"},{"line_number":78,"context_line":"    except AttributeError:"},{"line_number":79,"context_line":"        print(\u0027Broken description\u0027)"},{"line_number":80,"context_line":"        print(validator.name)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    yield \u0027\u0027"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_056fd62a","line":80,"range":{"start_line":78,"start_character":1,"end_line":80,"end_character":29},"updated":"2020-04-02 08:51:36.000000000","message":"as per PS7 this can be dropped.","commit_id":"b9be71c0de7fd38da382bff6e36298bcc9ecdcd3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"172673f4ebd486d5b916197d74107ea248810030","unresolved":false,"context_lines":[{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def _format_validator_group_help("},{"line_number":37,"context_line":"    group_name: str,"},{"line_number":38,"context_line":"    validators: ty.Dict[str, base.ExtraSpecValidator],"},{"line_number":39,"context_line":"):"},{"line_number":40,"context_line":"    \"\"\"Generate reStructuredText snippets for a group of validators.\"\"\""},{"line_number":41,"context_line":"    yield group_name"},{"line_number":42,"context_line":"    yield \u0027\u003d\u0027 * len(group_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_bae2332e","line":39,"range":{"start_line":36,"start_character":0,"end_line":39,"end_character":2},"updated":"2020-04-06 18:35:46.000000000","message":"just form a style poitn of view i really which this\n\n\ndef _format_validator_group_help(\n    group_name: str,\n    validators: ty.Dict[str, base.ExtraSpecValidator],\n):\n\nwas \n\ndef _format_validator_group_help(\n    group_name: str, validators: ty.Dict[str, base.ExtraSpecValidator],):","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5c35d837fbeddca62e572f2421d275cdc0f6d703","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    validators: ty.Dict[str, base.ExtraSpecValidator],"},{"line_number":39,"context_line":"):"},{"line_number":40,"context_line":"    \"\"\"Generate reStructuredText snippets for a group of validators.\"\"\""},{"line_number":41,"context_line":"    yield group_name"},{"line_number":42,"context_line":"    yield \u0027\u003d\u0027 * len(group_name)"},{"line_number":43,"context_line":"    yield \u0027\u0027"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_948468b3","line":41,"range":{"start_line":41,"start_character":10,"end_line":41,"end_character":20},"updated":"2020-04-06 17:06:06.000000000","message":"is group_name also the namespace name?","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dad9b6db1cfe2f029a914ea45f1d8812e7841e46","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    validators: ty.Dict[str, base.ExtraSpecValidator],"},{"line_number":39,"context_line":"):"},{"line_number":40,"context_line":"    \"\"\"Generate reStructuredText snippets for a group of validators.\"\"\""},{"line_number":41,"context_line":"    yield group_name"},{"line_number":42,"context_line":"    yield \u0027\u003d\u0027 * len(group_name)"},{"line_number":43,"context_line":"    yield \u0027\u0027"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_9f8593d2","line":41,"range":{"start_line":41,"start_character":10,"end_line":41,"end_character":20},"in_reply_to":"df33271e_948468b3","updated":"2020-04-07 09:09:48.000000000","message":"\u003e is group_name also the namespace name?\n\nYes. Don\u0027t worry about this because I\u0027ve dropped the idea in a future change. I\u0027ve just kept this so people can see how I built up the extension, rather than dumping a whole load of Sphinx\u0027isms that no one bar me could grok :)","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"172673f4ebd486d5b916197d74107ea248810030","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    validators: ty.Dict[str, base.ExtraSpecValidator],"},{"line_number":39,"context_line":"):"},{"line_number":40,"context_line":"    \"\"\"Generate reStructuredText snippets for a group of validators.\"\"\""},{"line_number":41,"context_line":"    yield group_name"},{"line_number":42,"context_line":"    yield \u0027\u003d\u0027 * len(group_name)"},{"line_number":43,"context_line":"    yield \u0027\u0027"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_bac19331","line":41,"range":{"start_line":41,"start_character":10,"end_line":41,"end_character":20},"in_reply_to":"df33271e_948468b3","updated":"2020-04-06 18:35:46.000000000","message":"i dont know that we stirctly enforce that a validtator maps to 1 and only 1 namespace but that was the intent but in practice i think it would be the same as the namespace name.","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"172673f4ebd486d5b916197d74107ea248810030","unresolved":false,"context_lines":[{"line_number":39,"context_line":"):"},{"line_number":40,"context_line":"    \"\"\"Generate reStructuredText snippets for a group of validators.\"\"\""},{"line_number":41,"context_line":"    yield group_name"},{"line_number":42,"context_line":"    yield \u0027\u003d\u0027 * len(group_name)"},{"line_number":43,"context_line":"    yield \u0027\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    for validator in validators.values():"}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_1a135fba","line":42,"range":{"start_line":42,"start_character":9,"end_line":42,"end_character":31},"updated":"2020-04-06 18:35:46.000000000","message":"ok i know what this is doing but its a little cryptic\nand we are hardcoding the use of \"\u003d\" as the header chariter.\n\ni would prefer if this was extracted into a named generator and the line charather was passed in as an argument that can defaultto \u0027\u003d\u0027\n\nbut it not obvious that this is yeliding the line that renders adds the tile markup\n\ne.g. for my_namespce results in\n\nmy_namespace\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\ninstead of just\n\nmy_namespace\n\nnote to other reviews each\nyeild is a new line in the rendered rst.\ncorrect stephen? that should be called out in the doc string.","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dad9b6db1cfe2f029a914ea45f1d8812e7841e46","unresolved":false,"context_lines":[{"line_number":39,"context_line":"):"},{"line_number":40,"context_line":"    \"\"\"Generate reStructuredText snippets for a group of validators.\"\"\""},{"line_number":41,"context_line":"    yield group_name"},{"line_number":42,"context_line":"    yield \u0027\u003d\u0027 * len(group_name)"},{"line_number":43,"context_line":"    yield \u0027\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    for validator in validators.values():"}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_3f760708","line":42,"range":{"start_line":42,"start_character":9,"end_line":42,"end_character":31},"in_reply_to":"df33271e_1a135fba","updated":"2020-04-07 09:09:48.000000000","message":"You can use whatever header character you want here because we\u0027re using \u0027nested_parse_with_titles\u0027, which chooses the appropriate \"in document\" header level.\n\nAs above, I don\u0027t think this is a big deal because all of this is dropped in two patches time","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"172673f4ebd486d5b916197d74107ea248810030","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    for validator in validators.values():"},{"line_number":46,"context_line":"        for line in _format_validator_help(validator):"},{"line_number":47,"context_line":"            yield line"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def _format_validator_help("}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_1ac6bf17","line":47,"range":{"start_line":47,"start_character":12,"end_line":47,"end_character":22},"updated":"2020-04-06 18:35:46.000000000","message":"it only become obvirous that each yeild is a seperate line here","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"172673f4ebd486d5b916197d74107ea248810030","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            yield line"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def _format_validator_help("},{"line_number":51,"context_line":"    validator: base.ExtraSpecValidator,"},{"line_number":52,"context_line":"):"},{"line_number":53,"context_line":"    \"\"\"Generate reStucturedText snippets for the provided validator."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    :param validator: A validator to document."}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_faa4bbbb","line":52,"range":{"start_line":50,"start_character":0,"end_line":52,"end_character":2},"updated":"2020-04-06 18:35:46.000000000","message":"and this was\n\ndef _format_validator_help(validator: base.ExtraSpecValidator):\n\nwasting vertical space like this is irrigating to read but i also know that is a personal preference.","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"172673f4ebd486d5b916197d74107ea248810030","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    :type validator: nova.api.validation.extra_specs.base.ExtraSpecValidator"},{"line_number":57,"context_line":"    \"\"\""},{"line_number":58,"context_line":"    yield validator.name"},{"line_number":59,"context_line":"    yield \u0027-\u0027 * len(validator.name)"},{"line_number":60,"context_line":"    yield \u0027\u0027"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    # NOTE(stephenfin): We don\u0027t print the pattern, if present, since it\u0027s too"}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_9ad92ff6","line":59,"range":{"start_line":59,"start_character":3,"end_line":59,"end_character":35},"updated":"2020-04-06 18:35:46.000000000","message":"again this can be the same generator just called with a different header charater.","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"172673f4ebd486d5b916197d74107ea248810030","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    yield f\u0027:Type: {validator.value[\"type\"].__name__}\u0027"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    if validator.value.get(\u0027min\u0027) is not None:"},{"line_number":68,"context_line":"        yield f\u0027:Max: {validator.value[\"min\"]}\u0027"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    if validator.value.get(\u0027max\u0027) is not None:"},{"line_number":71,"context_line":"        yield f\u0027:Max: {validator.value[\"max\"]}\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_bae07398","line":68,"range":{"start_line":68,"start_character":17,"end_line":68,"end_character":20},"updated":"2020-04-06 18:35:46.000000000","message":"Min\n\nallthough i would prefer if you extracted this and made it a constnat","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"172673f4ebd486d5b916197d74107ea248810030","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        yield f\u0027:Max: {validator.value[\"min\"]}\u0027"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    if validator.value.get(\u0027max\u0027) is not None:"},{"line_number":71,"context_line":"        yield f\u0027:Max: {validator.value[\"max\"]}\u0027"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    yield \u0027\u0027"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_7aff0b34","line":71,"range":{"start_line":71,"start_character":16,"end_line":71,"end_character":21},"updated":"2020-04-06 18:35:46.000000000","message":"same","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"172673f4ebd486d5b916197d74107ea248810030","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    yield \u0027\u0027"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    if validator.deprecated:"},{"line_number":81,"context_line":"        yield \u0027.. warning::\u0027"},{"line_number":82,"context_line":"        yield \u0027   This extra spec has been deprecated and should not be used.\u0027"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    yield \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_fa983b1c","line":81,"range":{"start_line":81,"start_character":13,"end_line":81,"end_character":28},"updated":"2020-04-06 18:35:46.000000000","message":"also a constant.\n\nthe reason being so that we can unit test this proerly and refer to the constants although i guess we could jsut leave it as is and assert the final content is as expected comparing the full sinpit\n\nspeaking of which you should have unit tests for this function and the one above.","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"29cc75f71c4f082f2b935a7aa1688a772fb49c0a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2020, Red Hat, Inc. All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_a4d028f9","line":1,"updated":"2020-04-08 08:34:43.000000000","message":"This looks correctly rendered https://6319631a8afc7845c7f6-af2016a5632320f910deb9dcbf495ac6.ssl.cf2.rackcdn.com/710037/13/check/openstack-tox-docs/eb7469b/docs/configuration/extra-specs.html","commit_id":"86d09128c17aa1b051e4a50930b49e5376f0c90d"}],"doc/source/configuration/extra-specs.rst":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ecacf2c15488e10f56226de57ed99ad36142bfbc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"df33271e_0193d4fb","line":15,"updated":"2020-03-26 12:15:40.000000000","message":"I\u0027m not sure these can be solved but it would made the doc more human usable:\n* each capabilities spec\u0027s description repeats the same information can we somehow move that as a category description?\n* doc is going through all the possible os-traits, this makes the doc really looong. Could we simply link to os-traits lib?\n\nAlso I think lexicographic ordering of keys would help","commit_id":"2072326532c112a5265a98cb5259690a7fbec9cc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"253e0ea92f0767aa11e209e153bfcc8b53a154dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"df33271e_c950ee61","line":15,"in_reply_to":"df33271e_0193d4fb","updated":"2020-03-26 15:41:04.000000000","message":"I can do both of those, but I think I\u0027ll do that separately when I add the cross-referencing support. For now, I want to keep this as simple as possible, if that makes sense","commit_id":"2072326532c112a5265a98cb5259690a7fbec9cc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84a9f5c2e8ff41709dbf1a83c372462e1d79c285","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"df33271e_a9148a4f","line":15,"in_reply_to":"df33271e_c950ee61","updated":"2020-03-26 15:53:16.000000000","message":"Sure. The current doc already better than what we had as it is complete.","commit_id":"2072326532c112a5265a98cb5259690a7fbec9cc"}],"doc/source/configuration/index.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"95765dc539f5dbb45289535462517c642bad6a37","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"      sample-policy"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Extra Specs"},{"line_number":80,"context_line":"-----------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Nova uses *flavor extra specs* as a way to provide additional information to"},{"line_number":83,"context_line":"instances beyond basic information like amount of RAM or disk. This information"},{"line_number":84,"context_line":"can range from hints for the scheduler to hypervisor-specific configuration"},{"line_number":85,"context_line":"instructions for the instance."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* :doc:`Extra Spec Reference \u003cextra-specs\u003e`: A complete reference for all extra"},{"line_number":88,"context_line":"  specs currently recognized and supported by nova."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. toctree::"},{"line_number":91,"context_line":"   :hidden:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"   extra-specs"}],"source_content_type":"text/x-rst","patch_set":12,"id":"df33271e_9a0c8f43","line":93,"range":{"start_line":79,"start_character":1,"end_line":93,"end_character":14},"updated":"2020-04-06 18:43:40.000000000","message":"im not sure if this is the correct place\n\nwe like to the flavor docs under user form the root of the docs page anbd these docs are not visable there.\n\nso im not suer i would find them easily.\n\nalso the configuration docs are not normlay related to flavors which are created at runtime they related to config files so i dont think this fits this section of the docs very well.","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dad9b6db1cfe2f029a914ea45f1d8812e7841e46","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"      sample-policy"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Extra Specs"},{"line_number":80,"context_line":"-----------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Nova uses *flavor extra specs* as a way to provide additional information to"},{"line_number":83,"context_line":"instances beyond basic information like amount of RAM or disk. This information"},{"line_number":84,"context_line":"can range from hints for the scheduler to hypervisor-specific configuration"},{"line_number":85,"context_line":"instructions for the instance."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* :doc:`Extra Spec Reference \u003cextra-specs\u003e`: A complete reference for all extra"},{"line_number":88,"context_line":"  specs currently recognized and supported by nova."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. toctree::"},{"line_number":91,"context_line":"   :hidden:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"   extra-specs"}],"source_content_type":"text/x-rst","patch_set":12,"id":"df33271e_bf9e9704","line":93,"range":{"start_line":79,"start_character":1,"end_line":93,"end_character":14},"in_reply_to":"df33271e_9a0c8f43","updated":"2020-04-07 09:09:48.000000000","message":"This is the reference for the extra specs. I plan to link to these from e.g. the \u0027/user/flavors\u0027 doc once I have the cross-referencing in place (two patches from now)","commit_id":"b3a055538188817cd468f493ffa2909c163b47a3"}],"nova/api/validation/extra_specs/capabilities.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"29cc75f71c4f082f2b935a7aa1688a772fb49c0a","unresolved":false,"context_lines":[{"line_number":49,"context_line":"satisfy the provided filter value. Requires the ``ComputeCapabilitiesFilter``"},{"line_number":50,"context_line":"scheduler filter."},{"line_number":51,"context_line":"\"\"\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"EXTRA_SPEC_VALIDATORS \u003d []"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# non-nested capabilities (from \u0027nova.objects.compute_node.ComputeNode\u0027 and"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_c4ebacd9","line":52,"updated":"2020-04-08 08:34:43.000000000","message":"well, looks a nit to move the above but okay.","commit_id":"86d09128c17aa1b051e4a50930b49e5376f0c90d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4d40ba33fba3ae4b25e5e6cbb571114f505b1b2b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"satisfy the provided filter value. Requires the ``ComputeCapabilitiesFilter``"},{"line_number":50,"context_line":"scheduler filter."},{"line_number":51,"context_line":"\"\"\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"EXTRA_SPEC_VALIDATORS \u003d []"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# non-nested capabilities (from \u0027nova.objects.compute_node.ComputeNode\u0027 and"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_cf7bc5bb","line":52,"in_reply_to":"df33271e_c4ebacd9","updated":"2020-04-08 09:26:29.000000000","message":"I needed that to avoid dumping a massive amount of text out for each one of these capabilities (there are many of them)","commit_id":"86d09128c17aa1b051e4a50930b49e5376f0c90d"}]}
