)]}'
{"monasca_setup/detection/plugins/ceph.py":[{"author":{"_account_id":12809,"name":"Sripadwallabha Dattatraya Kollur","email":"sripadwallabha.d.kollur@hp.com","username":"sripadwallabha-d-kollur"},"change_message_id":"a8dae481cd8cd01154b9676372cfb479e334da67","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    def __init__(self,  template_dir, overwrite\u003dTrue, args\u003dNone):"},{"line_number":65,"context_line":"        self.service_name \u003d \u0027ceph-storage\u0027"},{"line_number":66,"context_line":"        self.process_names \u003d [\u0027ceph-osd\u0027, \u0027ceph-mon\u0027, \u0027ceph-mds\u0027]"},{"line_number":67,"context_line":"        self.ceph_osd_path \u003d \u0027/var/lib/ceph/osd/\u0027"},{"line_number":68,"context_line":"        self.ceph_mon_path \u003d \u0027/var/lib/ceph/mon/\u0027"},{"line_number":69,"context_line":"        self.ceph_mds_path \u003d \u0027/var/lib/ceph/mds/\u0027"},{"line_number":70,"context_line":"        self.ceph_osd_executable \u003d \u0027/usr/bin/ceph-osd\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_636352de","line":67,"updated":"2015-09-10 08:32:08.000000000","message":"Read these paths from config file instead of hard coding them","commit_id":"dd17741a03bc9f13e828cf4416b55c21345d7f41"},{"author":{"_account_id":12809,"name":"Sripadwallabha Dattatraya Kollur","email":"sripadwallabha.d.kollur@hp.com","username":"sripadwallabha-d-kollur"},"change_message_id":"a8dae481cd8cd01154b9676372cfb479e334da67","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.ceph_osd_path \u003d \u0027/var/lib/ceph/osd/\u0027"},{"line_number":68,"context_line":"        self.ceph_mon_path \u003d \u0027/var/lib/ceph/mon/\u0027"},{"line_number":69,"context_line":"        self.ceph_mds_path \u003d \u0027/var/lib/ceph/mds/\u0027"},{"line_number":70,"context_line":"        self.ceph_osd_executable \u003d \u0027/usr/bin/ceph-osd\u0027"},{"line_number":71,"context_line":"        self.ceph_mon_executable \u003d \u0027/usr/bin/ceph-mon\u0027"},{"line_number":72,"context_line":"        self.ceph_mds_executable \u003d \u0027/usr/bin/ceph-mds\u0027"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_235d5a15","line":70,"updated":"2015-09-10 08:32:08.000000000","message":"Read these paths from config file instead of hard coding them","commit_id":"dd17741a03bc9f13e828cf4416b55c21345d7f41"},{"author":{"_account_id":12809,"name":"Sripadwallabha Dattatraya Kollur","email":"sripadwallabha.d.kollur@hp.com","username":"sripadwallabha-d-kollur"},"change_message_id":"a8dae481cd8cd01154b9676372cfb479e334da67","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # Get the list of daemon identifiers"},{"line_number":95,"context_line":"        osd_list \u003d os.listdir(self.ceph_osd_path) \\"},{"line_number":96,"context_line":"            if os.path.exists(self.ceph_osd_path) else []"},{"line_number":97,"context_line":"        mon_list \u003d os.listdir(self.ceph_mon_path) \\"},{"line_number":98,"context_line":"            if os.path.exists(self.ceph_mon_path) else []"},{"line_number":99,"context_line":"        mds_list \u003d os.listdir(self.ceph_mds_path) \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_00812c8f","line":96,"updated":"2015-09-10 08:32:08.000000000","message":"Use os.path.isdir instead of os.path.exists as it ensure the path is a directory and not just regular file","commit_id":"dd17741a03bc9f13e828cf4416b55c21345d7f41"},{"author":{"_account_id":1633,"name":"unmesh-gurjar","email":"unmesh.gurjar@hp.com","username":"unmesh-gurjar"},"change_message_id":"2fbcf69ea0de364720b59a352936ed2051653ef9","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            # OSD daemon identifier is of format \u003ccluster_name\u003e-\u003cid\u003e"},{"line_number":106,"context_line":"            # Where \u0027id\u0027 is a unique numeric index for that OSD in the cluster"},{"line_number":107,"context_line":"            # E.g., ceph-1, ceph-2 etc."},{"line_number":108,"context_line":"            cluster_name, daemon_id \u003d osd.split(\u0027-\u0027, 1)"},{"line_number":109,"context_line":"            process \u003d dict()"},{"line_number":110,"context_line":"            process[\u0027search_string\u0027] \u003d \\"},{"line_number":111,"context_line":"                \u0027%s -f --cluster %s --id %s\u0027 \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_46209c49","line":108,"updated":"2015-09-10 09:05:29.000000000","message":"The split will return incorrect result if the Ceph cluster name has a hypen in it. Similar change required for MON and MDS as well.","commit_id":"dd17741a03bc9f13e828cf4416b55c21345d7f41"},{"author":{"_account_id":12809,"name":"Sripadwallabha Dattatraya Kollur","email":"sripadwallabha.d.kollur@hp.com","username":"sripadwallabha-d-kollur"},"change_message_id":"cc5f1fd179d2150b0b2687d0ff447f91f91f1afb","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            # E.g., ceph-1, ceph-2 etc."},{"line_number":108,"context_line":"            cluster_name, daemon_id \u003d osd.split(\u0027-\u0027, 1)"},{"line_number":109,"context_line":"            process \u003d dict()"},{"line_number":110,"context_line":"            process[\u0027search_string\u0027] \u003d \\"},{"line_number":111,"context_line":"                \u0027%s -f --cluster %s --id %s\u0027 \\"},{"line_number":112,"context_line":"                % (self.ceph_osd_executable, cluster_name, daemon_id)"},{"line_number":113,"context_line":"            process[\u0027name\u0027] \u003d \u0027%s-osd.%s\u0027 % (cluster_name, daemon_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_d74c5878","line":110,"updated":"2015-09-10 10:12:33.000000000","message":"The search string is created by concatenating exact command used for creating ceph daemon process here. This looks fragile as if user runs \u0027/usr/bin/ceph-osd -f  --id \u003cID\u003e --cluster \u003cCLUSTER_NAME\u003e\u0027 command to create daemon then it won\u0027t match the search string and that process wont be added to process.yaml file.\n\nWe need to think of better way to deal with this.\n\nOne possible solution outside this patch I can think of is to enhance Monasca process.py to return command string as value meta so that the consumer can distinguish between different processes by parsing the value meta. Tim any thoughts?","commit_id":"e5c6f0c0aeea20494da6523ba529375465ab0276"},{"author":{"_account_id":12809,"name":"Sripadwallabha Dattatraya Kollur","email":"sripadwallabha.d.kollur@hp.com","username":"sripadwallabha-d-kollur"},"change_message_id":"09f46609c1b283f359c4add52cea582109931dfe","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            # E.g., ceph-1, ceph-2 etc."},{"line_number":108,"context_line":"            cluster_name, daemon_id \u003d osd.split(\u0027-\u0027, 1)"},{"line_number":109,"context_line":"            process \u003d dict()"},{"line_number":110,"context_line":"            process[\u0027search_string\u0027] \u003d \\"},{"line_number":111,"context_line":"                \u0027%s -f --cluster %s --id %s\u0027 \\"},{"line_number":112,"context_line":"                % (self.ceph_osd_executable, cluster_name, daemon_id)"},{"line_number":113,"context_line":"            process[\u0027name\u0027] \u003d \u0027%s-osd.%s\u0027 % (cluster_name, daemon_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_92402e09","line":110,"in_reply_to":"da20952f_d74c5878","updated":"2015-09-10 10:38:11.000000000","message":"I have created a new blue print to enhance Monaca agent\u0027s process plug-in at https://blueprints.launchpad.net/monasca/+spec/enhance-monasca-agent-process-plug-in","commit_id":"e5c6f0c0aeea20494da6523ba529375465ab0276"},{"author":{"_account_id":12809,"name":"Sripadwallabha Dattatraya Kollur","email":"sripadwallabha.d.kollur@hp.com","username":"sripadwallabha-d-kollur"},"change_message_id":"cc5f1fd179d2150b0b2687d0ff447f91f91f1afb","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            # E.g., ceph-monitor1.dom, ceph-monitor2.dom etc."},{"line_number":122,"context_line":"            cluster_name, daemon_id \u003d mon.split(\u0027-\u0027, 1)"},{"line_number":123,"context_line":"            process \u003d dict()"},{"line_number":124,"context_line":"            process[\u0027search_string\u0027] \u003d \\"},{"line_number":125,"context_line":"                \u0027%s -f --cluster %s --id %s\u0027 \\"},{"line_number":126,"context_line":"                % (self.ceph_mon_executable, cluster_name, daemon_id)"},{"line_number":127,"context_line":"            process[\u0027name\u0027] \u003d \u0027%s-mon.%s\u0027 % (cluster_name, daemon_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_b759a437","line":124,"updated":"2015-09-10 10:12:33.000000000","message":"Same as my above comment","commit_id":"e5c6f0c0aeea20494da6523ba529375465ab0276"},{"author":{"_account_id":12809,"name":"Sripadwallabha Dattatraya Kollur","email":"sripadwallabha.d.kollur@hp.com","username":"sripadwallabha-d-kollur"},"change_message_id":"cc5f1fd179d2150b0b2687d0ff447f91f91f1afb","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            # E.g., ceph-mds1.dom, ceph-mds2.dom etc."},{"line_number":136,"context_line":"            cluster_name, daemon_id \u003d mds.split(\u0027-\u0027, 1)"},{"line_number":137,"context_line":"            process \u003d dict()"},{"line_number":138,"context_line":"            process[\u0027search_string\u0027] \u003d \\"},{"line_number":139,"context_line":"                \u0027%s -f --cluster %s --id %s\u0027 \\"},{"line_number":140,"context_line":"                % (self.ceph_mds_executable, cluster_name, daemon_id)"},{"line_number":141,"context_line":"            process[\u0027name\u0027] \u003d \u0027%s-mds.%s\u0027 % (cluster_name, daemon_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_9756e004","line":138,"updated":"2015-09-10 10:12:33.000000000","message":"Same as my above comment","commit_id":"e5c6f0c0aeea20494da6523ba529375465ab0276"},{"author":{"_account_id":11094,"name":"Tim Kuhlman","email":"timothy.kuhlman@canonical.com","username":"kuhlmant"},"change_message_id":"7fa35e0fd57b058d0a716196429fd3be2375e85f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    config \u003d agent_config.Plugins()"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # Fallback to standard process_name strategy if not defined"},{"line_number":26,"context_line":"    process_name \u003d process_name if process_name else search_strings[0]"},{"line_number":27,"context_line":"    parameters \u003d {\u0027name\u0027: process_name,"},{"line_number":28,"context_line":"                  \u0027detailed\u0027: detailed,"},{"line_number":29,"context_line":"                  \u0027exact_match\u0027: exact_match,"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_c531c7a3","line":26,"updated":"2015-09-11 14:30:28.000000000","message":"Given that this is nearly identical to utils.watch_process and that it falls back to the default behavior when process_name is not specified. I would rather see you update the function in utils then recreate it.","commit_id":"5efbfa5f2a54503ded429c0cbe3b8a0e4447fdd9"}]}
