)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"d0414ea2d88f4d773836c2a8c8aa977e85fc9db5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"A couple of new metrics were added (one for polling, and one for notifications) that both return the same sample meter name. The implementation is based on the way the instance metric currently works."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Have also added some basic tests for it, and a module \u0027vm_states\u0027 which holds the state name -\u003e int mapping."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I64fc1858b3964427c3d098d0e31d555a567653f4"},{"line_number":16,"context_line":"Implements: blueprint state-meter"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAUX%2F%2BXcY%3D","line":14,"updated":"2014-02-21 15:55:32.000000000","message":"Please fix the commit message to follow the standard\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_GIT_commit_message_structure","commit_id":"2ab20becf4a481efa393ee84ca0608cd363e453e"}],"ceilometer/compute/notifications/instance.py":[{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"cdac408606dff27f93967825c0a24f1932a47279","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from ceilometer.compute import notifications"},{"line_number":24,"context_line":"from ceilometer import sample"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from ceilometer import vm_states"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2BbI8%3D","line":25,"updated":"2014-02-21 08:38:49.000000000","message":"Is this empty line necessary?","commit_id":"2ab20becf4a481efa393ee84ca0608cd363e453e"}],"ceilometer/compute/pollsters/state.py":[{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"d0414ea2d88f4d773836c2a8c8aa977e85fc9db5","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from ceilometer import sample"},{"line_number":23,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from ceilometer import vm_states"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class StatePollster(plugin.ComputePollster):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2BXbc%3D","line":25,"updated":"2014-02-21 15:55:32.000000000","message":"move this import above the log statement to be consistent.","commit_id":"2ab20becf4a481efa393ee84ca0608cd363e453e"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"cdac408606dff27f93967825c0a24f1932a47279","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def get_samples(self, manager, cache, instance):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        # made lowercase as status value is full caps"},{"line_number":33,"context_line":"        state \u003d vm_states.states[instance.status.lower()]"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        yield util.make_sample_from_instance("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2BbFY%3D","line":32,"updated":"2014-02-21 08:38:49.000000000","message":"Why not store the state in caps instead? No need to transform them to lower then.","commit_id":"2ab20becf4a481efa393ee84ca0608cd363e453e"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"8bdaa3f01b72ac5e1c854eb165e45a66ece684ae","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def get_samples(self, manager, cache, instance):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        # made lowercase as status value is full caps"},{"line_number":33,"context_line":"        state \u003d vm_states.states[instance.status.lower()]"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        yield util.make_sample_from_instance("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F8Qo%3D","line":32,"in_reply_to":"AAAAUX%2F%2BbFY%3D","updated":"2014-02-23 21:12:50.000000000","message":"Because vm_states is also used by the notification state metric, which doesn\u0027t have them in all caps. Also I am trying to keep vm_states similar to the same file in nova.","commit_id":"2ab20becf4a481efa393ee84ca0608cd363e453e"},{"author":{"_account_id":9684,"name":"Jia Dong","email":"joey5566@yeah.net","username":"joey5678"},"change_message_id":"5c3aa7e12dfb7cf57edac5c4062f53a388170704","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from ceilometer.compute.pollsters import util"},{"line_number":21,"context_line":"from ceilometer.compute import vm_states"},{"line_number":22,"context_line":"from ceilometer.openstack.common import log"},{"line_number":23,"context_line":"from ceilometer import sample"},{"line_number":24,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAVn%2F%2FnkE%3D","line":23,"updated":"2014-03-05 01:54:13.000000000","message":"2 blank lines should keep here.","commit_id":"c63b9844463b5b363259faeb253d75c51bebf3b0"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"295e2d58b7c4f67eda893738f14cb549e9233e2d","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class StatePollster(plugin.ComputePollster):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def get_samples(self, manager, cache, instance):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        # made lowercase as status value is full caps"},{"line_number":30,"context_line":"        state \u003d vm_states.states[instance.status.lower()]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FkIc%3D","line":27,"updated":"2014-03-05 16:16:30.000000000","message":"Needs to be rebased (because of: https://review.openstack.org/#/c/75006/11), here is a sample: https://review.openstack.org/#/c/75006/11/ceilometer/compute/pollsters/instance.py","commit_id":"174b85bdb5262d097a18b852e0065840fdd5a7fa"}],"ceilometer/compute/vm_states.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"54b32332280d191b9fef894720aa11ad5dba6a4c","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\"\"Mapping of Nova VM states to ints for use in metering. \"\"\""},{"line_number":21,"context_line":"# It might be better to build a query for this list in"},{"line_number":22,"context_line":"# the NoveClient rather than store it here."},{"line_number":23,"context_line":"# Or import vm_states and use the names defined there."},{"line_number":24,"context_line":"states \u003d {\u0027active\u0027: 1,"},{"line_number":25,"context_line":"          \u0027building\u0027: 2,"},{"line_number":26,"context_line":"          \u0027paused\u0027: 3,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXX%2F%2F0Kk%3D","line":23,"updated":"2014-04-26 07:21:08.000000000","message":"import means add nova as dependency, I think it may not be suitable for only some constant value.","commit_id":"7c74b269b3409bfb6bbebf90c587d297a8aeb4d1"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"29729f1980cc1da885d59b24c9875e3e9baeadad","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# It might be better to build a query for this list in"},{"line_number":22,"context_line":"# the NoveClient rather than store it here."},{"line_number":23,"context_line":"# Or import vm_states and use the names defined there."},{"line_number":24,"context_line":"states \u003d {\u0027active\u0027: 1,"},{"line_number":25,"context_line":"          \u0027building\u0027: 2,"},{"line_number":26,"context_line":"          \u0027paused\u0027: 3,"},{"line_number":27,"context_line":"          \u0027suspended\u0027: 4,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAWH%2F930A%3D","line":24,"updated":"2014-04-01 14:26:33.000000000","message":"i\u0027m not really a fan of this. having these Nova state mappings in Ceilometer may/will cause synchronisation issues.","commit_id":"7c74b269b3409bfb6bbebf90c587d297a8aeb4d1"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"0c81decd81a391dc9dacc2397d7372332673d604","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# It might be better to build a query for this list in"},{"line_number":22,"context_line":"# the NoveClient rather than store it here."},{"line_number":23,"context_line":"# Or import vm_states and use the names defined there."},{"line_number":24,"context_line":"states \u003d {\u0027active\u0027: 1,"},{"line_number":25,"context_line":"          \u0027building\u0027: 2,"},{"line_number":26,"context_line":"          \u0027paused\u0027: 3,"},{"line_number":27,"context_line":"          \u0027suspended\u0027: 4,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAWH%2F9zB8%3D","line":24,"in_reply_to":"AAAAWH%2F930A%3D","updated":"2014-04-02 03:29:16.000000000","message":"I fully agree. I was originally hoping to import the nova vm_states.py directly so changes there cause noticeable errors here, but that doesn\u0027t work. This is the biggest argument against this metric, but sadly I have no other ideas how to handle this.","commit_id":"7c74b269b3409bfb6bbebf90c587d297a8aeb4d1"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"54b32332280d191b9fef894720aa11ad5dba6a4c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"# the NoveClient rather than store it here."},{"line_number":23,"context_line":"# Or import vm_states and use the names defined there."},{"line_number":24,"context_line":"states \u003d {\u0027active\u0027: 1,"},{"line_number":25,"context_line":"          \u0027building\u0027: 2,"},{"line_number":26,"context_line":"          \u0027paused\u0027: 3,"},{"line_number":27,"context_line":"          \u0027suspended\u0027: 4,"},{"line_number":28,"context_line":"          \u0027stopped\u0027: 5,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXX%2F%2F0LY%3D","line":25,"updated":"2014-04-26 07:21:08.000000000","message":"to solve the synchronisation issues is quite easy, just make them to config option\n\nwhat should we treat statistic for this meter in this map value? sum, avg, max, min has no sense\n\nas you said, the meter is used for accurate billing, so I think it may be something like gae instance hour. which means some states are mapped to 1 to indicate this state is under billing, and others are mapped to 0, then the meter type can be cumulative and the volume is the previous state\u0027s mapped value * time gap\n\nthen the statistic can work and also we can create alarms based on this meter to notifier user\n\nas I mentioned above, since this map are configurable, then cloud operator can define which states should be billing and which should not, then everyone is happy (the end user may be exceptional)","commit_id":"7c74b269b3409bfb6bbebf90c587d297a8aeb4d1"}],"ceilometer/tests/compute/pollsters/test_state.py":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"295e2d58b7c4f67eda893738f14cb549e9233e2d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def test_get_samples_instance(self):"},{"line_number":33,"context_line":"        mgr \u003d manager.AgentManager()"},{"line_number":34,"context_line":"        pollster \u003d pollsters_state.StatePollster()"},{"line_number":35,"context_line":"        samples \u003d list(pollster.get_samples(mgr, {}, self.instance))"},{"line_number":36,"context_line":"        self.assertEqual(len(samples), 1)"},{"line_number":37,"context_line":"        self.assertEqual(samples[0].name, \u0027state\u0027)"},{"line_number":38,"context_line":"        self.assertEqual(samples[0].volume, 1)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FkG8%3D","line":35,"updated":"2014-03-05 16:16:30.000000000","message":"Needs to be rebased (because of https://review.openstack.org/#/c/75006/11), here is a sample: https://review.openstack.org/#/c/75006/11/ceilometer/tests/compute/pollsters/test_instance.py","commit_id":"174b85bdb5262d097a18b852e0065840fdd5a7fa"}],"ceilometer/vm_states.py":[{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"cdac408606dff27f93967825c0a24f1932a47279","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\"\"Mapping of Nova VM states to ints for use in metering. \"\"\""},{"line_number":21,"context_line":"# It might be better to build a query for this list in"},{"line_number":22,"context_line":"# the NoveClient rather than store it here."},{"line_number":23,"context_line":"# Or import vm_states and use the names defined there."},{"line_number":24,"context_line":"states \u003d {\u0027active\u0027: 1,"},{"line_number":25,"context_line":"          \u0027building\u0027: 2,"},{"line_number":26,"context_line":"          \u0027paused\u0027: 3,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2BbEo%3D","line":23,"updated":"2014-02-21 08:38:49.000000000","message":"I agree, I don\u0027t think this file belongs in Ceilometer root. What about putting it in StatePollster directly? I don\u0027t think anything else in Ceilometer uses this.","commit_id":"2ab20becf4a481efa393ee84ca0608cd363e453e"},{"author":{"_account_id":10420,"name":"Adrian Turjak","email":"devs+openstack@uncaught-exceptions.com","username":"adriant"},"change_message_id":"8bdaa3f01b72ac5e1c854eb165e45a66ece684ae","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\"\"Mapping of Nova VM states to ints for use in metering. \"\"\""},{"line_number":21,"context_line":"# It might be better to build a query for this list in"},{"line_number":22,"context_line":"# the NoveClient rather than store it here."},{"line_number":23,"context_line":"# Or import vm_states and use the names defined there."},{"line_number":24,"context_line":"states \u003d {\u0027active\u0027: 1,"},{"line_number":25,"context_line":"          \u0027building\u0027: 2,"},{"line_number":26,"context_line":"          \u0027paused\u0027: 3,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2F8RI%3D","line":23,"in_reply_to":"AAAAUX%2F%2BV00%3D","updated":"2014-02-23 21:12:50.000000000","message":"This is used by both the pollster and the notifications, so could possibly be moved to the compute module in ceilometer.\n\nThere is no way to retrieve the full list that I am aware. I was hoping to import and use the nova module so future updates of that modules break this one, but that caused errors in devstack.\n\nthis module: https://github.com/openstack/nova/blob/master/nova/compute/vm_states.py\n\nThat would still require mapping those variables to ints, but would mean any removals from vm_state.py in nova will cause errors in ceilometer that we can track.","commit_id":"2ab20becf4a481efa393ee84ca0608cd363e453e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"cb6777b0d1d7efcad801e8b2f2aead9b0dcb5f36","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\"\"Mapping of Nova VM states to ints for use in metering. \"\"\""},{"line_number":21,"context_line":"# It might be better to build a query for this list in"},{"line_number":22,"context_line":"# the NoveClient rather than store it here."},{"line_number":23,"context_line":"# Or import vm_states and use the names defined there."},{"line_number":24,"context_line":"states \u003d {\u0027active\u0027: 1,"},{"line_number":25,"context_line":"          \u0027building\u0027: 2,"},{"line_number":26,"context_line":"          \u0027paused\u0027: 3,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2BV00%3D","line":23,"in_reply_to":"AAAAUX%2F%2BbEo%3D","updated":"2014-02-21 18:55:10.000000000","message":"i don\u0027t think ceilometer should have this at all. this will create synchronisation issues...\n\nis there no other way to retrieve these states?","commit_id":"2ab20becf4a481efa393ee84ca0608cd363e453e"}],"doc/source/measurements.rst":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"295e2d58b7c4f67eda893738f14cb549e9233e2d","unresolved":false,"context_lines":[{"line_number":70,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":71,"context_line":"instance                       Gauge       instance   inst ID   both          Existence of instance"},{"line_number":72,"context_line":"instance:\u003ctype\u003e                Gauge       instance   inst ID   both          Existence of instance \u003ctype\u003e (openstack types)"},{"line_number":73,"context_line":"state                          Guage       state      inst ID   both          Instance\u0027s current state (see: ceilometer.compute.vm_states)"},{"line_number":74,"context_line":"memory                         Gauge       MB         inst ID   notification  Volume of RAM in MB"},{"line_number":75,"context_line":"cpu                            Cumulative  ns         inst ID   pollster      CPU time used"},{"line_number":76,"context_line":"cpu_util                       Gauge       %          inst ID   pollster      Average CPU utilisation"}],"source_content_type":"text/x-rst","patch_set":6,"id":"AAAAVn%2F%2FkLk%3D","line":73,"updated":"2014-03-05 16:16:30.000000000","message":"The state mapping should be added to the documentation and that section should be referred from here instead of the reference of the implementation itself.","commit_id":"174b85bdb5262d097a18b852e0065840fdd5a7fa"}]}
