)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"5ad65d03a7c6454c24d0ec84dd572aecb12b37f8","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This change add a notification handler of sample.create event, which is"},{"line_number":10,"context_line":"emitted when posting samples via /v2/meters API. The sample\u0027s info is"},{"line_number":11,"context_line":"include in the payload of notification."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partially implements: blueprint api-no-pipeline"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I3941b851249c0f70f864bae32da154819b3e5dd7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa32b979_0a037143","line":12,"updated":"2015-06-23 08:25:03.000000000","message":"No feature specifications match your criteria.  :(\n\nPlease check name of bp","commit_id":"2c9ea1aa531d4026a2a536ac3ee1367eaf6d1c95"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"edeb1ab7ba7fce77b6986ade2f3b912d43c11027","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This change add a notification handler of sample.create event, which is"},{"line_number":10,"context_line":"emitted when posting samples via /v2/meters API. The sample\u0027s info is"},{"line_number":11,"context_line":"include in the payload of notification."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partially implements: blueprint api-no-pipeline"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I3941b851249c0f70f864bae32da154819b3e5dd7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa32b979_18d74bc0","line":12,"in_reply_to":"fa32b979_0a037143","updated":"2015-06-23 09:00:11.000000000","message":"hmmm... the spec for this feature is submitted by Chris firstly, it seems that he didn\u0027t registered it in lp, I will add :)","commit_id":"2c9ea1aa531d4026a2a536ac3ee1367eaf6d1c95"}],"ceilometer/sample.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"910cc82b7665bb931b19eadf073d9d80feca2017","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self.timestamp \u003d timestamp"},{"line_number":71,"context_line":"        self.resource_metadata \u003d resource_metadata"},{"line_number":72,"context_line":"        self.source \u003d source or cfg.CONF.sample_source"},{"line_number":73,"context_line":"        self.id \u003d id or str(uuid.uuid1())"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def as_dict(self):"},{"line_number":76,"context_line":"        return copy.copy(self.__dict__)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_88cc8d62","line":73,"updated":"2015-06-22 15:11:51.000000000","message":"i don\u0027t quite understand why this is needed... the api post already creates a random id.  is this to avoid having to generate another uuid?","commit_id":"13f6303d9059b00c293dd75e47c17e733063c7c0"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"47d1da3a0cc56dcf661bfc459525c614369d50f0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self.timestamp \u003d timestamp"},{"line_number":71,"context_line":"        self.resource_metadata \u003d resource_metadata"},{"line_number":72,"context_line":"        self.source \u003d source or cfg.CONF.sample_source"},{"line_number":73,"context_line":"        self.id \u003d id or str(uuid.uuid1())"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def as_dict(self):"},{"line_number":76,"context_line":"        return copy.copy(self.__dict__)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_b33a0b97","line":73,"in_reply_to":"fa32b979_88cc8d62","updated":"2015-06-23 04:58:47.000000000","message":"Yeah, In api side implementation, a Sample object is created, and a uuid is generated. the created sample info is returned to user. in ceilometer/telemetry/notifications.py a Sample object will be constructed again, if re-generate a uuid here, the samples\u0027s uuid recorded in db will be difference with the API returns\u0027.","commit_id":"13f6303d9059b00c293dd75e47c17e733063c7c0"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"33d3f37dc38ec98d7c6576245ced8850fcff1dfc","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def __init__(self, name, type, unit, volume, user_id, project_id,"},{"line_number":61,"context_line":"                 resource_id, timestamp, resource_metadata, source\u003dNone,"},{"line_number":62,"context_line":"                 id\u003dNone):"},{"line_number":63,"context_line":"        self.name \u003d name"},{"line_number":64,"context_line":"        self.type \u003d type"},{"line_number":65,"context_line":"        self.unit \u003d unit"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_091826d2","line":62,"updated":"2015-06-24 09:02:21.000000000","message":"who needs this? I don\u0027t see the dependent api patch use this parameter","commit_id":"2c9ea1aa531d4026a2a536ac3ee1367eaf6d1c95"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"a630a312beaeca35bfd92478de84188834e07594","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def __init__(self, name, type, unit, volume, user_id, project_id,"},{"line_number":61,"context_line":"                 resource_id, timestamp, resource_metadata, source\u003dNone,"},{"line_number":62,"context_line":"                 id\u003dNone):"},{"line_number":63,"context_line":"        self.name \u003d name"},{"line_number":64,"context_line":"        self.type \u003d type"},{"line_number":65,"context_line":"        self.unit \u003d unit"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_2955ea1c","line":62,"in_reply_to":"fa32b979_091826d2","updated":"2015-06-24 09:10:13.000000000","message":"In ps6, I have replied gordon:)\n\nYeah, In api side implementation, a Sample object is created, and a uuid is generated. the created sample info is returned to user. in ceilometer/telemetry/notifications.py a Sample object will be constructed again, if re-generate a uuid here, the samples\u0027s uuid recorded in db will be difference with the API returns\u0027.","commit_id":"2c9ea1aa531d4026a2a536ac3ee1367eaf6d1c95"}],"ceilometer/telemetry/notifications.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"910cc82b7665bb931b19eadf073d9d80feca2017","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                for topic in conf.notification_topics]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class SampleCreation(TelemetryBase):"},{"line_number":48,"context_line":"    \"\"\"Handle sample from notification bus, which is posted via API.\"\"\""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    event_types \u003d [\u0027sample.create\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_88d6cdc1","line":47,"updated":"2015-06-22 15:11:51.000000000","message":"can we call this TelemetryApi? or TelemetryApiPost?","commit_id":"13f6303d9059b00c293dd75e47c17e733063c7c0"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"248cb947799658d4031a30ef150d6f64ed0ce5d7","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                for topic in conf.notification_topics]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class SampleCreation(TelemetryBase):"},{"line_number":48,"context_line":"    \"\"\"Handle sample from notification bus, which is posted via API.\"\"\""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    event_types \u003d [\u0027sample.create\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_4dcaf3a2","line":47,"in_reply_to":"fa32b979_00a6fb52","updated":"2015-06-23 08:25:18.000000000","message":"I have the similar question. It\u0027s not clear why do we need a separate \u0027process_notification\u0027 for the samples posted via API. Do we want to notify ourselves about posting via API?","commit_id":"13f6303d9059b00c293dd75e47c17e733063c7c0"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"47d1da3a0cc56dcf661bfc459525c614369d50f0","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                for topic in conf.notification_topics]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class SampleCreation(TelemetryBase):"},{"line_number":48,"context_line":"    \"\"\"Handle sample from notification bus, which is posted via API.\"\"\""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    event_types \u003d [\u0027sample.create\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_00a6fb52","line":47,"in_reply_to":"fa32b979_0bb957cb","updated":"2015-06-23 04:58:47.000000000","message":"Hi Chris, The API side implementation is [1], sorry I don\u0027t get you meaning clearly :( you mean the pollsters-no-transform spec? But I think it won\u0027t be different between the two datastructure.\n\n[1] https://review.openstack.org/#/c/193472/","commit_id":"13f6303d9059b00c293dd75e47c17e733063c7c0"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"4c9518ba7024aaa3115d4695962639b4d99825ec","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                for topic in conf.notification_topics]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class SampleCreation(TelemetryBase):"},{"line_number":48,"context_line":"    \"\"\"Handle sample from notification bus, which is posted via API.\"\"\""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    event_types \u003d [\u0027sample.create\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_537134a7","line":47,"in_reply_to":"fa32b979_4dcaf3a2","updated":"2015-06-23 08:59:46.000000000","message":"It is aims to allow ceilometer-api getting rid of pipline, see: https://review.openstack.org/#/c/143103/","commit_id":"13f6303d9059b00c293dd75e47c17e733063c7c0"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"47d1da3a0cc56dcf661bfc459525c614369d50f0","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                for topic in conf.notification_topics]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class SampleCreation(TelemetryBase):"},{"line_number":48,"context_line":"    \"\"\"Handle sample from notification bus, which is posted via API.\"\"\""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    event_types \u003d [\u0027sample.create\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_c066d328","line":47,"in_reply_to":"fa32b979_88d6cdc1","updated":"2015-06-23 04:58:47.000000000","message":"Hi gordon, I prefer \"TelemetryApiPost\"","commit_id":"13f6303d9059b00c293dd75e47c17e733063c7c0"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"589fe6390cced04edb013eb95208065fc0e226bb","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                for topic in conf.notification_topics]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class SampleCreation(TelemetryBase):"},{"line_number":48,"context_line":"    \"\"\"Handle sample from notification bus, which is posted via API.\"\"\""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    event_types \u003d [\u0027sample.create\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_0bb957cb","line":47,"in_reply_to":"fa32b979_88d6cdc1","updated":"2015-06-22 15:21:03.000000000","message":"Is there a reason this is API related? Presumably if we remove the pipeline from the pollsters they too will be wanting to send samples down the line to this thing or something like it? Or are we assume that the datastructure between the two will be different? If so, why?","commit_id":"13f6303d9059b00c293dd75e47c17e733063c7c0"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"910cc82b7665bb931b19eadf073d9d80feca2017","unresolved":false,"context_lines":[{"line_number":47,"context_line":"class SampleCreation(TelemetryBase):"},{"line_number":48,"context_line":"    \"\"\"Handle sample from notification bus, which is posted via API.\"\"\""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    event_types \u003d [\u0027sample.create\u0027]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def process_notification(self, message):"},{"line_number":53,"context_line":"        samples \u003d message[\u0027payload\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_a8b5d17e","line":50,"updated":"2015-06-22 15:11:51.000000000","message":"can we publish via \u0027telemetry.api\u0027 event_type","commit_id":"13f6303d9059b00c293dd75e47c17e733063c7c0"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"47d1da3a0cc56dcf661bfc459525c614369d50f0","unresolved":false,"context_lines":[{"line_number":47,"context_line":"class SampleCreation(TelemetryBase):"},{"line_number":48,"context_line":"    \"\"\"Handle sample from notification bus, which is posted via API.\"\"\""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    event_types \u003d [\u0027sample.create\u0027]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def process_notification(self, message):"},{"line_number":53,"context_line":"        samples \u003d message[\u0027payload\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_608347cd","line":50,"in_reply_to":"fa32b979_a8b5d17e","updated":"2015-06-23 04:58:47.000000000","message":"but... maybe the \u0027telemetry.api\u0027 doesn\u0027t like a event?","commit_id":"13f6303d9059b00c293dd75e47c17e733063c7c0"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"b5fe6ada97b0a4f5ce4ecb2bfca0d64270fc1ced","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"cfg.CONF.register_opts(OPTS)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"SERVICE \u003d \u0027telemetry\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class TelemetryBase(plugin_base.NotificationBase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_8ee43ca8","line":29,"updated":"2015-06-24 08:49:45.000000000","message":"why need this?","commit_id":"2c9ea1aa531d4026a2a536ac3ee1367eaf6d1c95"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"a630a312beaeca35bfd92478de84188834e07594","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"cfg.CONF.register_opts(OPTS)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"SERVICE \u003d \u0027telemetry\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class TelemetryBase(plugin_base.NotificationBase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa32b979_6996924d","line":29,"in_reply_to":"fa32b979_8ee43ca8","updated":"2015-06-24 09:10:13.000000000","message":"my mistake :(, it is redundant","commit_id":"2c9ea1aa531d4026a2a536ac3ee1367eaf6d1c95"}],"setup.cfg":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"b5fe6ada97b0a4f5ce4ecb2bfca0d64270fc1ced","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    network.services.vpn.connections \u003d ceilometer.network.notifications:IPSecSiteConnection"},{"line_number":95,"context_line":"    objectstore.request \u003d ceilometer.objectstore.notifications:SwiftWsgiMiddleware"},{"line_number":96,"context_line":"    objectstore.request.meters \u003d ceilometer.objectstore.notifications:SwiftWsgiMiddlewareMeters"},{"line_number":97,"context_line":"    sample \u003d ceilometer.telemetry.notifications:TelemetryApiPost"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"ceilometer.discover \u003d"},{"line_number":100,"context_line":"    local_instances \u003d ceilometer.compute.discovery:InstanceDiscovery"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"fa32b979_2e29709b","line":97,"updated":"2015-06-24 08:49:45.000000000","message":"maybe name it to _sample to indicate its internal to ceilometer, and different from others","commit_id":"2c9ea1aa531d4026a2a536ac3ee1367eaf6d1c95"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"a630a312beaeca35bfd92478de84188834e07594","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    network.services.vpn.connections \u003d ceilometer.network.notifications:IPSecSiteConnection"},{"line_number":95,"context_line":"    objectstore.request \u003d ceilometer.objectstore.notifications:SwiftWsgiMiddleware"},{"line_number":96,"context_line":"    objectstore.request.meters \u003d ceilometer.objectstore.notifications:SwiftWsgiMiddlewareMeters"},{"line_number":97,"context_line":"    sample \u003d ceilometer.telemetry.notifications:TelemetryApiPost"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"ceilometer.discover \u003d"},{"line_number":100,"context_line":"    local_instances \u003d ceilometer.compute.discovery:InstanceDiscovery"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"fa32b979_292c0aab","line":97,"in_reply_to":"fa32b979_2e29709b","updated":"2015-06-24 09:10:13.000000000","message":"thanks for suggestion, agree, done.","commit_id":"2c9ea1aa531d4026a2a536ac3ee1367eaf6d1c95"}]}
