)]}'
{"trove/cluster/models.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"adc967da302f4f2dba8d7c100385d580b0576cbe","unresolved":false,"context_lines":[{"line_number":331,"context_line":"    assert_same_instance_volumes(instances, required_size\u003drequired_volume_size)"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"def assert_same_instance_flavors(instances, required_flavor\u003dNone):"},{"line_number":335,"context_line":"    flavors \u003d {instance[\u0027flavor_id\u0027] for instance in instances}"},{"line_number":336,"context_line":"    if len(flavors) !\u003d 1 or (required_flavor is not None and"},{"line_number":337,"context_line":"                             required_flavor not in flavors):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_8ef422f1","line":334,"updated":"2016-06-14 14:22:09.000000000","message":"no doc string? just stands out as \u0027different\u0027. by itself, not a biggie.","commit_id":"e636642336a1a1a08ba92c5cf7fc4505949f8e48"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"4b8697ac6c0668a1bf9dda7f7913c84093a393c9","unresolved":false,"context_lines":[{"line_number":331,"context_line":"    assert_same_instance_volumes(instances, required_size\u003drequired_volume_size)"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"def assert_same_instance_flavors(instances, required_flavor\u003dNone):"},{"line_number":335,"context_line":"    flavors \u003d {instance[\u0027flavor_id\u0027] for instance in instances}"},{"line_number":336,"context_line":"    if len(flavors) !\u003d 1 or (required_flavor is not None and"},{"line_number":337,"context_line":"                             required_flavor not in flavors):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_b065f7e1","line":334,"in_reply_to":"7aa08908_8ef422f1","updated":"2016-06-14 15:31:42.000000000","message":"Done","commit_id":"e636642336a1a1a08ba92c5cf7fc4505949f8e48"}],"trove/common/strategies/cluster/experimental/galera_common/api.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"adc967da302f4f2dba8d7c100385d580b0576cbe","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        req_volume_size \u003d cluster_models.get_required_volume_size("},{"line_number":71,"context_line":"            instances, ds_conf.volume_support)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        cluster_models.assert_homogeneous_cluster(instances)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        deltas \u003d {\u0027instances\u0027: num_instances, \u0027volumes\u0027: req_volume_size}"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_ee97a645","line":73,"updated":"2016-06-14 14:22:09.000000000","message":"wouldn\u0027t you have to pass req_volume_size here?","commit_id":"e636642336a1a1a08ba92c5cf7fc4505949f8e48"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"a143ec344f777741abbbfba88b1e7e7cc7d83547","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        req_volume_size \u003d cluster_models.get_required_volume_size("},{"line_number":71,"context_line":"            instances, ds_conf.volume_support)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        cluster_models.assert_homogeneous_cluster(instances)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        deltas \u003d {\u0027instances\u0027: num_instances, \u0027volumes\u0027: req_volume_size}"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_75b70185","line":73,"in_reply_to":"7aa08908_ee97a645","updated":"2016-06-14 15:31:18.000000000","message":"The two values have different meanings.\n\n\u0027get_required_volume_size\u0027 computes the total allocation required for all volumes. This is useful for quota checks (line 75-78).\n\nThe \u0027required_flavor\u0027/\u0027required_volume_size\u0027 on assert methods is the \u0027flavor\u0027/\u0027volume size\u0027 all instances should have. This is useful in the grow action when we want to make sure all added nodes have the same \u0027flavor\u0027/\u0027volume\u0027 as the existing ones (if required).*\n\n* Note that, for instance, this implementation does not check that that the added nodes (see grow on line 155) match the existing ones (at least I don\u0027t see it right away). I don\u0027t know if it\u0027s bug or a feature, so I am not touching it.\nIf it\u0027s a bug we may want to file a general launchpad entry and tackle it in a standalone review as other homogeneous clusters would be likely suffering the same issue and may need a fixing as well.","commit_id":"e636642336a1a1a08ba92c5cf7fc4505949f8e48"}],"trove/common/strategies/cluster/experimental/mongodb/api.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"adc967da302f4f2dba8d7c100385d580b0576cbe","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        models.validate_instance_flavors("},{"line_number":76,"context_line":"            context, instances, mongo_conf.volume_support,"},{"line_number":77,"context_line":"            mongo_conf.device_path)"},{"line_number":78,"context_line":"        models.assert_homogeneous_cluster(instances)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        req_volume_size \u003d models.get_required_volume_size("},{"line_number":81,"context_line":"            instances, mongo_conf.volume_support)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_ae975e38","line":78,"updated":"2016-06-14 14:22:09.000000000","message":"will you assert volume size here too?","commit_id":"e636642336a1a1a08ba92c5cf7fc4505949f8e48"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"a143ec344f777741abbbfba88b1e7e7cc7d83547","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        models.validate_instance_flavors("},{"line_number":76,"context_line":"            context, instances, mongo_conf.volume_support,"},{"line_number":77,"context_line":"            mongo_conf.device_path)"},{"line_number":78,"context_line":"        models.assert_homogeneous_cluster(instances)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        req_volume_size \u003d models.get_required_volume_size("},{"line_number":81,"context_line":"            instances, mongo_conf.volume_support)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_901efb5c","line":78,"in_reply_to":"7aa08908_ae975e38","updated":"2016-06-14 15:31:18.000000000","message":"\u0027assert_homogeneous_cluster\u0027 also asserts the volumes are the same. Also see my other comment on the \u0027galera_common\u0027 API.","commit_id":"e636642336a1a1a08ba92c5cf7fc4505949f8e48"}],"trove/common/strategies/cluster/experimental/redis/api.py":[{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"9afae7cb60f65c3d7f5a61e8ccc8512e6627ac7d","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        num_instances \u003d len(instances)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # Validate and Cache flavors"},{"line_number":58,"context_line":"        models.validate_instance_flavors("},{"line_number":59,"context_line":"            context, instances, volume_enabled, ephemeral_enabled)"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_7ce629b1","line":57,"updated":"2016-06-23 14:40:40.000000000","message":"Are you still caching flavors?","commit_id":"ccd2c1aa13d59b1c9c50049959d82bb22cab361e"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"9afae7cb60f65c3d7f5a61e8ccc8512e6627ac7d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        total_volume_allocation \u003d models.get_required_volume_size("},{"line_number":62,"context_line":"            instances, volume_enabled)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        # Checking volumes"},{"line_number":65,"context_line":"        name_index \u003d 1"},{"line_number":66,"context_line":"        for instance in instances:"},{"line_number":67,"context_line":"            if not instance.get(\u0027name\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_3c9781ed","line":64,"updated":"2016-06-23 14:40:40.000000000","message":"I don\u0027t think you\u0027re checking volumes here any more.","commit_id":"ccd2c1aa13d59b1c9c50049959d82bb22cab361e"}]}
