)]}'
{"conf.d/ovs.yaml.example":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"1f607a65813425de412ed5abee98deec7efd7f53","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    # If set, will submit the health related metrics from ovs-vsctl command"},{"line_number":30,"context_line":"    # output for the given network interface."},{"line_number":31,"context_line":"    use_health_metrics \u003d true"},{"line_number":32,"context_line":"    # If specified, the collector will skip collecting any metrics for the"},{"line_number":33,"context_line":"    # configured amount of collection runs"},{"line_number":34,"context_line":"    collection_skips \u003d 0"},{"line_number":35,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"bacf61ea_99f5eecc","line":32,"range":{"start_line":32,"start_character":44,"end_line":32,"end_character":66},"updated":"2016-07-29 15:56:14.000000000","message":"calling the plugin","commit_id":"8cfc61bfd9a54ad1581bb17c913ddceef148e35b"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"ef2c6b0bb1471ed1ac5ca700adac231e734b51c4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# (C) Copyright 2016 Hewlett Packard Enterprise Development Company LP"},{"line_number":2,"context_line":"init_config:"},{"line_number":3,"context_line":"    # These are Neutron credentials, [keystone_authtoken] in /etc/neutron/neutron.conf"},{"line_number":4,"context_line":"    admin_password: password"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"bacf61ea_e3ad1432","line":1,"range":{"start_line":1,"start_character":60,"end_line":1,"end_character":67},"updated":"2016-08-05 14:17:43.000000000","message":"take out here","commit_id":"0351c2f77fba93f012a5eb328c7ff74a55fac06c"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d9d2e7b1afbe1da97150e810c1374970a6e11b27","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    # If specified, the collector will skip calling the plugin until the specified"},{"line_number":33,"context_line":"    # number of seconds has passed."},{"line_number":34,"context_line":"    # NOTE: Collection is dictated by the default collection frequency therefor"},{"line_number":35,"context_line":"    # collect_period should be divisible by the default collection frequency otherwise"},{"line_number":36,"context_line":"    # the plugin will be called on the collection run after the specified time"},{"line_number":37,"context_line":"    collect_period \u003d 300"},{"line_number":38,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":19,"id":"bacf61ea_38658744","line":35,"range":{"start_line":35,"start_character":31,"end_line":35,"end_character":40},"updated":"2016-08-05 19:57:39.000000000","message":"Should probably say evenly divisible here like you do in Plugins.md","commit_id":"63dd8b1cd2bf2a03130feb3eb81680d29cdc959b"}],"docs/Plugins.md":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"1f607a65813425de412ed5abee98deec7efd7f53","unresolved":false,"context_lines":[{"line_number":228,"context_line":"```"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"#### init_config"},{"line_number":231,"context_line":"In the init_config section you can specify an arbitrary number of global name:value pairs that will be available on every run of the check in self.init_config. Here you can specify the number of collection runs the plugin should skip. If collection_skips is specified, the collector will skip that plugin the configured amount of collection runs."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"#### instances"},{"line_number":234,"context_line":"The instances section is a list of instances that this check will be run against. Your actual check() method is run once per instance. The name:value pairs for each instance specify details about the instance that are necessary for the check."}],"source_content_type":"text/x-markdown","patch_set":2,"id":"bacf61ea_39a202af","line":231,"range":{"start_line":231,"start_character":164,"end_line":231,"end_character":346},"updated":"2016-07-29 15:56:14.000000000","message":"Needs to be clearer that this happens every time. The wording could be read that it only does this the first time","commit_id":"8cfc61bfd9a54ad1581bb17c913ddceef148e35b"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"1f607a65813425de412ed5abee98deec7efd7f53","unresolved":false,"context_lines":[{"line_number":1660,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":1661,"context_line":""},{"line_number":1662,"context_line":"# License"},{"line_number":1663,"context_line":"(C) Copyright 2015-2016 Hewlett Packard Enterprise Development Company LP"}],"source_content_type":"text/x-markdown","patch_set":2,"id":"bacf61ea_99c68e47","line":1663,"range":{"start_line":1663,"start_character":63,"end_line":1663,"end_character":70},"updated":"2016-07-29 15:56:14.000000000","message":"Copyright","commit_id":"8cfc61bfd9a54ad1581bb17c913ddceef148e35b"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"3bbe126107caf892467ec9516c1a3c7782639c98","unresolved":false,"context_lines":[{"line_number":228,"context_line":"```"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"#### init_config"},{"line_number":231,"context_line":"In the init_config section you can specify an arbitrary number of global name:value pairs that will be available on every run of the check in self.init_config. Here you can specify the number of collection runs the plugin should skip each time. If collection_skips is specified, the collector will always get metrics for the configured plugin on the collection run after the stated number of skips."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"#### instances"},{"line_number":234,"context_line":"The instances section is a list of instances that this check will be run against. Your actual check() method is run once per instance. The name:value pairs for each instance specify details about the instance that are necessary for the check."}],"source_content_type":"text/x-markdown","patch_set":3,"id":"bacf61ea_07e6b043","line":231,"range":{"start_line":231,"start_character":298,"end_line":231,"end_character":335},"updated":"2016-07-29 16:50:15.000000000","message":"This doesn\u0027t make it clear that the plugin is not called. It sounds like it is just not getting the metrics. Also, an example would be really helpful here. Something like if collection_skips is 3 and the collection frequency is 30 seconds, the plugin will be called every 4th time or approx every 2 minutes\n\nAnd make it a separate line so you can actually read it in the review","commit_id":"27e36f9f171fcc03d4460b15c08faa0ea813a79e"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"491faa850b8aa4d5d84cd6b7fba866c035088dbc","unresolved":false,"context_lines":[{"line_number":230,"context_line":"#### init_config"},{"line_number":231,"context_line":"In the init_config section you can specify an arbitrary number of global name:value pairs that will be available on every run of the check in self.init_config."},{"line_number":232,"context_line":"Here you can specify a collection frequency specific to the plugin by setting collection_period. If collection_period is set, the collector always calls the plugin after the specified number of seconds has passed."},{"line_number":233,"context_line":"NOTE: Collection is dictated by the default collection frequency therefor collection_period should be divisible by the default collection frequency. If not, collection_period will be rounded up to the nearest time period divisible by the default collection frequency."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"#### instances"},{"line_number":236,"context_line":"The instances section is a list of instances that this check will be run against. Your actual check() method is run once per instance. The name:value pairs for each instance specify details about the instance that are necessary for the check."}],"source_content_type":"text/x-markdown","patch_set":8,"id":"bacf61ea_595d8beb","line":233,"range":{"start_line":233,"start_character":6,"end_line":233,"end_character":16},"updated":"2016-08-03 03:03:31.000000000","message":"The global frequency at which all plugins are run is specified by the variable \"check_frequency\" defined in  https://github.com/openstack/monasca-agent/blob/master/docs/Agent.md. Under normal and default conditions when a plugin runs all the metrics are collected and sent. For example, if check_frequency\u003d30, by default the plugin will be run every 30 seconds and the metrics will be sent.\n\nThe variable \"collection_period\" allows each plugin\u0027s collection period to be further adjusted to a value greater than the frequency at which the plugin is run specified by \"check_frequency\", such that when the plugin runs, collection might be skipped. For example, if check_frequency\u003d30 and collection_period\u003d600, the plugin will run every 30 seconds. However, metrics will only be collected and sent every 600 seconds (10 minutes). This allows fewer metrics to be sent.\n\nThe \"collection_period\" should be divisible by the \"check_frequency\". For example, if you want the plugin to collect and send metrics every 600 seconds (10 minutes), and the global check_frequency\u003d30, then collection_period should be set to 600.\n\nIf the \"collection_period\" is not divisible by the \"check_frequency\" then...","commit_id":"d1d0eedf0de081f5e08810a9ba98868388f16be9"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"e9ea014eb5b2e186e7452d718dd798bb0d55e41c","unresolved":false,"context_lines":[{"line_number":233,"context_line":"The global frequency at which all plugins are run is specified by the variable \"check_frequency\" defined in https://github.com/openstack/monasca-agent/blob/master/docs/Agent.md."},{"line_number":234,"context_line":"Under normal and default conditions when a plugin runs all the metrics are collected and sent. For example, if check_frequency\u003d30, by default the plugin will be run every 30 seconds and the metrics will be sent."},{"line_number":235,"context_line":"The variable \"collection_period\" allows each plugins collection period to be further adjusted to a value greater than the frequency at which the plugin is run specified by \"check_frequency\", such that when the collection run starts, the plugin might not be called. For example, if check_frequency\u003d30 and collection_period\u003d600, the plugin will be called and metrics sent every 600 seconds. This allows fewer metrics to be sent."},{"line_number":236,"context_line":"The \"collection_period\" should be divisible by the \"check_frequency\". For example, if you want the plugin to collect and send metrics every 600 seconds (10 minutes), and the global check_frequency\u003d30, then the collection_period should be set to 600."},{"line_number":237,"context_line":"If the \"collection_period\" is not divisible by the \"check_frequency\" then the \"collection_period\" will get rounded up to the nearest multiple of the \"check_frequency\". For example, if the collection_period\u003d45 and the global check_frequency\u003d30, then the \"collection_period\" will get rounded up to 60 and the plugin will get called and send metrics every 60 seconds."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"#### instances"}],"source_content_type":"text/x-markdown","patch_set":13,"id":"bacf61ea_6e1300b9","line":236,"range":{"start_line":236,"start_character":34,"end_line":236,"end_character":46},"updated":"2016-08-04 16:18:53.000000000","message":"a multiple of \n\nIt is always divisible, just not into an integer :)","commit_id":"1a53f821b213f5fb17329d85f8705c5a01b4cf63"}],"monasca_agent/collector/checks/collector.py":[{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"64c2703efd32dd2b762158dacbd2bf5cc4ae12ef","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# (C) Copyright 2015,2016 Hewlett Packard Enterprise Development Company LP"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Core modules"},{"line_number":4,"context_line":"import logging"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_9e90a297","line":1,"range":{"start_line":1,"start_character":65,"end_line":1,"end_character":72},"updated":"2016-07-27 17:45:48.000000000","message":"Needs to change the copyright here","commit_id":"67be3497bda6c92cad140d341b226672d116298a"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"3ea67373bb1e921aee62c4d24c289324ea693407","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            if check.name in self.collection_results:"},{"line_number":204,"context_line":"                log.warning(\u0027Plugin %s is already running, skipping\u0027 % check.name)"},{"line_number":205,"context_line":"                continue"},{"line_number":206,"context_line":"            if \u0027_collection_period\u0027 in check.init_config:"},{"line_number":207,"context_line":"                if entry[\u0027last_start_time\u0027] + check.init_config[\u0027_collection_period\u0027] \u003e start_time:"},{"line_number":208,"context_line":"                    log.debug(\u0027The collection period for %s has not passed. Skipping.\u0027 % check.name)"},{"line_number":209,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_d73c23e3","line":206,"range":{"start_line":206,"start_character":16,"end_line":206,"end_character":34},"updated":"2016-07-26 17:50:09.000000000","message":"I don\u0027t believe the name in the config file should have an underscore, but probably should validate the other conventions that are used there to make sure.\n\nAlso, it looks like you didn\u0027t update the documents.\n\nSince there is a global called \"check_freq\", should we just call the local variable by the same name, with the local setting over-riding the global one.\n\nAlso, rather than checking this for every loop of sortec_checks, I was just wondering of _collection_period should be added to the same object as check, last_collect_time, and last_start_time.","commit_id":"67be3497bda6c92cad140d341b226672d116298a"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"3ea67373bb1e921aee62c4d24c289324ea693407","unresolved":false,"context_lines":[{"line_number":206,"context_line":"            if \u0027_collection_period\u0027 in check.init_config:"},{"line_number":207,"context_line":"                if entry[\u0027last_start_time\u0027] + check.init_config[\u0027_collection_period\u0027] \u003e start_time:"},{"line_number":208,"context_line":"                    log.debug(\u0027The collection period for %s has not passed. Skipping.\u0027 % check.name)"},{"line_number":209,"context_line":"                    continue"},{"line_number":210,"context_line":"            log.debug(\u0027Starting plugin %s, old collect time %d\u0027 %"},{"line_number":211,"context_line":"                      (check.name, last_collect_time))"},{"line_number":212,"context_line":"            async_result \u003d self.pool.apply_async(self.run_single_check, [check])"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_e8f4e2f1","line":209,"updated":"2016-07-26 17:50:09.000000000","message":"So, my concern with this is that let\u0027s say you have a check_freq \u003d 30 seconds, and a collection_period \u003d 45. Then there is going to be a 15 second delay between when the check was supposed to run, which is 45 seconds, and the time at which it actually runs, which will be 2*30, or 60 seconds. Is that delay acceptable?","commit_id":"67be3497bda6c92cad140d341b226672d116298a"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"cf02decff35b987945c38c7f0dab60e324553b91","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.collection_times \u003d {}"},{"line_number":50,"context_line":"        self.collection_results \u003d {}"},{"line_number":51,"context_line":"        for check in initialized_checks_d:"},{"line_number":52,"context_line":"            collect_period \u003d 0"},{"line_number":53,"context_line":"            if \u0027collect_period\u0027 in check.init_config:"},{"line_number":54,"context_line":"                collect_period \u003d check.init_config[\u0027collect_period\u0027]"},{"line_number":55,"context_line":"            self.collection_times[check.name] \u003d {\u0027check\u0027: check,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_46085cda","line":52,"range":{"start_line":52,"start_character":12,"end_line":52,"end_character":26},"updated":"2016-08-01 16:28:27.000000000","message":"Every instance of collect_period should be self.collect_period","commit_id":"05be2fe999f4a84db56b8c9ec8302cb6be7ea3fe"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"cf02decff35b987945c38c7f0dab60e324553b91","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        # least amount of time are run first so they are more likely to"},{"line_number":197,"context_line":"        # complete within the check_frequency"},{"line_number":198,"context_line":"        sorted_checks \u003d sorted(self.collection_times.itervalues(),"},{"line_number":199,"context_line":"                               key\u003dlambda x: x[\u0027last_collect_time\u0027])"},{"line_number":200,"context_line":"        for entry in sorted_checks:"},{"line_number":201,"context_line":"            check \u003d entry[\u0027check\u0027]"},{"line_number":202,"context_line":"            last_collect_time \u003d entry[\u0027last_collect_time\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_a61e7809","line":199,"range":{"start_line":199,"start_character":48,"end_line":199,"end_character":65},"updated":"2016-08-01 16:28:27.000000000","message":"last_collect_time is actually the amount of time the last collection took, not the last time it was collected. You\u0027ll have to add a new field. Make sure it is start of the collection time.","commit_id":"05be2fe999f4a84db56b8c9ec8302cb6be7ea3fe"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"491faa850b8aa4d5d84cd6b7fba866c035088dbc","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.collection_times \u003d {}"},{"line_number":50,"context_line":"        self.collection_results \u003d {}"},{"line_number":51,"context_line":"        for check in initialized_checks_d:"},{"line_number":52,"context_line":"            self.collect_skips \u003d 0"},{"line_number":53,"context_line":"            if \u0027collection_period\u0027 in check.init_config:"},{"line_number":54,"context_line":"                self.collect_skips \u003d (check.init_config[\u0027collection_period\u0027] - 1) / agent_config[\u0027check_freq\u0027]"},{"line_number":55,"context_line":"            self.collection_times[check.name] \u003d {\u0027check\u0027: check,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bacf61ea_d9f85bc7","line":52,"updated":"2016-08-03 03:03:31.000000000","message":"Initially, you have the variable \"collection_period\" and \"check_freq\" in the config file which are in units of seconds. You transform from secs to a unitless value, namely the count of the number of times the plugin is invoked for collection to occur.\n\nA variable name like adjusted_collection_periods, or derived_collection_period, or something even better, would probably be clearer.","commit_id":"d1d0eedf0de081f5e08810a9ba98868388f16be9"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"491faa850b8aa4d5d84cd6b7fba866c035088dbc","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            self.collection_times[check.name] \u003d {\u0027check\u0027: check,"},{"line_number":56,"context_line":"                                                 \u0027last_collect_time\u0027: 99999999,"},{"line_number":57,"context_line":"                                                 \u0027collect_skips\u0027: self.collect_skips,"},{"line_number":58,"context_line":"                                                 \u0027collect_skipped\u0027: 0}"},{"line_number":59,"context_line":"        self.pool_full_max_retries \u003d int(self.agent_config.get(\u0027pool_full_max_retries\u0027,"},{"line_number":60,"context_line":"                                                               4))"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bacf61ea_eb190624","line":58,"range":{"start_line":58,"start_character":50,"end_line":58,"end_character":65},"updated":"2016-08-03 03:03:31.000000000","message":"i\u0027m wondering if you need to know the collect_skipped variable at all. You could just keep a counter, such as count_runs, or count_collector_runs, and then do \n\nif count_runs%adjusted_collection_period \u003d\u003d 0:\n    do it\n\ncount_runs +\u003d 1","commit_id":"d1d0eedf0de081f5e08810a9ba98868388f16be9"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f4cb422c2192474de430356f26ee1bea81179cf4","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        sorted_checks \u003d sorted(self.collection_times.itervalues(),"},{"line_number":200,"context_line":"                               key\u003dlambda x: x[\u0027last_collect_time\u0027])"},{"line_number":201,"context_line":"        for entry in sorted_checks:"},{"line_number":202,"context_line":"            self.collect_runs +\u003d 1"},{"line_number":203,"context_line":"            check \u003d entry[\u0027check\u0027]"},{"line_number":204,"context_line":"            last_collect_time \u003d entry[\u0027last_collect_time\u0027]"},{"line_number":205,"context_line":"            if not self.continue_running:"}],"source_content_type":"text/x-python","patch_set":12,"id":"bacf61ea_e9542e55","line":202,"range":{"start_line":202,"start_character":9,"end_line":202,"end_character":34},"updated":"2016-08-04 05:06:00.000000000","message":"You do not want this inside the loop. This gets incremented once per every plugin when it should be incremented once per collection of all plugins.","commit_id":"d612f1b96c97e9509c6814db5f8d8a95d01abda0"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"e9ea014eb5b2e186e7452d718dd798bb0d55e41c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        self.collect_runs \u003d 0"},{"line_number":52,"context_line":"        for check in initialized_checks_d:"},{"line_number":53,"context_line":"            self.adjusted_collection_period \u003d 1"},{"line_number":54,"context_line":"            if \u0027collection_period\u0027 in check.init_config:"},{"line_number":55,"context_line":"                self.adjusted_collection_period \u003d ((check.init_config[\u0027collection_period\u0027] - 1) / agent_config[\u0027check_freq\u0027]) + 1"},{"line_number":56,"context_line":"            self.collection_times[check.name] \u003d {\u0027check\u0027: check,"},{"line_number":57,"context_line":"                                                 \u0027last_collect_time\u0027: 99999999,"}],"source_content_type":"text/x-python","patch_set":13,"id":"bacf61ea_4ebc3cbb","line":54,"range":{"start_line":54,"start_character":12,"end_line":54,"end_character":56},"updated":"2016-08-04 16:18:53.000000000","message":"You should probably do some simple validation that this is \u003e\u003d 0 and ignore with a warning message if it is invalid","commit_id":"1a53f821b213f5fb17329d85f8705c5a01b4cf63"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"e9ea014eb5b2e186e7452d718dd798bb0d55e41c","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            if check.name in self.collection_results:"},{"line_number":208,"context_line":"                log.warning(\u0027Plugin %s is already running, skipping\u0027 % check.name)"},{"line_number":209,"context_line":"                continue"},{"line_number":210,"context_line":"            if self.collect_runs % entry[\u0027adjusted_collection_period\u0027] is not 0:"},{"line_number":211,"context_line":"                log.debug(\u0027%s has not skipped enough collection periods yet. Skipping.\u0027 % check.name)"},{"line_number":212,"context_line":"                continue"},{"line_number":213,"context_line":"            log.debug(\u0027Starting plugin %s, old collect time %d\u0027 %"}],"source_content_type":"text/x-python","patch_set":13,"id":"bacf61ea_aee4d8df","line":210,"range":{"start_line":210,"start_character":12,"end_line":210,"end_character":80},"updated":"2016-08-04 16:18:53.000000000","message":"If entry[\u0027adjusted_collection_period\u0027] is 2, what will happen on the first collection after the agent restarts?","commit_id":"1a53f821b213f5fb17329d85f8705c5a01b4cf63"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"6097e44b5b216fd0c8023ef3ebdc5417f4664c2f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            self.adjusted_collection_period \u003d 1"},{"line_number":54,"context_line":"            if \u0027collect_period\u0027 in check.init_config:"},{"line_number":55,"context_line":"                if check.init_config[\u0027collect_period\u0027] \u003c 0:"},{"line_number":56,"context_line":"                    log.warn(\u0027Invalid paramater. collection_period will be reset to default\u0027)"},{"line_number":57,"context_line":"                else:"},{"line_number":58,"context_line":"                    self.adjusted_collection_period \u003d ((check.init_config[\u0027collect_period\u0027] - 1) / agent_config[\u0027check_freq\u0027]) + 1"},{"line_number":59,"context_line":"            self.collection_times[check.name] \u003d {\u0027check\u0027: check,"}],"source_content_type":"text/x-python","patch_set":16,"id":"bacf61ea_04a5fca0","line":56,"range":{"start_line":56,"start_character":49,"end_line":56,"end_character":66},"updated":"2016-08-04 19:19:12.000000000","message":"This should be collect_period","commit_id":"cfd93914b80a3e0271dd99381510416ae9e66d83"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"ef2c6b0bb1471ed1ac5ca700adac231e734b51c4","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.collection_results \u003d {}"},{"line_number":51,"context_line":"        self.collect_runs \u003d 0"},{"line_number":52,"context_line":"        for check in initialized_checks_d:"},{"line_number":53,"context_line":"            self.derived_collect_periods \u003d 1"},{"line_number":54,"context_line":"            if \u0027collect_period\u0027 in check.init_config:"},{"line_number":55,"context_line":"                if check.init_config[\u0027collect_period\u0027] \u003c 0:"},{"line_number":56,"context_line":"                    log.warn(\u0027Invalid paramater. collect_period will be reset to default\u0027)"}],"source_content_type":"text/x-python","patch_set":18,"id":"bacf61ea_8676e6a1","line":53,"range":{"start_line":53,"start_character":17,"end_line":53,"end_character":40},"updated":"2016-08-05 14:17:43.000000000","message":"this is periods and the one below is period. should they have different names?","commit_id":"0351c2f77fba93f012a5eb328c7ff74a55fac06c"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"e0dc64e1ed7923348b700e20c7cee44b41eb8e4c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            self.derived_collect_periods \u003d 1"},{"line_number":54,"context_line":"            if \u0027collect_period\u0027 in check.init_config:"},{"line_number":55,"context_line":"                if check.init_config[\u0027collect_period\u0027] \u003c 0:"},{"line_number":56,"context_line":"                    log.warn(\u0027Invalid paramater. collect_period will be reset to default\u0027)"},{"line_number":57,"context_line":"                else:"},{"line_number":58,"context_line":"                    self.derived_collect_period \u003d ((check.init_config[\u0027collect_period\u0027] - 1) / agent_config[\u0027check_freq\u0027]) + 1"},{"line_number":59,"context_line":"            self.collection_times[check.name] \u003d {\u0027check\u0027: check,"}],"source_content_type":"text/x-python","patch_set":18,"id":"bacf61ea_a6de8a3b","line":56,"range":{"start_line":56,"start_character":38,"end_line":56,"end_character":47},"updated":"2016-08-05 14:22:37.000000000","message":"spelling, should be parameter. You also should see if you can tell the user which plugin it is","commit_id":"0351c2f77fba93f012a5eb328c7ff74a55fac06c"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"ef2c6b0bb1471ed1ac5ca700adac231e734b51c4","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            self.derived_collect_periods \u003d 1"},{"line_number":54,"context_line":"            if \u0027collect_period\u0027 in check.init_config:"},{"line_number":55,"context_line":"                if check.init_config[\u0027collect_period\u0027] \u003c 0:"},{"line_number":56,"context_line":"                    log.warn(\u0027Invalid paramater. collect_period will be reset to default\u0027)"},{"line_number":57,"context_line":"                else:"},{"line_number":58,"context_line":"                    self.derived_collect_period \u003d ((check.init_config[\u0027collect_period\u0027] - 1) / agent_config[\u0027check_freq\u0027]) + 1"},{"line_number":59,"context_line":"            self.collection_times[check.name] \u003d {\u0027check\u0027: check,"}],"source_content_type":"text/x-python","patch_set":18,"id":"bacf61ea_e35b5452","line":56,"range":{"start_line":56,"start_character":38,"end_line":56,"end_character":47},"updated":"2016-08-05 14:17:43.000000000","message":"what makes this invalid? If i saw this i would not know","commit_id":"0351c2f77fba93f012a5eb328c7ff74a55fac06c"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"d9d2e7b1afbe1da97150e810c1374970a6e11b27","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            self.derived_collect_periods \u003d 1"},{"line_number":54,"context_line":"            if \u0027collect_period\u0027 in check.init_config:"},{"line_number":55,"context_line":"                if check.init_config[\u0027collect_period\u0027] \u003c 0:"},{"line_number":56,"context_line":"                    log.warn(\u0027Invalid negative time parameter. collect_period for %s will be reset to default\u0027 % check.name)"},{"line_number":57,"context_line":"                else:"},{"line_number":58,"context_line":"                    self.derived_collect_periods \u003d ((check.init_config[\u0027collect_period\u0027] - 1) / agent_config[\u0027check_freq\u0027]) + 1"},{"line_number":59,"context_line":"            self.collection_times[check.name] \u003d {\u0027check\u0027: check,"}],"source_content_type":"text/x-python","patch_set":19,"id":"bacf61ea_b86a1718","line":56,"range":{"start_line":56,"start_character":28,"end_line":56,"end_character":30},"updated":"2016-08-05 19:57:39.000000000","message":"Can you make the lines you added fit within the length from the guidelines. Some of these are really long","commit_id":"63dd8b1cd2bf2a03130feb3eb81680d29cdc959b"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"c51171e1e06f2e044ba8854250084bddb735bc2d","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            if check.name in self.collection_results:"},{"line_number":215,"context_line":"                log.warning(\u0027Plugin %s is already running, skipping\u0027 % check.name)"},{"line_number":216,"context_line":"                continue"},{"line_number":217,"context_line":"            if self.collect_runs % entry[\u0027derived_collect_periods\u0027] is not 0:"},{"line_number":218,"context_line":"                log.debug(\u0027%s has not skipped enough collection periods yet. \u0027"},{"line_number":219,"context_line":"                          \u0027Skipping.\u0027 % check.name)"},{"line_number":220,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":24,"id":"bacf61ea_85d87cf0","line":217,"range":{"start_line":217,"start_character":42,"end_line":217,"end_character":65},"updated":"2016-08-06 13:41:05.000000000","message":"Shouldn\u0027t \"is not 0\" be \"!\u003d 0\".","commit_id":"9fb39a4470b1d84e61d60181ffd6b1079a3300c8"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"5e5544b5ceb574b3aa35d3a6e538c49091fc2ca5","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                else:"},{"line_number":60,"context_line":"                    # This equation calculates on which nth run the plugin"},{"line_number":61,"context_line":"                    # gets called. It converts the collect_period from seconds"},{"line_number":62,"context_line":"                    # to an integer which holds the collection round the "},{"line_number":63,"context_line":"                    # plugin should get called on."},{"line_number":64,"context_line":"                    derived_collect_periods \u003d ("},{"line_number":65,"context_line":"                        ((check.init_config[\u0027collect_period\u0027] - 1)"}],"source_content_type":"text/x-python","patch_set":26,"id":"9ad45d7e_e8050b7a","line":62,"range":{"start_line":62,"start_character":72,"end_line":62,"end_character":73},"updated":"2016-08-10 22:08:33.000000000","message":"extra space here?","commit_id":"50eb2d3ef29c0a065e914cac2b1d4791c7bfab79"}]}
