)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"622e98e5c9e8afc45a3923bdbccd6abfaa51c605","unresolved":false,"context_lines":[{"line_number":14,"context_line":"the Entity, and also enter specific parameter values."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I5348c8b7017af45cd7e58ae0411120b6f94e49f8"},{"line_number":17,"context_line":"Implements: blueprint add-action-list-panel"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":38,"id":"5f7c97a3_a5928549","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":43},"updated":"2018-07-24 06:51:59.000000000","message":"Since we migrated to StoryBoard, please replace this line with:\n\nStory: 2002672\n\nTask: 22489\n\nAs a result, your story will be marked as closed automatically as soon as this change is merged.","commit_id":"a8ad7031f0fa323db3fa433e1abb4984b430c6df"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"263be3472ba8d1ec3d61f96b3d534b81ccac7657","unresolved":false,"context_lines":[{"line_number":14,"context_line":"the Entity, and also enter specific parameter values."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I5348c8b7017af45cd7e58ae0411120b6f94e49f8"},{"line_number":17,"context_line":"Implements: blueprint add-action-list-panel"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":38,"id":"5f7c97a3_7bface44","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":43},"in_reply_to":"5f7c97a3_a5928549","updated":"2018-07-24 08:51:57.000000000","message":"Thank you : )\n\nI modified it.","commit_id":"a8ad7031f0fa323db3fa433e1abb4984b430c6df"}],"doc/source/contributor/action-list-panel.rst":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3d57975b182351e43fb47cf2b22ac26770a90e83","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Action List Panel"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Overview"},{"line_number":6,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":21,"id":"9f6a8fd7_0ed02dc9","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":17},"updated":"2018-04-29 09:22:15.000000000","message":"I would change this file to a more simple file that contains only the configuration options.\nYou already wrote the overview and system diagram in the spec, right? so you can put a link to the spec here.\n\nI think that in the documentation part of vitrage-dashboard we should have a short and simple explanation of how to configure the dashboard. See for example the vitrage configuration documentation:\n\nhttps://docs.openstack.org/vitrage/latest/contributor/configuration.html\n\nhttps://docs.openstack.org/vitrage/latest/contributor/nagios-config.html","commit_id":"99c9ad9294fb671452e0de34fa2bbe3fb9d859e9"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"f16d59894da38563ce957432369b04686ff71d9f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Action List Panel"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Overview"},{"line_number":6,"context_line":"--------"}],"source_content_type":"text/x-rst","patch_set":21,"id":"9f6a8fd7_ff3fa184","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":17},"in_reply_to":"9f6a8fd7_0ed02dc9","updated":"2018-04-30 04:16:35.000000000","message":"Corrected that part.\n\nI\u0027ve just written about the setting.conf file more simply.\n\nThank you : )","commit_id":"99c9ad9294fb671452e0de34fa2bbe3fb9d859e9"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3d57975b182351e43fb47cf2b22ac26770a90e83","unresolved":false,"context_lines":[{"line_number":101,"context_line":"------------------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"The user can configure the desired action list via the setting.conf file of Vitrage-dashboard."},{"line_number":104,"context_line":"If we add a specific action to settings.conf and do not **have an environment(e.g. Mistral, Rally)**"},{"line_number":105,"context_line":"ready for these actions, Vitrage-dashboard will not automatically add an action list."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Format"}],"source_content_type":"text/x-rst","patch_set":21,"id":"9f6a8fd7_2e04117b","line":104,"range":{"start_line":104,"start_character":31,"end_line":104,"end_character":44},"updated":"2018-04-29 09:22:15.000000000","message":"In the title you wrote \"configure setting.conf\" and here you wrote settings.conf (with s at the end). The code seems to work with setting.conf.\n\nWhat should be the right name of the file?","commit_id":"99c9ad9294fb671452e0de34fa2bbe3fb9d859e9"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"f16d59894da38563ce957432369b04686ff71d9f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"------------------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"The user can configure the desired action list via the setting.conf file of Vitrage-dashboard."},{"line_number":104,"context_line":"If we add a specific action to settings.conf and do not **have an environment(e.g. Mistral, Rally)**"},{"line_number":105,"context_line":"ready for these actions, Vitrage-dashboard will not automatically add an action list."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Format"}],"source_content_type":"text/x-rst","patch_set":21,"id":"9f6a8fd7_bf492933","line":104,"range":{"start_line":104,"start_character":31,"end_line":104,"end_character":44},"in_reply_to":"9f6a8fd7_2e04117b","updated":"2018-04-30 04:16:35.000000000","message":"Setting.conf is the correct name.\n\nSorry. that\u0027s my fault.\n\nIt has been modified.","commit_id":"99c9ad9294fb671452e0de34fa2bbe3fb9d859e9"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e1a36e027139f4324e2fcd7fcab803992c267438","unresolved":false,"context_lines":[{"line_number":6,"context_line":"-----"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"We can see more details on the action list panel and several actions in the spec below."},{"line_number":9,"context_line":"https://review.openstack.org/#/c/531141/"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Configuring setting.conf"},{"line_number":12,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":23,"id":"5f7c97a3_0b717f0c","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":40},"updated":"2018-05-17 05:13:51.000000000","message":"Please use this link instead (looks nicer ;-)):\n\nhttps://specs.openstack.org/openstack/vitrage-specs/specs/rocky/approved/add-action-list-panel.html","commit_id":"49d3d0f891fe0bb57e6f19befa99640936ba9ba6"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"30be95ff5de01ccd33350f901ab82c8a3173667c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"------------------------"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The user can configure the desired action list via the setting.conf file of Vitrage-dashboard."},{"line_number":15,"context_line":"If we add a specific action to setting.conf and do not **have an environment(e.g. Mistral, Rally)**"},{"line_number":16,"context_line":"ready for these actions, Vitrage-dashboard will not automatically add an action list."},{"line_number":17,"context_line":"Mistral and Rally do not have separate sessions, and we can use them just by specifying them"},{"line_number":18,"context_line":"in actions."}],"source_content_type":"text/x-rst","patch_set":34,"id":"5f7c97a3_57916251","line":15,"range":{"start_line":15,"start_character":31,"end_line":15,"end_character":44},"updated":"2018-06-11 21:04:12.000000000","message":"Can we use horizon\u0027s settings.py for it?\nIt will be easier both for operators and developers to use one config format for horizon and plugins","commit_id":"4830ba39763aa7c9b1a9ee8724def3346dc2c0c3"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"e4075c2e453182ec110f21d496586958e531f51d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"------------------------"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The user can configure the desired action list via the setting.conf file of Vitrage-dashboard."},{"line_number":15,"context_line":"If we add a specific action to setting.conf and do not **have an environment(e.g. Mistral, Rally)**"},{"line_number":16,"context_line":"ready for these actions, Vitrage-dashboard will not automatically add an action list."},{"line_number":17,"context_line":"Mistral and Rally do not have separate sessions, and we can use them just by specifying them"},{"line_number":18,"context_line":"in actions."}],"source_content_type":"text/x-rst","patch_set":34,"id":"5f7c97a3_eedad176","line":15,"range":{"start_line":15,"start_character":31,"end_line":15,"end_character":44},"in_reply_to":"5f7c97a3_57916251","updated":"2018-07-10 13:01:54.000000000","message":"I confirmed the horizon\u0027s setting.py according to your comment.\n\nHowever, horizon\u0027s setting.py seems to be the theme related code, right?\n\nCurrently, the setting.conf is read in real time and periodically.\n\nI can not be sure that this can be done via setting.py. Is it possible?\n\nIf possible, I\u0027ll take a look at some more code:)","commit_id":"4830ba39763aa7c9b1a9ee8724def3346dc2c0c3"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"bc83cd5d0534187241e6097461dd5462b4306b07","unresolved":false,"context_lines":[{"line_number":12,"context_line":"------------------------"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The user can configure the desired action list via the setting.conf file of Vitrage-dashboard."},{"line_number":15,"context_line":"If we add a specific action to setting.conf and do not **have an environment(e.g. Mistral, Rally)**"},{"line_number":16,"context_line":"ready for these actions, Vitrage-dashboard will not automatically add an action list."},{"line_number":17,"context_line":"Mistral and Rally do not have separate sessions, and we can use them just by specifying them"},{"line_number":18,"context_line":"in actions."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":36,"id":"5f7c97a3_a14755a4","line":16,"range":{"start_line":15,"start_character":44,"end_line":16,"end_character":23},"updated":"2018-07-18 11:38:42.000000000","message":"but the corresponding service (e.g. Mistral, Rally) is not installed or enabled,","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"ae2d4a798b18c8089160ed48b112e04b08fef0fe","unresolved":false,"context_lines":[{"line_number":12,"context_line":"------------------------"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The user can configure the desired action list via the setting.conf file of Vitrage-dashboard."},{"line_number":15,"context_line":"If we add a specific action to setting.conf and do not **have an environment(e.g. Mistral, Rally)**"},{"line_number":16,"context_line":"ready for these actions, Vitrage-dashboard will not automatically add an action list."},{"line_number":17,"context_line":"Mistral and Rally do not have separate sessions, and we can use them just by specifying them"},{"line_number":18,"context_line":"in actions."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":36,"id":"5f7c97a3_532f2488","line":16,"range":{"start_line":15,"start_character":44,"end_line":16,"end_character":23},"in_reply_to":"5f7c97a3_a14755a4","updated":"2018-07-19 02:55:26.000000000","message":"Done","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"bc83cd5d0534187241e6097461dd5462b4306b07","unresolved":false,"context_lines":[{"line_number":15,"context_line":"If we add a specific action to setting.conf and do not **have an environment(e.g. Mistral, Rally)**"},{"line_number":16,"context_line":"ready for these actions, Vitrage-dashboard will not automatically add an action list."},{"line_number":17,"context_line":"Mistral and Rally do not have separate sessions, and we can use them just by specifying them"},{"line_number":18,"context_line":"in actions."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The following should be set in /etc/vitrage-dashboard/setting.conf :"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":36,"id":"5f7c97a3_c16b7119","line":18,"range":{"start_line":18,"start_character":3,"end_line":18,"end_character":10},"updated":"2018-07-18 11:38:42.000000000","message":"``actions`` list","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"ae2d4a798b18c8089160ed48b112e04b08fef0fe","unresolved":false,"context_lines":[{"line_number":15,"context_line":"If we add a specific action to setting.conf and do not **have an environment(e.g. Mistral, Rally)**"},{"line_number":16,"context_line":"ready for these actions, Vitrage-dashboard will not automatically add an action list."},{"line_number":17,"context_line":"Mistral and Rally do not have separate sessions, and we can use them just by specifying them"},{"line_number":18,"context_line":"in actions."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The following should be set in /etc/vitrage-dashboard/setting.conf :"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":36,"id":"5f7c97a3_134bec5e","line":18,"range":{"start_line":18,"start_character":3,"end_line":18,"end_character":10},"in_reply_to":"5f7c97a3_c16b7119","updated":"2018-07-19 02:55:26.000000000","message":"Done","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"}],"setting.conf.sample":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"7b1d268b61104b67fe87f0aceef4e659e6381812","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# FILE LOCATION : /etc/vitrage-dashboard/setting.conf"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"[Execute Action]"},{"line_number":4,"context_line":"#mistral_use \u003d True/False"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"3fa0c359_449acd61","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":53},"updated":"2018-02-14 12:13:06.000000000","message":"Will it be a part of the settings file? or is it just a comment?","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"f282bc9d03005dcc7d33d41a400dc64793f3a1e0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# FILE LOCATION : /etc/vitrage-dashboard/setting.conf"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"[Execute Action]"},{"line_number":4,"context_line":"#mistral_use \u003d True/False"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"3fa0c359_21714fdf","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":53},"in_reply_to":"3fa0c359_449acd61","updated":"2018-02-19 11:16:51.000000000","message":"It is just an opinion. This is a comment to indicate the path where Vitrage-dashboard reads the conf file.","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"7b1d268b61104b67fe87f0aceef4e659e6381812","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# FILE LOCATION : /etc/vitrage-dashboard/setting.conf"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"[Execute Action]"},{"line_number":4,"context_line":"#mistral_use \u003d True/False"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[Performance Test]"},{"line_number":7,"context_line":"#rally_use \u003d True/False"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[Monitoring URL]"},{"line_number":10,"context_line":"#url_use \u003d True"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"3fa0c359_a49071ee","line":7,"range":{"start_line":3,"start_character":0,"end_line":7,"end_character":23},"updated":"2018-02-14 12:13:06.000000000","message":"Is there any configuration that is needed for Mistral or Rally?\n\n- If there is, then the mistral_use and rally_use flags are not needed. The fact that you have a [Mistral] tag is enough to determine that Mistral should be used.\n\n- If there isn\u0027t, then one option is to use flags, as you suggested. I would name them enable_mistral and enable_rally. Another option, which I prefer, is to define the list of actions that are supported, like we do for datasources and notifiers:\n\nactions \u003d mistral, rally, grafana","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"f282bc9d03005dcc7d33d41a400dc64793f3a1e0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# FILE LOCATION : /etc/vitrage-dashboard/setting.conf"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"[Execute Action]"},{"line_number":4,"context_line":"#mistral_use \u003d True/False"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[Performance Test]"},{"line_number":7,"context_line":"#rally_use \u003d True/False"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[Monitoring URL]"},{"line_number":10,"context_line":"#url_use \u003d True"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"3fa0c359_015f7341","line":7,"range":{"start_line":3,"start_character":0,"end_line":7,"end_character":23},"in_reply_to":"3fa0c359_a49071ee","updated":"2018-02-19 11:16:51.000000000","message":"There is no configuration required for Mistral or Rally in conf file.\n\nenable_rally, mistral, etc., added a Default session, and inserted actions.\n\nThat\u0027s why we read sessions like Mistral, Zabbix, Grafana, Rally, etc. based on actions.","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"7b1d268b61104b67fe87f0aceef4e659e6381812","unresolved":false,"context_lines":[{"line_number":6,"context_line":"[Performance Test]"},{"line_number":7,"context_line":"#rally_use \u003d True/False"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[Monitoring URL]"},{"line_number":10,"context_line":"#url_use \u003d True"},{"line_number":11,"context_line":"#zabbix_url \u003d http://[zabbix server\u0027s IP:PORT]/zabbix"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"3fa0c359_a47e31ac","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":15},"updated":"2018-02-14 12:13:06.000000000","message":"There might be several monitors or URLs that the user would like to open, like Zabbix and Grafana. \n\n think it would be better to define them separately. Instead of a common [Monitoring URL] tag I would define [Zabbix] and [Grafana]. If a user defines [Zabbix] in the settings file, it means that he wants to use Zabbix. There is no need to set url_use flag in addition.","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"f282bc9d03005dcc7d33d41a400dc64793f3a1e0","unresolved":false,"context_lines":[{"line_number":6,"context_line":"[Performance Test]"},{"line_number":7,"context_line":"#rally_use \u003d True/False"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[Monitoring URL]"},{"line_number":10,"context_line":"#url_use \u003d True"},{"line_number":11,"context_line":"#zabbix_url \u003d http://[zabbix server\u0027s IP:PORT]/zabbix"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"3fa0c359_e1536738","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":15},"in_reply_to":"3fa0c359_a47e31ac","updated":"2018-02-19 11:16:51.000000000","message":"It has been modified.","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"9332b2c016823e41a5a0629d35477202c2916094","unresolved":false,"context_lines":[{"line_number":4,"context_line":"#actions \u003d mistral,rally,zabbix"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Execute Action]"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"#enable_mistral \u003d True/False"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"[Performance Test]"},{"line_number":12,"context_line":"#enable_rally \u003d True/False"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[Zabbix]"},{"line_number":15,"context_line":"#url \u003d http://[zabbix server\u0027s IP:PORT]/zabbix"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"3fa0c359_37a42d08","line":12,"range":{"start_line":7,"start_character":0,"end_line":12,"end_character":26},"updated":"2018-02-19 12:18:06.000000000","message":"If we define the \u0027actions\u0027 list, then there is no need to use enable_mistral and enable_rally flags. They will be enabled if they are in the \u0027actions\u0027 list.\n \nThe [zabbix] tag is still needed because the user should set the Zabbix url.","commit_id":"e44dc809daabaf0840ec1386aa06b8afd23224a2"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"a808a68f77063f381ff76ebdb995452cb4b57d07","unresolved":false,"context_lines":[{"line_number":4,"context_line":"#actions \u003d mistral,rally,zabbix"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Execute Action]"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"#enable_mistral \u003d True/False"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"[Performance Test]"},{"line_number":12,"context_line":"#enable_rally \u003d True/False"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[Zabbix]"},{"line_number":15,"context_line":"#url \u003d http://[zabbix server\u0027s IP:PORT]/zabbix"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"3fa0c359_8df96381","line":12,"range":{"start_line":7,"start_character":0,"end_line":12,"end_character":26},"in_reply_to":"3fa0c359_37a42d08","updated":"2018-02-20 05:02:12.000000000","message":"I understand your comment. :)\n\nIf monitoring projects are added to the action, we must create the appropriate section. If action has the name of the monitoring project but section (eg. [Zabbix], [nagios]) is not created in the conf file, it will not be added to the list of panels.\n\nIf Rally and Mistral are defined in the list of actions, they are added to the list of panels through tests to determine if they are installed.","commit_id":"e44dc809daabaf0840ec1386aa06b8afd23224a2"}],"vitrage_dashboard/api/vitrage.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"9332b2c016823e41a5a0629d35477202c2916094","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            work_cont.append(work_dict)"},{"line_number":122,"context_line":"            return work_cont"},{"line_number":123,"context_line":"        except ImportError:"},{"line_number":124,"context_line":"            LOG.error(\u0027No module Named : not installed Mistral\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    elif str(action) \u003d\u003d \u0027Rally\u0027:"},{"line_number":127,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa0c359_3708ad26","line":124,"range":{"start_line":124,"start_character":23,"end_line":124,"end_character":62},"updated":"2018-02-19 12:18:06.000000000","message":"I think the error should be:\nFailed to import Mistral\n\nOr: Failed to import mistralclient\n\n(Same comment in the other errors below)","commit_id":"e44dc809daabaf0840ec1386aa06b8afd23224a2"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"a808a68f77063f381ff76ebdb995452cb4b57d07","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            work_cont.append(work_dict)"},{"line_number":122,"context_line":"            return work_cont"},{"line_number":123,"context_line":"        except ImportError:"},{"line_number":124,"context_line":"            LOG.error(\u0027No module Named : not installed Mistral\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    elif str(action) \u003d\u003d \u0027Rally\u0027:"},{"line_number":127,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa0c359_adf45f88","line":124,"range":{"start_line":124,"start_character":23,"end_line":124,"end_character":62},"in_reply_to":"3fa0c359_3708ad26","updated":"2018-02-20 05:02:12.000000000","message":"I updated it : )","commit_id":"e44dc809daabaf0840ec1386aa06b8afd23224a2"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    session \u003d Session(auth\u003dauth, timeout\u003d600)"},{"line_number":100,"context_line":"    filters \u003d {}"},{"line_number":101,"context_line":"    if str(action) \u003d\u003d \u0027Mistral\u0027:"},{"line_number":102,"context_line":"        try:"},{"line_number":103,"context_line":"            mistral_client \u003d \\"},{"line_number":104,"context_line":"                __import__(\"mistralclient.api.client\","}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_e8e9c5b6","line":101,"range":{"start_line":101,"start_character":22,"end_line":101,"end_character":31},"updated":"2018-05-11 02:37:33.000000000","message":"This should be stored in a CONSTANT for better future code maintenance and new actions such as:\n\nMISTRAL_ACTION \u003d \u0027Mistral\u0027\n\nThen,\n\nif str(action) \u003d\u003d MISTRAL_ACTION:","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"0af1f3084abeb4efdac4cef51b2dce08f4b46723","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    session \u003d Session(auth\u003dauth, timeout\u003d600)"},{"line_number":100,"context_line":"    filters \u003d {}"},{"line_number":101,"context_line":"    if str(action) \u003d\u003d \u0027Mistral\u0027:"},{"line_number":102,"context_line":"        try:"},{"line_number":103,"context_line":"            mistral_client \u003d \\"},{"line_number":104,"context_line":"                __import__(\"mistralclient.api.client\","}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_bc78f2c3","line":101,"range":{"start_line":101,"start_character":22,"end_line":101,"end_character":31},"in_reply_to":"5f7c97a3_5ce43ee1","updated":"2018-05-11 04:32:25.000000000","message":"Thanks : )\n\nI hope it helps you understand.\n\nI understand your intentions.\n\nI just wonder if it\u0027s a Python code-writing style (I think it\u0027s close to C).\n\nFirst, I want the code I add to be consistent like any other existing code. (I think it\u0027s more efficient for other developers to develop.)\n\nSecond, you can understand words by repeating the string \u0027Mistral\u0027 or \u0027Rally\u0027 multiple times in each function you create. However, it is used only once within each function.\n\nThird, I do not want to declare variables globally (such as the C language\u0027s define). Therefore, it is inefficient to declare variables for each action in a total of three methods. (\u0027Mistral\u0027 / \u0027Rally\u0027 is used only once in string form.)\n\nFourth, it is more efficient to follow the existing code style in terms of maintenance.\n\nFifth, the Actions panel has a separate UI for each action. Individual code is required for this. Please check the specification of the proposal. If a new action is added, development is required.\n\nSpecs : https://review.openstack.org/#/c/531141/","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"75de3281622c1ed2a43078e77b04cd9584378224","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    session \u003d Session(auth\u003dauth, timeout\u003d600)"},{"line_number":100,"context_line":"    filters \u003d {}"},{"line_number":101,"context_line":"    if str(action) \u003d\u003d \u0027Mistral\u0027:"},{"line_number":102,"context_line":"        try:"},{"line_number":103,"context_line":"            mistral_client \u003d \\"},{"line_number":104,"context_line":"                __import__(\"mistralclient.api.client\","}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_5ce43ee1","line":101,"range":{"start_line":101,"start_character":22,"end_line":101,"end_character":31},"in_reply_to":"5f7c97a3_7cb6da40","updated":"2018-05-11 03:45:57.000000000","message":"Hi, I understand your points but what I meant is instead of using string everytime you check for an action, you could declare the common variables and refer to them everytime you need. What happens when you add another new action to the list? Other developers look at your code and have to go through all of the logic to guess what\u0027s going on? Like I said, it\u0027s for better future code maintenance, nothing else.\n\n\n+ Yes, it\u0027s common because you\u0027re using it in several places in the vitrage API.\n+ What are the existing code you\u0027re talking about?\n+ No, it\u0027s not repetitive. You\u0027re repeating the value the way you\u0027re doing it now.\n+ Yes, it is.","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    session \u003d Session(auth\u003dauth, timeout\u003d600)"},{"line_number":100,"context_line":"    filters \u003d {}"},{"line_number":101,"context_line":"    if str(action) \u003d\u003d \u0027Mistral\u0027:"},{"line_number":102,"context_line":"        try:"},{"line_number":103,"context_line":"            mistral_client \u003d \\"},{"line_number":104,"context_line":"                __import__(\"mistralclient.api.client\","}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_7cb6da40","line":101,"range":{"start_line":101,"start_character":22,"end_line":101,"end_character":31},"in_reply_to":"5f7c97a3_e8e9c5b6","updated":"2018-05-11 03:17:12.000000000","message":"As you can see in other code,\n\nDoes it mean a global variable?\n\nIf so, I do not think it is necessary.\n\nGlobal variables are declared in situations common to other functions.\n\nBut I think it is not necessary because it is used only for internal purposes.\n\nIn addition, I do not want code that is inconsistent with other existing code.\n\nIf it is not a global variable, I do not want to declare it in any code I write.(because it is unnecessary and repetitive)\n\nPython uses simple, intuitive expressions.","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            return work_cont"},{"line_number":115,"context_line":"        except ImportError:"},{"line_number":116,"context_line":"            LOG.error(\u0027Failed to import mistralclient\u0027)"},{"line_number":117,"context_line":"    elif str(action) \u003d\u003d \u0027Rally\u0027:"},{"line_number":118,"context_line":"        try:"},{"line_number":119,"context_line":"            rally_api \u003d \\"},{"line_number":120,"context_line":"                __import__(\"rally.api\","}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_a8cf4d54","line":117,"range":{"start_line":117,"start_character":24,"end_line":117,"end_character":31},"updated":"2018-05-11 02:37:33.000000000","message":"RALLY_ACTION \u003d \u0027Rally\u0027\n\n\u003d\u003e\n\nelif str(action) \u003d\u003d RALLY_ACTION","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            return work_cont"},{"line_number":115,"context_line":"        except ImportError:"},{"line_number":116,"context_line":"            LOG.error(\u0027Failed to import mistralclient\u0027)"},{"line_number":117,"context_line":"    elif str(action) \u003d\u003d \u0027Rally\u0027:"},{"line_number":118,"context_line":"        try:"},{"line_number":119,"context_line":"            rally_api \u003d \\"},{"line_number":120,"context_line":"                __import__(\"rally.api\","}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_5c8bde6c","line":117,"range":{"start_line":117,"start_character":24,"end_line":117,"end_character":31},"in_reply_to":"5f7c97a3_a8cf4d54","updated":"2018-05-11 03:17:12.000000000","message":"Check line 102.","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            for l_value in rally_tasklist:"},{"line_number":131,"context_line":"                task_list.append(l_value[\u0027uuid\u0027])"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"            out_path \u003d \u0027./static/dashboard/project/\u0027 \\"},{"line_number":134,"context_line":"                       \u0027components/actions/vitrage.html\u0027"},{"line_number":135,"context_line":"            if task_list:"},{"line_number":136,"context_line":"                rally_task.TaskCommands().report(rally_api.API(),"},{"line_number":137,"context_line":"                                                 task_list,"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_280d7da0","line":134,"range":{"start_line":133,"start_character":23,"end_line":134,"end_character":56},"updated":"2018-05-11 02:37:33.000000000","message":"ditto","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            for l_value in rally_tasklist:"},{"line_number":131,"context_line":"                task_list.append(l_value[\u0027uuid\u0027])"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"            out_path \u003d \u0027./static/dashboard/project/\u0027 \\"},{"line_number":134,"context_line":"                       \u0027components/actions/vitrage.html\u0027"},{"line_number":135,"context_line":"            if task_list:"},{"line_number":136,"context_line":"                rally_task.TaskCommands().report(rally_api.API(),"},{"line_number":137,"context_line":"                                                 task_list,"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_bc99d2c4","line":134,"range":{"start_line":133,"start_character":23,"end_line":134,"end_character":56},"in_reply_to":"5f7c97a3_280d7da0","updated":"2018-05-11 03:17:12.000000000","message":"I do not think it is necessary for the same reason.","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                 project_domain_id\u003dproject_domain_id)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    session \u003d Session(auth\u003dauth, timeout\u003d600)"},{"line_number":153,"context_line":"    if str(action) \u003d\u003d \u0027Mistral\u0027:"},{"line_number":154,"context_line":"        try:"},{"line_number":155,"context_line":"            mistral_client \u003d \\"},{"line_number":156,"context_line":"                __import__(\"mistralclient.api.client\","}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_c8fde96e","line":153,"range":{"start_line":153,"start_character":23,"end_line":153,"end_character":30},"updated":"2018-05-11 02:37:33.000000000","message":"ditto","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                 project_domain_id\u003dproject_domain_id)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    session \u003d Session(auth\u003dauth, timeout\u003d600)"},{"line_number":153,"context_line":"    if str(action) \u003d\u003d \u0027Mistral\u0027:"},{"line_number":154,"context_line":"        try:"},{"line_number":155,"context_line":"            mistral_client \u003d \\"},{"line_number":156,"context_line":"                __import__(\"mistralclient.api.client\","}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_7c8fba74","line":153,"range":{"start_line":153,"start_character":23,"end_line":153,"end_character":30},"in_reply_to":"5f7c97a3_c8fde96e","updated":"2018-05-11 03:17:12.000000000","message":"Same","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        except ImportError:"},{"line_number":167,"context_line":"            LOG.error(\u0027Failed to import mistralclient\u0027)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    elif str(action) \u003d\u003d \u0027Rally\u0027:"},{"line_number":170,"context_line":"        try:"},{"line_number":171,"context_line":"            rally_api \u003d \\"},{"line_number":172,"context_line":"                __import__(\"rally.api\","}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_48f1d994","line":169,"range":{"start_line":169,"start_character":25,"end_line":169,"end_character":30},"updated":"2018-05-11 02:37:33.000000000","message":"ditto","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        except ImportError:"},{"line_number":167,"context_line":"            LOG.error(\u0027Failed to import mistralclient\u0027)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    elif str(action) \u003d\u003d \u0027Rally\u0027:"},{"line_number":170,"context_line":"        try:"},{"line_number":171,"context_line":"            rally_api \u003d \\"},{"line_number":172,"context_line":"                __import__(\"rally.api\","}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_9c8c1680","line":169,"range":{"start_line":169,"start_character":25,"end_line":169,"end_character":30},"in_reply_to":"5f7c97a3_48f1d994","updated":"2018-05-11 03:17:12.000000000","message":"Same","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"def action_setting(request):"},{"line_number":203,"context_line":"    setting \u003d ConfigParser.ConfigParser()"},{"line_number":204,"context_line":"    setting.read(\u0027/etc/vitrage-dashboard/setting.conf\u0027)"},{"line_number":205,"context_line":"    actiondict \u003d {\u0027mistral\u0027: \u0027Mistral\u0027,"},{"line_number":206,"context_line":"                  \u0027rally\u0027: \u0027Rally\u0027,"},{"line_number":207,"context_line":"                  }"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_28325d60","line":204,"range":{"start_line":204,"start_character":17,"end_line":204,"end_character":54},"updated":"2018-05-11 02:37:33.000000000","message":"ditto","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"def action_setting(request):"},{"line_number":203,"context_line":"    setting \u003d ConfigParser.ConfigParser()"},{"line_number":204,"context_line":"    setting.read(\u0027/etc/vitrage-dashboard/setting.conf\u0027)"},{"line_number":205,"context_line":"    actiondict \u003d {\u0027mistral\u0027: \u0027Mistral\u0027,"},{"line_number":206,"context_line":"                  \u0027rally\u0027: \u0027Rally\u0027,"},{"line_number":207,"context_line":"                  }"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_bc231256","line":204,"range":{"start_line":204,"start_character":17,"end_line":204,"end_character":54},"in_reply_to":"5f7c97a3_28325d60","updated":"2018-05-11 03:17:12.000000000","message":"same","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":202,"context_line":"def action_setting(request):"},{"line_number":203,"context_line":"    setting \u003d ConfigParser.ConfigParser()"},{"line_number":204,"context_line":"    setting.read(\u0027/etc/vitrage-dashboard/setting.conf\u0027)"},{"line_number":205,"context_line":"    actiondict \u003d {\u0027mistral\u0027: \u0027Mistral\u0027,"},{"line_number":206,"context_line":"                  \u0027rally\u0027: \u0027Rally\u0027,"},{"line_number":207,"context_line":"                  }"},{"line_number":208,"context_line":"    actionlist \u003d []"},{"line_number":209,"context_line":"    urllist \u003d {}"},{"line_number":210,"context_line":"    if setting.has_section(\u0027Default\u0027):"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_882931e7","line":207,"range":{"start_line":205,"start_character":17,"end_line":207,"end_character":19},"updated":"2018-05-11 02:37:33.000000000","message":"actiondict list should also be stored as a constant (list of the supporting actions):\n\nSUPPORT_ACTIONS \u003d {\n    \u0027mistral\u0027: MISTRAL_ACTION,\n    \u0027rally\u0027: RALLY_ACTION\n}","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":202,"context_line":"def action_setting(request):"},{"line_number":203,"context_line":"    setting \u003d ConfigParser.ConfigParser()"},{"line_number":204,"context_line":"    setting.read(\u0027/etc/vitrage-dashboard/setting.conf\u0027)"},{"line_number":205,"context_line":"    actiondict \u003d {\u0027mistral\u0027: \u0027Mistral\u0027,"},{"line_number":206,"context_line":"                  \u0027rally\u0027: \u0027Rally\u0027,"},{"line_number":207,"context_line":"                  }"},{"line_number":208,"context_line":"    actionlist \u003d []"},{"line_number":209,"context_line":"    urllist \u003d {}"},{"line_number":210,"context_line":"    if setting.has_section(\u0027Default\u0027):"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_dc204e4b","line":207,"range":{"start_line":205,"start_character":17,"end_line":207,"end_character":19},"in_reply_to":"5f7c97a3_882931e7","updated":"2018-05-11 03:17:12.000000000","message":"Same","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"30be95ff5de01ccd33350f901ab82c8a3173667c","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    filters \u003d {}"},{"line_number":100,"context_line":"    if str(action) \u003d\u003d \u0027Mistral\u0027:"},{"line_number":101,"context_line":"        try:"},{"line_number":102,"context_line":"            mistral_client \u003d \\"},{"line_number":103,"context_line":"                __import__(\"mistralclient.api.client\","},{"line_number":104,"context_line":"                           fromlist\u003d[\"mistralclient.api.client\"])"},{"line_number":105,"context_line":"            mistralcli \u003d mistral_client.client(session\u003dsession)"}],"source_content_type":"text/x-python","patch_set":34,"id":"5f7c97a3_d793324e","line":102,"updated":"2018-06-11 21:04:12.000000000","message":"Please, use oslo.utils[1] here. It already contains error-handling logic\n\n[1] https://github.com/openstack/oslo.utils/blob/master/oslo_utils/importutils.py","commit_id":"4830ba39763aa7c9b1a9ee8724def3346dc2c0c3"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"e4075c2e453182ec110f21d496586958e531f51d","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    filters \u003d {}"},{"line_number":100,"context_line":"    if str(action) \u003d\u003d \u0027Mistral\u0027:"},{"line_number":101,"context_line":"        try:"},{"line_number":102,"context_line":"            mistral_client \u003d \\"},{"line_number":103,"context_line":"                __import__(\"mistralclient.api.client\","},{"line_number":104,"context_line":"                           fromlist\u003d[\"mistralclient.api.client\"])"},{"line_number":105,"context_line":"            mistralcli \u003d mistral_client.client(session\u003dsession)"}],"source_content_type":"text/x-python","patch_set":34,"id":"5f7c97a3_ae44d948","line":102,"in_reply_to":"5f7c97a3_d793324e","updated":"2018-07-10 13:01:54.000000000","message":"I made a change.\nIt\u0027s much cleaner. Thanks :)","commit_id":"4830ba39763aa7c9b1a9ee8724def3346dc2c0c3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"30be95ff5de01ccd33350f901ab82c8a3173667c","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            work_cont.append(work_dict)"},{"line_number":113,"context_line":"            return work_cont"},{"line_number":114,"context_line":"        except ImportError:"},{"line_number":115,"context_line":"            LOG.error(\u0027Failed to import mistralclient\u0027)"},{"line_number":116,"context_line":"    elif str(action) \u003d\u003d \u0027Rally\u0027:"},{"line_number":117,"context_line":"        try:"},{"line_number":118,"context_line":"            rally_api \u003d \\"}],"source_content_type":"text/x-python","patch_set":34,"id":"5f7c97a3_77ad7e82","line":115,"updated":"2018-06-11 21:04:12.000000000","message":"I\u0027m not sure that error level is good here. Maybe it\u0027s enough to get a warning here.\n\nI won\u0027t block patch for it","commit_id":"4830ba39763aa7c9b1a9ee8724def3346dc2c0c3"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"e4075c2e453182ec110f21d496586958e531f51d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            work_cont.append(work_dict)"},{"line_number":113,"context_line":"            return work_cont"},{"line_number":114,"context_line":"        except ImportError:"},{"line_number":115,"context_line":"            LOG.error(\u0027Failed to import mistralclient\u0027)"},{"line_number":116,"context_line":"    elif str(action) \u003d\u003d \u0027Rally\u0027:"},{"line_number":117,"context_line":"        try:"},{"line_number":118,"context_line":"            rally_api \u003d \\"}],"source_content_type":"text/x-python","patch_set":34,"id":"5f7c97a3_6e74819c","line":115,"in_reply_to":"5f7c97a3_77ad7e82","updated":"2018-07-10 13:01:54.000000000","message":"Done","commit_id":"4830ba39763aa7c9b1a9ee8724def3346dc2c0c3"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"30be95ff5de01ccd33350f901ab82c8a3173667c","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    session \u003d Session(auth\u003dauth, timeout\u003d600)"},{"line_number":152,"context_line":"    if str(action) \u003d\u003d \u0027Mistral\u0027:"},{"line_number":153,"context_line":"        try:"},{"line_number":154,"context_line":"            mistral_client \u003d \\"},{"line_number":155,"context_line":"                __import__(\"mistralclient.api.client\","},{"line_number":156,"context_line":"                           fromlist\u003d[\"mistralclient.api.client\"])"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            mistralcli \u003d mistral_client.client(session\u003dsession)"},{"line_number":159,"context_line":"            new_request \u003d ast.literal_eval(requestdict)"}],"source_content_type":"text/x-python","patch_set":34,"id":"5f7c97a3_17be8aad","line":156,"range":{"start_line":154,"start_character":27,"end_line":156,"end_character":65},"updated":"2018-06-11 21:04:12.000000000","message":"Since, it\u0027s the same as in \u0027actions\u0027 method, maybe it\u0027s even better to have something like at the beginning of the module :\ntry:\n   from mistralclient.api import client as mistral_client\nexcept ImportError:\n   mistral_client \u003d None\n\nand use \n\u0027if mistral_client\u0027 here","commit_id":"4830ba39763aa7c9b1a9ee8724def3346dc2c0c3"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"e4075c2e453182ec110f21d496586958e531f51d","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    session \u003d Session(auth\u003dauth, timeout\u003d600)"},{"line_number":152,"context_line":"    if str(action) \u003d\u003d \u0027Mistral\u0027:"},{"line_number":153,"context_line":"        try:"},{"line_number":154,"context_line":"            mistral_client \u003d \\"},{"line_number":155,"context_line":"                __import__(\"mistralclient.api.client\","},{"line_number":156,"context_line":"                           fromlist\u003d[\"mistralclient.api.client\"])"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            mistralcli \u003d mistral_client.client(session\u003dsession)"},{"line_number":159,"context_line":"            new_request \u003d ast.literal_eval(requestdict)"}],"source_content_type":"text/x-python","patch_set":34,"id":"5f7c97a3_4e6d05c9","line":156,"range":{"start_line":154,"start_character":27,"end_line":156,"end_character":65},"in_reply_to":"5f7c97a3_17be8aad","updated":"2018-07-10 13:01:54.000000000","message":"Done","commit_id":"4830ba39763aa7c9b1a9ee8724def3346dc2c0c3"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"bc83cd5d0534187241e6097461dd5462b4306b07","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    return vitrageclient(request).template.show(template_id)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"def actions(request, action, nodetype):"},{"line_number":92,"context_line":"    endpoint \u003d base.url_for(request, \u0027identity\u0027)"},{"line_number":93,"context_line":"    token_id \u003d request.user.token.id"},{"line_number":94,"context_line":"    tenant_name \u003d request.user.tenant_name"}],"source_content_type":"text/x-python","patch_set":36,"id":"5f7c97a3_61ba9d71","line":91,"range":{"start_line":91,"start_character":0,"end_line":91,"end_character":39},"updated":"2018-07-18 11:38:42.000000000","message":"I don\u0027t think that this code belongs in this file. This file acts as a wrapper to Vitrage API, and the new UI actions are not using Vitrage API. Maybe you can add mistral.py and rally.py files in this folder. I\u0027m not sure where to place the code that checks the action type. I\u0027m less familiar with the vitrage-dashboard structure, but I know that in vitrage core we designed the datasources, for example, as plugins - each datasource is on a separate file, inherits a single base class, and is called by the type parameter. I don\u0027t know if the same structure is relevant for the dashboard.","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"ae2d4a798b18c8089160ed48b112e04b08fef0fe","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    return vitrageclient(request).template.show(template_id)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"def actions(request, action, nodetype):"},{"line_number":92,"context_line":"    endpoint \u003d base.url_for(request, \u0027identity\u0027)"},{"line_number":93,"context_line":"    token_id \u003d request.user.token.id"},{"line_number":94,"context_line":"    tenant_name \u003d request.user.tenant_name"}],"source_content_type":"text/x-python","patch_set":36,"id":"5f7c97a3_13820c53","line":91,"range":{"start_line":91,"start_character":0,"end_line":91,"end_character":39},"in_reply_to":"5f7c97a3_61ba9d71","updated":"2018-07-19 02:55:26.000000000","message":"I think it is possible to construct a separate file (eg mistral.py or rally.py) just like a data source.\n\nBut I think the syntax to call them is still needed.\n\nThe syntax for calling a separate file should be included in vitrage.py or directly from JS in the Actions list panel.\n\nhow is it?","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"bc83cd5d0534187241e6097461dd5462b4306b07","unresolved":false,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"            for section in conf_actions:"},{"line_number":226,"context_line":"                result \u003d None"},{"line_number":227,"context_line":"                if section !\u003d \u0027mistral\u0027 and section !\u003d \u0027rally\u0027:"},{"line_number":228,"context_line":"                    if setting.has_section(section):"},{"line_number":229,"context_line":"                        option_list \u003d setting.options(section)"},{"line_number":230,"context_line":"                        matching \u003d [pro for pro in option_list"}],"source_content_type":"text/x-python","patch_set":36,"id":"5f7c97a3_012169fc","line":227,"range":{"start_line":227,"start_character":16,"end_line":227,"end_character":63},"updated":"2018-07-18 11:38:42.000000000","message":"You can move this part to the end, and just use \u0027else\u0027 (after you check for mistral and rally). This will make it easier to add another optional setting later on.","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"ae2d4a798b18c8089160ed48b112e04b08fef0fe","unresolved":false,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"            for section in conf_actions:"},{"line_number":226,"context_line":"                result \u003d None"},{"line_number":227,"context_line":"                if section !\u003d \u0027mistral\u0027 and section !\u003d \u0027rally\u0027:"},{"line_number":228,"context_line":"                    if setting.has_section(section):"},{"line_number":229,"context_line":"                        option_list \u003d setting.options(section)"},{"line_number":230,"context_line":"                        matching \u003d [pro for pro in option_list"}],"source_content_type":"text/x-python","patch_set":36,"id":"5f7c97a3_933e1cb7","line":227,"range":{"start_line":227,"start_character":16,"end_line":227,"end_character":63},"in_reply_to":"5f7c97a3_012169fc","updated":"2018-07-19 02:55:26.000000000","message":"Done","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"}],"vitrage_dashboard/api/vitrage_rest_api.py":[{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"@urls.register"},{"line_number":143,"context_line":"class Actions(generic.View):"},{"line_number":144,"context_line":"    \"\"\"API for vitrage alarms.\"\"\""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    url_regex \u003d r\u0027vitrage/actions/(?P\u003caction\u003e.+|default)/\u0027 \\"},{"line_number":147,"context_line":"                \u0027(?P\u003cnodetype\u003e.+|default)/$\u0027"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_c88089c2","line":144,"range":{"start_line":144,"start_character":23,"end_line":144,"end_character":29},"updated":"2018-05-11 02:37:33.000000000","message":"actions","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"@urls.register"},{"line_number":143,"context_line":"class Actions(generic.View):"},{"line_number":144,"context_line":"    \"\"\"API for vitrage alarms.\"\"\""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    url_regex \u003d r\u0027vitrage/actions/(?P\u003caction\u003e.+|default)/\u0027 \\"},{"line_number":147,"context_line":"                \u0027(?P\u003cnodetype\u003e.+|default)/$\u0027"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_bcdeb26a","line":144,"range":{"start_line":144,"start_character":23,"end_line":144,"end_character":29},"in_reply_to":"5f7c97a3_c88089c2","updated":"2018-05-11 03:17:12.000000000","message":"Thanks:) I\u0027ll fix it.","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"@urls.register"},{"line_number":155,"context_line":"class Requests(generic.View):"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        url_regex \u003d r\u0027vitrage/requests/(?P\u003caction\u003e.+|default)/\u0027 \\"},{"line_number":158,"context_line":"                    \u0027(?P\u003crequestdict\u003e.+|default)$\u0027"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_a86bcd1b","line":156,"updated":"2018-05-11 02:37:33.000000000","message":"\"\"\"API for vitrage requests\"\"\" or something","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"@urls.register"},{"line_number":155,"context_line":"class Requests(generic.View):"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        url_regex \u003d r\u0027vitrage/requests/(?P\u003caction\u003e.+|default)/\u0027 \\"},{"line_number":158,"context_line":"                    \u0027(?P\u003crequestdict\u003e.+|default)$\u0027"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_dcdb6e79","line":156,"in_reply_to":"5f7c97a3_a86bcd1b","updated":"2018-05-11 03:17:12.000000000","message":"Done","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"@urls.register"},{"line_number":166,"context_line":"class Settings(generic.View):"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        url_regex \u003d r\u0027vitrage/settings$\u0027"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        @rest_utils.ajax()"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_08644149","line":167,"updated":"2018-05-11 02:37:33.000000000","message":"\"\"\"API for vitrage settings\"\"\"","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"@urls.register"},{"line_number":166,"context_line":"class Settings(generic.View):"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        url_regex \u003d r\u0027vitrage/settings$\u0027"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        @rest_utils.ajax()"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f7c97a3_7ce49a3c","line":167,"in_reply_to":"5f7c97a3_08644149","updated":"2018-05-11 03:17:12.000000000","message":"Done","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"75de3281622c1ed2a43078e77b04cd9584378224","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    \"\"\"API for action settings.\"\"\""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    url_regex \u003d r\u0027vitrage/settings$\u0027"},{"line_number":171,"context_line":" "},{"line_number":172,"context_line":"    @rest_utils.ajax()"},{"line_number":173,"context_line":"    def get(self, request):"},{"line_number":174,"context_line":"        return vitrage.action_setting(request)"}],"source_content_type":"text/x-python","patch_set":30,"id":"5f7c97a3_bcfb1277","line":171,"range":{"start_line":171,"start_character":0,"end_line":171,"end_character":1},"updated":"2018-05-11 03:45:57.000000000","message":"delete this.","commit_id":"0336cfd7d07ff5ba0182c7958bbfec5cbf92d107"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"0af1f3084abeb4efdac4cef51b2dce08f4b46723","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    \"\"\"API for action settings.\"\"\""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    url_regex \u003d r\u0027vitrage/settings$\u0027"},{"line_number":171,"context_line":" "},{"line_number":172,"context_line":"    @rest_utils.ajax()"},{"line_number":173,"context_line":"    def get(self, request):"},{"line_number":174,"context_line":"        return vitrage.action_setting(request)"}],"source_content_type":"text/x-python","patch_set":30,"id":"5f7c97a3_dc5e0e43","line":171,"range":{"start_line":171,"start_character":0,"end_line":171,"end_character":1},"in_reply_to":"5f7c97a3_bcfb1277","updated":"2018-05-11 04:32:25.000000000","message":"Done","commit_id":"0336cfd7d07ff5ba0182c7958bbfec5cbf92d107"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"bc83cd5d0534187241e6097461dd5462b4306b07","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"@urls.register"},{"line_number":143,"context_line":"class Actions(generic.View):"},{"line_number":144,"context_line":"    \"\"\"API for actions.\"\"\""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    url_regex \u003d r\u0027vitrage/actions/(?P\u003caction\u003e.+|default)/\u0027 \\"}],"source_content_type":"text/x-python","patch_set":36,"id":"5f7c97a3_017089d9","line":143,"range":{"start_line":143,"start_character":0,"end_line":143,"end_character":28},"updated":"2018-07-18 11:38:42.000000000","message":"This code doesn\u0027t belong here, since it is not part of Vitrage REST API","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"ae2d4a798b18c8089160ed48b112e04b08fef0fe","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"@urls.register"},{"line_number":143,"context_line":"class Actions(generic.View):"},{"line_number":144,"context_line":"    \"\"\"API for actions.\"\"\""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    url_regex \u003d r\u0027vitrage/actions/(?P\u003caction\u003e.+|default)/\u0027 \\"}],"source_content_type":"text/x-python","patch_set":36,"id":"5f7c97a3_7386e061","line":143,"range":{"start_line":143,"start_character":0,"end_line":143,"end_character":28},"in_reply_to":"5f7c97a3_017089d9","updated":"2018-07-19 02:55:26.000000000","message":"The syntax is a connection between JS and Python. If there is no such statement, is there another way to call the function in vitrage.py?","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/actions/action-execute.html":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"36fb9358580c0050b89d599aec8c5cb2098f8e4a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"              \u003cspan class\u003d\"fa fa-times\"\u003e\u003c/span\u003e"},{"line_number":5,"context_line":"            \u003c/a\u003e"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"            \u003cdiv ng-repeat\u003d\"title in action \"\u003e"},{"line_number":8,"context_line":"               \u003cdiv rowspan\u003d\"{list.length}}\" data-ng-show\u003d\"$first\"\u003e"},{"line_number":9,"context_line":"                  \u003ch3  class\u003d\"modal-title\"\u003e{{title}}\u003c/h3\u003e"},{"line_number":10,"context_line":"               \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":2,"id":"3fa0c359_255a1483","line":7,"updated":"2018-02-14 17:24:51.000000000","message":"Add track by","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"d5aa6aee8457842943c58e8795b7fec95e1b3551","unresolved":false,"context_lines":[{"line_number":4,"context_line":"              \u003cspan class\u003d\"fa fa-times\"\u003e\u003c/span\u003e"},{"line_number":5,"context_line":"            \u003c/a\u003e"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"            \u003cdiv ng-repeat\u003d\"title in action \"\u003e"},{"line_number":8,"context_line":"               \u003cdiv rowspan\u003d\"{list.length}}\" data-ng-show\u003d\"$first\"\u003e"},{"line_number":9,"context_line":"                  \u003ch3  class\u003d\"modal-title\"\u003e{{title}}\u003c/h3\u003e"},{"line_number":10,"context_line":"               \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":2,"id":"3fa0c359_7ce85c15","line":7,"in_reply_to":"3fa0c359_255a1483","updated":"2018-02-19 11:35:07.000000000","message":"Done","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"36fb9358580c0050b89d599aec8c5cb2098f8e4a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"            \u003c/div\u003e"},{"line_number":12,"context_line":"        \u003c/div\u003e"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"        \u003cform id\u003d\"execute_form\" ng-controller\u003d\"DummyController\" name\u003d\"\" class\u003d\"ng-pristine ng-valid ng-scope\"\u003e"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"            \u003cdiv class\u003d\"modal-body clearfix\"\u003e"},{"line_number":17,"context_line":"                \u003cdiv class\u003d\"left\"\u003e"}],"source_content_type":"text/html","patch_set":2,"id":"3fa0c359_e5018c3b","line":14,"range":{"start_line":14,"start_character":47,"end_line":14,"end_character":62},"updated":"2018-02-14 17:24:51.000000000","message":"Why do we need DummyController ?","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"d5aa6aee8457842943c58e8795b7fec95e1b3551","unresolved":false,"context_lines":[{"line_number":11,"context_line":"            \u003c/div\u003e"},{"line_number":12,"context_line":"        \u003c/div\u003e"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"        \u003cform id\u003d\"execute_form\" ng-controller\u003d\"DummyController\" name\u003d\"\" class\u003d\"ng-pristine ng-valid ng-scope\"\u003e"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"            \u003cdiv class\u003d\"modal-body clearfix\"\u003e"},{"line_number":17,"context_line":"                \u003cdiv class\u003d\"left\"\u003e"}],"source_content_type":"text/html","patch_set":2,"id":"3fa0c359_fcdb0c7a","line":14,"range":{"start_line":14,"start_character":47,"end_line":14,"end_character":62},"in_reply_to":"3fa0c359_e5018c3b","updated":"2018-02-19 11:35:07.000000000","message":"Sorry my mistake. Deleted.","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/actions/action-execute.scss":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"36fb9358580c0050b89d599aec8c5cb2098f8e4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3fa0c359_65c57c0a","line":1,"updated":"2018-02-14 17:24:51.000000000","message":"Empty scss, you can delete it","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"d5aa6aee8457842943c58e8795b7fec95e1b3551","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3fa0c359_1cd7d851","line":1,"in_reply_to":"3fa0c359_65c57c0a","updated":"2018-02-19 11:35:07.000000000","message":"Done","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/actions/action-performance.directive.js":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"57f130f6b25339f8d7f0b52d2e7fb8db3b929c7f","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"    function link(scope) {"},{"line_number":15,"context_line":"        scope.valueList \u003d {};"},{"line_number":16,"context_line":"            scope.postPerformance \u003d function(){"},{"line_number":17,"context_line":"                scope.valueList[\u0027syntaxcheck\u0027] \u003d false;"},{"line_number":18,"context_line":"                scope.$emit(\u0027requestAction\u0027,scope.valueList);"},{"line_number":19,"context_line":"            };"}],"source_content_type":"text/javascript","patch_set":36,"id":"5f7c97a3_2bf004fc","line":16,"updated":"2019-03-26 12:43:59.000000000","message":"Indentation is too deep","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/actions/action-performance.html":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"36fb9358580c0050b89d599aec8c5cb2098f8e4a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                    \u003c/fieldset\u003e"},{"line_number":35,"context_line":"                \u003c/div\u003e"},{"line_number":36,"context_line":"                \u003cdiv class\u003d\"col-sm-6\"\u003e"},{"line_number":37,"context_line":"                    \u003ch3\u003eDescription:\u003c/h3\u003e"},{"line_number":38,"context_line":"                    \u003cp\u003eFrom here you can run a performance test.\u003c/p\u003e"},{"line_number":39,"context_line":"                \u003c/div\u003e"},{"line_number":40,"context_line":"            \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":2,"id":"3fa0c359_50cfdcaf","line":37,"updated":"2018-02-14 17:24:51.000000000","message":"Is there a better way to use the I18N mechanism of Horizon ? instead of set it as hardcoded English","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"53f97f25f5315939c544e13c9855270c50fe9fdf","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                    \u003c/fieldset\u003e"},{"line_number":35,"context_line":"                \u003c/div\u003e"},{"line_number":36,"context_line":"                \u003cdiv class\u003d\"col-sm-6\"\u003e"},{"line_number":37,"context_line":"                    \u003ch3\u003eDescription:\u003c/h3\u003e"},{"line_number":38,"context_line":"                    \u003cp\u003eFrom here you can run a performance test.\u003c/p\u003e"},{"line_number":39,"context_line":"                \u003c/div\u003e"},{"line_number":40,"context_line":"            \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":2,"id":"3fa0c359_e2d8901f","line":37,"in_reply_to":"3fa0c359_50cfdcaf","updated":"2018-02-15 07:51:03.000000000","message":"Alon, there is a standard way of using i18n in Horizon, but we as far as I know we are not supporting it yet. This is on our to-do list... do you know anything about it?","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":19,"context_line":"                        \u003clabel class\u003d\"control-label\"\u003e"},{"line_number":20,"context_line":"                            \u003cspan class\u003d\"field-label\"\u003eTag\u003c/span\u003e"},{"line_number":21,"context_line":"                        \u003c/label\u003e"},{"line_number":22,"context_line":"                        \u003cdiv class\u003d\" \"\u003e"},{"line_number":23,"context_line":"                            \u003cinput type\u003d\"text\"  id\u003d\"output_name\" class\u003d\"form-control\" /\u003e"},{"line_number":24,"context_line":"                        \u003c/div\u003e"},{"line_number":25,"context_line":"                    \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":29,"id":"5f7c97a3_a8874db5","line":22,"range":{"start_line":22,"start_character":28,"end_line":22,"end_character":38},"updated":"2018-05-11 02:37:33.000000000","message":"If you don\u0027t want it to have class name, remove it.","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"                        \u003clabel class\u003d\"control-label\"\u003e"},{"line_number":20,"context_line":"                            \u003cspan class\u003d\"field-label\"\u003eTag\u003c/span\u003e"},{"line_number":21,"context_line":"                        \u003c/label\u003e"},{"line_number":22,"context_line":"                        \u003cdiv class\u003d\" \"\u003e"},{"line_number":23,"context_line":"                            \u003cinput type\u003d\"text\"  id\u003d\"output_name\" class\u003d\"form-control\" /\u003e"},{"line_number":24,"context_line":"                        \u003c/div\u003e"},{"line_number":25,"context_line":"                    \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":29,"id":"5f7c97a3_3cd5c21c","line":22,"range":{"start_line":22,"start_character":28,"end_line":22,"end_character":38},"in_reply_to":"5f7c97a3_a8874db5","updated":"2018-05-11 03:17:12.000000000","message":"Done","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"37cda60f271545a23c7fd460110391833a42eb9e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                        \u003clabel class\u003d\"control-label\"\u003e"},{"line_number":28,"context_line":"                            \u003cspan class\u003d\"field-label\"\u003eInput\u003c/span\u003e"},{"line_number":29,"context_line":"                        \u003c/label\u003e"},{"line_number":30,"context_line":"                        \u003cdiv class\u003d\" \"\u003e"},{"line_number":31,"context_line":"                            \u003ctextarea name\u003d\"input\" required id\u003d\"input_json\" rows\u003d\"10\" cols\u003d\"40\" class\u003d\"form-control\"\u003e{}\u003c/textarea\u003e"},{"line_number":32,"context_line":"                        \u003c/div\u003e"},{"line_number":33,"context_line":"                    \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":29,"id":"5f7c97a3_4890f9ed","line":30,"range":{"start_line":30,"start_character":28,"end_line":30,"end_character":38},"updated":"2018-05-11 02:37:33.000000000","message":"ditto","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"2d4c114a91c625a0f608831708064780e976114b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                        \u003clabel class\u003d\"control-label\"\u003e"},{"line_number":28,"context_line":"                            \u003cspan class\u003d\"field-label\"\u003eInput\u003c/span\u003e"},{"line_number":29,"context_line":"                        \u003c/label\u003e"},{"line_number":30,"context_line":"                        \u003cdiv class\u003d\" \"\u003e"},{"line_number":31,"context_line":"                            \u003ctextarea name\u003d\"input\" required id\u003d\"input_json\" rows\u003d\"10\" cols\u003d\"40\" class\u003d\"form-control\"\u003e{}\u003c/textarea\u003e"},{"line_number":32,"context_line":"                        \u003c/div\u003e"},{"line_number":33,"context_line":"                    \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":29,"id":"5f7c97a3_5cdafe4b","line":30,"range":{"start_line":30,"start_character":28,"end_line":30,"end_character":38},"in_reply_to":"5f7c97a3_4890f9ed","updated":"2018-05-11 03:17:12.000000000","message":"Done","commit_id":"0ee95e5e0bad5b2c29f0cd80bdbc4cf4186245d6"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"57f130f6b25339f8d7f0b52d2e7fb8db3b929c7f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"            \u003c/div\u003e"},{"line_number":10,"context_line":"        \u003c/div\u003e"},{"line_number":11,"context_line":"    \u003c/div\u003e"},{"line_number":12,"context_line":"    \u003cform id\u003d\"performance_form\" ng-controller\u003d\"DummyController\" name\u003d\"\" class\u003d\"ng-pristine ng-valid ng-scope\"\u003e"},{"line_number":13,"context_line":"        \u003cinput type\u003d\"hidden\" name\u003d\"testJson\" value\u003d\"testJson\"/\u003e"},{"line_number":14,"context_line":"        \u003cdiv class\u003d\"modal-body clearfix\"\u003e"},{"line_number":15,"context_line":"            \u003cdiv class\u003d\"row\"\u003e"}],"source_content_type":"text/html","patch_set":36,"id":"5f7c97a3_6bd4bc1f","line":12,"range":{"start_line":12,"start_character":47,"end_line":12,"end_character":62},"updated":"2019-03-26 12:43:59.000000000","message":"DummyController ?\nWhat is this form ?","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/actions/action-performance.scss":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"36fb9358580c0050b89d599aec8c5cb2098f8e4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3fa0c359_c58d70d4","line":1,"updated":"2018-02-14 17:24:51.000000000","message":"empty scss","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"d5aa6aee8457842943c58e8795b7fec95e1b3551","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3fa0c359_bce5843a","line":1,"in_reply_to":"3fa0c359_c58d70d4","updated":"2018-02-19 11:35:07.000000000","message":"Done","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/actions/actions.controller.js":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"7b1d268b61104b67fe87f0aceef4e659e6381812","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  function ActionListModal(action,$scope,modalSrv,vitrageActionSrv) {"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    $scope.action\u003d action;"},{"line_number":13,"context_line":"    $scope.actionList \u003d{\u0027Execute Action\u0027:\u0027Mistral\u0027,\u0027Performance Test\u0027:\u0027Rally\u0027,\u0027Monitoring URL\u0027:\u0027URL\u0027};"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    $scope.closeModal \u003d function () {"},{"line_number":16,"context_line":"      modalSrv.close();"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_57011d04","line":13,"range":{"start_line":13,"start_character":25,"end_line":13,"end_character":39},"updated":"2018-02-14 12:13:06.000000000","message":"I think this should be named \"Mistral Workflow\" or \"Execute Mistral Workflow\". I assume you can use almost the same code internally (open a URL), but the title should be different and show the monitor name.","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"7b1d268b61104b67fe87f0aceef4e659e6381812","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  function ActionListModal(action,$scope,modalSrv,vitrageActionSrv) {"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    $scope.action\u003d action;"},{"line_number":13,"context_line":"    $scope.actionList \u003d{\u0027Execute Action\u0027:\u0027Mistral\u0027,\u0027Performance Test\u0027:\u0027Rally\u0027,\u0027Monitoring URL\u0027:\u0027URL\u0027};"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    $scope.closeModal \u003d function () {"},{"line_number":16,"context_line":"      modalSrv.close();"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_f70f092b","line":13,"range":{"start_line":13,"start_character":79,"end_line":13,"end_character":93},"updated":"2018-02-14 12:13:06.000000000","message":"This should be more specific: Zabbix, Grafana, etc.","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"a808a68f77063f381ff76ebdb995452cb4b57d07","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  function ActionListModal(action,$scope,modalSrv,vitrageActionSrv) {"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    $scope.action\u003d action;"},{"line_number":13,"context_line":"    $scope.actionList \u003d{\u0027Execute Action\u0027:\u0027Mistral\u0027,\u0027Performance Test\u0027:\u0027Rally\u0027,\u0027Monitoring URL\u0027:\u0027URL\u0027};"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    $scope.closeModal \u003d function () {"},{"line_number":16,"context_line":"      modalSrv.close();"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_ed5ee774","line":13,"range":{"start_line":13,"start_character":25,"end_line":13,"end_character":39},"in_reply_to":"3fa0c359_1736d1e8","updated":"2018-02-20 05:02:12.000000000","message":"This part is not related to the configure file. It is simply a list for use in if-elif syntax in vitrage.py from action.controller.js. If we modify vitrage.py, we can delete its actionList.\n\nIn short, it is used to change the string \u0027Mistral Workflow\u0027 to the string Mistral.\n\nThe list is also fixed.","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"f282bc9d03005dcc7d33d41a400dc64793f3a1e0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  function ActionListModal(action,$scope,modalSrv,vitrageActionSrv) {"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    $scope.action\u003d action;"},{"line_number":13,"context_line":"    $scope.actionList \u003d{\u0027Execute Action\u0027:\u0027Mistral\u0027,\u0027Performance Test\u0027:\u0027Rally\u0027,\u0027Monitoring URL\u0027:\u0027URL\u0027};"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    $scope.closeModal \u003d function () {"},{"line_number":16,"context_line":"      modalSrv.close();"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_bc6264d7","line":13,"range":{"start_line":13,"start_character":25,"end_line":13,"end_character":39},"in_reply_to":"3fa0c359_57011d04","updated":"2018-02-19 11:16:51.000000000","message":"Corrected that part. The actionList is simply declared for internal behavior. As you said, I modified the setting.conf file so we can see different names for each monitoring project instead of \u0027open a URL\u0027 in the Action list. (e.g. Zabbix Web, Grafana Web)\n\nIs that right?","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"9332b2c016823e41a5a0629d35477202c2916094","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  function ActionListModal(action,$scope,modalSrv,vitrageActionSrv) {"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    $scope.action\u003d action;"},{"line_number":13,"context_line":"    $scope.actionList \u003d{\u0027Execute Action\u0027:\u0027Mistral\u0027,\u0027Performance Test\u0027:\u0027Rally\u0027,\u0027Monitoring URL\u0027:\u0027URL\u0027};"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    $scope.closeModal \u003d function () {"},{"line_number":16,"context_line":"      modalSrv.close();"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_1736d1e8","line":13,"range":{"start_line":13,"start_character":25,"end_line":13,"end_character":39},"in_reply_to":"3fa0c359_bc6264d7","updated":"2018-02-19 12:18:06.000000000","message":"So actually, is this list initialized with two actions (Mistral and Rally), or from the configuration file?","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"f282bc9d03005dcc7d33d41a400dc64793f3a1e0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  function ActionListModal(action,$scope,modalSrv,vitrageActionSrv) {"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    $scope.action\u003d action;"},{"line_number":13,"context_line":"    $scope.actionList \u003d{\u0027Execute Action\u0027:\u0027Mistral\u0027,\u0027Performance Test\u0027:\u0027Rally\u0027,\u0027Monitoring URL\u0027:\u0027URL\u0027};"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    $scope.closeModal \u003d function () {"},{"line_number":16,"context_line":"      modalSrv.close();"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_dc5df015","line":13,"range":{"start_line":13,"start_character":79,"end_line":13,"end_character":93},"in_reply_to":"3fa0c359_f70f092b","updated":"2018-02-19 11:16:51.000000000","message":"I fixed it :)","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"36fb9358580c0050b89d599aec8c5cb2098f8e4a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    };"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    var getActionData \u003d function() {"},{"line_number":20,"context_line":"      vitrageActionSrv.getDetailedActionlist([$scope.actionList[$scope.action[0]],$scope.action[1]])"},{"line_number":21,"context_line":"        .then("},{"line_number":22,"context_line":"          function success(result) {"},{"line_number":23,"context_line":""}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_256bf4f1","line":20,"updated":"2018-02-14 17:24:51.000000000","message":"What happen if no actions in list ? or configuration not set ?","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"d5aa6aee8457842943c58e8795b7fec95e1b3551","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    };"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    var getActionData \u003d function() {"},{"line_number":20,"context_line":"      vitrageActionSrv.getDetailedActionlist([$scope.actionList[$scope.action[0]],$scope.action[1]])"},{"line_number":21,"context_line":"        .then("},{"line_number":22,"context_line":"          function success(result) {"},{"line_number":23,"context_line":""}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_bcbee4fc","line":20,"in_reply_to":"3fa0c359_256bf4f1","updated":"2018-02-19 11:35:07.000000000","message":"The action list is generated based on the conf file. Therefore, if no action is created in the conf file, only an empty list can be checked.","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"9332b2c016823e41a5a0629d35477202c2916094","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    };"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    var getActionData \u003d function() {"},{"line_number":20,"context_line":"      vitrageActionSrv.getDetailedActionlist([$scope.actionList[$scope.action[0]],$scope.action[1]])"},{"line_number":21,"context_line":"        .then("},{"line_number":22,"context_line":"          function success(result) {"},{"line_number":23,"context_line":""}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_f73fa5b2","line":20,"in_reply_to":"3fa0c359_bcbee4fc","updated":"2018-02-19 12:18:06.000000000","message":"And in this case, will you still see the actions panel in the UI?","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"a808a68f77063f381ff76ebdb995452cb4b57d07","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    };"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    var getActionData \u003d function() {"},{"line_number":20,"context_line":"      vitrageActionSrv.getDetailedActionlist([$scope.actionList[$scope.action[0]],$scope.action[1]])"},{"line_number":21,"context_line":"        .then("},{"line_number":22,"context_line":"          function success(result) {"},{"line_number":23,"context_line":""}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_0d14739f","line":20,"in_reply_to":"3fa0c359_f73fa5b2","updated":"2018-02-20 05:02:12.000000000","message":"Yes, that\u0027s right. We can see the actions panel in the UI, but we can see only the empty list.","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"36fb9358580c0050b89d599aec8c5cb2098f8e4a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      $scope.closeModal();"},{"line_number":39,"context_line":"      vitrageActionSrv.postAction($scope.actionList[$scope.action[0]],requestdict)"},{"line_number":40,"context_line":"        .then("},{"line_number":41,"context_line":"          function success(result) {"},{"line_number":42,"context_line":"          },"},{"line_number":43,"context_line":"          function error(result) {"},{"line_number":44,"context_line":"            console.log(\u0027Error : Cannot post Action\u0027, result);"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_e5742cd3","line":41,"updated":"2018-02-14 17:24:51.000000000","message":"empty success handler","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"d5aa6aee8457842943c58e8795b7fec95e1b3551","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      $scope.closeModal();"},{"line_number":39,"context_line":"      vitrageActionSrv.postAction($scope.actionList[$scope.action[0]],requestdict)"},{"line_number":40,"context_line":"        .then("},{"line_number":41,"context_line":"          function success(result) {"},{"line_number":42,"context_line":"          },"},{"line_number":43,"context_line":"          function error(result) {"},{"line_number":44,"context_line":"            console.log(\u0027Error : Cannot post Action\u0027, result);"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_fcc46c94","line":41,"in_reply_to":"3fa0c359_e5742cd3","updated":"2018-02-19 11:35:07.000000000","message":"Done","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"57f130f6b25339f8d7f0b52d2e7fb8db3b929c7f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    $scope.action\u003d action;"},{"line_number":12,"context_line":"    $scope.actionresult \u003d false;"},{"line_number":13,"context_line":"    $scope.detailedAction \u003d null;"},{"line_number":14,"context_line":"    if($scope.action[0] \u003d\u003d \u0027Mistral\u0027){"},{"line_number":15,"context_line":"        $scope.detailedAction \u003d action[2];"},{"line_number":16,"context_line":"    }"},{"line_number":17,"context_line":""}],"source_content_type":"text/javascript","patch_set":36,"id":"5f7c97a3_2bafa47c","line":14,"updated":"2019-03-26 12:43:59.000000000","message":"It will be better not to use array indexes, so you don\u0027t have outOfBoundries exceptions","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"57f130f6b25339f8d7f0b52d2e7fb8db3b929c7f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"      vitrageActionSrv.postAction($scope.action[0],requestdict)"},{"line_number":31,"context_line":"        .then("},{"line_number":32,"context_line":"          function success(result) {"},{"line_number":33,"context_line":"            console.log(\u0027Action request result \u003d\u003e \u0027, result);"},{"line_number":34,"context_line":"            if(($scope.action[0] \u003d\u003d \u0027Rally\u0027 \u0026\u0026 result !\u003d null) || ($scope.action[0] \u003d\u003d \u0027Mistral\u0027)){"},{"line_number":35,"context_line":"                $scope.actionresult \u003d true;"},{"line_number":36,"context_line":"            }else{"}],"source_content_type":"text/javascript","patch_set":36,"id":"5f7c97a3_abbad4b6","line":33,"updated":"2019-03-26 12:43:59.000000000","message":"Remove console.log","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"57f130f6b25339f8d7f0b52d2e7fb8db3b929c7f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            }"},{"line_number":39,"context_line":"          },"},{"line_number":40,"context_line":"          function error(result) {"},{"line_number":41,"context_line":"            console.log(\u0027Cannot post Action\u0027, result);"},{"line_number":42,"context_line":"          }"},{"line_number":43,"context_line":"        )"},{"line_number":44,"context_line":"    }"}],"source_content_type":"text/javascript","patch_set":36,"id":"5f7c97a3_6b07dc82","line":41,"updated":"2019-03-26 12:43:59.000000000","message":"Console.error","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/actions/actions.html":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"36fb9358580c0050b89d599aec8c5cb2098f8e4a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003cdiv\u003e"},{"line_number":2,"context_line":"     \u003cdiv ng-repeat\u003d\"actionname in action \"\u003e"},{"line_number":3,"context_line":"         \u003cdiv rowspan\u003d\"{action.length}}\" data-ng-show\u003d\"$first\"\u003e"},{"line_number":4,"context_line":"               \u003cdiv  ng-switch\u003d\"actionname\"\u003e"},{"line_number":5,"context_line":"                   \u003cdiv ng-switch-when\u003d\"Execute Action\"\u003e"}],"source_content_type":"text/html","patch_set":2,"id":"3fa0c359_c57b30bc","line":2,"updated":"2018-02-14 17:24:51.000000000","message":"track by","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"d5aa6aee8457842943c58e8795b7fec95e1b3551","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003cdiv\u003e"},{"line_number":2,"context_line":"     \u003cdiv ng-repeat\u003d\"actionname in action \"\u003e"},{"line_number":3,"context_line":"         \u003cdiv rowspan\u003d\"{action.length}}\" data-ng-show\u003d\"$first\"\u003e"},{"line_number":4,"context_line":"               \u003cdiv  ng-switch\u003d\"actionname\"\u003e"},{"line_number":5,"context_line":"                   \u003cdiv ng-switch-when\u003d\"Execute Action\"\u003e"}],"source_content_type":"text/html","patch_set":2,"id":"3fa0c359_5ccec0b4","line":2,"in_reply_to":"3fa0c359_c57b30bc","updated":"2018-02-19 11:35:07.000000000","message":"Done","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"57f130f6b25339f8d7f0b52d2e7fb8db3b929c7f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003cdiv\u003e"},{"line_number":2,"context_line":"     \u003cdiv ng-repeat\u003d\"actionname in action track by actionname\"\u003e"},{"line_number":3,"context_line":"         \u003cdiv rowspan\u003d\"{action.length}}\" data-ng-show\u003d\"$first\"\u003e"},{"line_number":4,"context_line":"               \u003cdiv  ng-switch\u003d\"actionname\"\u003e"},{"line_number":5,"context_line":"                   \u003cdiv ng-switch-when\u003d\"Mistral\"\u003e"},{"line_number":6,"context_line":"                        \u003chz-workflow-execute action\u003d\"action\""},{"line_number":7,"context_line":"                                            detailedAction\u003d\"detailedAction\"\u003e\u003c/hz-workflow-execute\u003e"}],"source_content_type":"text/html","patch_set":36,"id":"5f7c97a3_6b2cbc00","line":4,"updated":"2019-03-26 12:43:59.000000000","message":"1. extra space\n2. actionName (Camel case)","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/actions/actions.scss":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"36fb9358580c0050b89d599aec8c5cb2098f8e4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3fa0c359_654a5c84","line":1,"updated":"2018-02-14 17:24:51.000000000","message":"Empty SCSS","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"d5aa6aee8457842943c58e8795b7fec95e1b3551","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3fa0c359_3ccbb4a5","line":1,"in_reply_to":"3fa0c359_654a5c84","updated":"2018-02-19 11:35:07.000000000","message":"Done","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/actions/wait-spinner.controller.js":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"57f130f6b25339f8d7f0b52d2e7fb8db3b929c7f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            modalSrv.show(modalOptions);\r"},{"line_number":39,"context_line":"          },\r"},{"line_number":40,"context_line":"          function error(result) {\r"},{"line_number":41,"context_line":"            console.log(\u0027Cannot get Action list\u0027, result);\r"},{"line_number":42,"context_line":"          }\r"},{"line_number":43,"context_line":"        )\r"},{"line_number":44,"context_line":"    };\r"}],"source_content_type":"text/javascript","patch_set":36,"id":"5f7c97a3_ab3df429","line":41,"updated":"2019-03-26 12:43:59.000000000","message":"console.error","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/actions/wait-spinner.html":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"57f130f6b25339f8d7f0b52d2e7fb8db3b929c7f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003cdiv class \u003d \"modal-content\"\u003e"},{"line_number":2,"context_line":"     \u003cdiv  class\u003d\"modal-body\"\u003e"},{"line_number":3,"context_line":"          \u003cspan class\u003d\"loader fa fa-spinner fa-spin fa-5x text-center\"\u003e\u003c/span\u003e"},{"line_number":4,"context_line":"          \u003cdiv class\u003d\"loader-caption h4 text-center\"\u003eLoading\u0026hellip;\u003c/div\u003e"},{"line_number":5,"context_line":"     \u003c/div\u003e"}],"source_content_type":"text/html","patch_set":36,"id":"5f7c97a3_0b7bc8f2","line":2,"updated":"2019-03-26 12:43:59.000000000","message":"Extra space","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"57f130f6b25339f8d7f0b52d2e7fb8db3b929c7f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003cdiv class \u003d \"modal-content\"\u003e"},{"line_number":2,"context_line":"     \u003cdiv  class\u003d\"modal-body\"\u003e"},{"line_number":3,"context_line":"          \u003cspan class\u003d\"loader fa fa-spinner fa-spin fa-5x text-center\"\u003e\u003c/span\u003e"},{"line_number":4,"context_line":"          \u003cdiv class\u003d\"loader-caption h4 text-center\"\u003eLoading\u0026hellip;\u003c/div\u003e"},{"line_number":5,"context_line":"     \u003c/div\u003e"},{"line_number":6,"context_line":"\u003c/div\u003e"},{"line_number":7,"context_line":""}],"source_content_type":"text/html","patch_set":36,"id":"5f7c97a3_8b6ef82a","line":4,"updated":"2019-03-26 12:43:59.000000000","message":"Loading\u0026hellip; ???","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"}],"vitrage_dashboard/dashboard/static/dashboard/project/components/actions/workflow-execute.directive.js":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"57f130f6b25339f8d7f0b52d2e7fb8db3b929c7f","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        scope.getInput \u003d function (workflow_para) {"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"            if(workflow_para.match(\u0027\u003d\u0027) \u003d\u003d null){"},{"line_number":25,"context_line":"                return \u0027true\u0027"},{"line_number":26,"context_line":"            }else{"},{"line_number":27,"context_line":"                return \u0027false\u0027"}],"source_content_type":"text/javascript","patch_set":36,"id":"5f7c97a3_2bcec42b","line":24,"updated":"2019-03-26 12:43:59.000000000","message":"\u003d\u003d\u003d","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"},{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"57f130f6b25339f8d7f0b52d2e7fb8db3b929c7f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        scope.getInput \u003d function (workflow_para) {"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"            if(workflow_para.match(\u0027\u003d\u0027) \u003d\u003d null){"},{"line_number":25,"context_line":"                return \u0027true\u0027"},{"line_number":26,"context_line":"            }else{"},{"line_number":27,"context_line":"                return \u0027false\u0027"},{"line_number":28,"context_line":"            }"}],"source_content_type":"text/javascript","patch_set":36,"id":"5f7c97a3_ebd3ecd1","line":25,"updated":"2019-03-26 12:43:59.000000000","message":"true false as string ?","commit_id":"405e0a71f29b8fa132d668ca26ae0550bb101c2d"}],"vitrage_dashboard/dashboard/static/dashboard/project/entities/actionlist/entities-actionlist.directive.js":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"7b1d268b61104b67fe87f0aceef4e659e6381812","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    function link(scope) {"},{"line_number":17,"context_line":"        scope.selectedAction\u003d\u0027None\u0027;"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"        scope.actionDict \u003d{\u0027Execute Action\u0027:\u0027Mistral\u0027,\u0027Performance Test\u0027:\u0027Rally\u0027,\u0027Monitoring URL\u0027:\u0027URL\u0027};"},{"line_number":20,"context_line":"        "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        scope.showpanel\u003d{\u0027display\u0027:\u0027none\u0027};"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_f73dc9ba","line":19,"range":{"start_line":19,"start_character":27,"end_line":19,"end_character":103},"updated":"2018-02-14 12:13:06.000000000","message":"Same here, please use \u0027Mistral Workflow\u0027, \u0027Zabbix\u0027, \u0027Grafana\u0027","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"f282bc9d03005dcc7d33d41a400dc64793f3a1e0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    function link(scope) {"},{"line_number":17,"context_line":"        scope.selectedAction\u003d\u0027None\u0027;"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"        scope.actionDict \u003d{\u0027Execute Action\u0027:\u0027Mistral\u0027,\u0027Performance Test\u0027:\u0027Rally\u0027,\u0027Monitoring URL\u0027:\u0027URL\u0027};"},{"line_number":20,"context_line":"        "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        scope.showpanel\u003d{\u0027display\u0027:\u0027none\u0027};"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_fcad4cea","line":19,"range":{"start_line":19,"start_character":27,"end_line":19,"end_character":103},"in_reply_to":"3fa0c359_f73dc9ba","updated":"2018-02-19 11:16:51.000000000","message":"I\u0027ve been updated :)","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"63a5aa5ae6645cb38e38d6e3f3c9f04ba2d7793c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        scope.selectedAction\u003d\u0027None\u0027;"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"        scope.actionDict \u003d{\u0027Execute Action\u0027:\u0027Mistral\u0027,\u0027Performance Test\u0027:\u0027Rally\u0027,\u0027Monitoring URL\u0027:\u0027URL\u0027};"},{"line_number":20,"context_line":"        "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        scope.showpanel\u003d{\u0027display\u0027:\u0027none\u0027};"},{"line_number":23,"context_line":"        "}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_6e080d91","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":8},"updated":"2018-02-14 07:39:16.000000000","message":"you need to delete this","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"6fe389b38c645d096433304269964ea39bb65ff0","unresolved":false,"context_lines":[{"line_number":17,"context_line":"        scope.selectedAction\u003d\u0027None\u0027;"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"        scope.actionDict \u003d{\u0027Execute Action\u0027:\u0027Mistral\u0027,\u0027Performance Test\u0027:\u0027Rally\u0027,\u0027Monitoring URL\u0027:\u0027URL\u0027};"},{"line_number":20,"context_line":"        "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        scope.showpanel\u003d{\u0027display\u0027:\u0027none\u0027};"},{"line_number":23,"context_line":"        "}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_81ef0386","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":8},"in_reply_to":"3fa0c359_6e080d91","updated":"2018-02-19 11:03:29.000000000","message":"Done","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"63a5aa5ae6645cb38e38d6e3f3c9f04ba2d7793c","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        scope.showpanel\u003d{\u0027display\u0027:\u0027none\u0027};"},{"line_number":23,"context_line":"        "},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"        scope.$watch(\u0027actionItem\u0027, function () {"},{"line_number":26,"context_line":"            scope.showpanel.display \u003d scope.actionItem.display;"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_8e0b198c","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":8},"updated":"2018-02-14 07:39:16.000000000","message":"same as above","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"6fe389b38c645d096433304269964ea39bb65ff0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"        "},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"        scope.showpanel\u003d{\u0027display\u0027:\u0027none\u0027};"},{"line_number":23,"context_line":"        "},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"        scope.$watch(\u0027actionItem\u0027, function () {"},{"line_number":26,"context_line":"            scope.showpanel.display \u003d scope.actionItem.display;"}],"source_content_type":"text/javascript","patch_set":2,"id":"3fa0c359_a1f23f6e","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":8},"in_reply_to":"3fa0c359_8e0b198c","updated":"2018-02-19 11:03:29.000000000","message":"Done","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"}],"vitrage_dashboard/dashboard/static/dashboard/project/entities/actionlist/entities-actionlist.html":[{"author":{"_account_id":19140,"name":"Alon","email":"alon.heller@nokia.com","username":"alonheller"},"change_message_id":"36fb9358580c0050b89d599aec8c5cb2098f8e4a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"        \u003c/select\u003e"},{"line_number":6,"context_line":"    \u003c/div\u003e"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    \u003cdiv class\u003d\"btn-group\" ng-model\u003d\"selectedAction\" \u003e"},{"line_number":9,"context_line":"        \u003cbutton type\u003d\"button\" class\u003d\"btn btn-primary pull-left \" ng-click\u003d\"onRunClick(selectedAction)\"\u003eRun Action\u003c/button\u003e"},{"line_number":10,"context_line":"    \u003c/div\u003e"},{"line_number":11,"context_line":"     \u003cdiv class\u003d\"btn-group\" ng-model\u003d\"selectedAction\" \u003e"}],"source_content_type":"text/html","patch_set":2,"id":"3fa0c359_902b2481","line":8,"range":{"start_line":8,"start_character":37,"end_line":8,"end_character":51},"updated":"2018-02-14 17:24:51.000000000","message":"all ng-model in this page reference to the same model. Is this OK ?","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"},{"author":{"_account_id":26171,"name":"MinWookKim","email":"delightwook@dcn.ssu.ac.kr","username":"MinWookKim"},"change_message_id":"d5aa6aee8457842943c58e8795b7fec95e1b3551","unresolved":false,"context_lines":[{"line_number":5,"context_line":"        \u003c/select\u003e"},{"line_number":6,"context_line":"    \u003c/div\u003e"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    \u003cdiv class\u003d\"btn-group\" ng-model\u003d\"selectedAction\" \u003e"},{"line_number":9,"context_line":"        \u003cbutton type\u003d\"button\" class\u003d\"btn btn-primary pull-left \" ng-click\u003d\"onRunClick(selectedAction)\"\u003eRun Action\u003c/button\u003e"},{"line_number":10,"context_line":"    \u003c/div\u003e"},{"line_number":11,"context_line":"     \u003cdiv class\u003d\"btn-group\" ng-model\u003d\"selectedAction\" \u003e"}],"source_content_type":"text/html","patch_set":2,"id":"3fa0c359_bc0104b2","line":8,"range":{"start_line":8,"start_character":37,"end_line":8,"end_character":51},"in_reply_to":"3fa0c359_902b2481","updated":"2018-02-19 11:35:07.000000000","message":"I thought that part was unnecessary and removed it. Thank you :)","commit_id":"18842399a0f477fe52e155a1b675b38559347dac"}]}
