)]}'
{"trove/taskmanager/api.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"e15c81a886cf1651fb4e28f16c484e940cc32d30","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        LOG.debug(\"Making async call to create instance %s \" % instance_id)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        def versioned_create_instance(**kwargs):"},{"line_number":194,"context_line":"            version \u003d \u00271.1\u0027"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"            if not self.client.can_send_version(version):"},{"line_number":197,"context_line":"                version \u003d \u00271.0\u0027"},{"line_number":198,"context_line":"                del kwargs[\u0027volume_info\u0027]"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"            self._cast(\"create_instance\", version\u003dversion, **kwargs)"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_baf3a09e","line":198,"range":{"start_line":194,"start_character":0,"end_line":198,"end_character":41},"updated":"2016-11-30 21:49:28.000000000","message":"How do you envision this after a bunch of changes?  Something like this?\n\n    version \u003d \u00271.3\u0027\n\n    if not self.client.can_send_version(version):\n        version \u003d \u00271.2\u0027\n        del kwargs[\u0027foo\u0027]\n\n    if not self.client.can_send_version(version):\n        version \u003d \u00271.1\u0027\n        del kwargs[\u0027bar\u0027]\n\n    if not self.client.can_send_version(version):\n        version \u003d \u00271.0\u0027\n        del kwargs[\u0027volume\u0027]\n\n    (etc.)","commit_id":"addb96f24b0f591ffac1fcc0b5fc1febec16dbc2"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"57e5bd90e4cb92715499f01b9d673ff82cc25c34","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        LOG.debug(\"Making async call to create instance %s \" % instance_id)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        def versioned_create_instance(**kwargs):"},{"line_number":194,"context_line":"            version \u003d \u00271.1\u0027"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"            if not self.client.can_send_version(version):"},{"line_number":197,"context_line":"                version \u003d \u00271.0\u0027"},{"line_number":198,"context_line":"                del kwargs[\u0027volume_info\u0027]"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"            self._cast(\"create_instance\", version\u003dversion, **kwargs)"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_4a1e5964","line":198,"range":{"start_line":194,"start_character":0,"end_line":198,"end_character":41},"in_reply_to":"3a71b18c_e02f67f4","updated":"2016-12-01 22:30:45.000000000","message":"Amrith, I don\u0027t think your code is correct as the message is originally a 1.3 message, so it does need to go the other way.\nDoug, I believe you are correct, but I think Nova does the pattern as Peter suggested to avoid the complex and potentially confusing structure that would be required to avoid the duplication.  Keep in mind that python requires an indent for each nested-if and the hacking rules only give us 80 characters to work with; that wouldn\u0027t make for very many revisions before we\u0027d have to start making closures.","commit_id":"addb96f24b0f591ffac1fcc0b5fc1febec16dbc2"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"2eebacebff7ee2b01b96a5380e003c8ed940b102","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        LOG.debug(\"Making async call to create instance %s \" % instance_id)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        def versioned_create_instance(**kwargs):"},{"line_number":194,"context_line":"            version \u003d \u00271.1\u0027"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"            if not self.client.can_send_version(version):"},{"line_number":197,"context_line":"                version \u003d \u00271.0\u0027"},{"line_number":198,"context_line":"                del kwargs[\u0027volume_info\u0027]"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"            self._cast(\"create_instance\", version\u003dversion, **kwargs)"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_e02f67f4","line":198,"range":{"start_line":194,"start_character":0,"end_line":198,"end_character":41},"in_reply_to":"5a74a57a_95f957cb","updated":"2016-12-01 12:28:27.000000000","message":"I think Doug is saying that if we find we can send version 1.3, then we are making that test 3 times for no reason.\n\nSo, I view this construct as being somewhat the opposite:\n\nI\u0027m not advocating for a specific coding construct, merely the following pseudocode.\n\n# construct v1.0 message\n\nversion \u003d 1.1\n\nif self.client.can_send_version(version):\n    # add the v1.1 secret stuff here;\n    # convert the v1.0 message to a v1.1 message\n    version \u003d 1.2\n\n    if self.client.can_send_version(version):\n        # add the v1.2 secret stuff here;\n        # convert the v1.1 message to a v1.2 message\n        version \u003d 1.3\n\n        if self.client.can_send_version(version):\n            # add the v1.2 secret stuff here;\n            # convert the v1.1 message to a v1.2 message\n            version \u003d 1.3\n\n            if self.client.can_send_version(version):\n                # add the v1.3 secret stuff here;\n                # convert the v1.2 message to a v1.3 message\n\t        # there is no further version, so we are done.\n\nIn practice though, this is an error prone structure and so, I submit to you that the following helpers may, well, help.\n\nversions \u003d [ \u00271.0\u0027, \u00271.1\u0027, \u00271.2\u0027, \u00271.3\u0027 ]\n\ndef _get_next_version(version, versions):\n    # given a version, and a versions string, get the next version if there is one.\n\n# start with a first version\n# version \u003d first version\n\n\nmessage\u003d_construct_message(message, version)\n\nwhile nv \u003d _get_next_version(version, versions) is not None:\n\tversion \u003d nv\n\tif self.client.can_send_version(version):\n\t    _construct_message(message, nv)\n\telse\n\t    break","commit_id":"addb96f24b0f591ffac1fcc0b5fc1febec16dbc2"},{"author":{"_account_id":9746,"name":"Doug Shelley","email":"dougshelley66@gmail.com","username":"dougshelley"},"change_message_id":"af0f3ce93cd4d215689fc634f04d252aeb5c72a6","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        LOG.debug(\"Making async call to create instance %s \" % instance_id)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        def versioned_create_instance(**kwargs):"},{"line_number":194,"context_line":"            version \u003d \u00271.1\u0027"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"            if not self.client.can_send_version(version):"},{"line_number":197,"context_line":"                version \u003d \u00271.0\u0027"},{"line_number":198,"context_line":"                del kwargs[\u0027volume_info\u0027]"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"            self._cast(\"create_instance\", version\u003dversion, **kwargs)"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_95f957cb","line":198,"range":{"start_line":194,"start_character":0,"end_line":198,"end_character":41},"in_reply_to":"5a74a57a_baf3a09e","updated":"2016-11-30 22:07:37.000000000","message":"If the first if returns false does it really need to run the rest?","commit_id":"addb96f24b0f591ffac1fcc0b5fc1febec16dbc2"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"cd250e240ed3f7a064898a0d907cdd319e8cad69","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        LOG.debug(\"Making async call to create instance %s \" % instance_id)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        def versioned_create_instance(**kwargs):"},{"line_number":194,"context_line":"            version \u003d \u00271.1\u0027"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"            if not self.client.can_send_version(version):"},{"line_number":197,"context_line":"                version \u003d \u00271.0\u0027"},{"line_number":198,"context_line":"                del kwargs[\u0027volume_info\u0027]"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"            self._cast(\"create_instance\", version\u003dversion, **kwargs)"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_f55d2b16","line":198,"range":{"start_line":194,"start_character":0,"end_line":198,"end_character":41},"in_reply_to":"5a74a57a_baf3a09e","updated":"2016-11-30 22:00:50.000000000","message":"Yup, that\u0027s it.","commit_id":"addb96f24b0f591ffac1fcc0b5fc1febec16dbc2"}]}
