)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8985ffd61bd51c36d702ae1933a4b45446162057","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"PoC for fixing ironic with resource classes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1710141"},{"line_number":10,"context_line":"Change-Id: I2fd1e4a95f000da19864e75299afa51527697101"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f436f4f_de1716a3","line":9,"updated":"2017-08-11 13:01:27.000000000","message":"This isn\u0027t really the correct bug for the issue you\u0027re trying to fix here. We\u0027ll still get the warnings I think and that\u0027s the point of the bug.","commit_id":"f194b3037c6574ebac5653ffc149b26761b365cb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"caca5f1d632067b811f640469701b0e72c4e5858","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"PoC for fixing ironic with resource classes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1710141"},{"line_number":10,"context_line":"Change-Id: I2fd1e4a95f000da19864e75299afa51527697101"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f436f4f_c1b85b77","line":9,"in_reply_to":"9f436f4f_de1716a3","updated":"2017-08-11 13:33:22.000000000","message":"Nevermind I hadn\u0027t seen the latest code change, so this might actually work.\n\nThe warnings are gone now:\n\nhttp://paste.openstack.org/show/618171/","commit_id":"f194b3037c6574ebac5653ffc149b26761b365cb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8c9f15c338e2b1b2b500d7b358dfa0c7b2705922","unresolved":false,"context_lines":[{"line_number":13,"context_line":"   the resources are still in use. This results in nasty warnings."},{"line_number":14,"context_line":"2. When adding a resource class to a deployed node, it does not get into"},{"line_number":15,"context_line":"   inventory, and thus does not get to Placement. It results in an error"},{"line_number":16,"context_line":"   later one, when the custom resource class is not found."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch fixes that by"},{"line_number":19,"context_line":"1. Always report the custom resources class, if it is present."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f436f4f_6e0cef40","line":16,"range":{"start_line":16,"start_character":9,"end_line":16,"end_character":12},"updated":"2017-08-11 20:25:54.000000000","message":"on","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8c9f15c338e2b1b2b500d7b358dfa0c7b2705922","unresolved":false,"context_lines":[{"line_number":16,"context_line":"   later one, when the custom resource class is not found."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch fixes that by"},{"line_number":19,"context_line":"1. Always report the custom resources class, if it is present."},{"line_number":20,"context_line":"2. Report VCPUS/memory/disk in exactly the same amount, as was consumed"},{"line_number":21,"context_line":"   by the instances. This is to prevent Placement from thinking that"},{"line_number":22,"context_line":"   there are still free resources."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f436f4f_b980df47","line":19,"range":{"start_line":19,"start_character":3,"end_line":19,"end_character":62},"updated":"2017-08-11 20:25:54.000000000","message":"This isn\u0027t happening, see inline.","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8c9f15c338e2b1b2b500d7b358dfa0c7b2705922","unresolved":false,"context_lines":[{"line_number":18,"context_line":"This patch fixes that by"},{"line_number":19,"context_line":"1. Always report the custom resources class, if it is present."},{"line_number":20,"context_line":"2. Report VCPUS/memory/disk in exactly the same amount, as was consumed"},{"line_number":21,"context_line":"   by the instances. This is to prevent Placement from thinking that"},{"line_number":22,"context_line":"   there are still free resources."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Closes-Bug: #1710141"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f436f4f_4e05ab13","line":21,"range":{"start_line":21,"start_character":10,"end_line":21,"end_character":19},"updated":"2017-08-11 20:25:54.000000000","message":"instance? instances are 1:1 with nodes, right?","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"50fb66ddd0caf415f3fe2601d4e224fd93edf7b7","unresolved":false,"context_lines":[{"line_number":14,"context_line":"   the resources are still in use. This results in nasty warnings."},{"line_number":15,"context_line":"2. When adding a resource class to a deployed node, it does not get into"},{"line_number":16,"context_line":"   inventory, and thus does not get to Placement. It results in an error"},{"line_number":17,"context_line":"   later one, when the custom resource class is not found."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch fixes the latter problem by"},{"line_number":20,"context_line":"1. Always report the custom resources class for deployed nodes, if present."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f436f4f_e47b3f25","line":17,"range":{"start_line":17,"start_character":9,"end_line":17,"end_character":12},"updated":"2017-08-14 15:43:46.000000000","message":"s/one/on/","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"50fb66ddd0caf415f3fe2601d4e224fd93edf7b7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"   later one, when the custom resource class is not found."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch fixes the latter problem by"},{"line_number":20,"context_line":"1. Always report the custom resources class for deployed nodes, if present."},{"line_number":21,"context_line":"2. Report VCPUS/memory/disk in exactly the same amount, as was consumed"},{"line_number":22,"context_line":"   by the instances. This is to prevent Placement from thinking that"},{"line_number":23,"context_line":"   there are still free resources."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f436f4f_249b8766","line":20,"range":{"start_line":20,"start_character":10,"end_line":20,"end_character":16},"updated":"2017-08-14 15:43:46.000000000","message":"s/report/reporting/","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"50fb66ddd0caf415f3fe2601d4e224fd93edf7b7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"   later one, when the custom resource class is not found."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch fixes the latter problem by"},{"line_number":20,"context_line":"1. Always report the custom resources class for deployed nodes, if present."},{"line_number":21,"context_line":"2. Report VCPUS/memory/disk in exactly the same amount, as was consumed"},{"line_number":22,"context_line":"   by the instances. This is to prevent Placement from thinking that"},{"line_number":23,"context_line":"   there are still free resources."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9f436f4f_c4a95b7c","line":20,"range":{"start_line":20,"start_character":28,"end_line":20,"end_character":37},"updated":"2017-08-14 15:43:46.000000000","message":"s/resources/resource/","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"}],"nova/tests/unit/virt/ironic/test_driver.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0d347b00075d43039edae72b9616e0e8f1411eb6","unresolved":false,"context_lines":[{"line_number":866,"context_line":"        \"\"\""},{"line_number":867,"context_line":"        mock_nr.return_value \u003d {"},{"line_number":868,"context_line":"            \u0027vcpus\u0027: 0,"},{"line_number":869,"context_line":"            \u0027vcpus_used\u0027: 24,"},{"line_number":870,"context_line":"            \u0027memory_mb\u0027: 0,"},{"line_number":871,"context_line":"            \u0027memory_mb_used\u0027: 1024,"},{"line_number":872,"context_line":"            \u0027local_gb\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_2aa473a5","line":869,"updated":"2017-08-14 14:10:41.000000000","message":"Shouldn\u0027t this be something like:\n\n \u0027vcpus\u0027: 32,\n \u0027vcpus_used\u0027: 24,\n\n?\n\nThe test is for an occupied node, but vcpus\u003d0 means disabled right?","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6793f707269753df684026a6ed84c56a81264bd2","unresolved":false,"context_lines":[{"line_number":866,"context_line":"        \"\"\""},{"line_number":867,"context_line":"        mock_nr.return_value \u003d {"},{"line_number":868,"context_line":"            \u0027vcpus\u0027: 0,"},{"line_number":869,"context_line":"            \u0027vcpus_used\u0027: 24,"},{"line_number":870,"context_line":"            \u0027memory_mb\u0027: 0,"},{"line_number":871,"context_line":"            \u0027memory_mb_used\u0027: 1024,"},{"line_number":872,"context_line":"            \u0027local_gb\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_ca7a87b8","line":869,"in_reply_to":"9f436f4f_0a02cf3d","updated":"2017-08-14 14:25:31.000000000","message":"If you\u0027re checking for a disabled node, then I agree. However, this test says it\u0027s checking for an occupied node.","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"52d564fe3d455a3b4ba76717f73bd2d77b0bcf48","unresolved":false,"context_lines":[{"line_number":866,"context_line":"        \"\"\""},{"line_number":867,"context_line":"        mock_nr.return_value \u003d {"},{"line_number":868,"context_line":"            \u0027vcpus\u0027: 0,"},{"line_number":869,"context_line":"            \u0027vcpus_used\u0027: 24,"},{"line_number":870,"context_line":"            \u0027memory_mb\u0027: 0,"},{"line_number":871,"context_line":"            \u0027memory_mb_used\u0027: 1024,"},{"line_number":872,"context_line":"            \u0027local_gb\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_0a02cf3d","line":869,"in_reply_to":"9f436f4f_2aa473a5","updated":"2017-08-14 14:16:14.000000000","message":"This is where it comes from: https://github.com/openstack/nova/blob/master/nova/virt/ironic/driver.py#L329-L334. This check also fails for occupied nodes: https://github.com/openstack/nova/blob/master/nova/virt/ironic/driver.py#L197-L199.","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b97dc7bb4dcc92e21a30a6d3c838dbd5e38a3d88","unresolved":false,"context_lines":[{"line_number":866,"context_line":"        \"\"\""},{"line_number":867,"context_line":"        mock_nr.return_value \u003d {"},{"line_number":868,"context_line":"            \u0027vcpus\u0027: 0,"},{"line_number":869,"context_line":"            \u0027vcpus_used\u0027: 24,"},{"line_number":870,"context_line":"            \u0027memory_mb\u0027: 0,"},{"line_number":871,"context_line":"            \u0027memory_mb_used\u0027: 1024,"},{"line_number":872,"context_line":"            \u0027local_gb\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_30050247","line":869,"in_reply_to":"9f436f4f_ca7a87b8","updated":"2017-08-14 15:13:53.000000000","message":"Well, we treat disabled and occupied the same. In the second link we have\n\n good_provision_states \u003d [ironic_states.AVAILABLE, ironic_states.NOSTATE]\n\nwhich does not include ironic_states.ACTIVE (occupied)","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"79ba7bad26869ac147647a35009efa629cc5b2a2","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        self._test__node_resource(True)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    def test__node_resource_no_instance_info(self):"},{"line_number":310,"context_line":"        self._test__node_resource(False)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    def test__node_resource_canonicalizes_arch(self):"},{"line_number":313,"context_line":"        node_uuid \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f436f4f_8b20e5f8","side":"PARENT","line":310,"updated":"2017-08-15 13:51:34.000000000","message":"I think I would have left things like this, but just changed the assertion to be that nothing changes with an instance. That way if it tries to get changed back it\u0027s clear that we wanted the instance to not affect the inventory.","commit_id":"4cd6a3a1b473795a63f076c7986d1b48d83af99d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"79ba7bad26869ac147647a35009efa629cc5b2a2","unresolved":false,"context_lines":[{"line_number":844,"context_line":"        \"\"\""},{"line_number":845,"context_line":"        mock_nr.return_value \u003d {"},{"line_number":846,"context_line":"            \u0027vcpus\u0027: 24,"},{"line_number":847,"context_line":"            \u0027vcpus_used\u0027: 24,"},{"line_number":848,"context_line":"            \u0027memory_mb\u0027: 1024,"},{"line_number":849,"context_line":"            \u0027memory_mb_used\u0027: 1024,"},{"line_number":850,"context_line":"            \u0027local_gb\u0027: 100,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f436f4f_0b5bd586","line":847,"updated":"2017-08-15 13:51:34.000000000","message":"Shouldn\u0027t we set this to something lower to ensure that we\u0027re reporting 24 used even if the flavor is lower? Or hmm, maybe because you changed the way we look at the node info, we\u0027ll always report used as the full amount in _node_resource?","commit_id":"9ed692bf8c84e0a702536101cd6cb084d33e1c26"}],"nova/virt/ironic/driver.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"60635ecb7d88eafc88c8ef5169df18282ef64211","unresolved":false,"context_lines":[{"line_number":743,"context_line":"                # NOTE(jaypipes): The driver can return 0-valued vcpus when the"},{"line_number":744,"context_line":"                # node is \"disabled\".  In the future, we should detach"},{"line_number":745,"context_line":"                # inventory accounting from the concept of a node being"},{"line_number":746,"context_line":"                # disabled or not. The # two things don\u0027t really have anything"},{"line_number":747,"context_line":"                # to do with each other."},{"line_number":748,"context_line":"                return {}"},{"line_number":749,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_ea657946","line":746,"updated":"2017-08-11 12:41:06.000000000","message":"# in the middle","commit_id":"ded2fccca635e4136145153637307dc80cebc4af"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"64d702bb549409bbcd3e4e5012edc3f5feae9a97","unresolved":false,"context_lines":[{"line_number":763,"context_line":"                \u0027total\u0027: vcpus,"},{"line_number":764,"context_line":"                \u0027reserved\u0027: 0,"},{"line_number":765,"context_line":"                \u0027min_unit\u0027: 1,"},{"line_number":766,"context_line":"                \u0027max_unit\u0027: info[\u0027vcpus\u0027],"},{"line_number":767,"context_line":"                \u0027step_size\u0027: 1,"},{"line_number":768,"context_line":"                \u0027allocation_ratio\u0027: 1.0,"},{"line_number":769,"context_line":"            },"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_3e1ce210","line":766,"range":{"start_line":766,"start_character":28,"end_line":766,"end_character":41},"updated":"2017-08-11 12:53:59.000000000","message":"need to use vcpus here too","commit_id":"ded2fccca635e4136145153637307dc80cebc4af"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8c9f15c338e2b1b2b500d7b358dfa0c7b2705922","unresolved":false,"context_lines":[{"line_number":311,"context_line":"            # resources as in use."},{"line_number":312,"context_line":"            instance_info \u003d self._parse_node_instance_info(node, properties)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"            # Use instance_info instead of properties here is because the"},{"line_number":315,"context_line":"            # properties of a deployed node can be changed which will count"},{"line_number":316,"context_line":"            # as available resources."},{"line_number":317,"context_line":"            vcpus_used \u003d vcpus \u003d instance_info[\u0027vcpus\u0027]"},{"line_number":318,"context_line":"            memory_mb_used \u003d memory_mb \u003d instance_info[\u0027memory_mb\u0027]"},{"line_number":319,"context_line":"            local_gb_used \u003d local_gb \u003d instance_info[\u0027local_gb\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_b9245fb0","line":316,"range":{"start_line":314,"start_character":12,"end_line":316,"end_character":37},"updated":"2017-08-11 20:25:54.000000000","message":"This is key for the inventory reporting part in Placement when the node is consumed.","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8c9f15c338e2b1b2b500d7b358dfa0c7b2705922","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        # are available resources on the Node, but Ironic does not (because it"},{"line_number":323,"context_line":"        # is not in a usable state): https://launchpad.net/bugs/1503453"},{"line_number":324,"context_line":"        if self._node_resources_unavailable(node):"},{"line_number":325,"context_line":"            # The node\u0027s current state is such that it should not present any"},{"line_number":326,"context_line":"            # of its resources to Nova"},{"line_number":327,"context_line":"            vcpus \u003d 0"},{"line_number":328,"context_line":"            memory_mb \u003d 0"},{"line_number":329,"context_line":"            local_gb \u003d 0"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"        dic \u003d {"},{"line_number":332,"context_line":"            \u0027hypervisor_hostname\u0027: str(node.uuid),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_194feb6b","line":329,"range":{"start_line":325,"start_character":12,"end_line":329,"end_character":24},"updated":"2017-08-11 20:25:54.000000000","message":"Shouldn\u0027t present resources to nova as available, but that\u0027s not the same as having inventory. It\u0027s not available if it\u0027s all consumed / allocated by an instance (e.g. vcpus_used), from a Placement point of view.","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8c9f15c338e2b1b2b500d7b358dfa0c7b2705922","unresolved":false,"context_lines":[{"line_number":745,"context_line":"                # inventory accounting from the concept of a node being"},{"line_number":746,"context_line":"                # disabled or not. The two things don\u0027t really have anything"},{"line_number":747,"context_line":"                # to do with each other."},{"line_number":748,"context_line":"                return {}"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":"            # NOTE(dtantsur): ugly hack to make sure the placement engine does"},{"line_number":751,"context_line":"            # not see any free resources on this node. Essentially, make sure"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_f98ae767","line":748,"range":{"start_line":748,"start_character":16,"end_line":748,"end_character":25},"updated":"2017-08-11 20:25:54.000000000","message":"If you do this, you won\u0027t report the custom resource class, which is something you said you\u0027re doing in the commit message and the release note, right? Or am I misunderstanding?","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"66e7b5dfd11e830366207d3dd3945d685cc17060","unresolved":false,"context_lines":[{"line_number":784,"context_line":"                \u0027allocation_ratio\u0027: 1.0,"},{"line_number":785,"context_line":"            },"},{"line_number":786,"context_line":"        }"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"        rc_name \u003d info.get(\u0027resource_class\u0027)"},{"line_number":789,"context_line":"        if rc_name is not None:"},{"line_number":790,"context_line":"            # TODO(jaypipes): Raise an exception in Queens if Ironic doesn\u0027t"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_c543be6b","line":787,"updated":"2017-08-11 18:29:15.000000000","message":"Aaaahhh! Unrelated whitespace change!!!\n\n:-P","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8c9f15c338e2b1b2b500d7b358dfa0c7b2705922","unresolved":false,"context_lines":[{"line_number":784,"context_line":"                \u0027allocation_ratio\u0027: 1.0,"},{"line_number":785,"context_line":"            },"},{"line_number":786,"context_line":"        }"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"        rc_name \u003d info.get(\u0027resource_class\u0027)"},{"line_number":789,"context_line":"        if rc_name is not None:"},{"line_number":790,"context_line":"            # TODO(jaypipes): Raise an exception in Queens if Ironic doesn\u0027t"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_996bdbb5","line":787,"in_reply_to":"9f436f4f_c543be6b","updated":"2017-08-11 20:25:54.000000000","message":"At least he\u0027s not using 8 gd spaces, ED.","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0d347b00075d43039edae72b9616e0e8f1411eb6","unresolved":false,"context_lines":[{"line_number":738,"context_line":"        # and DISK_GB resource classes in early Queens when Ironic nodes will"},{"line_number":739,"context_line":"        # *always* return the custom resource class that represents the"},{"line_number":740,"context_line":"        # baremetal node class in an atomic, singular unit."},{"line_number":741,"context_line":"        if info[\u0027vcpus\u0027] \u003d\u003d 0:"},{"line_number":742,"context_line":"            if info[\u0027vcpus_used\u0027] \u003d\u003d 0:"},{"line_number":743,"context_line":"                # NOTE(jaypipes): The driver can return 0-valued vcpus when the"},{"line_number":744,"context_line":"                # node is \"disabled\".  In the future, we should detach"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_aaa2a3ac","line":741,"updated":"2017-08-14 14:10:41.000000000","message":"This implies the node is disabled right?","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b97dc7bb4dcc92e21a30a6d3c838dbd5e38a3d88","unresolved":false,"context_lines":[{"line_number":738,"context_line":"        # and DISK_GB resource classes in early Queens when Ironic nodes will"},{"line_number":739,"context_line":"        # *always* return the custom resource class that represents the"},{"line_number":740,"context_line":"        # baremetal node class in an atomic, singular unit."},{"line_number":741,"context_line":"        if info[\u0027vcpus\u0027] \u003d\u003d 0:"},{"line_number":742,"context_line":"            if info[\u0027vcpus_used\u0027] \u003d\u003d 0:"},{"line_number":743,"context_line":"                # NOTE(jaypipes): The driver can return 0-valued vcpus when the"},{"line_number":744,"context_line":"                # node is \"disabled\".  In the future, we should detach"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_f04c1ac9","line":741,"in_reply_to":"9f436f4f_0a5e4f43","updated":"2017-08-14 15:13:53.000000000","message":"Yep, we treat occupied nodes as unavailable.","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"52d564fe3d455a3b4ba76717f73bd2d77b0bcf48","unresolved":false,"context_lines":[{"line_number":738,"context_line":"        # and DISK_GB resource classes in early Queens when Ironic nodes will"},{"line_number":739,"context_line":"        # *always* return the custom resource class that represents the"},{"line_number":740,"context_line":"        # baremetal node class in an atomic, singular unit."},{"line_number":741,"context_line":"        if info[\u0027vcpus\u0027] \u003d\u003d 0:"},{"line_number":742,"context_line":"            if info[\u0027vcpus_used\u0027] \u003d\u003d 0:"},{"line_number":743,"context_line":"                # NOTE(jaypipes): The driver can return 0-valued vcpus when the"},{"line_number":744,"context_line":"                # node is \"disabled\".  In the future, we should detach"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_eafaeb40","line":741,"in_reply_to":"9f436f4f_aaa2a3ac","updated":"2017-08-14 14:16:14.000000000","message":"Not available for any reasons, not only disabled.","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6793f707269753df684026a6ed84c56a81264bd2","unresolved":false,"context_lines":[{"line_number":738,"context_line":"        # and DISK_GB resource classes in early Queens when Ironic nodes will"},{"line_number":739,"context_line":"        # *always* return the custom resource class that represents the"},{"line_number":740,"context_line":"        # baremetal node class in an atomic, singular unit."},{"line_number":741,"context_line":"        if info[\u0027vcpus\u0027] \u003d\u003d 0:"},{"line_number":742,"context_line":"            if info[\u0027vcpus_used\u0027] \u003d\u003d 0:"},{"line_number":743,"context_line":"                # NOTE(jaypipes): The driver can return 0-valued vcpus when the"},{"line_number":744,"context_line":"                # node is \"disabled\".  In the future, we should detach"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_0a5e4f43","line":741,"in_reply_to":"9f436f4f_eafaeb40","updated":"2017-08-14 14:25:31.000000000","message":"Meaning it\u0027s not available even if an instance is booted on it?","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"f65875462ac6ba29a0a17087f76c9ea762634ce2","unresolved":false,"context_lines":[{"line_number":751,"context_line":"                          \u0027%(power)s and maintenance is %(maint)s.\u0027,"},{"line_number":752,"context_line":"                          {\u0027node\u0027: node.uuid, \u0027prov\u0027: node.provision_state,"},{"line_number":753,"context_line":"                           \u0027power\u0027: node.power_state,"},{"line_number":754,"context_line":"                           \u0027maint\u0027: node.maintenance})"},{"line_number":755,"context_line":"                return {}"},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"            # NOTE(dtantsur): we report the whole inventory for both available"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_9e29658b","line":754,"updated":"2017-08-14 10:59:26.000000000","message":"good idea","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"50fb66ddd0caf415f3fe2601d4e224fd93edf7b7","unresolved":false,"context_lines":[{"line_number":761,"context_line":"            # instance_info (i.e. from flavor). This is to make sure that"},{"line_number":762,"context_line":"            # the placement engine does not see the difference between"},{"line_number":763,"context_line":"            # the available and the consumed resources as free. It may be"},{"line_number":764,"context_line":"            # the case, for example, when the exact filters are not used."},{"line_number":765,"context_line":"            vcpus \u003d info[\u0027vcpus_used\u0027]"},{"line_number":766,"context_line":"            memory \u003d info[\u0027memory_mb_used\u0027]"},{"line_number":767,"context_line":"            disk \u003d info[\u0027local_gb_used\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_847a33ee","line":764,"updated":"2017-08-14 15:43:46.000000000","message":"The above comment (and the use of the _used stuff here) doesn\u0027t make sense to me. Inventory should not have anything to do with usage. Usage is a totally separate thing from inventory...","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0d347b00075d43039edae72b9616e0e8f1411eb6","unresolved":false,"context_lines":[{"line_number":764,"context_line":"            # the case, for example, when the exact filters are not used."},{"line_number":765,"context_line":"            vcpus \u003d info[\u0027vcpus_used\u0027]"},{"line_number":766,"context_line":"            memory \u003d info[\u0027memory_mb_used\u0027]"},{"line_number":767,"context_line":"            disk \u003d info[\u0027local_gb_used\u0027]"},{"line_number":768,"context_line":"        else:"},{"line_number":769,"context_line":"            vcpus \u003d info[\u0027vcpus\u0027]"},{"line_number":770,"context_line":"            memory \u003d info[\u0027memory_mb\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_6aa83b8b","line":767,"updated":"2017-08-14 14:10:41.000000000","message":"But these lines imply the node has an instance booted on it.","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0d347b00075d43039edae72b9616e0e8f1411eb6","unresolved":false,"context_lines":[{"line_number":768,"context_line":"        else:"},{"line_number":769,"context_line":"            vcpus \u003d info[\u0027vcpus\u0027]"},{"line_number":770,"context_line":"            memory \u003d info[\u0027memory_mb\u0027]"},{"line_number":771,"context_line":"            disk \u003d info[\u0027local_gb\u0027]"},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"        result \u003d {"},{"line_number":774,"context_line":"            obj_fields.ResourceClass.VCPU: {"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_4a869715","line":771,"updated":"2017-08-14 14:10:41.000000000","message":"Unless I\u0027m missing something, it seems like we\u0027ll still be reporting vcpus instead of vcpus_used if a node is not disabled and has an instance on it. Isn\u0027t the point of this patch to make it report vcpus_used as the inventory whenever an instance is booted there?","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"50fb66ddd0caf415f3fe2601d4e224fd93edf7b7","unresolved":false,"context_lines":[{"line_number":768,"context_line":"        else:"},{"line_number":769,"context_line":"            vcpus \u003d info[\u0027vcpus\u0027]"},{"line_number":770,"context_line":"            memory \u003d info[\u0027memory_mb\u0027]"},{"line_number":771,"context_line":"            disk \u003d info[\u0027local_gb\u0027]"},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"        result \u003d {"},{"line_number":774,"context_line":"            obj_fields.ResourceClass.VCPU: {"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_c4e15b9d","line":771,"in_reply_to":"9f436f4f_4a869715","updated":"2017-08-14 15:43:46.000000000","message":"See above. usage !\u003d inventory and I think the most appropriate thing at this point is to remove all of the conditionals in the ironic driver around checking whether vcpus is 0 or not. Also, remove from the ironic driver the checks around node \"availability\" from get_inventory(). The two concepts of inventory management and node state are totally different, as I noted in that code comment above on line 747.","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0d347b00075d43039edae72b9616e0e8f1411eb6","unresolved":false,"context_lines":[{"line_number":796,"context_line":"                \u0027allocation_ratio\u0027: 1.0,"},{"line_number":797,"context_line":"            },"},{"line_number":798,"context_line":"        }"},{"line_number":799,"context_line":""},{"line_number":800,"context_line":"        rc_name \u003d info.get(\u0027resource_class\u0027)"},{"line_number":801,"context_line":"        if rc_name is not None:"},{"line_number":802,"context_line":"            # TODO(jaypipes): Raise an exception in Queens if Ironic doesn\u0027t"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_4a2a172c","line":799,"updated":"2017-08-14 14:10:41.000000000","message":"Whitespace damage.","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"52d564fe3d455a3b4ba76717f73bd2d77b0bcf48","unresolved":false,"context_lines":[{"line_number":796,"context_line":"                \u0027allocation_ratio\u0027: 1.0,"},{"line_number":797,"context_line":"            },"},{"line_number":798,"context_line":"        }"},{"line_number":799,"context_line":""},{"line_number":800,"context_line":"        rc_name \u003d info.get(\u0027resource_class\u0027)"},{"line_number":801,"context_line":"        if rc_name is not None:"},{"line_number":802,"context_line":"            # TODO(jaypipes): Raise an exception in Queens if Ironic doesn\u0027t"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_8a9b5f16","line":799,"in_reply_to":"9f436f4f_4a2a172c","updated":"2017-08-14 14:16:14.000000000","message":"Bad me :(","commit_id":"14249d24f8e34e1debe955f4f4db3e45903063ee"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"98bd8d25d0e8567dc9c73ae4ccae18e69d67c90f","unresolved":false,"context_lines":[{"line_number":191,"context_line":"                node_obj.power_state in bad_power_states or"},{"line_number":192,"context_line":"                node_obj.provision_state not in good_provision_states or"},{"line_number":193,"context_line":"                (node_obj.provision_state in good_provision_states and"},{"line_number":194,"context_line":"                 node_obj.instance_uuid is not None))"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def _node_resources_used(self, node_obj):"},{"line_number":197,"context_line":"        \"\"\"Determine whether the node\u0027s resources are currently used."}],"source_content_type":"text/x-python","patch_set":6,"id":"9f436f4f_77d92820","line":194,"range":{"start_line":194,"start_character":17,"end_line":194,"end_character":51},"updated":"2017-08-15 11:28:23.000000000","message":"seems like this can be removed now because of elif?","commit_id":"b8286a4d3c98d1f77ca1f69ae33589ca20b16f10"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f9f9bb431dbe2aa37ee615c0711f41e4a0fe34f5","unresolved":false,"context_lines":[{"line_number":191,"context_line":"                node_obj.power_state in bad_power_states or"},{"line_number":192,"context_line":"                node_obj.provision_state not in good_provision_states or"},{"line_number":193,"context_line":"                (node_obj.provision_state in good_provision_states and"},{"line_number":194,"context_line":"                 node_obj.instance_uuid is not None))"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def _node_resources_used(self, node_obj):"},{"line_number":197,"context_line":"        \"\"\"Determine whether the node\u0027s resources are currently used."}],"source_content_type":"text/x-python","patch_set":6,"id":"9f436f4f_1769bcf7","line":194,"range":{"start_line":194,"start_character":17,"end_line":194,"end_character":51},"in_reply_to":"9f436f4f_77d92820","updated":"2017-08-15 11:34:03.000000000","message":"Done","commit_id":"b8286a4d3c98d1f77ca1f69ae33589ca20b16f10"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"ade8f2f2b0c4f1afe2e3ddfd041f7f3b46e03725","unresolved":false,"context_lines":[{"line_number":310,"context_line":"            vcpus_used \u003d vcpus"},{"line_number":311,"context_line":"            memory_mb_used \u003d memory_mb"},{"line_number":312,"context_line":"            local_gb_used \u003d local_gb"},{"line_number":313,"context_line":"        # Always checking allows us to catch the case where Nova thinks there"},{"line_number":314,"context_line":"        # are available resources on the Node, but Ironic does not (because it"},{"line_number":315,"context_line":"        # is not in a usable state): https://launchpad.net/bugs/1503453"},{"line_number":316,"context_line":"        elif self._node_resources_unavailable(node):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f436f4f_05df393a","line":313,"range":{"start_line":313,"start_character":8,"end_line":313,"end_character":32},"updated":"2017-08-15 19:49:48.000000000","message":"this comment is not correct anymore as we not always perform a check.","commit_id":"9ed692bf8c84e0a702536101cd6cb084d33e1c26"}],"releasenotes/notes/fix-ironic-inventory-d565c77af83c710d.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8c9f15c338e2b1b2b500d7b358dfa0c7b2705922","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ironic virt driver no longer reports an empty inventory for bare metal"},{"line_number":5,"context_line":"    nodes that are already in use. Instead:"},{"line_number":6,"context_line":"    * the consumed VCPU/memory/disk amount is reported as total"},{"line_number":7,"context_line":"    * the custom resource class is reported as it is, if present"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f436f4f_395e2f12","line":4,"range":{"start_line":4,"start_character":54,"end_line":4,"end_character":63},"updated":"2017-08-11 20:25:54.000000000","message":"inventory to Placement","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"510427dcbc698f8fd853ae08c09b8c439b0e8ef1","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ironic virt driver no longer reports an empty inventory for bare metal"},{"line_number":5,"context_line":"    nodes that are already in use. Instead:"},{"line_number":6,"context_line":"    * the consumed VCPU/memory/disk amount is reported as total"},{"line_number":7,"context_line":"    * the custom resource class is reported as it is, if present"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f436f4f_e89b3cc6","line":6,"range":{"start_line":5,"start_character":4,"end_line":6,"end_character":13},"updated":"2017-08-11 15:38:42.000000000","message":"need to have an empty line before staring the list","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bfd265e55ea32ee2910cd00d39df29961858e29d","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ironic virt driver no longer reports an empty inventory for bare metal"},{"line_number":5,"context_line":"    nodes that are already in use. Instead:"},{"line_number":6,"context_line":"    * the consumed VCPU/memory/disk amount is reported as total"},{"line_number":7,"context_line":"    * the custom resource class is reported as it is, if present"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f436f4f_0d2a128f","line":6,"updated":"2017-08-11 15:37:12.000000000","message":"this list is rendered incorrectly http://docs-draft.openstack.org/64/492964/4/check/gate-nova-releasenotes/c987e6f//releasenotes/build/html/unreleased.html","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"65866369de2a09c21103f8cf96398e3d902f9176","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ironic virt driver no longer reports an empty inventory for bare metal"},{"line_number":5,"context_line":"    nodes that are already in use. Instead:"},{"line_number":6,"context_line":"    * the consumed VCPU/memory/disk amount is reported as total"},{"line_number":7,"context_line":"    * the custom resource class is reported as it is, if present"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f436f4f_8881504d","line":6,"range":{"start_line":5,"start_character":4,"end_line":6,"end_character":13},"in_reply_to":"9f436f4f_e89b3cc6","updated":"2017-08-11 15:39:33.000000000","message":"right, I\u0027ll wait for Jenkins before fixing though..","commit_id":"d8564cb9447e9316473e3e7fe1963d7ece5a1169"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"98bd8d25d0e8567dc9c73ae4ccae18e69d67c90f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ironic virt driver no longer reports an empty inventory for bare metal"},{"line_number":5,"context_line":"    nodes that are already in use. Instead the custom resource class, VCPU,"},{"line_number":6,"context_line":"    memory and disk are reported as they are configured on the node."},{"line_number":7,"context_line":"issues:"},{"line_number":8,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9f436f4f_371720a7","line":5,"range":{"start_line":5,"start_character":15,"end_line":5,"end_character":33},"updated":"2017-08-15 11:28:23.000000000","message":"have instances on them?","commit_id":"b8286a4d3c98d1f77ca1f69ae33589ca20b16f10"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f9f9bb431dbe2aa37ee615c0711f41e4a0fe34f5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ironic virt driver no longer reports an empty inventory for bare metal"},{"line_number":5,"context_line":"    nodes that are already in use. Instead the custom resource class, VCPU,"},{"line_number":6,"context_line":"    memory and disk are reported as they are configured on the node."},{"line_number":7,"context_line":"issues:"},{"line_number":8,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9f436f4f_d715744a","line":5,"range":{"start_line":5,"start_character":15,"end_line":5,"end_character":33},"in_reply_to":"9f436f4f_371720a7","updated":"2017-08-15 11:34:03.000000000","message":"Done","commit_id":"b8286a4d3c98d1f77ca1f69ae33589ca20b16f10"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"98bd8d25d0e8567dc9c73ae4ccae18e69d67c90f","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    memory and disk are reported as they are configured on the node."},{"line_number":7,"context_line":"issues:"},{"line_number":8,"context_line":"  - |"},{"line_number":9,"context_line":"    Do to the changes in scheduling of bare metal nodes, additional resources"},{"line_number":10,"context_line":"    may be reported as free to Placement. This happens in two cases:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    * An instance is deployed with a flavor smaller than a node (only possible"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9f436f4f_d7b9f478","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":6},"updated":"2017-08-15 11:28:23.000000000","message":"Due","commit_id":"b8286a4d3c98d1f77ca1f69ae33589ca20b16f10"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f9f9bb431dbe2aa37ee615c0711f41e4a0fe34f5","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    memory and disk are reported as they are configured on the node."},{"line_number":7,"context_line":"issues:"},{"line_number":8,"context_line":"  - |"},{"line_number":9,"context_line":"    Do to the changes in scheduling of bare metal nodes, additional resources"},{"line_number":10,"context_line":"    may be reported as free to Placement. This happens in two cases:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    * An instance is deployed with a flavor smaller than a node (only possible"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9f436f4f_b710b058","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":6},"in_reply_to":"9f436f4f_d7b9f478","updated":"2017-08-15 11:34:03.000000000","message":"Done","commit_id":"b8286a4d3c98d1f77ca1f69ae33589ca20b16f10"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"98bd8d25d0e8567dc9c73ae4ccae18e69d67c90f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    retry."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    The recommended work around is to assign a resource class to all ironic"},{"line_number":22,"context_line":"    nodes, and use it for scheduling bare metal instances."},{"line_number":23,"context_line":"deprecations:"},{"line_number":24,"context_line":"  - |"},{"line_number":25,"context_line":"    Scheduling bare metal (ironic) instances using standard resource classes"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9f436f4f_b741d0ab","line":22,"range":{"start_line":22,"start_character":26,"end_line":22,"end_character":36},"updated":"2017-08-15 11:28:23.000000000","message":"scheduling of?","commit_id":"b8286a4d3c98d1f77ca1f69ae33589ca20b16f10"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f9f9bb431dbe2aa37ee615c0711f41e4a0fe34f5","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    retry."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    The recommended work around is to assign a resource class to all ironic"},{"line_number":22,"context_line":"    nodes, and use it for scheduling bare metal instances."},{"line_number":23,"context_line":"deprecations:"},{"line_number":24,"context_line":"  - |"},{"line_number":25,"context_line":"    Scheduling bare metal (ironic) instances using standard resource classes"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9f436f4f_57018405","line":22,"range":{"start_line":22,"start_character":26,"end_line":22,"end_character":36},"in_reply_to":"9f436f4f_b741d0ab","updated":"2017-08-15 11:34:03.000000000","message":"Done","commit_id":"b8286a4d3c98d1f77ca1f69ae33589ca20b16f10"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7ad730f5521baf1fe6d6b7f5a45f0f73a6b49f74","unresolved":false,"context_lines":[{"line_number":13,"context_line":"      when exact filters are not used)"},{"line_number":14,"context_line":"    * Node properties were modified in ironic for a deployed nodes"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    When such instance was deployed without using a custom resources class,"},{"line_number":17,"context_line":"    it is possible for the scheduler to try deploying another instances on"},{"line_number":18,"context_line":"    the same node. It will cause a failure in the compute and a scheduling"},{"line_number":19,"context_line":"    retry."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9f436f4f_fd129761","line":16,"range":{"start_line":16,"start_character":14,"end_line":16,"end_character":36},"updated":"2017-08-15 12:55:40.000000000","message":"s/instance was deployed/instances were deployed/","commit_id":"724e98d23b51366f547e2e15279483a259c6b31b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7ad730f5521baf1fe6d6b7f5a45f0f73a6b49f74","unresolved":false,"context_lines":[{"line_number":13,"context_line":"      when exact filters are not used)"},{"line_number":14,"context_line":"    * Node properties were modified in ironic for a deployed nodes"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    When such instance was deployed without using a custom resources class,"},{"line_number":17,"context_line":"    it is possible for the scheduler to try deploying another instances on"},{"line_number":18,"context_line":"    the same node. It will cause a failure in the compute and a scheduling"},{"line_number":19,"context_line":"    retry."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9f436f4f_dd15934a","line":16,"range":{"start_line":16,"start_character":59,"end_line":16,"end_character":68},"updated":"2017-08-15 12:55:40.000000000","message":"s/resources/resource/","commit_id":"724e98d23b51366f547e2e15279483a259c6b31b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e15c86ef2e3146eb90b1c19dedff36a50be4a423","unresolved":false,"context_lines":[{"line_number":13,"context_line":"      when exact filters are not used)"},{"line_number":14,"context_line":"    * Node properties were modified in ironic for a deployed nodes"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    When such instance was deployed without using a custom resources class,"},{"line_number":17,"context_line":"    it is possible for the scheduler to try deploying another instances on"},{"line_number":18,"context_line":"    the same node. It will cause a failure in the compute and a scheduling"},{"line_number":19,"context_line":"    retry."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9f436f4f_40089cd8","line":16,"range":{"start_line":16,"start_character":14,"end_line":16,"end_character":36},"in_reply_to":"9f436f4f_fd129761","updated":"2017-08-15 13:05:18.000000000","message":"Done","commit_id":"724e98d23b51366f547e2e15279483a259c6b31b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7ad730f5521baf1fe6d6b7f5a45f0f73a6b49f74","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    * Node properties were modified in ironic for a deployed nodes"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    When such instance was deployed without using a custom resources class,"},{"line_number":17,"context_line":"    it is possible for the scheduler to try deploying another instances on"},{"line_number":18,"context_line":"    the same node. It will cause a failure in the compute and a scheduling"},{"line_number":19,"context_line":"    retry."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9f436f4f_bd108f58","line":17,"range":{"start_line":17,"start_character":62,"end_line":17,"end_character":71},"updated":"2017-08-15 12:55:40.000000000","message":"s/instances/instance/","commit_id":"724e98d23b51366f547e2e15279483a259c6b31b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e15c86ef2e3146eb90b1c19dedff36a50be4a423","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    * Node properties were modified in ironic for a deployed nodes"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    When such instance was deployed without using a custom resources class,"},{"line_number":17,"context_line":"    it is possible for the scheduler to try deploying another instances on"},{"line_number":18,"context_line":"    the same node. It will cause a failure in the compute and a scheduling"},{"line_number":19,"context_line":"    retry."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9f436f4f_200b58d6","line":17,"range":{"start_line":17,"start_character":62,"end_line":17,"end_character":71},"in_reply_to":"9f436f4f_bd108f58","updated":"2017-08-15 13:05:18.000000000","message":"Done","commit_id":"724e98d23b51366f547e2e15279483a259c6b31b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7ad730f5521baf1fe6d6b7f5a45f0f73a6b49f74","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    retry."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    The recommended work around is to assign a resource class to all ironic"},{"line_number":22,"context_line":"    nodes, and use it for scheduling of bare metal instances."},{"line_number":23,"context_line":"deprecations:"},{"line_number":24,"context_line":"  - |"},{"line_number":25,"context_line":"    Scheduling bare metal (ironic) instances using standard resource classes"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9f436f4f_5d01a305","line":22,"range":{"start_line":22,"start_character":9,"end_line":22,"end_character":61},"updated":"2017-08-15 12:55:40.000000000","message":"I\u0027d just chop the last part of the above sentence. The solution is to ensure all Ironic nodes have a resource class assigned. Simple as that.","commit_id":"724e98d23b51366f547e2e15279483a259c6b31b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e15c86ef2e3146eb90b1c19dedff36a50be4a423","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    retry."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    The recommended work around is to assign a resource class to all ironic"},{"line_number":22,"context_line":"    nodes, and use it for scheduling of bare metal instances."},{"line_number":23,"context_line":"deprecations:"},{"line_number":24,"context_line":"  - |"},{"line_number":25,"context_line":"    Scheduling bare metal (ironic) instances using standard resource classes"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9f436f4f_4031bca2","line":22,"range":{"start_line":22,"start_character":9,"end_line":22,"end_character":61},"in_reply_to":"9f436f4f_5d01a305","updated":"2017-08-15 13:05:18.000000000","message":"If you don\u0027t adjust your flavors, you will still end up with VCPU, etc used for scheduling. If you don\u0027t use the exact filters, you may be screwed, see problems above","commit_id":"724e98d23b51366f547e2e15279483a259c6b31b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7ad730f5521baf1fe6d6b7f5a45f0f73a6b49f74","unresolved":false,"context_lines":[{"line_number":23,"context_line":"deprecations:"},{"line_number":24,"context_line":"  - |"},{"line_number":25,"context_line":"    Scheduling bare metal (ironic) instances using standard resource classes"},{"line_number":26,"context_line":"    (VCPU, memory, disk) is deprecated and will become impossible in Queens."},{"line_number":27,"context_line":"    Custom resource classes should be used instead. Please refer to the"},{"line_number":28,"context_line":"    `ironic documentation"},{"line_number":29,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/install/configure-nova-flavors.html#scheduling-based-on-resource-classes\u003e`_"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9f436f4f_c015ac41","line":26,"range":{"start_line":26,"start_character":48,"end_line":26,"end_character":65},"updated":"2017-08-15 12:55:40.000000000","message":"s/become impossible/no longer be supported/","commit_id":"724e98d23b51366f547e2e15279483a259c6b31b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e15c86ef2e3146eb90b1c19dedff36a50be4a423","unresolved":false,"context_lines":[{"line_number":23,"context_line":"deprecations:"},{"line_number":24,"context_line":"  - |"},{"line_number":25,"context_line":"    Scheduling bare metal (ironic) instances using standard resource classes"},{"line_number":26,"context_line":"    (VCPU, memory, disk) is deprecated and will become impossible in Queens."},{"line_number":27,"context_line":"    Custom resource classes should be used instead. Please refer to the"},{"line_number":28,"context_line":"    `ironic documentation"},{"line_number":29,"context_line":"    \u003chttps://docs.openstack.org/ironic/latest/install/configure-nova-flavors.html#scheduling-based-on-resource-classes\u003e`_"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9f436f4f_c0248c60","line":26,"range":{"start_line":26,"start_character":48,"end_line":26,"end_character":65},"in_reply_to":"9f436f4f_c015ac41","updated":"2017-08-15 13:05:18.000000000","message":"Done","commit_id":"724e98d23b51366f547e2e15279483a259c6b31b"}]}
