)]}'
{"doc/source/user/wf_lang_v2.rst":[{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"609dac93a5da22b7fa5609ef77b45d0c54cea902","unresolved":false,"context_lines":[{"line_number":193,"context_line":"attributes:"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"-  **name** - Task name must not be equal *noop*, *fail*, *succeed* and *pause*"},{"line_number":196,"context_line":"   . The max length is 255 symbols. For task has *join* policy this restriction"},{"line_number":197,"context_line":"   is 208 symbols."},{"line_number":198,"context_line":"-  **description** - Arbitrary text containing task description."},{"line_number":199,"context_line":"   *Optional*."}],"source_content_type":"text/x-rst","patch_set":11,"id":"df7087c5_0d891874","line":196,"range":{"start_line":196,"start_character":40,"end_line":196,"end_character":67},"updated":"2018-03-08 14:05:44.000000000","message":"\u0027tasks with *join* control flow\u0027\nI think join is not mentioned as policy in this document.","commit_id":"1c94b97005d68c8f21c7936ba1373ea68c57348e"},{"author":{"_account_id":9712,"name":"Dougal Matthews","email":"dougal.matthews@canonical.com","username":"dougal"},"change_message_id":"f4eda231c938dd3770b3b0941f5586d77c6d8196","unresolved":false,"context_lines":[{"line_number":192,"context_line":"All Mistral tasks, regardless of workflow type, have the following common"},{"line_number":193,"context_line":"attributes:"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"-  **name** - Task name must not be equal *noop*, *fail*, *succeed* and *pause*"},{"line_number":196,"context_line":"   . The max length is 255 symbols. For tasks with *join* control flow this"},{"line_number":197,"context_line":"   restriction is 208 symbols."},{"line_number":198,"context_line":"-  **description** - Arbitrary text containing task description."}],"source_content_type":"text/x-rst","patch_set":12,"id":"df7087c5_06357646","line":195,"range":{"start_line":195,"start_character":14,"end_line":195,"end_character":41},"updated":"2018-03-08 17:49:24.000000000","message":"Task name must not equal\nor\nTask name must not be\n\n\"be equal\" doesn\u0027t sound quite right to me.","commit_id":"b05609ecf75327ecf48d9bb7688b5e26744dcaa2"},{"author":{"_account_id":9712,"name":"Dougal Matthews","email":"dougal.matthews@canonical.com","username":"dougal"},"change_message_id":"f4eda231c938dd3770b3b0941f5586d77c6d8196","unresolved":false,"context_lines":[{"line_number":192,"context_line":"All Mistral tasks, regardless of workflow type, have the following common"},{"line_number":193,"context_line":"attributes:"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"-  **name** - Task name must not be equal *noop*, *fail*, *succeed* and *pause*"},{"line_number":196,"context_line":"   . The max length is 255 symbols. For tasks with *join* control flow this"},{"line_number":197,"context_line":"   restriction is 208 symbols."},{"line_number":198,"context_line":"-  **description** - Arbitrary text containing task description."}],"source_content_type":"text/x-rst","patch_set":12,"id":"df7087c5_263afa35","line":195,"range":{"start_line":195,"start_character":68,"end_line":195,"end_character":71},"updated":"2018-03-08 17:49:24.000000000","message":"or","commit_id":"b05609ecf75327ecf48d9bb7688b5e26744dcaa2"}],"mistral/db/sqlalchemy/migration/alembic_migrations/versions/025_fix_length_task_name.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"438c7d66f16116b8d4102af8db7957221319a714","unresolved":false,"context_lines":[{"line_number":32,"context_line":"def upgrade():"},{"line_number":33,"context_line":"    # \"join-task-\" + \"workflow execution id\" + \"task name\" + \"for the future\""},{"line_number":34,"context_line":"    # \u003d 10 + 36 + 255 + 49 \u003d 350"},{"line_number":35,"context_line":"    op.alter_column(\u0027task_executions_v2\u0027, \u0027unique_key\u0027, type_\u003dsa.String(350))"},{"line_number":36,"context_line":"    op.alter_column(\u0027named_locks\u0027, \u0027name\u0027, type_\u003dsa.String(350))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_60cbca1d","line":35,"range":{"start_line":35,"start_character":72,"end_line":35,"end_character":75},"updated":"2018-01-15 08:48:56.000000000","message":"As far as I remember, we had some issues on mysql if length of this field exceeded 250 chars. Can you please check this carefully? Also, why 350?","commit_id":"97f392fd2f98491857c643f7fa8dff8ee6971620"},{"author":{"_account_id":27008,"name":"Vitalii Solodilov","email":"Mcdkr@yandex.ru","username":"mcdoker18"},"change_message_id":"b0b69b331e9356745e3368f1ef025286cf505e07","unresolved":false,"context_lines":[{"line_number":32,"context_line":"def upgrade():"},{"line_number":33,"context_line":"    # \"join-task-\" + \"workflow execution id\" + \"task name\" + \"for the future\""},{"line_number":34,"context_line":"    # \u003d 10 + 36 + 255 + 49 \u003d 350"},{"line_number":35,"context_line":"    op.alter_column(\u0027task_executions_v2\u0027, \u0027unique_key\u0027, type_\u003dsa.String(350))"},{"line_number":36,"context_line":"    op.alter_column(\u0027named_locks\u0027, \u0027name\u0027, type_\u003dsa.String(350))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_563fed85","line":35,"range":{"start_line":35,"start_character":72,"end_line":35,"end_character":75},"in_reply_to":"7f96bb07_60cbca1d","updated":"2018-01-18 18:29:20.000000000","message":"I guess it was your problem https://review.openstack.org/#/c/528494/3/mistral/tests/unit/engine/test_join.py\nI added the comment above","commit_id":"97f392fd2f98491857c643f7fa8dff8ee6971620"}],"mistral/lang/v2/tasks.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"438c7d66f16116b8d4102af8db7957221319a714","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    def _validate_name(self):"},{"line_number":145,"context_line":"        name \u003d self._data.get(\u0027name\u0027)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        if len(name) \u003e 255:"},{"line_number":148,"context_line":"            raise exc.InvalidModelException("},{"line_number":149,"context_line":"                \"The length of a task name must not exceed 255 symbols\")"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_0071a6a9","line":147,"range":{"start_line":147,"start_character":23,"end_line":147,"end_character":26},"updated":"2018-01-15 08:48:56.000000000","message":"I\u0027d prefer to see a constant somewhere at a well-known place.","commit_id":"97f392fd2f98491857c643f7fa8dff8ee6971620"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"133b3c14445a0bd30ccd0f9cd118ce6b43b1242f","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                task_name"},{"line_number":162,"context_line":"            )"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        if len(task_name) \u003e MAX_LENGTH_TASK_NAME:"},{"line_number":165,"context_line":"            raise exc.InvalidModelException("},{"line_number":166,"context_line":"                \"The length of a \u0027{0}\u0027 task name must not exceed {1}\""},{"line_number":167,"context_line":"                \" symbols\".format(task_name, MAX_LENGTH_TASK_NAME))"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def _transform_with_items(self):"},{"line_number":170,"context_line":"        raw \u003d self._data.get(\u0027with-items\u0027, [])"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa0c359_2070d471","line":167,"range":{"start_line":164,"start_character":8,"end_line":167,"end_character":67},"updated":"2018-02-26 11:41:00.000000000","message":"In fact, this MySQL limitation affects join tasks so I don\u0027t really like that we limit the length of regular tasks. Do we really need this check for regular tasks?","commit_id":"111b78f67c61bcfa534690ad3c141bf84b1f12a5"},{"author":{"_account_id":27008,"name":"Vitalii Solodilov","email":"Mcdkr@yandex.ru","username":"mcdoker18"},"change_message_id":"5e82d51d644fcb6daa059e6ef5829855259d83d0","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                task_name"},{"line_number":162,"context_line":"            )"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        if len(task_name) \u003e MAX_LENGTH_TASK_NAME:"},{"line_number":165,"context_line":"            raise exc.InvalidModelException("},{"line_number":166,"context_line":"                \"The length of a \u0027{0}\u0027 task name must not exceed {1}\""},{"line_number":167,"context_line":"                \" symbols\".format(task_name, MAX_LENGTH_TASK_NAME))"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def _transform_with_items(self):"},{"line_number":170,"context_line":"        raw \u003d self._data.get(\u0027with-items\u0027, [])"}],"source_content_type":"text/x-python","patch_set":10,"id":"df7087c5_e1dcf519","line":167,"range":{"start_line":164,"start_character":8,"end_line":167,"end_character":67},"in_reply_to":"3fa0c359_2070d471","updated":"2018-03-08 11:38:09.000000000","message":"Yes, i think. The exception (DBAPIError value too long for type character varying) appears only in runtime when task will be created. It can be fiftieth task. Otherwise after this exception execution hang in RUNNING state as i recall.","commit_id":"111b78f67c61bcfa534690ad3c141bf84b1f12a5"}],"mistral/tests/unit/base.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"438c7d66f16116b8d4102af8db7957221319a714","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        self.addCleanup(cfg.CONF.clear_override, name, group)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def generate_string(self, task_length):"},{"line_number":223,"context_line":"        return \u0027\u0027.join(random.choice("},{"line_number":224,"context_line":"            string.ascii_uppercase + string.digits)"},{"line_number":225,"context_line":"            for _ in range(task_length)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_207142e1","line":222,"range":{"start_line":222,"start_character":30,"end_line":222,"end_character":41},"updated":"2018-01-15 08:48:56.000000000","message":"1) -\u003e length\n2) It\u0027s a generic function. Would it be better to move it to mistral/utils/__init__.py ?","commit_id":"97f392fd2f98491857c643f7fa8dff8ee6971620"}],"mistral/tests/unit/engine/test_join.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"66ce43cf90aa6452d6180009a7d8d8af8930f1ca","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from mistral.lang.v2.tasks import MAX_LENGTH_TASK_NAME"},{"line_number":20,"context_line":"from mistral.services import workflows as wf_service"},{"line_number":21,"context_line":"from mistral.tests.unit.engine import base"},{"line_number":22,"context_line":"from mistral.utils import generate_string"},{"line_number":23,"context_line":"from mistral.workflow import states"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_c4b3324d","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":41},"updated":"2018-01-19 09:18:11.000000000","message":"According to OpenStack guidelines we can import modules only.","commit_id":"ac8d10b2584f58a517e60cb3bfe76c1c6f0c08fb"}]}
