)]}'
{"specs/liberty/task-automatic-triggering.rst":[{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"d63a1be938bdfa08cf7cc51c202954b43a0104d0","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Glance task\u0027s enginge provides 2 models containing the information"},{"line_number":27,"context_line":"needed to manage tasks internally. The first model, Task_, holds the"},{"line_number":28,"context_line":"information related to a specific task instance. It contains the task"},{"line_number":29,"context_line":"`status`, `type`, etc. The second model, TaskInfo_, holds information"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_f027e2c7","line":26,"updated":"2015-06-10 22:28:41.000000000","message":"Nit:engine","commit_id":"59540681480ca011ecfb629f37dfef5efd657a0e"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"d63a1be938bdfa08cf7cc51c202954b43a0104d0","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"2. Automatic image replication to other stores."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"3. Autmatic, in-house, image backup outside glance."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. _Task: https://git.openstack.org/cgit/openstack/glance/tree/glance/db/sqlalchemy/models.py?id\u003dea62e2e7a93a0c3de8115d9d58e3878e5e402386#n215"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_b02deaa9","line":48,"updated":"2015-06-10 22:28:41.000000000","message":"Nit:Automatic","commit_id":"59540681480ca011ecfb629f37dfef5efd657a0e"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"76a39ee94b57a0eb88af8a07cc71128e48234160","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://blueprints.launchpad.net/glance/+spec/task-engine-enhancements"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"The current `async tasks`_ engine provides a nice abstraction, on top of"},{"line_number":16,"context_line":"taskflow, to manually execute specific tasks. Unfortunatelly, this"},{"line_number":17,"context_line":"process is entirely manual and there\u0027s no way to have tasks triggered"},{"line_number":18,"context_line":"by Glance\u0027s operations."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_5348912d","line":16,"updated":"2015-06-22 05:53:05.000000000","message":"s/Unfortunatelly/Unfortunately/","commit_id":"4e8fd2c7ba94c407684731628c632260b89e559d"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"76a39ee94b57a0eb88af8a07cc71128e48234160","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Glance task\u0027s enginge provides 2 models containing the information"},{"line_number":27,"context_line":"needed to manage tasks internally. The first model, Task_, holds the"},{"line_number":28,"context_line":"information related to a specific task instance. It contains the task"},{"line_number":29,"context_line":"`status`, `type`, etc. The second model, TaskInfo_, holds information"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_f35445cb","line":26,"updated":"2015-06-22 05:53:05.000000000","message":"typo: engine","commit_id":"4e8fd2c7ba94c407684731628c632260b89e559d"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"76a39ee94b57a0eb88af8a07cc71128e48234160","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"2. Automatic image replication to other stores."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"3. Autmatic, in-house, image backup outside glance."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. _Task: https://git.openstack.org/cgit/openstack/glance/tree/glance/db/sqlalchemy/models.py?id\u003dea62e2e7a93a0c3de8115d9d58e3878e5e402386#n215"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_135209de","line":48,"updated":"2015-06-22 05:53:05.000000000","message":"typo: automatic","commit_id":"4e8fd2c7ba94c407684731628c632260b89e559d"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"76a39ee94b57a0eb88af8a07cc71128e48234160","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"* Add a `trigger_id` field to the Task_ model."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"* Add a new `TriggerTask` model that inherits from our existing Task_"},{"line_number":119,"context_line":"  model"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_73dcb546","line":118,"updated":"2015-06-22 05:53:05.000000000","message":"Do we need some other fields in TriggerTask like \u0027enabled\u0027 etc. ?","commit_id":"4e8fd2c7ba94c407684731628c632260b89e559d"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"f87a5b5c118828159ff578a699710d5b0026c3a0","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"* Add a `trigger_id` field to the Task_ model."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"* Add a new `TriggerTask` model that inherits from our existing Task_"},{"line_number":119,"context_line":"  model"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_411d3e72","line":118,"in_reply_to":"fa32b979_73dcb546","updated":"2015-07-01 07:01:17.000000000","message":"I\u0027d like to avoid doing \u0027status\u0027 handling for these tasks too. Deleting/recreating the task shouldn\u0027t be a problem but others may have other opinions.","commit_id":"4e8fd2c7ba94c407684731628c632260b89e559d"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"41ab207c899daf735ac8d32f5b5c6e8015b56b31","unresolved":false,"context_lines":[{"line_number":94,"context_line":"after all and the models are the same. The idea behind having a"},{"line_number":95,"context_line":"separate model for `TriggerTask` is to have a better organization of"},{"line_number":96,"context_line":"this data in the database. This, however, should not be reflected on"},{"line_number":97,"context_line":"the users who just care about Task_"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Note that the task input needs to be provided to the base task that"},{"line_number":100,"context_line":"has been registered with the trigger. The input and other fields will"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a4dcd0f_663cc42f","line":97,"updated":"2015-08-05 04:03:28.000000000","message":"There\u0027s one problem with hiding `TaskTrigger` behind the task endpoint - which is something that having a single model would\u0027ve solved - and it\u0027s that it\u0027ll be hard to properly consume this trigger from the API since we can\u0027t easily identify between one task or the other.\n\nFor example, removing the task will end up in running a delete on both models and see if it exists in any of them.\n\nTBH, I still prefer my original proposal of using a single model and create a dependency onto itself to keep track of parent -\u003e child.","commit_id":"c9db91e17c4db1a5b2fb3a75887e13d0fdefb8ad"}],"specs/liberty/task-engine-enhancements.rst":[{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"078bcd33f536e6b6f5b0b39413c3830d5bbb8873","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Task engine enhancements"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_4940d3a5","line":8,"updated":"2015-06-06 02:57:13.000000000","message":"IMO, the topic can be more specific.","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"31565f671db8dc61dba5f0ae4afe7d093cdde7e0","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Task engine enhancements"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_f87f2e64","line":8,"in_reply_to":"3afb71cf_4940d3a5","updated":"2015-06-08 08:37:42.000000000","message":"completely agree :D","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":6984,"name":"Sébastien Han","email":"seb@redhat.com","username":"leseb"},"change_message_id":"6d968e79911db2beefdce8bce3cc03ea98de4b1e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Glance taks\u0027 enginge provides 2 models containing the information"},{"line_number":27,"context_line":"needed to manage tasks internally. The first model, Task_, holds the"},{"line_number":28,"context_line":"information related to a specific task instance. It contains the task"},{"line_number":29,"context_line":"`status`, `type`, etc. The second model, TaskInfo_, holds information"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_05877e62","line":26,"updated":"2015-06-05 09:46:57.000000000","message":"s/taks/task/\ns/enginge/engine","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":6984,"name":"Sébastien Han","email":"seb@redhat.com","username":"leseb"},"change_message_id":"6d968e79911db2beefdce8bce3cc03ea98de4b1e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"internally. Whenever a Task_ is created, a new executor is"},{"line_number":36,"context_line":"instantiated and then executed."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Although there\u0027s nothing wrong with the above, it does requires a"},{"line_number":39,"context_line":"manual process and prevents automatic triggering for tasks based on"},{"line_number":40,"context_line":"Glance actions."},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_c5f726f4","line":38,"updated":"2015-06-05 09:46:57.000000000","message":"s/requires/require/","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"078bcd33f536e6b6f5b0b39413c3830d5bbb8873","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Although there\u0027s nothing wrong with the above, it does requires a"},{"line_number":39,"context_line":"manual process and prevents automatic triggering for tasks based on"},{"line_number":40,"context_line":"Glance actions."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. _Task: https://git.openstack.org/cgit/openstack/glance/tree/glance/db/sqlalchemy/models.py?id\u003dea62e2e7a93a0c3de8115d9d58e3878e5e402386#n215"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_74cfe2b0","line":40,"updated":"2015-06-06 02:57:13.000000000","message":"What would be some use case for triggering tasks based on glance actions ? It will be nice to mention them.","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":6984,"name":"Sébastien Han","email":"seb@redhat.com","username":"leseb"},"change_message_id":"84b7e6e787d22c230dfbe0662dbcdf289ff22e2b","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Although there\u0027s nothing wrong with the above, it does requires a"},{"line_number":39,"context_line":"manual process and prevents automatic triggering for tasks based on"},{"line_number":40,"context_line":"Glance actions."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. _Task: https://git.openstack.org/cgit/openstack/glance/tree/glance/db/sqlalchemy/models.py?id\u003dea62e2e7a93a0c3de8115d9d58e3878e5e402386#n215"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_9e2383a7","line":40,"in_reply_to":"3afb71cf_74cfe2b0","updated":"2015-06-08 09:00:47.000000000","message":"I can think of:\n* image conversion\n* image replication (once it\u0027s implemented)","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"fe2fe20e7fc73b0a4530c6d618aed85c7598b453","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Although there\u0027s nothing wrong with the above, it does requires a"},{"line_number":39,"context_line":"manual process and prevents automatic triggering for tasks based on"},{"line_number":40,"context_line":"Glance actions."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. _Task: https://git.openstack.org/cgit/openstack/glance/tree/glance/db/sqlalchemy/models.py?id\u003dea62e2e7a93a0c3de8115d9d58e3878e5e402386#n215"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_11e6fdaf","line":40,"in_reply_to":"3afb71cf_9e2383a7","updated":"2015-06-10 06:47:10.000000000","message":"Thanks","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"f93332686c88d2c124d31088488d55c48421874d","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Proposed change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"In order to solve the stated problem, Glance would need a way to load"},{"line_number":51,"context_line":"tasks based on actions. That is, it needs to be able to create tasks,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_70beee00","line":48,"updated":"2015-06-05 09:33:48.000000000","message":"We also need to add a policy to prevent random users to create triggered tasks. I\u0027ll update the spec.","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"078bcd33f536e6b6f5b0b39413c3830d5bbb8873","unresolved":false,"context_lines":[{"line_number":53,"context_line":"happens in Glance."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"This spec proposes adding a new, nullable, string field called"},{"line_number":56,"context_line":"`trigger` to the Task_ model that will contain the name of the action"},{"line_number":57,"context_line":"capable of triggering this task. Some examples of actions are:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* image_create"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_09abfb1e","line":56,"updated":"2015-06-06 02:57:13.000000000","message":"IMO, a trigger should be associated with the kind of a task and not the specific task instance since the intent is to execute a task every time the action occurs. This will avoid duplicating existing task instance for each execution.\n\nToday, the task type is arbitrary and is configured by the operator using plugins (but for import task). If we enable a way to register triggers like the way we import flows, a new task of that type could be created at the domain layer every time the action happens. What do you think ?","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"31565f671db8dc61dba5f0ae4afe7d093cdde7e0","unresolved":false,"context_lines":[{"line_number":53,"context_line":"happens in Glance."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"This spec proposes adding a new, nullable, string field called"},{"line_number":56,"context_line":"`trigger` to the Task_ model that will contain the name of the action"},{"line_number":57,"context_line":"capable of triggering this task. Some examples of actions are:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* image_create"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_38a5c6b4","line":56,"in_reply_to":"3afb71cf_09abfb1e","updated":"2015-06-08 08:37:42.000000000","message":"I like the idea, we could do this by introspecting the `glance.flows` namespace and register the keys found as task types.\n\nOne thing re duplication. I believe we\u0027re still going to need to duplicate the task since we\u0027re currently saving the execution status in the `Task` instance. I believe we should improve that but that kind of deserves its own spec since it\u0027s quite a change.","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"dcb0e08fcc83da2b45bf09d16b3ddbed0c652e98","unresolved":false,"context_lines":[{"line_number":53,"context_line":"happens in Glance."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"This spec proposes adding a new, nullable, string field called"},{"line_number":56,"context_line":"`trigger` to the Task_ model that will contain the name of the action"},{"line_number":57,"context_line":"capable of triggering this task. Some examples of actions are:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* image_create"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_e18bfa1c","line":56,"in_reply_to":"3afb71cf_38a5c6b4","updated":"2015-06-08 09:58:19.000000000","message":"Actually, I think we still need the `trigger` field and it\u0027d be better for admins to manually register them. I might have the `image_create` plugin trigger installed because it comes with Glance but I don\u0027t necessarily want to run it.\n\nAm I missing something from your proposal?","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"fe2fe20e7fc73b0a4530c6d618aed85c7598b453","unresolved":false,"context_lines":[{"line_number":53,"context_line":"happens in Glance."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"This spec proposes adding a new, nullable, string field called"},{"line_number":56,"context_line":"`trigger` to the Task_ model that will contain the name of the action"},{"line_number":57,"context_line":"capable of triggering this task. Some examples of actions are:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* image_create"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_ff220da2","line":56,"in_reply_to":"3afb71cf_e18bfa1c","updated":"2015-06-10 06:47:10.000000000","message":"hmm, I understand your ops specific use-case to control the tasks that are triggered. I have some more questions like :-\n\n1. What would be the status of the triggerable tasks when they are waiting for trigger? \n\n2. We don\u0027t support deleting tasks, so how would we disassociate the trigger ?\n\n3. May be we should define a parent_task_id field to probably denote the reference between the task associated with execution and the sticky task that triggered it. Otherwise, we may lose track of the history.","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"078bcd33f536e6b6f5b0b39413c3830d5bbb8873","unresolved":false,"context_lines":[{"line_number":64,"context_line":"way that it doesn\u0027t execute the task if a `trigger` is passed. Once"},{"line_number":65,"context_line":"the task is created in the database, it\u0027ll be loaded whenever one of"},{"line_number":66,"context_line":"the above actions happens. The triggering step will have to be"},{"line_number":67,"context_line":"implemented for each action in the domain model similar to how quotas_"},{"line_number":68,"context_line":"are implemented."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The remaining issue that remains to be addressed is the fact that the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_b4ee7a20","line":67,"updated":"2015-06-06 02:57:13.000000000","message":"How will the triggering step determine the runtime input needed for each task type? e.g. say the image data for a conversion task and some other input for a user-defined task.","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"31565f671db8dc61dba5f0ae4afe7d093cdde7e0","unresolved":false,"context_lines":[{"line_number":64,"context_line":"way that it doesn\u0027t execute the task if a `trigger` is passed. Once"},{"line_number":65,"context_line":"the task is created in the database, it\u0027ll be loaded whenever one of"},{"line_number":66,"context_line":"the above actions happens. The triggering step will have to be"},{"line_number":67,"context_line":"implemented for each action in the domain model similar to how quotas_"},{"line_number":68,"context_line":"are implemented."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The remaining issue that remains to be addressed is the fact that the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_b878962c","line":67,"in_reply_to":"3afb71cf_b4ee7a20","updated":"2015-06-08 08:37:42.000000000","message":"I\u0027ll add this","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"fe2fe20e7fc73b0a4530c6d618aed85c7598b453","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. _quotas: https://git.openstack.org/cgit/openstack/glance/tree/glance/quota/__init__.py?id\u003dea62e2e7a93a0c3de8115d9d58e3878e5e402386#n278"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternatives"},{"line_number":78,"context_line":"------------"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* Don\u0027t do anything and force users to trigger tasks manually. This is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_5462233f","line":77,"updated":"2015-06-10 06:47:10.000000000","message":"Alternatively I have one more suggestion.\n\nI feel since these are tasks that hang there forever (or at least till someone disables it), it may even be a good fit for a new model say TriggerableTasks (just an example name). Let\u0027s chat on IRC :).","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"fe2fe20e7fc73b0a4530c6d618aed85c7598b453","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. NOTE(flaper87): We could create an index between the trigger and"},{"line_number":91,"context_line":"   the task type so we avoid task duplications in the database but"},{"line_number":92,"context_line":"   it\u0027d prevent people from triggering the same task type with"},{"line_number":93,"context_line":"   different inputs for the same action. Say I want to convert an"},{"line_number":94,"context_line":"   image to 2 different types everytime the image data is set."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_f1e921b8","line":92,"updated":"2015-06-10 06:47:10.000000000","message":"but we can always create a non-unique index to optimize.","commit_id":"e0347eec14680bcfb76252d09faf64840b43c054"}]}
