)]}'
{"nova/api/openstack/compute/rest_api_version_history.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"952c92877267d5e05f12ce64ebbb6d5fe6b02461","unresolved":false,"context_lines":[{"line_number":778,"context_line":"associated with hosts where other members of the server group are placed. The"},{"line_number":779,"context_line":"`aggregate-anti-affinity` policy enforces the opposite: ensure that instances"},{"line_number":780,"context_line":"launched in a server group land on hosts that are *not* associated with"},{"line_number":781,"context_line":"aggregates that other members of the server group are associated to. The"},{"line_number":782,"context_line":"`aggregate-soft-affinity` and `aggregate-soft-anti-affinity` policies for a"},{"line_number":783,"context_line":"server group are similar to above ones, with difference, it tries to find hosts"},{"line_number":784,"context_line":"that fulfill `aggregate-(anti)-affinity` policy, and if it fails, it will"},{"line_number":785,"context_line":"find best hosts within the group."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_4ae9c3b4","line":785,"range":{"start_line":781,"start_character":69,"end_line":785,"end_character":33},"updated":"2018-03-29 22:26:03.000000000","message":"Suggest reword (if I\u0027ve gotten the behavior correct):\n\nThe `aggregate-soft-affinity` and `aggregate-soft-anti-affinity` policies are best-effort versions of the above.  We first try to find hosts that fulfill the `aggregate-(anti)-affinity` policy.  If that fails, we fall back to the behavior as if no aggregate (anti-)affinity policies were specified.","commit_id":"7f5d434db7e11b364cddf33c79f54af6359bc135"}],"nova/conf/scheduler.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"952c92877267d5e05f12ce64ebbb6d5fe6b02461","unresolved":false,"context_lines":[{"line_number":515,"context_line":"        help\u003d\"\"\""},{"line_number":516,"context_line":"Multiplier used for weighing hosts for group soft-affinity."},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"Possible values:"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"* An integer or float value, where the value corresponds to weight multiplier"},{"line_number":521,"context_line":"  for hosts with group soft affinity. Only a positive value are meaningful, as"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_2afd6f6d","line":518,"updated":"2018-03-29 22:26:03.000000000","message":"I know this is copy/pasted from above; feel free to fix these grammar errors throughout.","commit_id":"7f5d434db7e11b364cddf33c79f54af6359bc135"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"952c92877267d5e05f12ce64ebbb6d5fe6b02461","unresolved":false,"context_lines":[{"line_number":517,"context_line":""},{"line_number":518,"context_line":"Possible values:"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"* An integer or float value, where the value corresponds to weight multiplier"},{"line_number":521,"context_line":"  for hosts with group soft affinity. Only a positive value are meaningful, as"},{"line_number":522,"context_line":"  negative values would make this behave as a soft anti-affinity weigher."},{"line_number":523,"context_line":"\"\"\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_cad4f3eb","line":520,"range":{"start_line":520,"start_character":57,"end_line":520,"end_character":77},"updated":"2018-03-29 22:26:03.000000000","message":"to a weight multiplier","commit_id":"7f5d434db7e11b364cddf33c79f54af6359bc135"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"952c92877267d5e05f12ce64ebbb6d5fe6b02461","unresolved":false,"context_lines":[{"line_number":518,"context_line":"Possible values:"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"* An integer or float value, where the value corresponds to weight multiplier"},{"line_number":521,"context_line":"  for hosts with group soft affinity. Only a positive value are meaningful, as"},{"line_number":522,"context_line":"  negative values would make this behave as a soft anti-affinity weigher."},{"line_number":523,"context_line":"\"\"\"),"},{"line_number":524,"context_line":"    cfg.FloatOpt("}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_6a07e783","line":521,"range":{"start_line":521,"start_character":60,"end_line":521,"end_character":63},"updated":"2018-03-29 22:26:03.000000000","message":"is","commit_id":"7f5d434db7e11b364cddf33c79f54af6359bc135"}],"nova/scheduler/weights/affinity.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"952c92877267d5e05f12ce64ebbb6d5fe6b02461","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"class ServerGroupAggregateSoftAffinityWeigher(weights.BaseHostWeigher):"},{"line_number":101,"context_line":"    \"\"\"ServerGroupAggregateSoftAffinityWeigher implements the soft-affinity"},{"line_number":102,"context_line":"    policy for server groups by preferring the aggregates that has more"},{"line_number":103,"context_line":"    instances from the given group."},{"line_number":104,"context_line":"    \"\"\""},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_2a0b2f7d","line":102,"range":{"start_line":102,"start_character":63,"end_line":102,"end_character":66},"updated":"2018-03-29 22:26:03.000000000","message":"have","commit_id":"7f5d434db7e11b364cddf33c79f54af6359bc135"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"952c92877267d5e05f12ce64ebbb6d5fe6b02461","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def weight_multiplier(self):"},{"line_number":147,"context_line":"        \"\"\"How weighted this weigher should be.\"\"\""},{"line_number":148,"context_line":"        return self.CONF"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"class ServerGroupAggregateSoftAntiAffinityWeigher("}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_4a37834e","line":148,"range":{"start_line":148,"start_character":15,"end_line":148,"end_character":24},"updated":"2018-03-29 22:26:03.000000000","message":"eh?","commit_id":"7f5d434db7e11b364cddf33c79f54af6359bc135"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"006b6524859578432eea73f5ea3e0061e7567a45","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def weight_multiplier(self):"},{"line_number":147,"context_line":"        \"\"\"How weighted this weigher should be.\"\"\""},{"line_number":148,"context_line":"        return self.CONF"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"class ServerGroupAggregateSoftAntiAffinityWeigher("}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_59b0b18a","line":148,"range":{"start_line":148,"start_character":15,"end_line":148,"end_character":24},"in_reply_to":"bf659307_4a37834e","updated":"2018-03-30 16:58:02.000000000","message":"Yup. So the self.CONF (which is actually a config option for weight multiplier for aggregate-sof-affinity, see line 107) is returned here which defaults to 1.0. If operator changes this multiplier to something greater, will affect, that  this particular wight will have a bigger impact in choosing right host for an instance.","commit_id":"7f5d434db7e11b364cddf33c79f54af6359bc135"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"952c92877267d5e05f12ce64ebbb6d5fe6b02461","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        return self.CONF"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"class ServerGroupAggregateSoftAntiAffinityWeigher("},{"line_number":152,"context_line":"        ServerGroupAggregateSoftAffinityWeigher):"},{"line_number":153,"context_line":"    \"\"\"ServerGroupAggregateSoftAntiAffinityWeigher implements the"},{"line_number":154,"context_line":"    soft-affinity policy for server groups by preferring the aggregates that"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_6a7a87f1","line":151,"range":{"start_line":151,"start_character":6,"end_line":151,"end_character":49},"updated":"2018-03-29 22:26:03.000000000","message":"I would expect this would need to override weight_multiplier too, once that\u0027s fixed.","commit_id":"7f5d434db7e11b364cddf33c79f54af6359bc135"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"006b6524859578432eea73f5ea3e0061e7567a45","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        return self.CONF"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"class ServerGroupAggregateSoftAntiAffinityWeigher("},{"line_number":152,"context_line":"        ServerGroupAggregateSoftAffinityWeigher):"},{"line_number":153,"context_line":"    \"\"\"ServerGroupAggregateSoftAntiAffinityWeigher implements the"},{"line_number":154,"context_line":"    soft-affinity policy for server groups by preferring the aggregates that"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_597511ca","line":151,"range":{"start_line":151,"start_character":6,"end_line":151,"end_character":49},"in_reply_to":"bf659307_6a7a87f1","updated":"2018-03-30 16:58:02.000000000","message":"It doesn\u0027t need to. weight_multiplier() method will return appropriate value defined in class variable CONF (defined in line 159 for this class).","commit_id":"7f5d434db7e11b364cddf33c79f54af6359bc135"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"952c92877267d5e05f12ce64ebbb6d5fe6b02461","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        ServerGroupAggregateSoftAffinityWeigher):"},{"line_number":153,"context_line":"    \"\"\"ServerGroupAggregateSoftAntiAffinityWeigher implements the"},{"line_number":154,"context_line":"    soft-affinity policy for server groups by preferring the aggregates that"},{"line_number":155,"context_line":"    has less instances from the given group."},{"line_number":156,"context_line":"    \"\"\""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    POLICY_NAME \u003d \u0027aggregate-soft-anti-affinity\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_8a1a7bc9","line":155,"range":{"start_line":155,"start_character":4,"end_line":155,"end_character":12},"updated":"2018-03-29 22:26:03.000000000","message":"have fewer","commit_id":"7f5d434db7e11b364cddf33c79f54af6359bc135"}]}
