)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"985ba622ce7a4da8bbab40e0a557f02439678c62","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Stefano Canepa \u003csc@linux.it\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-22 17:21:05 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"First step towards python 3 support."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Removed dependacy on supervisor."},{"line_number":10,"context_line":"Added template configuration for systemd target that includes all"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"df7087c5_4ee9ce17","line":7,"range":{"start_line":7,"start_character":35,"end_line":7,"end_character":36},"updated":"2018-03-23 15:15:31.000000000","message":"First commit message line should be without period.","commit_id":"4424f9fd37227f203f4daf40641578e37178c58d"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"5f7c97a3_b0c5d790","updated":"2018-05-07 12:06:32.000000000","message":"Mention formating code to 80 columns.","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"7b57866be60db9a6d4db5c75b3eec321413b474b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"5f7c97a3_84e3b933","in_reply_to":"5f7c97a3_b0c5d790","updated":"2018-05-07 14:43:27.000000000","message":"Done","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Stefano Canepa \u003csc@linux.it\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-05-06 22:05:53 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"First step towards python 3 support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* Removed dependacy on supervisor."},{"line_number":10,"context_line":"* Added template configuration for systemd target that includes all"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5f7c97a3_701c1f6a","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":35},"updated":"2018-05-07 12:06:32.000000000","message":"Shouldn\u0027t this be something more descriptive? Like this `Removed dependacy on supervisor`.","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"7b57866be60db9a6d4db5c75b3eec321413b474b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Stefano Canepa \u003csc@linux.it\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-05-06 22:05:53 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"First step towards python 3 support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* Removed dependacy on supervisor."},{"line_number":10,"context_line":"* Added template configuration for systemd target that includes all"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"5f7c97a3_c4d9b183","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":35},"in_reply_to":"5f7c97a3_701c1f6a","updated":"2018-05-07 14:43:27.000000000","message":"Done","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"7d867eb28c3eb49af180b82dcd5d5d523afe8a96","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Task: 4126"},{"line_number":23,"context_line":"Story: 2000975"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Depends-On: https://review.openstack.org/#/c/566475/"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: I0d0c4ea41a830581d6b9f247fad6a2dda1f96cbe"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"5f7c97a3_ec3c6fc9","line":25,"updated":"2018-05-11 13:54:56.000000000","message":"See my comments on the dependent change.","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"e199ee5c0e158cfd23ae331e7c4ea911b9271c8d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Adrian Czarnecki \u003cadrian.czarnecki@ts.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-06-26 08:42:31 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Removed dependacy on supervisor"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"To support python3 in the near future this was done:"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"5f7c97a3_1ad19df8","line":7,"range":{"start_line":7,"start_character":8,"end_line":7,"end_character":17},"updated":"2018-06-26 14:05:40.000000000","message":"dependency","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"58463dccedbf34eb4252ea8ac9523f8dc0b2dac5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Adrian Czarnecki \u003cadrian.czarnecki@ts.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-06-26 08:42:31 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Removed dependacy on supervisor"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"To support python3 in the near future this was done:"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"5f7c97a3_d4a1a83b","line":7,"range":{"start_line":7,"start_character":8,"end_line":7,"end_character":17},"in_reply_to":"5f7c97a3_1ad19df8","updated":"2018-06-27 08:48:59.000000000","message":"Done","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"e199ee5c0e158cfd23ae331e7c4ea911b9271c8d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"To support python3 in the near future this was done:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"* Removed dependacy on supervisor."},{"line_number":12,"context_line":"* Added template configuration for systemd target that includes all"},{"line_number":13,"context_line":"  services."},{"line_number":14,"context_line":"* Added templates configuration for systemd service for every single"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"5f7c97a3_7afbf179","line":11,"range":{"start_line":11,"start_character":10,"end_line":11,"end_character":19},"updated":"2018-06-26 14:05:40.000000000","message":"dependency","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"58463dccedbf34eb4252ea8ac9523f8dc0b2dac5","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"To support python3 in the near future this was done:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"* Removed dependacy on supervisor."},{"line_number":12,"context_line":"* Added template configuration for systemd target that includes all"},{"line_number":13,"context_line":"  services."},{"line_number":14,"context_line":"* Added templates configuration for systemd service for every single"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"5f7c97a3_b4a66c53","line":11,"range":{"start_line":11,"start_character":10,"end_line":11,"end_character":19},"in_reply_to":"5f7c97a3_7afbf179","updated":"2018-06-27 08:48:59.000000000","message":"Done","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"}],"docs/Agent.md":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"8357ddb24fb6c95065795f13c9fe75dc76b9b360","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"| Component Name | Process Name | Description |"},{"line_number":37,"context_line":"| -------------- | ------------ | ----------- |"},{"line_number":38,"context_line":"| Monasca Agent | monasca-agent | Runs as root, launches all other processes as the user configured to run monasca-agent.  This process manages the lifecycle of the Collector, Forwarder and Statsd Daemon.  It allows Start, Stop and Restart of all the agent processes together. |"},{"line_number":39,"context_line":"| Collector | monasca-collector | Gathers system \u0026 application metrics on a configurable interval and sends them to the Forwarder process. The collector runs various plugins for collection of different plugins.|"},{"line_number":40,"context_line":"| Forwarder | monasca-forwarder | Gathers data from the collector and statsd and submits it to Monasca API over SSL (tcp/17123) |"},{"line_number":41,"context_line":"| Statsd Daemon | monasca-statsd | Statsd engine capable of handling dimensions associated with metrics submitted by a client that supports them. Also supports metrics from the standard statsd client. (udp/8125) |"}],"source_content_type":"text/x-markdown","patch_set":24,"id":"5f7c97a3_b45f62e3","line":38,"updated":"2018-06-26 12:56:28.000000000","message":"I guess, I would remove that line completely. We could add a comment about monasca-agent.target under the table.","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"8357ddb24fb6c95065795f13c9fe75dc76b9b360","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"The collector is optimized for collecting as many metrics on schedule as possible. The plugins are run in reverse order of their collection time, i.e., the fastest plugin first. Also, if a plugin does not complete within the collection frequency, that plugin will be skipped in the next collection cycle. These two optimizations together ensure that plugins that complete with collection frequency seconds will get run on every collection cycle."},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"If there is some problem with multiple plugins that end up blocking the entire thread pool, the collector will exit so that it can be restarted by the monasca-agent service. The parameter pool_full_max_retries controls when this happens. If pool_full_max_retries consecutive collection cycles have ended with the Thread Pool completely full, the collector will exit."},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"Some of the plugins have their own thread pools to handle asynchronous checks. The collector thread pool is separate and has no special interaction with those thread pools."},{"line_number":283,"context_line":"# License"}],"source_content_type":"text/x-markdown","patch_set":24,"id":"5f7c97a3_945826f9","line":280,"range":{"start_line":280,"start_character":151,"end_line":280,"end_character":172},"updated":"2018-06-26 12:56:28.000000000","message":"monasca-agent systemd target","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"58463dccedbf34eb4252ea8ac9523f8dc0b2dac5","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"The collector is optimized for collecting as many metrics on schedule as possible. The plugins are run in reverse order of their collection time, i.e., the fastest plugin first. Also, if a plugin does not complete within the collection frequency, that plugin will be skipped in the next collection cycle. These two optimizations together ensure that plugins that complete with collection frequency seconds will get run on every collection cycle."},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"If there is some problem with multiple plugins that end up blocking the entire thread pool, the collector will exit so that it can be restarted by the monasca-agent service. The parameter pool_full_max_retries controls when this happens. If pool_full_max_retries consecutive collection cycles have ended with the Thread Pool completely full, the collector will exit."},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"Some of the plugins have their own thread pools to handle asynchronous checks. The collector thread pool is separate and has no special interaction with those thread pools."},{"line_number":283,"context_line":"# License"}],"source_content_type":"text/x-markdown","patch_set":24,"id":"5f7c97a3_b47bccbc","line":280,"range":{"start_line":280,"start_character":151,"end_line":280,"end_character":172},"in_reply_to":"5f7c97a3_945826f9","updated":"2018-06-27 08:48:59.000000000","message":"Done","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"76ace2b233e99e5c8c6e5915bc2251b054a832ab","unresolved":false,"context_lines":[{"line_number":40,"context_line":"| Statsd Daemon | monasca-statsd | Statsd engine capable of handling dimensions associated with metrics submitted by a client that supports them. Also supports metrics from the standard statsd client. (udp/8125) |"},{"line_number":41,"context_line":"| Monasca Setup | monasca-setup | The monasca-setup script configures the agent.  The Monasca Setup program can also auto-detect and configure certain agent plugins |"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"It is possible to Start, Stop and Reset all component by using monasca-agent.target. It is possible to Start, Stop and Reset all components by using monasca-agent.target. Monasca-agent.target is the systemd configuration that allows to manage all monasca-agent services."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# Installing"},{"line_number":46,"context_line":"The Agent (monasca-agent) is available for installation from the Python Package Index (PyPI). To install it, you first need `pip` installed on the node to be monitored. Instructions on installing pip may be found at https://pip.pypa.io/en/latest/installing.html.  The Agent will NOT run under any flavor of Windows or Mac OS at this time but has been tested thoroughly on Ubuntu and should work under most flavors of Linux.  Support may be added for Mac OS and Windows in the future.  Example of an Ubuntu or Debian based install:"}],"source_content_type":"text/x-markdown","patch_set":25,"id":"5f7c97a3_28e51ca4","line":43,"range":{"start_line":43,"start_character":85,"end_line":43,"end_character":170},"updated":"2018-06-27 09:23:50.000000000","message":"Repeated.","commit_id":"915acdddbc7a10f7878c73fb4896e6db098bb66b"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"1f4b3c986ce40d68e1364ba387f6d01e30a28b93","unresolved":false,"context_lines":[{"line_number":40,"context_line":"| Statsd Daemon | monasca-statsd | Statsd engine capable of handling dimensions associated with metrics submitted by a client that supports them. Also supports metrics from the standard statsd client. (udp/8125) |"},{"line_number":41,"context_line":"| Monasca Setup | monasca-setup | The monasca-setup script configures the agent.  The Monasca Setup program can also auto-detect and configure certain agent plugins |"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"It is possible to Start, Stop and Reset all component by using monasca-agent.target. It is possible to Start, Stop and Reset all components by using monasca-agent.target. Monasca-agent.target is the systemd configuration that allows to manage all monasca-agent services."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"# Installing"},{"line_number":46,"context_line":"The Agent (monasca-agent) is available for installation from the Python Package Index (PyPI). To install it, you first need `pip` installed on the node to be monitored. Instructions on installing pip may be found at https://pip.pypa.io/en/latest/installing.html.  The Agent will NOT run under any flavor of Windows or Mac OS at this time but has been tested thoroughly on Ubuntu and should work under most flavors of Linux.  Support may be added for Mac OS and Windows in the future.  Example of an Ubuntu or Debian based install:"}],"source_content_type":"text/x-markdown","patch_set":25,"id":"5f7c97a3_6b278eb7","line":43,"range":{"start_line":43,"start_character":85,"end_line":43,"end_character":170},"in_reply_to":"5f7c97a3_28e51ca4","updated":"2018-06-27 09:29:57.000000000","message":"Done","commit_id":"915acdddbc7a10f7878c73fb4896e6db098bb66b"}],"monasca_setup/main.py":[{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"import monasca_setup.utils as utils"},{"line_number":34,"context_line":"from monasca_setup.utils import write_template"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"log \u003d logging.getLogger(__name__)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"CUSTOM_PLUGIN_PATH \u003d \u0027/usr/lib/monasca/agent/custom_detect.d\u0027"},{"line_number":39,"context_line":"# dirname is called twice to get the dir 1 above the location of the script"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_f0590ffe","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":3},"updated":"2018-05-07 12:06:32.000000000","message":"Also change to `LOG` like in other files.","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"7b57866be60db9a6d4db5c75b3eec321413b474b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"import monasca_setup.utils as utils"},{"line_number":34,"context_line":"from monasca_setup.utils import write_template"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"log \u003d logging.getLogger(__name__)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"CUSTOM_PLUGIN_PATH \u003d \u0027/usr/lib/monasca/agent/custom_detect.d\u0027"},{"line_number":39,"context_line":"# dirname is called twice to get the dir 1 above the location of the script"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_a4127557","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":3},"in_reply_to":"5f7c97a3_f0590ffe","updated":"2018-05-07 14:43:27.000000000","message":"Done","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                            format\u003d\"%(levelname)s: %(message)s\")"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    if args.dry_run:"},{"line_number":58,"context_line":"        log.info(\"Running in dry run mode, no changes will be made only\" +"},{"line_number":59,"context_line":"                 \" reported\")"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    # Detect and if possibly enable the agent service"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_3076a7a6","line":58,"range":{"start_line":58,"start_character":73,"end_line":58,"end_character":74},"updated":"2018-05-07 12:06:32.000000000","message":"You don\u0027t need `+` here if you have all strings in braces.","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"7b57866be60db9a6d4db5c75b3eec321413b474b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                            format\u003d\"%(levelname)s: %(message)s\")"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    if args.dry_run:"},{"line_number":58,"context_line":"        log.info(\"Running in dry run mode, no changes will be made only\" +"},{"line_number":59,"context_line":"                 \" reported\")"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    # Detect and if possibly enable the agent service"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_e4086d29","line":58,"range":{"start_line":58,"start_character":73,"end_line":58,"end_character":74},"in_reply_to":"5f7c97a3_3076a7a6","updated":"2018-05-07 14:43:27.000000000","message":"Removed","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        if (args.username is None or"},{"line_number":74,"context_line":"                args.password is None or"},{"line_number":75,"context_line":"                args.keystone_url is None):"},{"line_number":76,"context_line":"            log.error(\u0027Username, password and keystone_url are required when\u0027 +"},{"line_number":77,"context_line":"                      \u0027 running full configuration.\u0027)"},{"line_number":78,"context_line":"            parser.print_help()"},{"line_number":79,"context_line":"            sys.exit(1)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_7063bfdd","line":76,"range":{"start_line":76,"start_character":78,"end_line":76,"end_character":79},"updated":"2018-05-07 12:06:32.000000000","message":"remove","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"7b57866be60db9a6d4db5c75b3eec321413b474b","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        if (args.username is None or"},{"line_number":74,"context_line":"                args.password is None or"},{"line_number":75,"context_line":"                args.keystone_url is None):"},{"line_number":76,"context_line":"            log.error(\u0027Username, password and keystone_url are required when\u0027 +"},{"line_number":77,"context_line":"                      \u0027 running full configuration.\u0027)"},{"line_number":78,"context_line":"            parser.print_help()"},{"line_number":79,"context_line":"            sys.exit(1)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_c40f712c","line":76,"range":{"start_line":76,"start_character":78,"end_line":76,"end_character":79},"in_reply_to":"5f7c97a3_7063bfdd","updated":"2018-05-07 14:43:27.000000000","message":"Done.","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            \u0027Monasca Agent\u0027.format(plugin_names))"},{"line_number":120,"context_line":"        return 0"},{"line_number":121,"context_line":"    elif args.dry_run:"},{"line_number":122,"context_line":"        log.info(\u0027Running in dry mode, skipping changes and restart of\u0027 +"},{"line_number":123,"context_line":"                 \u0027 Monasca Agent\u0027)"},{"line_number":124,"context_line":"        return 0"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_50a003f5","line":122,"range":{"start_line":122,"start_character":72,"end_line":122,"end_character":73},"updated":"2018-05-07 12:06:32.000000000","message":"remove","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"7b57866be60db9a6d4db5c75b3eec321413b474b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            \u0027Monasca Agent\u0027.format(plugin_names))"},{"line_number":120,"context_line":"        return 0"},{"line_number":121,"context_line":"    elif args.dry_run:"},{"line_number":122,"context_line":"        log.info(\u0027Running in dry mode, skipping changes and restart of\u0027 +"},{"line_number":123,"context_line":"                 \u0027 Monasca Agent\u0027)"},{"line_number":124,"context_line":"        return 0"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_24ff4502","line":122,"range":{"start_line":122,"start_character":72,"end_line":122,"end_character":73},"in_reply_to":"5f7c97a3_50a003f5","updated":"2018-05-07 14:43:27.000000000","message":"Done.","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    # Now that the config is built, start the service"},{"line_number":127,"context_line":"    if args.install_plugins_only:"},{"line_number":128,"context_line":"        log.info(\u0027Command line option install_plugins_only set, skipping \u0027 +"},{"line_number":129,"context_line":"                 \u0027service (re)start.\u0027)"},{"line_number":130,"context_line":"    else:"},{"line_number":131,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_b0ae37e5","line":128,"range":{"start_line":128,"start_character":75,"end_line":128,"end_character":76},"updated":"2018-05-07 12:06:32.000000000","message":"remove","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    # Now that the config is built, start the service"},{"line_number":127,"context_line":"    if args.install_plugins_only:"},{"line_number":128,"context_line":"        log.info(\u0027Command line option install_plugins_only set, skipping \u0027 +"},{"line_number":129,"context_line":"                 \u0027service (re)start.\u0027)"},{"line_number":130,"context_line":"    else:"},{"line_number":131,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_d0d97383","line":128,"range":{"start_line":128,"start_character":72,"end_line":128,"end_character":73},"updated":"2018-05-07 12:06:32.000000000","message":"stick to one place with this space","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"3f2bc64634ef3eccbf5ede89b3db7353952ac894","unresolved":false,"context_lines":[{"line_number":43,"context_line":"def main(argv\u003dNone):"},{"line_number":44,"context_line":"    parser \u003d argparse.ArgumentParser("},{"line_number":45,"context_line":"        description\u003d\u0027Configure and setup the agent. In a full run it will\u0027 +"},{"line_number":46,"context_line":"        \u0027 detect running daemons then configure and start the agent.\u0027,"},{"line_number":47,"context_line":"        formatter_class\u003dargparse.ArgumentDefaultsHelpFormatter)"},{"line_number":48,"context_line":"    args \u003d parse_arguments(parser)"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_03c4ad91","line":46,"range":{"start_line":46,"start_character":17,"end_line":46,"end_character":24},"updated":"2018-05-17 11:18:45.000000000","message":"Not to worry this time, but I think separating reformatting and logic changes into separate commits would be helpful for reviewing in the future.","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"}],"monasca_setup/service/__init__.py":[{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"5f7c97a3_f0402f0a","updated":"2018-05-07 12:06:32.000000000","message":"Shouldn\u0027t license header stay here?","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"}],"monasca_setup/service/detection.py":[{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    detected_os \u003d platform.system()"},{"line_number":33,"context_line":"    if has_systemd():"},{"line_number":34,"context_line":"        return linux.Systemd(*args, **kwargs)"},{"line_number":35,"context_line":"    else:"},{"line_number":36,"context_line":"        print(\"{0} is not currently supported by the Monasca Agent\""},{"line_number":37,"context_line":"              .format(detected_os))"},{"line_number":38,"context_line":"        sys.exit(1)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_b0739780","line":35,"range":{"start_line":35,"start_character":4,"end_line":35,"end_character":9},"updated":"2018-05-07 12:06:32.000000000","message":"this `else` is not needed","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"7b57866be60db9a6d4db5c75b3eec321413b474b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    detected_os \u003d platform.system()"},{"line_number":33,"context_line":"    if has_systemd():"},{"line_number":34,"context_line":"        return linux.Systemd(*args, **kwargs)"},{"line_number":35,"context_line":"    else:"},{"line_number":36,"context_line":"        print(\"{0} is not currently supported by the Monasca Agent\""},{"line_number":37,"context_line":"              .format(detected_os))"},{"line_number":38,"context_line":"        sys.exit(1)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_c9d78abf","line":35,"range":{"start_line":35,"start_character":4,"end_line":35,"end_character":9},"in_reply_to":"5f7c97a3_b0739780","updated":"2018-05-07 14:43:27.000000000","message":"Removed.","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"3f2bc64634ef3eccbf5ede89b3db7353952ac894","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    detected_os \u003d platform.system()"},{"line_number":33,"context_line":"    if has_systemd():"},{"line_number":34,"context_line":"        return linux.Systemd(*args, **kwargs)"},{"line_number":35,"context_line":"    print(\"{0} is not currently supported by the Monasca Agent\""},{"line_number":36,"context_line":"          .format(detected_os))"},{"line_number":37,"context_line":"    sys.exit(1)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_e33091eb","line":35,"range":{"start_line":35,"start_character":4,"end_line":35,"end_character":9},"updated":"2018-05-17 11:18:45.000000000","message":"Should this be an error log?","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"8233dd52c55140bef9263a1e45f1a1be0fc3cd03","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    detected_os \u003d platform.system()"},{"line_number":33,"context_line":"    if has_systemd():"},{"line_number":34,"context_line":"        return linux.Systemd(*args, **kwargs)"},{"line_number":35,"context_line":"    print(\"{0} is not currently supported by the Monasca Agent\""},{"line_number":36,"context_line":"          .format(detected_os))"},{"line_number":37,"context_line":"    sys.exit(1)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_45cbdb1b","line":35,"range":{"start_line":35,"start_character":4,"end_line":35,"end_character":9},"in_reply_to":"5f7c97a3_e33091eb","updated":"2018-06-25 08:47:32.000000000","message":"Done","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"3f2bc64634ef3eccbf5ede89b3db7353952ac894","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    \"\"\"Detect if Linux init is systemd.\"\"\""},{"line_number":42,"context_line":"    with open(\u0027/proc/1/comm\u0027, \u0027r\u0027) as init_proc:"},{"line_number":43,"context_line":"        init \u003d init_proc.readline().strip()"},{"line_number":44,"context_line":"        if init \u003d\u003d \u0027systemd\u0027:"},{"line_number":45,"context_line":"            return True"},{"line_number":46,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_a39e19b6","line":44,"range":{"start_line":44,"start_character":11,"end_line":44,"end_character":15},"updated":"2018-05-17 11:18:45.000000000","message":"nit: return True if init \u003d\u003d \u0027systemd\u0027 else False ?","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"8233dd52c55140bef9263a1e45f1a1be0fc3cd03","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    \"\"\"Detect if Linux init is systemd.\"\"\""},{"line_number":42,"context_line":"    with open(\u0027/proc/1/comm\u0027, \u0027r\u0027) as init_proc:"},{"line_number":43,"context_line":"        init \u003d init_proc.readline().strip()"},{"line_number":44,"context_line":"        if init \u003d\u003d \u0027systemd\u0027:"},{"line_number":45,"context_line":"            return True"},{"line_number":46,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_85eed388","line":44,"range":{"start_line":44,"start_character":11,"end_line":44,"end_character":15},"in_reply_to":"5f7c97a3_a39e19b6","updated":"2018-06-25 08:47:32.000000000","message":"Done","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"}],"monasca_setup/service/linux.py":[{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    def enable(self):"},{"line_number":38,"context_line":"        \"\"\"Set monasca-agent to start on boot."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"            Generally this requires running as super user"},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        # TODO(sc) check if not running as root"},{"line_number":43,"context_line":"#        LinuxInit.enable(self)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_b0d077f9","line":40,"range":{"start_line":40,"start_character":11,"end_line":40,"end_character":12},"updated":"2018-05-07 12:06:32.000000000","message":"Remove space and add dot at end.","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"7b57866be60db9a6d4db5c75b3eec321413b474b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    def enable(self):"},{"line_number":38,"context_line":"        \"\"\"Set monasca-agent to start on boot."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"            Generally this requires running as super user"},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        # TODO(sc) check if not running as root"},{"line_number":43,"context_line":"#        LinuxInit.enable(self)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_09758295","line":40,"range":{"start_line":40,"start_character":11,"end_line":40,"end_character":12},"in_reply_to":"5f7c97a3_b0d077f9","updated":"2018-05-07 14:43:27.000000000","message":"done. Thanks.","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def stop(self):"},{"line_number":108,"context_line":"        \"\"\"Stop monasca-agent.\"\"\""},{"line_number":109,"context_line":"        if not self.is_enabled():"},{"line_number":110,"context_line":"            LOG.error(\u0027The service is not enabled\u0027)"},{"line_number":111,"context_line":"            return False"},{"line_number":112,"context_line":"        LOG.info(\u0027Stopping {0} services\u0027.format(self.name))"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_d0f65390","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":33},"updated":"2018-05-07 12:06:32.000000000","message":"why do we care if it\u0027s enabled when stopping?","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"7b57866be60db9a6d4db5c75b3eec321413b474b","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def stop(self):"},{"line_number":108,"context_line":"        \"\"\"Stop monasca-agent.\"\"\""},{"line_number":109,"context_line":"        if not self.is_enabled():"},{"line_number":110,"context_line":"            LOG.error(\u0027The service is not enabled\u0027)"},{"line_number":111,"context_line":"            return False"},{"line_number":112,"context_line":"        LOG.info(\u0027Stopping {0} services\u0027.format(self.name))"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_8960b2d0","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":33},"in_reply_to":"5f7c97a3_d0f65390","updated":"2018-05-07 14:43:27.000000000","message":"This was the way superclass that I removed worked, but you\u0027re right. I\u0027ll remove this check.","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"9311d75c8bfc937c8a4887ef91d5fa87c5b4b20c","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        :return: True if monasca-agent is running, false otherwise."},{"line_number":121,"context_line":"        \"\"\""},{"line_number":122,"context_line":"        cmd \u003d \u0027systemctl status %s.service\u0027 % self.name"},{"line_number":123,"context_line":"        proc \u003d subprocess.Popen(cmd, shell\u003dTrue, stdout\u003dsubprocess.PIPE)"},{"line_number":124,"context_line":"        stdout_list \u003d proc.communicate()[0].split(\u0027\\n\u0027)"},{"line_number":125,"context_line":"        for line in stdout_list:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_70489fcb","line":122,"updated":"2018-05-07 12:06:32.000000000","message":"Use `systemctl is-active --quiet service`\nhttps://unix.stackexchange.com/a/396638/173212","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"7b57866be60db9a6d4db5c75b3eec321413b474b","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        :return: True if monasca-agent is running, false otherwise."},{"line_number":121,"context_line":"        \"\"\""},{"line_number":122,"context_line":"        cmd \u003d \u0027systemctl status %s.service\u0027 % self.name"},{"line_number":123,"context_line":"        proc \u003d subprocess.Popen(cmd, shell\u003dTrue, stdout\u003dsubprocess.PIPE)"},{"line_number":124,"context_line":"        stdout_list \u003d proc.communicate()[0].split(\u0027\\n\u0027)"},{"line_number":125,"context_line":"        for line in stdout_list:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f7c97a3_49ccda34","line":122,"in_reply_to":"5f7c97a3_70489fcb","updated":"2018-05-07 14:43:27.000000000","message":"Thanks, this is valid for is-enabled, too.","commit_id":"0f252bde807b196beb819c91ea7fb7706f66bdef"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"3f2bc64634ef3eccbf5ede89b3db7353952ac894","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    \"\"\"Manage service using systemd.\"\"\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __init__(self, prefix_dir, config_dir, log_dir, template_dir,"},{"line_number":28,"context_line":"                 name\u003d\u0027monasca-agent\u0027, username\u003d\u0027monasca-agent\u0027):"},{"line_number":29,"context_line":"        \"\"\"Create a service.\"\"\""},{"line_number":30,"context_line":"        self.prefix_dir \u003d prefix_dir"},{"line_number":31,"context_line":"        self.config_dir \u003d config_dir"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_832c3d4b","line":28,"range":{"start_line":28,"start_character":49,"end_line":28,"end_character":56},"updated":"2018-05-17 11:18:45.000000000","message":"In monasca_setup/detection/utils.py we have `_DEFAULT_AGENT_USER \u003d \u0027mon-agent\u0027` and there are quite a few references to `mon-agent` if you grep the code base. I think we should be consistent here and use \u0027mon-agent\u0027 unless we change it everywhere in a separate commit.","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"8233dd52c55140bef9263a1e45f1a1be0fc3cd03","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    \"\"\"Manage service using systemd.\"\"\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __init__(self, prefix_dir, config_dir, log_dir, template_dir,"},{"line_number":28,"context_line":"                 name\u003d\u0027monasca-agent\u0027, username\u003d\u0027monasca-agent\u0027):"},{"line_number":29,"context_line":"        \"\"\"Create a service.\"\"\""},{"line_number":30,"context_line":"        self.prefix_dir \u003d prefix_dir"},{"line_number":31,"context_line":"        self.config_dir \u003d config_dir"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_45e43ba8","line":28,"range":{"start_line":28,"start_character":49,"end_line":28,"end_character":56},"in_reply_to":"5f7c97a3_832c3d4b","updated":"2018-06-25 08:47:32.000000000","message":"Done","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"3f2bc64634ef3eccbf5ede89b3db7353952ac894","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        Generally this requires running as super user."},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        # TODO(sc) check if not running as root"},{"line_number":43,"context_line":"#        LinuxInit.enable(self)"},{"line_number":44,"context_line":"        # Create user/group if needed"},{"line_number":45,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_83dbdd1f","line":42,"range":{"start_line":42,"start_character":10,"end_line":42,"end_character":14},"updated":"2018-05-17 11:18:45.000000000","message":"Could we remove this TODO, and just make sure that a suitable exception gets thrown telling the user that they need extra permissions to enable the service?","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"8233dd52c55140bef9263a1e45f1a1be0fc3cd03","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        Generally this requires running as super user."},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        # TODO(sc) check if not running as root"},{"line_number":43,"context_line":"#        LinuxInit.enable(self)"},{"line_number":44,"context_line":"        # Create user/group if needed"},{"line_number":45,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_a598af1a","line":42,"range":{"start_line":42,"start_character":10,"end_line":42,"end_character":14},"in_reply_to":"5f7c97a3_83dbdd1f","updated":"2018-06-25 08:47:32.000000000","message":"Done","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"3f2bc64634ef3eccbf5ede89b3db7353952ac894","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            user \u003d pwd.getpwnam(self.username)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        # Create dirs"},{"line_number":52,"context_line":"        # todo log dir is hardcoded"},{"line_number":53,"context_line":"        for path in (self.log_dir, self.config_dir,"},{"line_number":54,"context_line":"                     \u0027%s/conf.d\u0027 % self.config_dir):"},{"line_number":55,"context_line":"            if not os.path.exists(path):"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_e34ad1aa","line":52,"range":{"start_line":52,"start_character":14,"end_line":52,"end_character":15},"updated":"2018-05-17 11:18:45.000000000","message":"+1 for removing this comment since the log dir name is passed into the constructor.","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"8233dd52c55140bef9263a1e45f1a1be0fc3cd03","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            user \u003d pwd.getpwnam(self.username)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        # Create dirs"},{"line_number":52,"context_line":"        # todo log dir is hardcoded"},{"line_number":53,"context_line":"        for path in (self.log_dir, self.config_dir,"},{"line_number":54,"context_line":"                     \u0027%s/conf.d\u0027 % self.config_dir):"},{"line_number":55,"context_line":"            if not os.path.exists(path):"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_45999b1b","line":52,"range":{"start_line":52,"start_character":14,"end_line":52,"end_character":15},"in_reply_to":"5f7c97a3_e34ad1aa","updated":"2018-06-25 08:47:32.000000000","message":"Done","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"3f2bc64634ef3eccbf5ede89b3db7353952ac894","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        templates \u003d [f for f in os.listdir(self.template_dir)"},{"line_number":63,"context_line":"                     if (f.endswith(\u0027service.template\u0027) or"},{"line_number":64,"context_line":"                         f.endswith(\u0027target.template\u0027))]"},{"line_number":65,"context_line":"        systemd_path \u003d \u0027/etc/systemd/system/\u0027"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        # Write the systemd units configuration file: we have 3 services and"},{"line_number":68,"context_line":"        # 1 target grouping all of them together"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_c3fb1545","line":65,"range":{"start_line":65,"start_character":29,"end_line":65,"end_character":36},"updated":"2018-05-17 11:18:45.000000000","message":"This hard coded path scares me a little bit, but a quick search doesn\u0027t turn up any counter examples of different locations.","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"3f2bc64634ef3eccbf5ede89b3db7353952ac894","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    def start(self, restart\u003dTrue):"},{"line_number":90,"context_line":"        \"\"\"Start monasca-agent."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        If the agent is running and restart is True restart it."},{"line_number":93,"context_line":"        \"\"\""},{"line_number":94,"context_line":"        if not self.is_enabled():"},{"line_number":95,"context_line":"            LOG.error(\u0027The service is not enabled\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_03b02d8b","line":92,"range":{"start_line":92,"start_character":0,"end_line":92,"end_character":8},"updated":"2018-05-17 11:18:45.000000000","message":"nit: We could document the return value.","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"8233dd52c55140bef9263a1e45f1a1be0fc3cd03","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    def start(self, restart\u003dTrue):"},{"line_number":90,"context_line":"        \"\"\"Start monasca-agent."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        If the agent is running and restart is True restart it."},{"line_number":93,"context_line":"        \"\"\""},{"line_number":94,"context_line":"        if not self.is_enabled():"},{"line_number":95,"context_line":"            LOG.error(\u0027The service is not enabled\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_25849fb0","line":92,"range":{"start_line":92,"start_character":0,"end_line":92,"end_character":8},"in_reply_to":"5f7c97a3_03b02d8b","updated":"2018-06-25 08:47:32.000000000","message":"Done","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"3f2bc64634ef3eccbf5ede89b3db7353952ac894","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        return True"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def stop(self):"},{"line_number":108,"context_line":"        \"\"\"Stop monasca-agent.\"\"\""},{"line_number":109,"context_line":"        LOG.info(\u0027Stopping %s services\u0027, self.name)"},{"line_number":110,"context_line":"        try:"},{"line_number":111,"context_line":"            subprocess.check_call("}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_83619d14","line":108,"range":{"start_line":108,"start_character":24,"end_line":108,"end_character":29},"updated":"2018-05-17 11:18:45.000000000","message":"nit: Could document return value.","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"8233dd52c55140bef9263a1e45f1a1be0fc3cd03","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        return True"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def stop(self):"},{"line_number":108,"context_line":"        \"\"\"Stop monasca-agent.\"\"\""},{"line_number":109,"context_line":"        LOG.info(\u0027Stopping %s services\u0027, self.name)"},{"line_number":110,"context_line":"        try:"},{"line_number":111,"context_line":"            subprocess.check_call("}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_ed6e8dc6","line":108,"range":{"start_line":108,"start_character":24,"end_line":108,"end_character":29},"in_reply_to":"5f7c97a3_83619d14","updated":"2018-06-25 08:47:32.000000000","message":"Done","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"}],"packaging/monasca-collector.service.template":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"3f2bc64634ef3eccbf5ede89b3db7353952ac894","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Collector"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"[Service]"},{"line_number":6,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"5f7c97a3_433ce4be","line":3,"updated":"2018-05-17 11:18:45.000000000","message":"Should we add an After\u003dnetwork.target here so that this can talk to the forwarder, and also make it wait until the forwarder is up? I expect it doesn\u0027t matter too much, but it might reduce noise in the logs when these agent services can\u0027t talk to each other.\n\nSimilar comment for other services.","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"8233dd52c55140bef9263a1e45f1a1be0fc3cd03","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Collector"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"[Service]"},{"line_number":6,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"5f7c97a3_0d7669a5","line":3,"in_reply_to":"5f7c97a3_433ce4be","updated":"2018-06-25 08:47:32.000000000","message":"Done","commit_id":"657ba0a83d5d2c854a6c4d476e82626e2cdf5347"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"a5f3f31dc627c1f87a7a1e052a84a6c009441b13","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Collector"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dnetwork.target"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[Service]"},{"line_number":7,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":21,"id":"5f7c97a3_8dcb5951","line":4,"updated":"2018-06-25 09:19:26.000000000","message":"Sorry, i think we need this to wait for the network to come online:\n```\nAfter\u003dnetwork-online.target\nWants\u003dnetwork-online.target\n```\nhttps://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/\n\nAlthough we don\u0027t really want the collector to start until the forwarder is up, so perhaps the forwarder should wait for the network to come online and this should wait for the forwarder?\n\nAlso, will there be a use case where the services don\u0027t all run on the same host? For example, a host might run the collector and send metrics to a *remote* forwarder? Perhaps that\u0027s out of scope here?","commit_id":"0f483ed4db23433c621bd404b96dbf0a764965bc"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"edcefb8bbf64a7a2d4b652faeb53e845cbd871de","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Collector"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dnetwork.target"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[Service]"},{"line_number":7,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":21,"id":"5f7c97a3_479e7ab8","line":4,"in_reply_to":"5f7c97a3_8dcb5951","updated":"2018-06-25 13:31:16.000000000","message":"I think is bater if this wait for the forwarder.\n\nIn my opinion we should focus on case where collector and forwarder run on the same host. We can add this functionality later","commit_id":"0f483ed4db23433c621bd404b96dbf0a764965bc"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"8357ddb24fb6c95065795f13c9fe75dc76b9b360","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Collector"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dmonasca-forwarder.target"},{"line_number":5,"context_line":"Wants\u003dmonasca-forwarder.target"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"5f7c97a3_34735282","line":4,"range":{"start_line":4,"start_character":6,"end_line":4,"end_character":30},"updated":"2018-06-26 12:56:28.000000000","message":"I think it should be `monasca-forwarder.service`.","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"58463dccedbf34eb4252ea8ac9523f8dc0b2dac5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Collector"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dmonasca-forwarder.target"},{"line_number":5,"context_line":"Wants\u003dmonasca-forwarder.target"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"5f7c97a3_546b58ee","line":4,"range":{"start_line":4,"start_character":6,"end_line":4,"end_character":30},"in_reply_to":"5f7c97a3_34735282","updated":"2018-06-27 08:48:59.000000000","message":"Done","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"8357ddb24fb6c95065795f13c9fe75dc76b9b360","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Description\u003dMonasca Agent - Collector"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dmonasca-forwarder.target"},{"line_number":5,"context_line":"Wants\u003dmonasca-forwarder.target"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"},{"line_number":8,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"5f7c97a3_546e0e96","line":5,"range":{"start_line":5,"start_character":6,"end_line":5,"end_character":30},"updated":"2018-06-26 12:56:28.000000000","message":"The same here.","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"58463dccedbf34eb4252ea8ac9523f8dc0b2dac5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Description\u003dMonasca Agent - Collector"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dmonasca-forwarder.target"},{"line_number":5,"context_line":"Wants\u003dmonasca-forwarder.target"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"},{"line_number":8,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"5f7c97a3_147160de","line":5,"range":{"start_line":5,"start_character":6,"end_line":5,"end_character":30},"in_reply_to":"5f7c97a3_546e0e96","updated":"2018-06-27 08:48:59.000000000","message":"Done","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"}],"packaging/monasca-forwarder.service.template":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"a5f3f31dc627c1f87a7a1e052a84a6c009441b13","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Forwarder"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"[Service]"},{"line_number":6,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":21,"id":"5f7c97a3_adc65548","line":3,"updated":"2018-06-25 09:19:26.000000000","message":"wait for network to come online","commit_id":"0f483ed4db23433c621bd404b96dbf0a764965bc"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"16f9c9e3cf854a11e3f9da3ebf3e494ab985669b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Forwarder"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"[Service]"},{"line_number":6,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":21,"id":"5f7c97a3_87dd726e","line":3,"in_reply_to":"5f7c97a3_adc65548","updated":"2018-06-25 13:33:38.000000000","message":"Done","commit_id":"0f483ed4db23433c621bd404b96dbf0a764965bc"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"76ace2b233e99e5c8c6e5915bc2251b054a832ab","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Forwarder"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dnetwork-online.service"},{"line_number":5,"context_line":"Wants\u003dnetwork-online.service"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"}],"source_content_type":"application/octet-stream","patch_set":25,"id":"5f7c97a3_e8540456","line":4,"range":{"start_line":4,"start_character":21,"end_line":4,"end_character":28},"updated":"2018-06-27 09:23:50.000000000","message":"target","commit_id":"915acdddbc7a10f7878c73fb4896e6db098bb66b"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"1f4b3c986ce40d68e1364ba387f6d01e30a28b93","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Forwarder"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dnetwork-online.service"},{"line_number":5,"context_line":"Wants\u003dnetwork-online.service"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"}],"source_content_type":"application/octet-stream","patch_set":25,"id":"5f7c97a3_6bfeae05","line":4,"range":{"start_line":4,"start_character":21,"end_line":4,"end_character":28},"in_reply_to":"5f7c97a3_e8540456","updated":"2018-06-27 09:29:57.000000000","message":"Done","commit_id":"915acdddbc7a10f7878c73fb4896e6db098bb66b"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"76ace2b233e99e5c8c6e5915bc2251b054a832ab","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Description\u003dMonasca Agent - Forwarder"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dnetwork-online.service"},{"line_number":5,"context_line":"Wants\u003dnetwork-online.service"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"},{"line_number":8,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":25,"id":"5f7c97a3_0850605d","line":5,"range":{"start_line":5,"start_character":21,"end_line":5,"end_character":28},"updated":"2018-06-27 09:23:50.000000000","message":"target","commit_id":"915acdddbc7a10f7878c73fb4896e6db098bb66b"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"1f4b3c986ce40d68e1364ba387f6d01e30a28b93","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Description\u003dMonasca Agent - Forwarder"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dnetwork-online.service"},{"line_number":5,"context_line":"Wants\u003dnetwork-online.service"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"},{"line_number":8,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":25,"id":"5f7c97a3_8b01ca06","line":5,"range":{"start_line":5,"start_character":21,"end_line":5,"end_character":28},"in_reply_to":"5f7c97a3_0850605d","updated":"2018-06-27 09:29:57.000000000","message":"Done","commit_id":"915acdddbc7a10f7878c73fb4896e6db098bb66b"}],"packaging/monasca-statsd.service.template":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"a5f3f31dc627c1f87a7a1e052a84a6c009441b13","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Statsd"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"[Service]"},{"line_number":6,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":21,"id":"5f7c97a3_4dc1c12e","line":3,"updated":"2018-06-25 09:19:26.000000000","message":"wait for forwarder to come up","commit_id":"0f483ed4db23433c621bd404b96dbf0a764965bc"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"16f9c9e3cf854a11e3f9da3ebf3e494ab985669b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Statsd"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"[Service]"},{"line_number":6,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":21,"id":"5f7c97a3_47d51a42","line":3,"in_reply_to":"5f7c97a3_4dc1c12e","updated":"2018-06-25 13:33:38.000000000","message":"Done","commit_id":"0f483ed4db23433c621bd404b96dbf0a764965bc"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"8357ddb24fb6c95065795f13c9fe75dc76b9b360","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Statsd"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dmonasca-forwarder.target"},{"line_number":5,"context_line":"Wants\u003dmonasca-forwarder.target"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"5f7c97a3_146416b2","line":4,"range":{"start_line":4,"start_character":6,"end_line":4,"end_character":30},"updated":"2018-06-26 12:56:28.000000000","message":"service","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"58463dccedbf34eb4252ea8ac9523f8dc0b2dac5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[Unit]"},{"line_number":2,"context_line":"Description\u003dMonasca Agent - Statsd"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dmonasca-forwarder.target"},{"line_number":5,"context_line":"Wants\u003dmonasca-forwarder.target"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"5f7c97a3_9465701f","line":4,"range":{"start_line":4,"start_character":6,"end_line":4,"end_character":30},"in_reply_to":"5f7c97a3_146416b2","updated":"2018-06-27 08:48:59.000000000","message":"Done","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"8357ddb24fb6c95065795f13c9fe75dc76b9b360","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Description\u003dMonasca Agent - Statsd"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dmonasca-forwarder.target"},{"line_number":5,"context_line":"Wants\u003dmonasca-forwarder.target"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"},{"line_number":8,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"5f7c97a3_d4077ec8","line":5,"range":{"start_line":5,"start_character":6,"end_line":5,"end_character":30},"updated":"2018-06-26 12:56:28.000000000","message":"service","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"58463dccedbf34eb4252ea8ac9523f8dc0b2dac5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Description\u003dMonasca Agent - Statsd"},{"line_number":3,"context_line":"PartOf\u003dmonasca-agent.target"},{"line_number":4,"context_line":"After\u003dmonasca-forwarder.target"},{"line_number":5,"context_line":"Wants\u003dmonasca-forwarder.target"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[Service]"},{"line_number":8,"context_line":"Type\u003dsimple"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"5f7c97a3_34681cf2","line":5,"range":{"start_line":5,"start_character":6,"end_line":5,"end_character":30},"in_reply_to":"5f7c97a3_d4077ec8","updated":"2018-06-27 08:48:59.000000000","message":"Done","commit_id":"0ae129f6e585cff0bd93001fefd3e682337adb29"}],"setup.cfg":[{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"8a30b0dd670bfab53a4c0321d330b5cdca563483","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        agent.yaml.template"},{"line_number":26,"context_line":"        packaging/monasca-agent.init.template"},{"line_number":27,"context_line":"        packaging/monasca-collector.service.template"},{"line_number":28,"context_line":"        packaging/monasca-forwarder-.service.template"},{"line_number":29,"context_line":"        packaging/monasca-statsd.service.template"},{"line_number":30,"context_line":"    share/monasca/agent/conf.d \u003d conf.d/*"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":7,"id":"bf659307_6f286396","line":28,"updated":"2018-04-11 15:26:58.000000000","message":"this is the source of the error in installing.","commit_id":"61e1e8fa4edeb3fc09c2c108297ab368511ffa3d"}]}
