)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71312040919860ccdd259d708c743d1425f0e3cb","unresolved":true,"context_lines":[{"line_number":27,"context_line":"The weigher is disabled by default (multiplier\u003d0.0) and can be enabled"},{"line_number":28,"context_line":"by setting resource_provider_weight_multiplier to a non-zero value."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"TODO: docs and release note"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Partial-Implements: blueprint cpu-performance-service-level"},{"line_number":33,"context_line":"Assisted-By: Cursor (Claude Sonnet 4)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"073382bc_755eb2d8","line":30,"updated":"2025-06-23 18:13:13.000000000","message":"i also need to turn this on in one of the devstack jobs to actully test the non disabled case....","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dcbcf22a9d381bfb309258f88b4e3745e854b337","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0e6fb6a1_e8d69e12","updated":"2025-06-23 16:46:47.000000000","message":"this is an early first draft.\n\nsome of this was written with ai much of it was rewritten by me but im considerign this a v0 draft i have more refinement i want to do to this espically in the testing area before this is ready for reivew.\n\nim mostly pushing this for some early ci feedback adn to have this backup off my laptool and to allow me to review this properly via gerrit ui to see what should be changed.","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a67df9b27cf25cb784021b0b326212d989da6d9b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8b0472dc_4537b8bc","updated":"2025-10-08 19:17:24.000000000","message":"this is just a rebase","commit_id":"4d3c49f07bdbbc1c6e43cbac82cd0226a291c271"}],"nova/conf/scheduler.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"986a10d91e4e4b16d9418daef413c25ce24dcb15","unresolved":true,"context_lines":[{"line_number":632,"context_line":"* ``[filter_scheduler] resource_provider_resources``"},{"line_number":633,"context_line":"* ``[filter_scheduler] resource_provider_traits``"},{"line_number":634,"context_line":"\"\"\"),"},{"line_number":635,"context_line":"    cfg.ListOpt(\"resource_provider_resources\","},{"line_number":636,"context_line":"        default\u003d[],"},{"line_number":637,"context_line":"        help\u003d\"\"\""},{"line_number":638,"context_line":"Resource classes to consider in ResourceProviderWeigher."}],"source_content_type":"text/x-python","patch_set":1,"id":"026fa900_0dd077cf","line":635,"range":{"start_line":635,"start_character":8,"end_line":635,"end_character":15},"updated":"2025-06-26 18:18:17.000000000","message":"i really want thses to eb sets not list\ni have some funky ness in my poc to handle that conversion later.\n\ni think oslo has a setOpt but this is one of my todos to confirm.","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"}],"nova/scheduler/manager.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cb5f48dfc74bf20f467764bd2df47285b3d09022","unresolved":true,"context_lines":[{"line_number":354,"context_line":"                    alloc_reqs_by_rp_uuid[host.uuid])"},{"line_number":355,"context_line":"                yield host"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        def hosts_with_provider_summaries(hosts_gen):"},{"line_number":358,"context_line":"            \"\"\"Extend the HostState objects returned by the generator with"},{"line_number":359,"context_line":"            the provider summaries for that host"},{"line_number":360,"context_line":"            \"\"\""},{"line_number":361,"context_line":"            for host in hosts_gen:"},{"line_number":362,"context_line":"                if host.uuid in provider_summaries:"},{"line_number":363,"context_line":"                    host.provider_summaries \u003d copy.deepcopy("},{"line_number":364,"context_line":"                        provider_summaries[host.uuid])"},{"line_number":365,"context_line":"                yield host"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        # Note: remember, we are using a generator-iterator here. So only"},{"line_number":368,"context_line":"        # traverse this list once. This can bite you if the hosts"}],"source_content_type":"text/x-python","patch_set":1,"id":"b5f36003_7f087c6b","line":365,"range":{"start_line":357,"start_character":8,"end_line":365,"end_character":26},"updated":"2025-06-23 16:55:22.000000000","message":"im not sure this is correct.\n\ni have a couple of other things ahead of this in my devstack env to test so i woudl not be surpised if this does not work outside the unit/fucnitonal tests.","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6890673280c4a3f9139956389f43abfbade54251","unresolved":true,"context_lines":[{"line_number":366,"context_line":"            # single view of the provider tree for this host by finding all"},{"line_number":367,"context_line":"            # providers that have a root_provider_uuid that is the host\u0027s own"},{"line_number":368,"context_line":"            # provider UUID."},{"line_number":369,"context_line":"            # Example provider_summaries:"},{"line_number":370,"context_line":"            # {"},{"line_number":371,"context_line":"            #   \"allocation_requests\": ["},{"line_number":372,"context_line":"            #     {"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f938e6e_06838428","line":369,"range":{"start_line":369,"start_character":22,"end_line":369,"end_character":40},"updated":"2025-10-08 23:21:22.000000000","message":"actully this is the allcoation candates respeonce.","commit_id":"3fdf5f913399c4912910dbc709b9d1801a2f2504"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b75e16ea4db6fc4935c0d15181e4c75f26e48a8","unresolved":false,"context_lines":[{"line_number":366,"context_line":"            # single view of the provider tree for this host by finding all"},{"line_number":367,"context_line":"            # providers that have a root_provider_uuid that is the host\u0027s own"},{"line_number":368,"context_line":"            # provider UUID."},{"line_number":369,"context_line":"            # Example provider_summaries:"},{"line_number":370,"context_line":"            # {"},{"line_number":371,"context_line":"            #   \"allocation_requests\": ["},{"line_number":372,"context_line":"            #     {"}],"source_content_type":"text/x-python","patch_set":4,"id":"8ae1954d_8be184f4","line":369,"range":{"start_line":369,"start_character":22,"end_line":369,"end_character":40},"in_reply_to":"5f938e6e_06838428","updated":"2025-10-08 23:26:47.000000000","message":"Done","commit_id":"3fdf5f913399c4912910dbc709b9d1801a2f2504"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6890673280c4a3f9139956389f43abfbade54251","unresolved":true,"context_lines":[{"line_number":400,"context_line":"            #       }"},{"line_number":401,"context_line":"            #     }"},{"line_number":402,"context_line":"            #   ],"},{"line_number":403,"context_line":"            #   \"provider_summaries\": {"},{"line_number":404,"context_line":"            #     \"be99627d-e848-44ef-8341-683e2e557c58\": {"},{"line_number":405,"context_line":"            #       \"resources\": {},"},{"line_number":406,"context_line":"            #       \"traits\": ["}],"source_content_type":"text/x-python","patch_set":4,"id":"88cbd7e9_e0bd12d8","line":403,"range":{"start_line":403,"start_character":17,"end_line":403,"end_character":35},"updated":"2025-10-08 23:21:22.000000000","message":"this is what is stored in provider_summaries","commit_id":"3fdf5f913399c4912910dbc709b9d1801a2f2504"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b75e16ea4db6fc4935c0d15181e4c75f26e48a8","unresolved":false,"context_lines":[{"line_number":400,"context_line":"            #       }"},{"line_number":401,"context_line":"            #     }"},{"line_number":402,"context_line":"            #   ],"},{"line_number":403,"context_line":"            #   \"provider_summaries\": {"},{"line_number":404,"context_line":"            #     \"be99627d-e848-44ef-8341-683e2e557c58\": {"},{"line_number":405,"context_line":"            #       \"resources\": {},"},{"line_number":406,"context_line":"            #       \"traits\": ["}],"source_content_type":"text/x-python","patch_set":4,"id":"e92f0e99_0223dc69","line":403,"range":{"start_line":403,"start_character":17,"end_line":403,"end_character":35},"in_reply_to":"88cbd7e9_e0bd12d8","updated":"2025-10-08 23:26:47.000000000","message":"Done","commit_id":"3fdf5f913399c4912910dbc709b9d1801a2f2504"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b8e7d45c118707d47eb884e2887f532523043003","unresolved":true,"context_lines":[{"line_number":358,"context_line":"            \"\"\"Extend the HostState objects returned by the generator with"},{"line_number":359,"context_line":"            the provider summaries for that host"},{"line_number":360,"context_line":"            \"\"\""},{"line_number":361,"context_line":"            # FIXME(sean-k-mooney): This includes only the host\u0027s own provider"},{"line_number":362,"context_line":"            # and not any sharing providers (MISC_SHARES_VIA_AGGREGATE trait)"},{"line_number":363,"context_line":"            # that are associated via aggregates or any of the hosts child"},{"line_number":364,"context_line":"            # providers. the provider_summaries is a dict of provider UUIDs to"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad8efa8_9c596dad","line":361,"range":{"start_line":361,"start_character":12,"end_line":361,"end_character":78},"updated":"2025-10-14 16:47:03.000000000","message":"thinking about htis more i do not actually want to to do the flattening here\n\nthis woudl do a lot of copying and tree traversal for host that will be later elimated by filters.\n\nwhat i want to is make one copy of the provider tree and pass a refecne to that singel copy to all the host state objects.\n\nthen i want to do the flatteing in the weigher where it will only do that for the host that passed the filters.","commit_id":"1e657b2f01c57a17091335b491b9be466d4b1043"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b75e16ea4db6fc4935c0d15181e4c75f26e48a8","unresolved":true,"context_lines":[{"line_number":450,"context_line":"            # support scheduler filters filtering on allocation candidates."},{"line_number":451,"context_line":"            hosts \u003d hosts_with_alloc_reqs(hosts)"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        # provider_summaries is None when Placement API is not reachable"},{"line_number":454,"context_line":"        if provider_summaries is not None:"},{"line_number":455,"context_line":"            # wrap the generator to extend the HostState objects with the"},{"line_number":456,"context_line":"            # provider summaries for that given host. This is needed to"},{"line_number":457,"context_line":"            # support scheduler weighers analyzing provider trees."}],"source_content_type":"text/x-python","patch_set":5,"id":"1154bf19_1c977517","line":454,"range":{"start_line":453,"start_character":8,"end_line":454,"end_character":42},"updated":"2025-10-08 23:26:47.000000000","message":"this should never happen this was just form early debuging i think so this should be removed.","commit_id":"1e657b2f01c57a17091335b491b9be466d4b1043"}],"nova/scheduler/weights/resource_provider.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"986a10d91e4e4b16d9418daef413c25ce24dcb15","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self):"},{"line_number":42,"context_line":"        super(ResourceProviderWeigher, self).__init__()"},{"line_number":43,"context_line":"        self._parse_config()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _parse_config(self):"},{"line_number":46,"context_line":"        \"\"\"Parse configuration options.\"\"\""},{"line_number":47,"context_line":"        self.resource_classes \u003d set("},{"line_number":48,"context_line":"            CONF.filter_scheduler.resource_provider_resources)"},{"line_number":49,"context_line":"        self.traits \u003d set("},{"line_number":50,"context_line":"            CONF.filter_scheduler.resource_provider_traits)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def _filter_traits(self, traits: set[str]):"},{"line_number":53,"context_line":"        \"\"\"Filter traits based on the config.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"a0e533c5_95bdc8db","line":50,"range":{"start_line":43,"start_character":5,"end_line":50,"end_character":59},"updated":"2025-06-26 18:18:17.000000000","message":"this is the funkyness i was refering too.\n\ni did this because \n\nif i just do \n\nself.resource_classes \u003d set(CONF.filter_scheduler.resource_provider_resources)\n\nthe if i use self.flags in the unit tests\nbecause i intial the weihger object in setUp they are not updated.\n\nim sure there is a trivial way to do this better but i was time boxing the poc.","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"986a10d91e4e4b16d9418daef413c25ce24dcb15","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        return combined_score"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def _calculate_resource_score("},{"line_number":165,"context_line":"    self,"},{"line_number":166,"context_line":"    aggregated_resources,"},{"line_number":167,"context_line":"     requested_resources):"},{"line_number":168,"context_line":"        \"\"\"Calculate resource utilization score."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        params:"}],"source_content_type":"text/x-python","patch_set":1,"id":"86e99735_7dc5d867","line":167,"range":{"start_line":164,"start_character":0,"end_line":167,"end_character":25},"updated":"2025-06-26 18:18:17.000000000","message":"... pep8 is great but sometimes i whish is was a littel stricter.\n\nim definitely fixing this in the next verison.","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"225326ba620af0eaffd1499ef6a4678dc8c7cdd8","unresolved":true,"context_lines":[{"line_number":126,"context_line":"        LOG.debug(\u0027Provider summaries for host %s: %s\u0027,"},{"line_number":127,"context_line":"                  host_state.host, host_state.provider_summaries)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        # Flatten the provider summaries into a single view of the provider"},{"line_number":130,"context_line":"        # tree"},{"line_number":131,"context_line":"        provider_data: ty.Dict[str, ty.Any] \u003d {"},{"line_number":132,"context_line":"            \u0027resources\u0027: {}, \u0027traits\u0027: set()}"},{"line_number":133,"context_line":"        provider_resources \u003d host_state.provider_summaries[\u0027resources\u0027]"},{"line_number":134,"context_line":"        for resource_class, resource_info in provider_resources.items():"},{"line_number":135,"context_line":"            if resource_class not in provider_data[\u0027resources\u0027]:"},{"line_number":136,"context_line":"                provider_data[\u0027resources\u0027][resource_class] \u003d {"},{"line_number":137,"context_line":"                    \u0027capacity\u0027: 0, \u0027used\u0027: 0}"},{"line_number":138,"context_line":"            capacity \u003d resource_info.get(\u0027capacity\u0027, 0)"},{"line_number":139,"context_line":"            used \u003d resource_info.get(\u0027used\u0027, 0)"},{"line_number":140,"context_line":"            provider_data[\u0027resources\u0027][resource_class][\u0027capacity\u0027] +\u003d capacity"},{"line_number":141,"context_line":"            provider_data[\u0027resources\u0027][resource_class][\u0027used\u0027] +\u003d used"},{"line_number":142,"context_line":"        provider_traits \u003d host_state.provider_summaries.get(\u0027traits\u0027, set())"},{"line_number":143,"context_line":"        provider_data[\u0027traits\u0027].update(provider_traits)"},{"line_number":144,"context_line":"        # Convert set back to list for consistency"},{"line_number":145,"context_line":"        provider_data[\u0027traits\u0027] \u003d list(provider_data[\u0027traits\u0027])"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        # Aggregate resources"},{"line_number":148,"context_line":"        if provider_data and \u0027resources\u0027 in provider_data:"},{"line_number":149,"context_line":"            for resource_class, resource_info in provider_data[\u0027resources\u0027].items("},{"line_number":150,"context_line":"            ):"},{"line_number":151,"context_line":"                capacity \u003d resource_info.get(\u0027capacity\u0027, 0)"},{"line_number":152,"context_line":"                used \u003d resource_info.get(\u0027used\u0027, 0)"},{"line_number":153,"context_line":"                if resource_class not in aggregated_resources:"},{"line_number":154,"context_line":"                    aggregated_resources[resource_class] \u003d {"},{"line_number":155,"context_line":"                        \u0027capacity\u0027: 0, \u0027used\u0027: 0}"},{"line_number":156,"context_line":"                record \u003d aggregated_resources[resource_class]"},{"line_number":157,"context_line":"                record[\u0027capacity\u0027] +\u003d capacity"},{"line_number":158,"context_line":"                record[\u0027used\u0027] +\u003d used"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        # Aggregate traits"},{"line_number":161,"context_line":"        if provider_data and \u0027traits\u0027 in provider_data:"},{"line_number":162,"context_line":"            for trait in provider_data[\u0027traits\u0027]:"},{"line_number":163,"context_line":"                aggregated_traits.add(trait)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        # Apply configuration-based filtering after aggregation"},{"line_number":166,"context_line":"        aggregated_resources \u003d self._filter_resource_classes("}],"source_content_type":"text/x-python","patch_set":4,"id":"d82cfefd_5df6c75e","line":163,"range":{"start_line":129,"start_character":8,"end_line":163,"end_character":44},"updated":"2025-10-08 23:16:30.000000000","message":"i need to clean this up.the provdier tree flatting will happen in the manager when i adress teh fixme comment and this has a lot of reducnt code fome when i was tryign to reconsile the funcitonal test that only had a dict with resouces and traits and the unit test that hand a dict indext by provier uuid.","commit_id":"3fdf5f913399c4912910dbc709b9d1801a2f2504"}],"nova/tests/functional/test_resource_provider_weigher.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cb5f48dfc74bf20f467764bd2df47285b3d09022","unresolved":true,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":"Functional tests for ResourceProviderWeigher."},{"line_number":18,"context_line":"\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from nova.tests.functional import integrated_helpers"}],"source_content_type":"text/x-python","patch_set":1,"id":"9dc3f02c_af7ec6ac","line":17,"updated":"2025-06-23 16:55:22.000000000","message":"so i have spent some time working on the unit test but not the\nfuncitonal tests to this point.\n\nthese are pretty crap.\n\nthey do enable the new weigher and test that we can boot vms but that about it.\n\nthis need alot of work to actully test the functionaltiy of the weigher or should just be dropped. \n\nill proably build this out to be more useful but im like to put this on hold for a while\n\nespically since the spec is still up for review.","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"}],"nova/tests/unit/scheduler/test_manager.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cb5f48dfc74bf20f467764bd2df47285b3d09022","unresolved":true,"context_lines":[{"line_number":431,"context_line":"        expected_hosts \u003d [[objects.Selection.from_host_state(host_state)]]"},{"line_number":432,"context_line":"        mock_get_all_states.assert_called_once_with("},{"line_number":433,"context_line":"            ctx.elevated.return_value, spec_obj,"},{"line_number":434,"context_line":"            None)  # Use None instead of sentinel"},{"line_number":435,"context_line":"        mock_get_hosts.assert_called_once_with(spec_obj, all_host_states, 0)"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        self.assertEqual(len(selected_hosts), 1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"278cb116_90622045","line":434,"updated":"2025-06-23 16:55:22.000000000","message":"this is also somethign i need to revisit.","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cb5f48dfc74bf20f467764bd2df47285b3d09022","unresolved":true,"context_lines":[{"line_number":487,"context_line":"            allocation_candidates\u003d[],"},{"line_number":488,"context_line":"        )"},{"line_number":489,"context_line":"        # For legacy code path, use list since _legacy_find_hosts expects"},{"line_number":490,"context_line":"        # subscriptable"},{"line_number":491,"context_line":"        all_host_states \u003d [host_state]"},{"line_number":492,"context_line":"        mock_get_all_states.return_value \u003d all_host_states"},{"line_number":493,"context_line":"        mock_get_hosts.side_effect \u003d lambda spec_obj, hosts, num: list(hosts)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9089339d_d3199699","line":490,"updated":"2025-06-23 16:55:22.000000000","message":"i shoudl rever this.","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cb5f48dfc74bf20f467764bd2df47285b3d09022","unresolved":true,"context_lines":[{"line_number":1828,"context_line":"        host_manager.HostManager, \u0027_init_aggregates\u0027, new\u003dmock.Mock())"},{"line_number":1829,"context_line":"    def setUp(self):"},{"line_number":1830,"context_line":"        super().setUp()"},{"line_number":1831,"context_line":"        # Disable ResourceProviderWeigher to prevent it from affecting test"},{"line_number":1832,"context_line":"        # behavior"},{"line_number":1833,"context_line":"        self.flags(resource_provider_weight_multiplier\u003d0.0,"},{"line_number":1834,"context_line":"                   group\u003d\u0027filter_scheduler\u0027)"},{"line_number":1835,"context_line":"        self.context \u003d context.RequestContext(\u0027fake_user\u0027, \u0027fake_project\u0027)"},{"line_number":1836,"context_line":"        self.manager \u003d manager.SchedulerManager()"},{"line_number":1837,"context_line":"        self.manager.host_manager.weighers \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"098f1cbf_61428ba6","line":1834,"range":{"start_line":1831,"start_character":2,"end_line":1834,"end_character":44},"updated":"2025-06-23 16:55:22.000000000","message":"ah i mssed deleting this \n\nit is disabled by default this was not the issue with this test.","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b75e16ea4db6fc4935c0d15181e4c75f26e48a8","unresolved":true,"context_lines":[{"line_number":426,"context_line":"        instance_uuids \u003d [uuids.instance]"},{"line_number":427,"context_line":"        ctx \u003d mock.Mock()"},{"line_number":428,"context_line":"        selected_hosts \u003d self.manager._schedule(ctx, spec_obj, instance_uuids,"},{"line_number":429,"context_line":"                None, None)  # Use None instead of sentinel"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"        expected_hosts \u003d [[objects.Selection.from_host_state(host_state)]]"},{"line_number":432,"context_line":"        mock_get_all_states.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":5,"id":"48dfd28f_8de40733","line":429,"range":{"start_line":429,"start_character":28,"end_line":429,"end_character":59},"updated":"2025-10-08 23:26:47.000000000","message":"i need to revisit this as im not sure it scorect but i have not looked into it.","commit_id":"1e657b2f01c57a17091335b491b9be466d4b1043"}],"nova/tests/unit/scheduler/weights/test_resource_provider.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cb5f48dfc74bf20f467764bd2df47285b3d09022","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":"Tests for ResourceProviderWeigher."},{"line_number":18,"context_line":"\"\"\""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"a48572b4_d404d66b","line":16,"updated":"2025-06-23 16:55:22.000000000","message":"i put a much more effort in makeign these test useful edge cases\nto demonstrate the correct behaivor.","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"986a10d91e4e4b16d9418daef413c25ce24dcb15","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        self.flags(resource_provider_weight_multiplier\u003d1.0,"},{"line_number":39,"context_line":"                   group\u003d\u0027filter_scheduler\u0027)"},{"line_number":40,"context_line":"        self.weight_handler \u003d weights.HostWeightHandler()"},{"line_number":41,"context_line":"        self.weighers \u003d [resource_provider.ResourceProviderWeigher()]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def _get_weighed_host(self, hosts, request_spec):"},{"line_number":44,"context_line":"        \"\"\"Get the first weighed host from the list.\"\"\""},{"line_number":45,"context_line":"        return self.weight_handler.get_weighed_objects("}],"source_content_type":"text/x-python","patch_set":1,"id":"148e399b_a783c8fa","line":42,"range":{"start_line":41,"start_character":8,"end_line":42,"end_character":1},"updated":"2025-06-26 18:18:17.000000000","message":"so as i menteioned else where becasue i create the weigher here if i want to adjust the config option that im storing as sets ...","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"986a10d91e4e4b16d9418daef413c25ce24dcb15","unresolved":true,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    def test_resource_class_filtering(self):"},{"line_number":268,"context_line":"        \"\"\"Test that resource class filtering works correctly.\"\"\""},{"line_number":269,"context_line":"        self.flags(resource_provider_resources\u003d[\u0027VCPU_SHARES\u0027],"},{"line_number":270,"context_line":"                   group\u003d\u0027filter_scheduler\u0027)"},{"line_number":271,"context_line":"        # we need to parse the config to ensure the weigher has the correct"},{"line_number":272,"context_line":"        # resource classes and traits"},{"line_number":273,"context_line":"        self.weighers[0]._parse_config()"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        # Create host with fewer resource classes and less VCPU_SHARES capacity"},{"line_number":276,"context_line":"        host1 \u003d self._create_host_state(\u0027host1\u0027, \u0027node1\u0027, {"}],"source_content_type":"text/x-python","patch_set":1,"id":"b6c274c7_e7f63de6","line":273,"range":{"start_line":269,"start_character":0,"end_line":273,"end_character":40},"updated":"2025-06-26 18:18:17.000000000","message":"... i need to reparse them.\n\ni dont link this and im 99% i can jsut use setOpt or simialr to handel this properly in oslo.config.\n\nthis is 1 of many reasons why this is work in progress.\n\nit took over an hour to figure out why this was not workign as expected and i dont want to leave a foot gun like that in the code.\n\nwe expect  self.flags to be enough.","commit_id":"e38dbfd894db7c3841e407c3e995d11faa772745"}]}
