)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9b6eb8baebd6407b0e1dc4eb874238ead42ba8be","unresolved":false,"context_lines":[{"line_number":12,"context_line":"need to be built before the instance is currently written to the"},{"line_number":13,"context_line":"database in order to later insert a scheduling operation before writing"},{"line_number":14,"context_line":"the instance to the database."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I42afda9643e4c24c9a12ace8e88dd1a9c13aa121"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"fa69d971_a1d6b74c","line":15,"updated":"2016-01-06 17:35:44.000000000","message":"Should probably link this to bp cells-scheduling-interaction.","commit_id":"bd8ef3c55409fa37a58022ce7ef486f978090d11"}],"nova/api/openstack/compute/legacy_v2/servers.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"47d05c036ec1a0349c0b869ce81fbac228f43749","unresolved":false,"context_lines":[{"line_number":609,"context_line":"        scheduler_hints \u003d {}"},{"line_number":610,"context_line":"        if self.ext_mgr.is_loaded(\u0027OS-SCH-HNT\u0027):"},{"line_number":611,"context_line":"            scheduler_hints \u003d server_dict.get(\u0027scheduler_hints\u0027, {})"},{"line_number":612,"context_line":"        parse_az \u003d self.compute_api.parse_availability_zone"},{"line_number":613,"context_line":"        availability_zone, host, node \u003d parse_az(context, availability_zone)"},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"        check_server_group_quota \u003d self.ext_mgr.is_loaded("}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_56fd80af","line":612,"updated":"2016-01-11 13:54:04.000000000","message":"see, the problem I mentioned in https://review.openstack.org/#/c/254434/7/nova/api/openstack/compute/servers.py is also because you\u0027re duplicating the calls.\n\nAlso, since you\u0027re just duplicating, you forgot to provide \n\n  scheduler_hints \u003d create_kwargs.pop(\u0027scheduler_hints\u0027, None)\n\nbut I would really see that in the compute API module.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"915e06f2e9cc1f9ea0ccaae07d024eb252bfc4a7","unresolved":false,"context_lines":[{"line_number":609,"context_line":"        scheduler_hints \u003d {}"},{"line_number":610,"context_line":"        if self.ext_mgr.is_loaded(\u0027OS-SCH-HNT\u0027):"},{"line_number":611,"context_line":"            scheduler_hints \u003d server_dict.get(\u0027scheduler_hints\u0027, {})"},{"line_number":612,"context_line":"        parse_az \u003d self.compute_api.parse_availability_zone"},{"line_number":613,"context_line":"        availability_zone, host, node \u003d parse_az(context, availability_zone)"},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"        check_server_group_quota \u003d self.ext_mgr.is_loaded("}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_82cc8736","line":612,"in_reply_to":"da6ed579_ac48cb88","updated":"2016-01-12 15:35:09.000000000","message":"Correct, my bad.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"998aba54145e4845486c7f4afdd8c4cbe90120fe","unresolved":false,"context_lines":[{"line_number":609,"context_line":"        scheduler_hints \u003d {}"},{"line_number":610,"context_line":"        if self.ext_mgr.is_loaded(\u0027OS-SCH-HNT\u0027):"},{"line_number":611,"context_line":"            scheduler_hints \u003d server_dict.get(\u0027scheduler_hints\u0027, {})"},{"line_number":612,"context_line":"        parse_az \u003d self.compute_api.parse_availability_zone"},{"line_number":613,"context_line":"        availability_zone, host, node \u003d parse_az(context, availability_zone)"},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"        check_server_group_quota \u003d self.ext_mgr.is_loaded("}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_ac48cb88","line":612,"in_reply_to":"fa69d971_56fd80af","updated":"2016-01-11 22:44:14.000000000","message":"There\u0027s no create_kwargs here to pop scheduler_hints out of.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"47d05c036ec1a0349c0b869ce81fbac228f43749","unresolved":false,"context_lines":[{"line_number":643,"context_line":"                        auto_disk_config\u003dauto_disk_config,"},{"line_number":644,"context_line":"                        filter_properties\u003dfilter_properties,"},{"line_number":645,"context_line":"                        legacy_bdm\u003dlegacy_bdm,"},{"line_number":646,"context_line":"                        check_server_group_quota\u003dcheck_server_group_quota)"},{"line_number":647,"context_line":"        except (exception.QuotaError,"},{"line_number":648,"context_line":"                exception.PortLimitExceeded) as error:"},{"line_number":649,"context_line":"            raise exc.HTTPForbidden("}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_f6ba74e0","line":646,"updated":"2016-01-11 13:54:04.000000000","message":"yeah, see here you should just provide create_kwargs like we do with the v2.1 module.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"47d05c036ec1a0349c0b869ce81fbac228f43749","unresolved":false,"context_lines":[{"line_number":549,"context_line":"        # extension after refactor it."},{"line_number":550,"context_line":"        scheduler_hints \u003d create_kwargs.pop(\u0027scheduler_hints\u0027, None)"},{"line_number":551,"context_line":"        parse_az \u003d self.compute_api.parse_availability_zone"},{"line_number":552,"context_line":"        availability_zone, host, node \u003d parse_az(context, availability_zone)"},{"line_number":553,"context_line":"        if host or node:"},{"line_number":554,"context_line":"            authorize(context, {}, \u0027create:forced_host\u0027)"},{"line_number":555,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_d65970fe","line":552,"updated":"2016-01-11 13:54:04.000000000","message":"see my comment below L596 first.\n\nNow, I feel that changing L552 is not needed by the same change you\u0027re providing filt_props, it could confuse the reviewers.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"998aba54145e4845486c7f4afdd8c4cbe90120fe","unresolved":false,"context_lines":[{"line_number":549,"context_line":"        # extension after refactor it."},{"line_number":550,"context_line":"        scheduler_hints \u003d create_kwargs.pop(\u0027scheduler_hints\u0027, None)"},{"line_number":551,"context_line":"        parse_az \u003d self.compute_api.parse_availability_zone"},{"line_number":552,"context_line":"        availability_zone, host, node \u003d parse_az(context, availability_zone)"},{"line_number":553,"context_line":"        if host or node:"},{"line_number":554,"context_line":"            authorize(context, {}, \u0027create:forced_host\u0027)"},{"line_number":555,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_ac2a0b2b","line":552,"in_reply_to":"fa69d971_d65970fe","updated":"2016-01-11 22:44:14.000000000","message":"I can split the changes, that would make it more clear.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"47d05c036ec1a0349c0b869ce81fbac228f43749","unresolved":false,"context_lines":[{"line_number":593,"context_line":"            inst_type \u003d flavors.get_flavor_by_flavor_id("},{"line_number":594,"context_line":"                    flavor_id, ctxt\u003dcontext, read_deleted\u003d\"no\")"},{"line_number":595,"context_line":"            filter_properties \u003d scheduler_utils.build_filter_properties("},{"line_number":596,"context_line":"                    scheduler_hints, host, node, inst_type)"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"            (instances, resv_id) \u003d self.compute_api.create(context,"},{"line_number":599,"context_line":"                            inst_type,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_f6827451","line":596,"updated":"2016-01-11 13:54:04.000000000","message":"not sure I like putting more logic in the API resource modules, I wonder why you\u0027re not setting the filt_props in the compute API module directly ?\n\nWe\u0027re already passing kwargs when calling compute_api.create()","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"998aba54145e4845486c7f4afdd8c4cbe90120fe","unresolved":false,"context_lines":[{"line_number":593,"context_line":"            inst_type \u003d flavors.get_flavor_by_flavor_id("},{"line_number":594,"context_line":"                    flavor_id, ctxt\u003dcontext, read_deleted\u003d\"no\")"},{"line_number":595,"context_line":"            filter_properties \u003d scheduler_utils.build_filter_properties("},{"line_number":596,"context_line":"                    scheduler_hints, host, node, inst_type)"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"            (instances, resv_id) \u003d self.compute_api.create(context,"},{"line_number":599,"context_line":"                            inst_type,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_6c6ad31c","line":596,"in_reply_to":"fa69d971_f6827451","updated":"2016-01-11 22:44:14.000000000","message":"create_kwargs doesn\u0027t have host/node which is what will need to be passed to create().  I\u0027ll try it out with creating filter_properties in create() when I split the patch.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"}],"nova/compute/api.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"950bc01048fb93a72a7d026a91f29d51abaee3ab","unresolved":false,"context_lines":[{"line_number":1068,"context_line":"        max_count \u003d max_count or min_count"},{"line_number":1069,"context_line":"        block_device_mapping \u003d block_device_mapping or []"},{"line_number":1070,"context_line":"        if not instance_type:"},{"line_number":1071,"context_line":"            instance_type \u003d flavors.get_default_flavor()"},{"line_number":1072,"context_line":""},{"line_number":1073,"context_line":"        if image_href:"},{"line_number":1074,"context_line":"            image_id, boot_meta \u003d self._get_image(context, image_href)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_3b6bc186","side":"PARENT","line":1071,"updated":"2016-01-07 04:22:13.000000000","message":"Was this supposed to be removed? It seems unrelated to the rest of the changes","commit_id":"816d90f999e81a785e2ce8feb432244cefd4c4bb"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"689c981868e03543816e54c005d50e0bbceb5b1f","unresolved":false,"context_lines":[{"line_number":1068,"context_line":"        max_count \u003d max_count or min_count"},{"line_number":1069,"context_line":"        block_device_mapping \u003d block_device_mapping or []"},{"line_number":1070,"context_line":"        if not instance_type:"},{"line_number":1071,"context_line":"            instance_type \u003d flavors.get_default_flavor()"},{"line_number":1072,"context_line":""},{"line_number":1073,"context_line":"        if image_href:"},{"line_number":1074,"context_line":"            image_id, boot_meta \u003d self._get_image(context, image_href)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_92538e6c","side":"PARENT","line":1071,"in_reply_to":"fa69d971_3b6bc186","updated":"2016-01-07 18:18:08.000000000","message":"I\u0027m sure I had a reason for this originally, but now I\u0027m not entirely sure what it was.  One thing I can see is that filter_properties will already have an instance_type set in it so if we hit this block then instance_type could end up different between the instance and the info used for scheduling.  And I didn\u0027t see any case where instance_type wasn\u0027t passed in.  So removing this is just a safeguard to prevent instance_type from being two things.","commit_id":"816d90f999e81a785e2ce8feb432244cefd4c4bb"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"950bc01048fb93a72a7d026a91f29d51abaee3ab","unresolved":false,"context_lines":[{"line_number":802,"context_line":"                                         requested_networks, config_drive,"},{"line_number":803,"context_line":"                                         auto_disk_config, reservation_id,"},{"line_number":804,"context_line":"                                         max_count):"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"        \"\"\"Verify all the input parameters regardless of the provisioning"},{"line_number":807,"context_line":"        strategy being performed."},{"line_number":808,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_fbd2095b","line":805,"updated":"2016-01-07 04:22:13.000000000","message":"Unrelated whitespace change","commit_id":"686b78bbf24e619a90136f68bdcf5ce5aa74825e"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"689c981868e03543816e54c005d50e0bbceb5b1f","unresolved":false,"context_lines":[{"line_number":802,"context_line":"                                         requested_networks, config_drive,"},{"line_number":803,"context_line":"                                         auto_disk_config, reservation_id,"},{"line_number":804,"context_line":"                                         max_count):"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"        \"\"\"Verify all the input parameters regardless of the provisioning"},{"line_number":807,"context_line":"        strategy being performed."},{"line_number":808,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_b86ebb94","line":805,"in_reply_to":"fa69d971_fbd2095b","updated":"2016-01-07 18:18:08.000000000","message":"Will fix.","commit_id":"686b78bbf24e619a90136f68bdcf5ce5aa74825e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"47d05c036ec1a0349c0b869ce81fbac228f43749","unresolved":false,"context_lines":[{"line_number":1469,"context_line":"               injected_files\u003dNone, admin_password\u003dNone,"},{"line_number":1470,"context_line":"               block_device_mapping\u003dNone, access_ip_v4\u003dNone,"},{"line_number":1471,"context_line":"               access_ip_v6\u003dNone, requested_networks\u003dNone, config_drive\u003dNone,"},{"line_number":1472,"context_line":"               auto_disk_config\u003dNone, scheduler_hints\u003dNone, legacy_bdm\u003dTrue,"},{"line_number":1473,"context_line":"               shutdown_terminate\u003dFalse, check_server_group_quota\u003dFalse):"},{"line_number":1474,"context_line":"        \"\"\"Provision instances, sending instance information to the"},{"line_number":1475,"context_line":"        scheduler.  The scheduler will determine where the instance(s)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_bc561d5c","side":"PARENT","line":1472,"range":{"start_line":1472,"start_character":37,"end_line":1472,"end_character":58},"updated":"2016-01-11 13:54:04.000000000","message":"See, again, you need to modify that too in the same change.\n\nWhat I would like to see is just a change for implementing the filt_props here, and possibly some follow-up changes for modifying the create args to make sure both API legacy v2.0 and v2.1 modules are calling the same.","commit_id":"816d90f999e81a785e2ce8feb432244cefd4c4bb"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"47d05c036ec1a0349c0b869ce81fbac228f43749","unresolved":false,"context_lines":[{"line_number":493,"context_line":"        return kernel_id, ramdisk_id"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    @staticmethod"},{"line_number":496,"context_line":"    def parse_availability_zone(context, availability_zone):"},{"line_number":497,"context_line":"        # NOTE(vish): We have a legacy hack to allow admins to specify hosts"},{"line_number":498,"context_line":"        #             via az using az:host:node. It might be nice to expose an"},{"line_number":499,"context_line":"        #             api to specify specific hosts to force onto, but for"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_f6883424","line":496,"updated":"2016-01-11 13:54:04.000000000","message":"like I said previously, I feel that can be done in a prerequisite patch (but I agree it needs to be renamed since we\u0027re calling it outside this scope)","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"998aba54145e4845486c7f4afdd8c4cbe90120fe","unresolved":false,"context_lines":[{"line_number":493,"context_line":"        return kernel_id, ramdisk_id"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    @staticmethod"},{"line_number":496,"context_line":"    def parse_availability_zone(context, availability_zone):"},{"line_number":497,"context_line":"        # NOTE(vish): We have a legacy hack to allow admins to specify hosts"},{"line_number":498,"context_line":"        #             via az using az:host:node. It might be nice to expose an"},{"line_number":499,"context_line":"        #             api to specify specific hosts to force onto, but for"}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_0c58f755","line":496,"in_reply_to":"fa69d971_f6883424","updated":"2016-01-11 22:44:14.000000000","message":"Yeah, I\u0027ll split the patch.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"47d05c036ec1a0349c0b869ce81fbac228f43749","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"                check_policy(context, \u0027create:attach_volume\u0027, target)"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"            if forced_host or forced_node:"},{"line_number":1413,"context_line":"                check_policy(context, \u0027create:forced_host\u0027, {})"},{"line_number":1414,"context_line":""},{"line_number":1415,"context_line":"    def _check_multiple_instances_neutron_ports(self, requested_networks):"},{"line_number":1416,"context_line":"        \"\"\"Check whether multiple instances are created from port id(s).\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_d6ff25ff","line":1413,"updated":"2016-01-11 13:54:04.000000000","message":"Mmm, you\u0027re already checking the policy by https://review.openstack.org/#/c/254434/7/nova/api/openstack/compute/servers.py L554, right?\n\nI\u0027m fine with checking the RBAC here, I just want to make sure it\u0027s a consensus with the API guys.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"c4ce6eedf25b4f59c38e1b915b32c8073f517c7a","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"                check_policy(context, \u0027create:attach_volume\u0027, target)"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"            if forced_host or forced_node:"},{"line_number":1413,"context_line":"                check_policy(context, \u0027create:forced_host\u0027, {})"},{"line_number":1414,"context_line":""},{"line_number":1415,"context_line":"    def _check_multiple_instances_neutron_ports(self, requested_networks):"},{"line_number":1416,"context_line":"        \"\"\"Check whether multiple instances are created from port id(s).\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_ddf902ca","line":1413,"in_reply_to":"da6ed579_6295d3e2","updated":"2016-01-12 15:44:25.000000000","message":"This is fine and consistent with the rest of the code.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4010e47a7f40ff2394615b9212b727512e4616ad","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"                check_policy(context, \u0027create:attach_volume\u0027, target)"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"            if forced_host or forced_node:"},{"line_number":1413,"context_line":"                check_policy(context, \u0027create:forced_host\u0027, {})"},{"line_number":1414,"context_line":""},{"line_number":1415,"context_line":"    def _check_multiple_instances_neutron_ports(self, requested_networks):"},{"line_number":1416,"context_line":"        \"\"\"Check whether multiple instances are created from port id(s).\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_f3ac37ef","line":1413,"in_reply_to":"da6ed579_ddf902ca","updated":"2016-01-12 16:14:12.000000000","message":"OK, fair enough :-)","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"915e06f2e9cc1f9ea0ccaae07d024eb252bfc4a7","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"                check_policy(context, \u0027create:attach_volume\u0027, target)"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"            if forced_host or forced_node:"},{"line_number":1413,"context_line":"                check_policy(context, \u0027create:forced_host\u0027, {})"},{"line_number":1414,"context_line":""},{"line_number":1415,"context_line":"    def _check_multiple_instances_neutron_ports(self, requested_networks):"},{"line_number":1416,"context_line":"        \"\"\"Check whether multiple instances are created from port id(s).\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_6295d3e2","line":1413,"in_reply_to":"fa69d971_3628e899","updated":"2016-01-12 15:35:09.000000000","message":"Mmm, I see... Why not providing the check into the v2 API then ?","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"998aba54145e4845486c7f4afdd8c4cbe90120fe","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"                check_policy(context, \u0027create:attach_volume\u0027, target)"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"            if forced_host or forced_node:"},{"line_number":1413,"context_line":"                check_policy(context, \u0027create:forced_host\u0027, {})"},{"line_number":1414,"context_line":""},{"line_number":1415,"context_line":"    def _check_multiple_instances_neutron_ports(self, requested_networks):"},{"line_number":1416,"context_line":"        \"\"\"Check whether multiple instances are created from port id(s).\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_3628e899","line":1413,"in_reply_to":"fa69d971_d6ff25ff","updated":"2016-01-11 22:44:14.000000000","message":"The check on L554 in servers.py is for the v2.1 API.  This is for the v2 API which hasn\u0027t moved the policy checks up into the API layer.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"47d05c036ec1a0349c0b869ce81fbac228f43749","unresolved":false,"context_lines":[{"line_number":1465,"context_line":"                self._check_multiple_instances_neutron_ports("},{"line_number":1466,"context_line":"                    requested_networks)"},{"line_number":1467,"context_line":""},{"line_number":1468,"context_line":"        if availability_zone:"},{"line_number":1469,"context_line":"            available_zones \u003d availability_zones.\\"},{"line_number":1470,"context_line":"                get_availability_zones(context.elevated(), True)"},{"line_number":1471,"context_line":"            if forced_host is None and availability_zone not in \\"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_f6a029f6","line":1468,"updated":"2016-01-11 13:54:04.000000000","message":"See, I\u0027m very fine with now having the AZ information (not having the forced host/node stuff in there) so I\u0027m very happy with having a prereq change for calling parse_az() in the API tree, I just feel it needs to be done separately.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4018ac6a4014caa2cf75f912556c3ac588709d9c","unresolved":false,"context_lines":[{"line_number":1059,"context_line":"        max_count \u003d max_count or min_count"},{"line_number":1060,"context_line":"        block_device_mapping \u003d block_device_mapping or []"},{"line_number":1061,"context_line":"        if not instance_type:"},{"line_number":1062,"context_line":"            instance_type \u003d flavors.get_default_flavor()"},{"line_number":1063,"context_line":""},{"line_number":1064,"context_line":"        if image_href:"},{"line_number":1065,"context_line":"            image_id, boot_meta \u003d self._get_image(context, image_href)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6ed579_324516b3","side":"PARENT","line":1062,"updated":"2016-01-15 20:50:08.000000000","message":"why are you removing it ?","commit_id":"97073f5e79e270fc046d9417ea4e701ec9ac6421"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ee3a490e222e87d850d2f9f37fa920eecda50828","unresolved":false,"context_lines":[{"line_number":1059,"context_line":"        max_count \u003d max_count or min_count"},{"line_number":1060,"context_line":"        block_device_mapping \u003d block_device_mapping or []"},{"line_number":1061,"context_line":"        if not instance_type:"},{"line_number":1062,"context_line":"            instance_type \u003d flavors.get_default_flavor()"},{"line_number":1063,"context_line":""},{"line_number":1064,"context_line":"        if image_href:"},{"line_number":1065,"context_line":"            image_id, boot_meta \u003d self._get_image(context, image_href)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6ed579_bd7f9765","side":"PARENT","line":1062,"in_reply_to":"da6ed579_324516b3","updated":"2016-01-15 21:04:59.000000000","message":"I should probably comment on this in the commit message, and in fact I meant to do that.\n\nInstance type is passed in in all situations that I could see, but if it weren\u0027t and we pulled the default here then the instance would get a different instance_type than would be set in filter_properties earlier.  To assure that the instance_type of the instance and filter_properties match I removed this and if there is some situation I didn\u0027t catch where this block would be hit then it will fail in _validate_and_build_base_options().","commit_id":"97073f5e79e270fc046d9417ea4e701ec9ac6421"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7b88c93c484510326aca2c58aa590c790c23a6f5","unresolved":false,"context_lines":[{"line_number":1059,"context_line":"        max_count \u003d max_count or min_count"},{"line_number":1060,"context_line":"        block_device_mapping \u003d block_device_mapping or []"},{"line_number":1061,"context_line":"        if not instance_type:"},{"line_number":1062,"context_line":"            instance_type \u003d flavors.get_default_flavor()"},{"line_number":1063,"context_line":""},{"line_number":1064,"context_line":"        if image_href:"},{"line_number":1065,"context_line":"            image_id, boot_meta \u003d self._get_image(context, image_href)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6ed579_1da90325","side":"PARENT","line":1062,"in_reply_to":"da6ed579_bd7f9765","updated":"2016-01-15 21:22:06.000000000","message":"Thanks for explaining","commit_id":"97073f5e79e270fc046d9417ea4e701ec9ac6421"}],"nova/scheduler/utils.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"47d05c036ec1a0349c0b869ce81fbac228f43749","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"def build_filter_properties(scheduler_hints, forced_host,"},{"line_number":118,"context_line":"        forced_node, instance_type):"},{"line_number":119,"context_line":"    filter_properties \u003d dict(scheduler_hints\u003dscheduler_hints)"},{"line_number":120,"context_line":"    filter_properties[\u0027instance_type\u0027] \u003d instance_type"},{"line_number":121,"context_line":"    if forced_host:"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_76b1a48e","line":118,"updated":"2016-01-11 13:54:04.000000000","message":"I don\u0027t want to nitpick about documentation but since we have a quite identical method below, I\u0027d prefer to explain why this one is still needed now and when in a docstring.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"998aba54145e4845486c7f4afdd8c4cbe90120fe","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"def build_filter_properties(scheduler_hints, forced_host,"},{"line_number":118,"context_line":"        forced_node, instance_type):"},{"line_number":119,"context_line":"    filter_properties \u003d dict(scheduler_hints\u003dscheduler_hints)"},{"line_number":120,"context_line":"    filter_properties[\u0027instance_type\u0027] \u003d instance_type"},{"line_number":121,"context_line":"    if forced_host:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da6ed579_ec1c8379","line":118,"in_reply_to":"fa69d971_76b1a48e","updated":"2016-01-11 22:44:14.000000000","message":"Can do.","commit_id":"1f9dc82567c21290760e8e572069b4ad504266ee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4018ac6a4014caa2cf75f912556c3ac588709d9c","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    notifier.error(context, event_type, payload)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"def build_filter_properties(scheduler_hints, forced_host,"},{"line_number":118,"context_line":"        forced_node, instance_type):"},{"line_number":119,"context_line":"    \"\"\"Build the filter_properties dict from data in the boot request.\"\"\""},{"line_number":120,"context_line":"    filter_properties \u003d dict(scheduler_hints\u003dscheduler_hints)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6ed579_f2e0dece","line":117,"updated":"2016-01-15 20:50:08.000000000","message":"I would be a bit nitpicking but I feel you should provide the related unittests for that by moving the existing ones.","commit_id":"208a9881bf387c6759eb917cb3619fc80c0d03a6"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7b88c93c484510326aca2c58aa590c790c23a6f5","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    notifier.error(context, event_type, payload)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"def build_filter_properties(scheduler_hints, forced_host,"},{"line_number":118,"context_line":"        forced_node, instance_type):"},{"line_number":119,"context_line":"    \"\"\"Build the filter_properties dict from data in the boot request.\"\"\""},{"line_number":120,"context_line":"    filter_properties \u003d dict(scheduler_hints\u003dscheduler_hints)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6ed579_fdf18f6b","line":117,"in_reply_to":"da6ed579_3de3a735","updated":"2016-01-15 21:22:06.000000000","message":"Orly ? Man... I know it\u0027s just an helper method just adding a few items to a dict but :-(","commit_id":"208a9881bf387c6759eb917cb3619fc80c0d03a6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ee3a490e222e87d850d2f9f37fa920eecda50828","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    notifier.error(context, event_type, payload)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"def build_filter_properties(scheduler_hints, forced_host,"},{"line_number":118,"context_line":"        forced_node, instance_type):"},{"line_number":119,"context_line":"    \"\"\"Build the filter_properties dict from data in the boot request.\"\"\""},{"line_number":120,"context_line":"    filter_properties \u003d dict(scheduler_hints\u003dscheduler_hints)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6ed579_3de3a735","line":117,"in_reply_to":"da6ed579_f2e0dece","updated":"2016-01-15 21:04:59.000000000","message":"There are no existing ones :)\n\nI can write some but the functionality should be covered by the current compute/api tests.","commit_id":"208a9881bf387c6759eb917cb3619fc80c0d03a6"}]}
