)]}'
{"specs/6.1/downloadable-ubuntu-release.rst":[{"author":{"_account_id":8954,"name":"Lukasz Oles","email":"loles@mirantis.com","username":"loles"},"change_message_id":"4cbba77d7f9409251026c0d2ae7125ca520c6525","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_f02f55f4","line":1,"updated":"2015-01-23 09:32:49.000000000","message":"How will it work with image based provisioning? Will you build image from iso?","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"cdadf06d5c1874b1dff69e5ae28c41b3821ece2c","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_55e813e2","line":1,"in_reply_to":"1a930d6b_f02f55f4","updated":"2015-01-23 12:25:11.000000000","message":"It\u0027s out of scope of this blueprint. There\u0027s another one - https://blueprints.launchpad.net/fuel/+spec/ibp-build-ubuntu-images","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"fbb45bb11834e7d043c6306a4b840e729718b78d","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_75ca6f6f","line":1,"in_reply_to":"1a930d6b_f02f55f4","updated":"2015-01-23 12:26:00.000000000","message":"Lukasz, it is great, you asked this question. We have another BP which is about making it possible to build Ubuntu image on a master node. https://blueprints.launchpad.net/fuel/+spec/ibp-build-ubuntu-images I think, this task which is supposed to mount Ubuntu ISO and get Ubuntu repo from there, it needs to run OS image build script.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8907,"name":"Dmitry Shulyak","email":"dshulyak@mirantis.com","username":"dshulyak"},"change_message_id":"240ae600f432be05cf7dba611aa041496fbf5aea","unresolved":false,"context_lines":[{"line_number":35,"context_line":"  new environments. All attempts to do so SHOULD lead cloud operators to"},{"line_number":36,"context_line":"  a page with instructions how to make it available."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Provide an API call for uploading official Ubuntu ISO."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"  The provided API call SHOULD be used by both Fuel UI and Fuel CLI in order"},{"line_number":41,"context_line":"  to upload Ubuntu ISO and make Ubuntu release available for deployment."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_70264fbc","line":38,"updated":"2015-01-21 15:08:18.000000000","message":"what about api call for DOWNLOADING of iso? i leave comment near the diagram\n\nalso i want to make a point - it is not automation what was bad with RHEL, it is design and quality of this automation","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"00f0ce145565e9df17ec4c764def48f5768f1e0b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"REST API impact"},{"line_number":75,"context_line":"---------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"The Nailgun should provide a new API handler for uploading ISO. The"},{"line_number":78,"context_line":"uploading could be performed by POST method to the following URI::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    /releases/\u003cid\u003e/upload/iso/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_21ead477","line":77,"updated":"2015-01-19 13:42:12.000000000","message":"Did you think about possibility to implement it with nginx? As far as I know there are modules that allows you to upload huge files without blocking of app processes, and in backend you can get a path to the file after file is uploaded.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"649e5b7b7ab69e0754989bd3eb0f66f50d3d67b6","unresolved":false,"context_lines":[{"line_number":74,"context_line":"REST API impact"},{"line_number":75,"context_line":"---------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"The Nailgun should provide a new API handler for uploading ISO. The"},{"line_number":78,"context_line":"uploading could be performed by POST method to the following URI::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    /releases/\u003cid\u003e/upload/iso/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_93103b02","line":77,"in_reply_to":"3a961159_21ead477","updated":"2015-01-19 14:20:06.000000000","message":"Hm, sounds cool. I\u0027ll research this question.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8735,"name":"Vitaly Kramskikh","email":"vkramskikh@mirantis.com","username":"vkramskikh"},"change_message_id":"cb60687ccf03fd165ce53fd83c55da81100eea92","unresolved":false,"context_lines":[{"line_number":74,"context_line":"REST API impact"},{"line_number":75,"context_line":"---------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"The Nailgun should provide a new API handler for uploading ISO. The"},{"line_number":78,"context_line":"uploading could be performed by POST method to the following URI::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    /releases/\u003cid\u003e/upload/iso/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_0fab29d9","line":77,"in_reply_to":"3a961159_93103b02","updated":"2015-01-21 15:48:44.000000000","message":"AFAIK nginx does it out of the box without extra configuration. I.e. it doesn\u0027t call app until it finished with file loading and saving to temp dir, and then transfers it to app immediately (because app is on localhost)","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8954,"name":"Lukasz Oles","email":"loles@mirantis.com","username":"loles"},"change_message_id":"2323efd954305b2dec3cd45a789aa6892cfb8132","unresolved":false,"context_lines":[{"line_number":74,"context_line":"REST API impact"},{"line_number":75,"context_line":"---------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"The Nailgun should provide a new API handler for uploading ISO. The"},{"line_number":78,"context_line":"uploading could be performed by POST method to the following URI::"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    /releases/\u003cid\u003e/upload/iso/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_7262d2d9","line":77,"in_reply_to":"3a961159_93103b02","updated":"2015-01-21 16:04:03.000000000","message":"you may also check how uploading images in glance work","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"00f0ce145565e9df17ec4c764def48f5768f1e0b","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_c1a75008","line":89,"updated":"2015-01-19 13:42:12.000000000","message":"After iso uploading on some stage we should extract repositories, when we are going to do that? What the process will look like?","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"91dab7da818fb0e69b958f8cd6a98fd2d1b059da","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_6be9021a","line":89,"in_reply_to":"1a930d6b_15741dce","updated":"2015-01-21 15:30:19.000000000","message":"So, you guys are ok, that (for example) I perform something like:\n\n    $ fuel upload-iso path/to/iso --rel 1\n\nand \n\n* get freeze for 1-2 minutes (CLI will perform file uploading)\n* get free and return to the shell prompt despite the fact that iso wasn\u0027t really apply\n\n?\n\nI mean, when I wait some valuable time I think it\u0027s a synchronous operation and when I get free - operation will be completed. In your proposal - it\u0027s not. \n\nIf you guys think that it\u0027s a good UX - I\u0027m ok with it.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8907,"name":"Dmitry Shulyak","email":"dshulyak@mirantis.com","username":"dshulyak"},"change_message_id":"1d19255696faa00bb8bfe3ad4b484e9026313b5d","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_3e739aea","line":89,"in_reply_to":"1a930d6b_36e828b4","updated":"2015-01-22 09:51:45.000000000","message":"so your suggestion is to receive iso and block nailgun api until task will be performed by astute? in this case we can end up with 502 from nginx anyway and it will be required to change communication pattern between astute and nailgun a bit\n\nor \n\nblock nailgun api until iso is received, and then return 202 accepted or smth with task id, and perform \"normal\" nailgun-astute rpc procedure?\n\ni actually found 2 and 3 paragraph a bit confusing, they seem to be contradicting","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8735,"name":"Vitaly Kramskikh","email":"vkramskikh@mirantis.com","username":"vkramskikh"},"change_message_id":"448576a194653d5f90a7f5271fc904bc7856108e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_79e45c0d","line":89,"in_reply_to":"1a930d6b_3e739aea","updated":"2015-01-22 10:05:19.000000000","message":"Dmitry, I vote for second option - that\u0027s the way we handle some async tasks in API (deployment, network verification). So let\u0027s make ISO processing a separate tasks, so ISO upload returns a task. AFAIR, RHEL configuration was also a Task\n\nVladimir, we already use nginx and already have all the benefits. No need to implement/configure anything.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"f69a93780bf06fabe7e2f525064947636d530c75","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_afa66c0e","line":89,"in_reply_to":"1a930d6b_58c87122","updated":"2015-01-22 14:48:33.000000000","message":"Dmitry, you are right about changing the way how nailgun and astute communicate with each other and about 502 in case we choose blocking API until astute task is done. So I changed my mind and this last variant seems to be OK IMO.\n\nIf we already use nginx capabilities for uploading files or if it is trivial and is not going to complicate our scheme, then I for using nginx.\n\nResume: Igor\u0027s last mentioned approach is suitable.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8735,"name":"Vitaly Kramskikh","email":"vkramskikh@mirantis.com","username":"vkramskikh"},"change_message_id":"cb60687ccf03fd165ce53fd83c55da81100eea92","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_efca5da0","line":89,"in_reply_to":"1a930d6b_6be9021a","updated":"2015-01-21 15:48:44.000000000","message":"I vote for blocking - that\u0027s how wget and curl work. Uploading shoudn\u0027t behave different","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"fca039c4c3f2143c61f604ce3e5c2b32845f1753","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_d872a17b","line":89,"in_reply_to":"1a930d6b_79e45c0d","updated":"2015-01-22 14:07:05.000000000","message":"Let\u0027s summarize what we have:\n\n* Upload ISO with traditional POST request. (research Nginx optimization)\n* When it\u0027s done, create a new task, send RPC call and respond with \"202 Accepted\".\n* Perform \"repo extraction\" by Astute.\n* When it\u0027s done, send RPC call to receiverd that task is completed/error.\n\nAm I right? \n\nP.S: Obviously, we need to have common read-write folder in both Astute and Nailgun containers.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8735,"name":"Vitaly Kramskikh","email":"vkramskikh@mirantis.com","username":"vkramskikh"},"change_message_id":"7c323b96d63e7677db66d1191a0cc47ed77450f3","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_58c87122","line":89,"in_reply_to":"1a930d6b_d872a17b","updated":"2015-01-22 14:18:49.000000000","message":"+1 for this approach","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"d202fcd8d69254c4f5db36894b228a5b505c33e6","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_36e828b4","line":89,"in_reply_to":"1a930d6b_efca5da0","updated":"2015-01-22 06:04:57.000000000","message":"Being blocked for CLI is absolutely in cli\u0027s style while WebUI implements asynchronous UX in terms of Javascript. IMO REST should be fully asynchronous if and only if we POST ISO url (not ISO itself) and nailgun then downloads this ISO and reports success when done. But we can not be sure that url is available from a master node (that is not our case). \n\nIf we upload ISO itself (not ISO url) it usually gonna take a while and user understands that. Igor is right that when user waits for 1-2 minutes and then you just let her go saying \"Ok, I received your ISO and I\u0027m going to do some other stuff ... some time ... maybe ...\" is not a very good idea. \n\nSo, it sounds rational to have a blocking REST url for that stuff. But if we implement extracting repo from ISO in terms of nailgun itself, something can go wrong (many different commands and some of them even need root permissions) and potentially we can end up with 502 (from nginx). For me it is better to implement this in terms of astute.\n\nAnd using nginx upload capabilities is not going to make huge sense here, maybe just to avoid having long running python thread (just one thread, once per release, for one minute). Wtf? Let\u0027s then just implement our application as nginx C module if don\u0027t like python threads so much. My suggestion is to avoid making things even more complicated.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"5542de450d1bfbf0a1de840926346b8701d9f839","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_dcb0eeff","line":89,"in_reply_to":"3a961159_3384e70d","updated":"2015-01-20 14:13:21.000000000","message":"For sure we shouldn\u0027t do this in a single api request, it\u0027s not good UX, when user performs some action and CLI (not sure about UI here) gets stuck.\n\nWe need background tasks mechanism, and we have Tasks Executor (Astute) to perform such kind of actions.\n\nWhen iso is uploaded and nginx passes request to backend, it should create a task for Orchestrator with all required actions (to be discussed with Dmitry S.), after task is created and RPC call is performed, backend returns uuid of task or task itself, task should be created with id \u0027master\u0027 and all required volumes should be mounted to MCollective container.\n\nWith this task you will be able to track current status.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8907,"name":"Dmitry Shulyak","email":"dshulyak@mirantis.com","username":"dshulyak"},"change_message_id":"240ae600f432be05cf7dba611aa041496fbf5aea","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_15741dce","line":89,"in_reply_to":"3a961159_767392e8","updated":"2015-01-21 15:08:18.000000000","message":"i am not very keen on UX improvement, but using background tasks will allow to implement it in modular fashion, and leave API \"clean\" from interaction with repos/mounted folders\n\nimo it worth the efforts\n\nalso i can say that we will follow with same approach for other entities that can not be configured directly in api, it is:\n\n 1. configuration of dnsmasq for node groups\n 2. configuration of virtual ip in dnsmasq","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"649e5b7b7ab69e0754989bd3eb0f66f50d3d67b6","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_3384e70d","line":89,"in_reply_to":"3a961159_c1a75008","updated":"2015-01-19 14:20:06.000000000","message":"We can avoid process blocking when we upload file, but we can\u0027t avoid it here if we want to follow RESTful principle. \n\nSo, I think the RESTful handler should do:\n\n* upload file (could be perfomed by nginx)\n* create temp dir\n* mount uploaded iso into temp dir\n* copy repos from temp dir into /var/www/nailgun\n* unmount uploaded iso\n* remove uploaded iso\n* change release\u0027s .state from unavailable to available\n\nif you\u0027re ok, i\u0027ll add it in the next patchset.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"756fe86cb89de1793f3c8ee0ca814ecea7a8757c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"otherwise ``400 Bad Request`` should be returned."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":89,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_767392e8","line":89,"in_reply_to":"3a961159_dcb0eeff","updated":"2015-01-20 16:18:57.000000000","message":"\u003e and CLI (not sure about UI here) gets stuck.\n\nActually, why not? When you perform \"cp src dst\" - it blocks until finish. \n\n\u003e We need background tasks mechanism\n\nSo, you\u0027re proposing to perform \"repo extraction\" in Astute, not in Nailgun? Don\u0027t you think it\u0027s a bit over-engineering here?\n\nI mean, this task is going to be performed just once and never again (until we get new release). So, I don\u0027t see how blocking could bother customers in this case. \n\nMoreover, I almost sure that Nginx will block fuel cli until nginx uploaded a given iso. So it\u0027d look strange when we block fuel cli for some time and then free it, but the task isn\u0027t completed yet.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":10959,"name":"Alexander Kislitsky","email":"akislitsky@mirantis.com","username":"akislitsky"},"change_message_id":"02fb5f8440c6880de825f80f0b80b6d4a263d043","unresolved":false,"context_lines":[{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Security impact"},{"line_number":97,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_f050c30b","line":94,"updated":"2015-01-16 14:37:23.000000000","message":"How upgrade of the FUEL will be performed?\nIs customer should upload ISO for upgrade before upgrade is started? With which release it should be bound?","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":10959,"name":"Alexander Kislitsky","email":"akislitsky@mirantis.com","username":"akislitsky"},"change_message_id":"81e855de4fba387d935882f5293e4de810239cbd","unresolved":false,"context_lines":[{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Security impact"},{"line_number":97,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_7179fe92","line":94,"in_reply_to":"3a961159_9313db64","updated":"2015-01-21 10:36:02.000000000","message":"Done","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"649e5b7b7ab69e0754989bd3eb0f66f50d3d67b6","unresolved":false,"context_lines":[{"line_number":91,"context_line":"Upgrade impact"},{"line_number":92,"context_line":"--------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Security impact"},{"line_number":97,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_9313db64","line":94,"in_reply_to":"3a961159_f050c30b","updated":"2015-01-19 14:20:06.000000000","message":"I think it shouldn\u0027t affect upgrade. All old releases are kept \"as is\". New Ubuntu release (which is supposed to be Ubuntu 14.04) will be `unavailable`, just like after fresh master node installation.","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8907,"name":"Dmitry Shulyak","email":"dshulyak@mirantis.com","username":"dshulyak"},"change_message_id":"240ae600f432be05cf7dba611aa041496fbf5aea","unresolved":false,"context_lines":[{"line_number":108,"context_line":"---------------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Before deploying OpenStack cluster on Ubuntu, end users should manually"},{"line_number":111,"context_line":"download official Ubuntu ISO and upload it using either Fuel UI or Fuel CLI."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"The workflow would look like::"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_95300d58","line":111,"updated":"2015-01-21 15:08:18.000000000","message":"are you sure that forcing user to download iso before uploading it to fuel is a good experience? maybe it will be possible to provide url? or maybe even custom url, like:\n  \n  file:///ubuntu.iso ?\n\ni personally would love to use something like)\n\n  rsync://10.10.0.2:/iso/ubuntu_14.iso\n\nor there other issues with such approach? legal, etc?","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"91dab7da818fb0e69b958f8cd6a98fd2d1b059da","unresolved":false,"context_lines":[{"line_number":108,"context_line":"---------------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Before deploying OpenStack cluster on Ubuntu, end users should manually"},{"line_number":111,"context_line":"download official Ubuntu ISO and upload it using either Fuel UI or Fuel CLI."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"The workflow would look like::"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a930d6b_90365b02","line":111,"in_reply_to":"1a930d6b_95300d58","updated":"2015-01-21 15:30:19.000000000","message":"I\u0027m not sure about issues, but I can say for sure is that our management want:\n\n\"there should be no automatic download, the user should choose iso to upload by himself\"\n\nHowever, I think that your suggestion fits the statement above.\n\nStill, I don\u0027t think it\u0027s a good idea. How can you be sure that the remote host with iso are available from fuel master node?","commit_id":"2f6d36e81e82c4d9e53d04aae7925ccd5f616c5d"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"ed88827b1fc4adc88ffeda2327b26db24e6d3ca6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"There will be two possible states:"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ``available`` (general usecase, available for deployment)"},{"line_number":69,"context_line":"* ``unavailable`` (present on ui, but can\u0027t be chosen for new envs)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Initial ``.state`` should be loaded from the ``openstack.yaml``."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a930d6b_824cfe71","line":69,"updated":"2015-01-23 14:22:44.000000000","message":"Should we add `error` state?\n\nLets think about error handling, what if checksum is different, how should we notify the user, that he should check the iso and upload it again?\n\nAnother error can be caused by repo extraction/image building, process, what should we do in this case? Ask user to upload the iso? Or there should be some retry button without image uploading?","commit_id":"8e224f60f45e7130e79583e38950a9ef801890bb"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"5390d0ece6b9c51095e79a64a46c472cdc74297b","unresolved":false,"context_lines":[{"line_number":66,"context_line":"There will be two possible states:"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ``available`` (general usecase, available for deployment)"},{"line_number":69,"context_line":"* ``unavailable`` (present on ui, but can\u0027t be chosen for new envs)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Initial ``.state`` should be loaded from the ``openstack.yaml``."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a930d6b_b3894a28","line":69,"in_reply_to":"1a930d6b_824cfe71","updated":"2015-01-23 15:33:09.000000000","message":"Good question, indeed.\n\nI think we shouldn\u0027t change `.state` to `error` in case of checksum verification. It\u0027s something that we check in API handler and if it doesn\u0027t match official one we will respond HTTP 400 Bad Request with checksum error in body.\n\nAs for extraction/image building - it may fail time to time due to different OS state. So, in some POV it makes sense to add re-tries. \n\nHowever, I\u0027d prefer to do not complicate things that we have. Let\u0027s re-try in case of re-uploading. It\u0027s not a big deal, because this operation is supposed to be executed just once and will never again.\n\nOpinion?","commit_id":"8e224f60f45e7130e79583e38950a9ef801890bb"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"22660f53d8c578ae0e62024b007dd0acb3e5cdc7","unresolved":false,"context_lines":[{"line_number":66,"context_line":"There will be two possible states:"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ``available`` (general usecase, available for deployment)"},{"line_number":69,"context_line":"* ``unavailable`` (present on ui, but can\u0027t be chosen for new envs)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Initial ``.state`` should be loaded from the ``openstack.yaml``."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a930d6b_71ccd989","line":69,"in_reply_to":"1a930d6b_9a34fffc","updated":"2015-01-27 11:59:21.000000000","message":"Perhaps you\u0027re right.. but, less states we have - more simple arch we have. \n\nWe definitely will block task creation if there is already running task. What about uploading? I\u0027m not sure here, really. Technically, you\u0027re right, we shouldn\u0027t allow user to start uploading if we already upload something. But there will be no error if we don\u0027t do that.\n\nI\u0027m not sure. Guys, opinion?","commit_id":"8e224f60f45e7130e79583e38950a9ef801890bb"},{"author":{"_account_id":8907,"name":"Dmitry Shulyak","email":"dshulyak@mirantis.com","username":"dshulyak"},"change_message_id":"bf4547f35f46c1e71ae890efe3f7cfe809a75937","unresolved":false,"context_lines":[{"line_number":66,"context_line":"There will be two possible states:"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* ``available`` (general usecase, available for deployment)"},{"line_number":69,"context_line":"* ``unavailable`` (present on ui, but can\u0027t be chosen for new envs)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Initial ``.state`` should be loaded from the ``openstack.yaml``."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a930d6b_9a34fffc","line":69,"in_reply_to":"1a930d6b_b3894a28","updated":"2015-01-27 11:33:04.000000000","message":"imo retry without reuploading looks pointless, is it possible to have any non-determinitic issues with repo extraction, image building?\n\nso additional states:\n - error\n - and one more state to mark that we are running some tasks for release (but downloading doesnt seem correct to me) - processing ?","commit_id":"8e224f60f45e7130e79583e38950a9ef801890bb"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"ed88827b1fc4adc88ffeda2327b26db24e6d3ca6","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Database migration should set ``.state \u003d available`` for previous releases."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Also, the release model should have a field to store ISO\u0027s SHA1 checksum."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a930d6b_223a6a36","line":75,"updated":"2015-01-23 14:22:44.000000000","message":"Maybe strange question, but when SHA1 checksum gets into the database?","commit_id":"8e224f60f45e7130e79583e38950a9ef801890bb"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"5390d0ece6b9c51095e79a64a46c472cdc74297b","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Database migration should set ``.state \u003d available`` for previous releases."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Also, the release model should have a field to store ISO\u0027s SHA1 checksum."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a930d6b_13aa1ed4","line":75,"in_reply_to":"1a930d6b_223a6a36","updated":"2015-01-23 15:33:09.000000000","message":"I think it should be pre-hardcoded in openstack.yaml. We always know SHA1 of the official canonical ISO. Any objections?","commit_id":"8e224f60f45e7130e79583e38950a9ef801890bb"},{"author":{"_account_id":8907,"name":"Dmitry Shulyak","email":"dshulyak@mirantis.com","username":"dshulyak"},"change_message_id":"bf4547f35f46c1e71ae890efe3f7cfe809a75937","unresolved":false,"context_lines":[{"line_number":91,"context_line":"returned."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Astute should get the task, perform \"repos extraction\" and report back"},{"line_number":94,"context_line":"to Nailgun about task status."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"If repos were extracted successfuly, the release should change its"},{"line_number":97,"context_line":"state from ``unavailable`` to ``available``."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a930d6b_8eb8442b","line":94,"updated":"2015-01-27 11:33:04.000000000","message":"so it will be one motolithic task hardcoded in astute?\n\ni thought that we are going to have list of tasks that are using astute hooks","commit_id":"8e224f60f45e7130e79583e38950a9ef801890bb"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"22660f53d8c578ae0e62024b007dd0acb3e5cdc7","unresolved":false,"context_lines":[{"line_number":91,"context_line":"returned."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Astute should get the task, perform \"repos extraction\" and report back"},{"line_number":94,"context_line":"to Nailgun about task status."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"If repos were extracted successfuly, the release should change its"},{"line_number":97,"context_line":"state from ``unavailable`` to ``available``."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a930d6b_f18e092d","line":94,"in_reply_to":"1a930d6b_8eb8442b","updated":"2015-01-27 11:59:21.000000000","message":"Hm, good question actually. I think I need a meeting with you. One question before - is it possible to report progress in your case?","commit_id":"8e224f60f45e7130e79583e38950a9ef801890bb"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"6b598567afc94e1f34aceb4c7210cc50e257c416","unresolved":false,"context_lines":[{"line_number":94,"context_line":"to Nailgun about task status."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"If repos were extracted successfuly, the release should change its"},{"line_number":97,"context_line":"state from ``unavailable`` to ``available``."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":100,"context_line":"where ``.state !\u003d unavailable``."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a930d6b_9930f5e9","line":97,"updated":"2015-01-23 12:47:47.000000000","message":"I think we need to run Ubuntu image build script here as well. Let\u0027s just rename this task from \"repos extraction\" into something like \"prepare release\". This task will prepare repos and then run executable script with those repos. It does not require additional efforts except adding a single line into astute. Build image script is to be totally implemented in terms of this BP https://blueprints.launchpad.net/fuel/+spec/ibp-build-ubuntu-images","commit_id":"8e224f60f45e7130e79583e38950a9ef801890bb"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"5390d0ece6b9c51095e79a64a46c472cdc74297b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"to Nailgun about task status."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"If repos were extracted successfuly, the release should change its"},{"line_number":97,"context_line":"state from ``unavailable`` to ``available``."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":100,"context_line":"where ``.state !\u003d unavailable``."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a930d6b_ae9641ee","line":97,"in_reply_to":"1a930d6b_9930f5e9","updated":"2015-01-23 15:33:09.000000000","message":"Ok. What about \"process_iso\" task?","commit_id":"8e224f60f45e7130e79583e38950a9ef801890bb"},{"author":{"_account_id":8766,"name":"Julia Aranovich","email":"jkirnosova@mirantis.com","username":"CesarSar"},"change_message_id":"75a104294b223ffc281f370eed28d38bb9106a15","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Mark Ubuntu as unavailable release."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  Ubuntu release may appear on UI, but it MUST be unavailable for creating"},{"line_number":36,"context_line":"  new environments. All attempts to do so SHOULD lead cloud operators to"},{"line_number":37,"context_line":"  a page with instructions how to make it available."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a930d6b_47d1df21","line":35,"updated":"2015-01-28 07:42:00.000000000","message":"\"...for deploying environments\" ? User is able to create env with unavailable release, to confire it but can\u0027t deploy.","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"7e55c31b3db3282fb388085dde5075326ad76574","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Mark Ubuntu as unavailable release."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  Ubuntu release may appear on UI, but it MUST be unavailable for creating"},{"line_number":36,"context_line":"  new environments. All attempts to do so SHOULD lead cloud operators to"},{"line_number":37,"context_line":"  a page with instructions how to make it available."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_78c71813","line":35,"in_reply_to":"1a930d6b_47d1df21","updated":"2015-01-28 07:46:45.000000000","message":"Nice catch! Thank you. I wrote it before our UX meeting. Will change it in next patchset.","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"7623470e0cbe2f078a8f23532db2fbf22d43a460","unresolved":false,"context_lines":[{"line_number":91,"context_line":"to Astute. In case of error - HTTP status ``400 Bad Request`` should be"},{"line_number":92,"context_line":"returned."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Astute should get the task, perform \"repos extraction\" and report back"},{"line_number":95,"context_line":"to Nailgun about task status."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"If repos were extracted successfuly, the release should change its"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_7304997e","line":94,"updated":"2015-01-28 08:11:02.000000000","message":"What about building target OS images? Are we going to do this in terms of this particular (repos_extraction) task? Or maybe you think it should be a separate task.","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"f24a1e28cce11bd4d3ec9d68e9ef51b9b730828a","unresolved":false,"context_lines":[{"line_number":91,"context_line":"to Astute. In case of error - HTTP status ``400 Bad Request`` should be"},{"line_number":92,"context_line":"returned."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Astute should get the task, perform \"repos extraction\" and report back"},{"line_number":95,"context_line":"to Nailgun about task status."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"If repos were extracted successfuly, the release should change its"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_c6a01ef7","line":94,"in_reply_to":"fa81d914_7304997e","updated":"2015-01-28 10:09:34.000000000","message":"I have no answer yet. There\u0027s some ideas but I need to discuss it with Dima S and Evgeniy L. I\u0027ll back with answers as soon as possible.","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"ebe12b64b0886c8acfadd05b1267fb9e8dfef648","unresolved":false,"context_lines":[{"line_number":91,"context_line":"to Astute. In case of error - HTTP status ``400 Bad Request`` should be"},{"line_number":92,"context_line":"returned."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Astute should get the task, perform \"repos extraction\" and report back"},{"line_number":95,"context_line":"to Nailgun about task status."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"If repos were extracted successfuly, the release should change its"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_170e70e5","line":94,"in_reply_to":"fa81d914_c6a01ef7","updated":"2015-01-30 13:33:48.000000000","message":"From the Nailgun POV there will be only one task - prepare_release. The task itself will send two tasks (which are described in declarative format) to Astute and they will be executed in MCollective container. \n\nWill add this info in next patchset.","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":12867,"name":"Dmitry Tyzhnenko","email":"t.dmitry@gmail.com","username":"t.dmitry"},"change_message_id":"b8ebe9b2c200ea1335c869c3663fbb7135711c88","unresolved":false,"context_lines":[{"line_number":95,"context_line":"to Nailgun about task status."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"If repos were extracted successfuly, the release should change its"},{"line_number":98,"context_line":"state from ``unavailable`` to ``available``."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":101,"context_line":"where ``.state !\u003d unavailable``."}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_9be2fb9d","line":98,"updated":"2015-01-28 13:36:58.000000000","message":"IBP performs in same task or we must wait finish of an other task before release state set to \u0027available\u0027?","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"ebe12b64b0886c8acfadd05b1267fb9e8dfef648","unresolved":false,"context_lines":[{"line_number":95,"context_line":"to Nailgun about task status."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"If repos were extracted successfuly, the release should change its"},{"line_number":98,"context_line":"state from ``unavailable`` to ``available``."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":101,"context_line":"where ``.state !\u003d unavailable``."}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_2f745498","line":98,"in_reply_to":"fa81d914_9be2fb9d","updated":"2015-01-30 13:33:48.000000000","message":"Thank you, I\u0027ll add this to spec in next patchset.","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":12867,"name":"Dmitry Tyzhnenko","email":"t.dmitry@gmail.com","username":"t.dmitry"},"change_message_id":"b8ebe9b2c200ea1335c869c3663fbb7135711c88","unresolved":false,"context_lines":[{"line_number":98,"context_line":"state from ``unavailable`` to ``available``."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":101,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"The API handler shouldn\u0027t create new task if there\u0027s the same task in"},{"line_number":104,"context_line":"progress."}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_7bbe2701","line":101,"updated":"2015-01-28 13:36:58.000000000","message":"If we try re-upload iso during `repos extraction` task, what will happen? State is still `unavailable`.\nCan we use a new status like `processing` for example?","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"ebe12b64b0886c8acfadd05b1267fb9e8dfef648","unresolved":false,"context_lines":[{"line_number":98,"context_line":"state from ``unavailable`` to ``available``."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"The API handler should return ``405 Method Not Allowed`` for releases"},{"line_number":101,"context_line":"where ``.state !\u003d unavailable``."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"The API handler shouldn\u0027t create new task if there\u0027s the same task in"},{"line_number":104,"context_line":"progress."}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_cfe9f81b","line":101,"in_reply_to":"fa81d914_7bbe2701","updated":"2015-01-30 13:33:48.000000000","message":"We will forbid to re-upload iso when there\u0027s a running operation. Will add it in next patchset. Thank you. :)","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":12867,"name":"Dmitry Tyzhnenko","email":"t.dmitry@gmail.com","username":"t.dmitry"},"change_message_id":"b8ebe9b2c200ea1335c869c3663fbb7135711c88","unresolved":false,"context_lines":[{"line_number":144,"context_line":"     |                          |           |"},{"line_number":145,"context_line":"     |                          |           |"},{"line_number":146,"context_line":"     |     check task status    |           |"},{"line_number":147,"context_line":"     | +----------------------------------\u003e |"},{"line_number":148,"context_line":"     |           done           |           |"},{"line_number":149,"context_line":"     | \u003c----------------------------------+ |"},{"line_number":150,"context_line":"     |                          |           |"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_4025eec0","line":147,"updated":"2015-01-28 13:36:58.000000000","message":"What api request will be used for it?","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"ebe12b64b0886c8acfadd05b1267fb9e8dfef648","unresolved":false,"context_lines":[{"line_number":144,"context_line":"     |                          |           |"},{"line_number":145,"context_line":"     |                          |           |"},{"line_number":146,"context_line":"     |     check task status    |           |"},{"line_number":147,"context_line":"     | +----------------------------------\u003e |"},{"line_number":148,"context_line":"     |           done           |           |"},{"line_number":149,"context_line":"     | \u003c----------------------------------+ |"},{"line_number":150,"context_line":"     |                          |           |"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_cfd3b836","line":147,"in_reply_to":"fa81d914_4025eec0","updated":"2015-01-30 13:33:48.000000000","message":"No new requests. Just a regular for checking tasks.\n\nSee this link for details:\nhttps://github.com/stackforge/fuel-web/blob/92a85025f0ef9b3c5b42a1ba172573aa0ac54e33/nailgun/nailgun/api/v1/urls.py#L195-L198","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"7623470e0cbe2f078a8f23532db2fbf22d43a460","unresolved":false,"context_lines":[{"line_number":150,"context_line":"     |                          |           |"},{"line_number":151,"context_line":"     |                          |           |"},{"line_number":152,"context_line":"     |        create env        |           |"},{"line_number":153,"context_line":"     | +----------------------------------\u003e |"},{"line_number":154,"context_line":"     |           done           |           |"},{"line_number":155,"context_line":"     | \u003c----------------------------------+ |"},{"line_number":156,"context_line":"     |                          |           |"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_b3dd3145","line":153,"updated":"2015-01-28 08:11:02.000000000","message":"Taking into account new UX we can create envs even before user uploaded ubuntu ISO. Just note this here.","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"f24a1e28cce11bd4d3ec9d68e9ef51b9b730828a","unresolved":false,"context_lines":[{"line_number":150,"context_line":"     |                          |           |"},{"line_number":151,"context_line":"     |                          |           |"},{"line_number":152,"context_line":"     |        create env        |           |"},{"line_number":153,"context_line":"     | +----------------------------------\u003e |"},{"line_number":154,"context_line":"     |           done           |           |"},{"line_number":155,"context_line":"     | \u003c----------------------------------+ |"},{"line_number":156,"context_line":"     |                          |           |"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_86b6263c","line":153,"in_reply_to":"fa81d914_b3dd3145","updated":"2015-01-28 10:09:34.000000000","message":"Thank you. I\u0027ll add a note.","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":12867,"name":"Dmitry Tyzhnenko","email":"t.dmitry@gmail.com","username":"t.dmitry"},"change_message_id":"b8ebe9b2c200ea1335c869c3663fbb7135711c88","unresolved":false,"context_lines":[{"line_number":259,"context_line":"Testing"},{"line_number":260,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":263,"context_line":"* The release became available when the task gets done successfully."},{"line_number":264,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":265,"context_line":"* The ubuntu is deployed successfully."}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_fbb69789","line":262,"updated":"2015-01-28 13:36:58.000000000","message":"How we can get the path where iso was extracted?","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"ebe12b64b0886c8acfadd05b1267fb9e8dfef648","unresolved":false,"context_lines":[{"line_number":259,"context_line":"Testing"},{"line_number":260,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":263,"context_line":"* The release became available when the task gets done successfully."},{"line_number":264,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":265,"context_line":"* The ubuntu is deployed successfully."}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_3713740e","line":262,"in_reply_to":"fa81d914_fbb69789","updated":"2015-01-30 13:33:48.000000000","message":"It\u0027s hard to say now until another blueprint get done (separate mos repos).","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":12867,"name":"Dmitry Tyzhnenko","email":"t.dmitry@gmail.com","username":"t.dmitry"},"change_message_id":"b8ebe9b2c200ea1335c869c3663fbb7135711c88","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":263,"context_line":"* The release became available when the task gets done successfully."},{"line_number":264,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":265,"context_line":"* The ubuntu is deployed successfully."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_4d1d2666","line":264,"updated":"2015-01-28 13:36:58.000000000","message":"How we can get list of repos whithc used in deployment?","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"ebe12b64b0886c8acfadd05b1267fb9e8dfef648","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":263,"context_line":"* The release became available when the task gets done successfully."},{"line_number":264,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":265,"context_line":"* The ubuntu is deployed successfully."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa81d914_d72e9842","line":264,"in_reply_to":"fa81d914_4d1d2666","updated":"2015-01-30 13:33:48.000000000","message":"Currently, you just need to fetch release information (there\u0027s an API call) and look into \"orchestrator_data\" field.","commit_id":"08b4aeda7f85f98f5786b553de9233d0f3183365"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"b87a4fac125bfa1c90126dddf2f0d465b48c00a8","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Database migration should set ``.state \u003d available`` for previous releases."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Also, the release model should have a field to store ISO\u0027s SHA1 checksum."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Task"},{"line_number":96,"context_line":"````"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_0408f5d8","line":93,"updated":"2015-02-04 14:04:21.000000000","message":"Back to our discussion about checksum [1]\n\nWe cannot hardcode it, because there can be newer iso with security fixes, like 14.04.1, 14.04.2, 14.04.3, etc ...\n\nOr we are going to stick with specific version and the rest of the packages/fixes build by ourself?\n\n[1] https://review.openstack.org/#/c/147838/2/specs/6.1/downloadable-ubuntu-release.rst","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"4ea46b1e34528f9ccd6e1f3b760a07119cebfcb2","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Database migration should set ``.state \u003d available`` for previous releases."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Also, the release model should have a field to store ISO\u0027s SHA1 checksum."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Task"},{"line_number":96,"context_line":"````"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_64eb71b0","line":93,"in_reply_to":"da86d52c_0408f5d8","updated":"2015-02-04 14:11:41.000000000","message":"We\u0027re going to stick with a specific version. It\u0027s to danger to provide ability to upload the release we aren\u0027t ready to handle (you now, some dependency hell between our packages and ubuntu\u0027s one).","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":8749,"name":"Evgeniy L","email":"eli@mirantis.com","username":"evgeniyl"},"change_message_id":"2b36c605b4763977dc92f5da18b293908921d217","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Database migration should set ``.state \u003d available`` for previous releases."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Also, the release model should have a field to store ISO\u0027s SHA1 checksum."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Task"},{"line_number":96,"context_line":"````"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_1f2e8092","line":93,"in_reply_to":"da86d52c_64eb71b0","updated":"2015-02-04 14:18:45.000000000","message":"Ok then.","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":11969,"name":"Dennis Dmitriev","email":"dis.xcom@gmail.com","username":"ddmitriev"},"change_message_id":"4b3ee95bc92749f7d96d18d44fb0f82f87052ade","unresolved":false,"context_lines":[{"line_number":346,"context_line":"Testing"},{"line_number":347,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":350,"context_line":"* The release became available when the task gets done successfully."},{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_b6e87a11","line":349,"updated":"2015-02-03 12:06:11.000000000","message":"So we can get the list of repos from release information (\"orchestrator_data\" field) , and download all necessary files from the repo using links to the repo; then compare it to ISO content.\nAnd doesn\u0027t matter where exactly in master node the repo was placed, right?","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"727bb59bf9d2b02191b504cdb6ea7199e6e60c0a","unresolved":false,"context_lines":[{"line_number":346,"context_line":"Testing"},{"line_number":347,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":350,"context_line":"* The release became available when the task gets done successfully."},{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_46567507","line":349,"in_reply_to":"da86d52c_b6e87a11","updated":"2015-02-04 13:22:02.000000000","message":"\u003e So we can get the list of repos from release information (\"orchestrator_data\" field)\n\nThat\u0027s right.\n\n\u003e  and download all necessary files from the repo using links to the repo\n\nYes. Though there\u0027s a question - how to distinguish \"vanilla\" repo (extracted from ISO) from pre-distributed by Mirantis.\n\nI think it\u0027s a question we need to discuss.","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":11969,"name":"Dennis Dmitriev","email":"dis.xcom@gmail.com","username":"ddmitriev"},"change_message_id":"4b3ee95bc92749f7d96d18d44fb0f82f87052ade","unresolved":false,"context_lines":[{"line_number":347,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":350,"context_line":"* The release became available when the task gets done successfully."},{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."},{"line_number":353,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_d68faeca","line":350,"updated":"2015-02-03 12:06:11.000000000","message":"If we want to test the behavior in case if astute tasks is failed, would it be enough just restart the docker with astute container, and check that \u0027processing\u0027 state changes to \u0027unavailable\u0027 in a while?","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"727bb59bf9d2b02191b504cdb6ea7199e6e60c0a","unresolved":false,"context_lines":[{"line_number":347,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":350,"context_line":"* The release became available when the task gets done successfully."},{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."},{"line_number":353,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_06d39d60","line":350,"in_reply_to":"da86d52c_d68faeca","updated":"2015-02-04 13:22:02.000000000","message":"Nope, it won\u0027t work. If you restart Astute the response will never reach Nailgun. Therefore, the release will be always in \"processing\" state. We MUST receive a response from Astute. \n\nIf you want to fake error it\u0027d be better to do the following things:\n\n* prepare some invalid file (just some .txt, for example)\n* change release\u0027s iso checksum to the checksum of this file\n* upload this file\n* receive an error from Astute, because of invalid iso","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":11969,"name":"Dennis Dmitriev","email":"dis.xcom@gmail.com","username":"ddmitriev"},"change_message_id":"4b3ee95bc92749f7d96d18d44fb0f82f87052ade","unresolved":false,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":350,"context_line":"* The release became available when the task gets done successfully."},{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_f632f20e","line":351,"updated":"2015-02-03 12:06:11.000000000","message":"Not necessary. I think this will be covered by check in L349 (is it the repo we need?) and by deploys in CI (is the repo consistent to install packages from it?)","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":11969,"name":"Dennis Dmitriev","email":"dis.xcom@gmail.com","username":"ddmitriev"},"change_message_id":"df9e32a2faac1bd016efd4b2f31027b5f452d1c3","unresolved":false,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":350,"context_line":"* The release became available when the task gets done successfully."},{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_78baa40b","line":351,"in_reply_to":"da86d52c_e65049d6","updated":"2015-02-09 11:11:22.000000000","message":"Yes, exactly in this way, installing something from this repo like from an additional source.","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"727bb59bf9d2b02191b504cdb6ea7199e6e60c0a","unresolved":false,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":350,"context_line":"* The release became available when the task gets done successfully."},{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_e65049d6","line":351,"in_reply_to":"da86d52c_f632f20e","updated":"2015-02-04 13:22:02.000000000","message":"Do you mean \"Can we add this repo to sources.list and try to install something from it\"? If so - yes, you can. If not - it\u0027s a bug.","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":11969,"name":"Dennis Dmitriev","email":"dis.xcom@gmail.com","username":"ddmitriev"},"change_message_id":"4b3ee95bc92749f7d96d18d44fb0f82f87052ade","unresolved":false,"context_lines":[{"line_number":349,"context_line":"* The repo is successfully extracted from the uploaded ISO."},{"line_number":350,"context_line":"* The release became available when the task gets done successfully."},{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_363d6adf","line":352,"updated":"2015-02-03 12:06:11.000000000","message":"The same as in L352","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":11969,"name":"Dennis Dmitriev","email":"dis.xcom@gmail.com","username":"ddmitriev"},"change_message_id":"4b3ee95bc92749f7d96d18d44fb0f82f87052ade","unresolved":false,"context_lines":[{"line_number":350,"context_line":"* The release became available when the task gets done successfully."},{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"Documentation Impact"},{"line_number":356,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_81b08e44","line":353,"updated":"2015-02-03 12:06:11.000000000","message":"Also, we must check the status \u0027available\u0027 for old releases after upgrading to 6.1","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"727bb59bf9d2b02191b504cdb6ea7199e6e60c0a","unresolved":false,"context_lines":[{"line_number":350,"context_line":"* The release became available when the task gets done successfully."},{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"Documentation Impact"},{"line_number":356,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_e66769b5","line":353,"in_reply_to":"da86d52c_81b08e44","updated":"2015-02-04 13:22:02.000000000","message":"That\u0027s right. Thank you. Actually, they are available for sure ;) (it was hardcoded in opensack.yaml).","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":11969,"name":"Dennis Dmitriev","email":"dis.xcom@gmail.com","username":"ddmitriev"},"change_message_id":"4b3ee95bc92749f7d96d18d44fb0f82f87052ade","unresolved":false,"context_lines":[{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"Documentation Impact"},{"line_number":356,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_a1c0327d","line":354,"updated":"2015-02-03 12:06:11.000000000","message":"Add steps for check behaviour when the following collisions are caused:\n405 Method Not Allowed\n409 Conflict","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"},{"author":{"_account_id":10391,"name":"Ihor Kalnytskyi","email":"ihor@kalnytskyi.com","username":"ikalnitsky"},"change_message_id":"727bb59bf9d2b02191b504cdb6ea7199e6e60c0a","unresolved":false,"context_lines":[{"line_number":351,"context_line":"* The repo is used during ubuntu deployment."},{"line_number":352,"context_line":"* The ubuntu is deployed successfully."},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"Documentation Impact"},{"line_number":356,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_6613790d","line":354,"in_reply_to":"da86d52c_a1c0327d","updated":"2015-02-04 13:22:02.000000000","message":"Thank you, will add in next patchset.","commit_id":"dc6c11f180c0cb3e922ca97f8adc9cc22a657edc"}]}
