)]}'
{"ceilometer/compute/discovery.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8e2e0b575244121d4454e850756a82901cdee496","unresolved":false,"context_lines":[{"line_number":90,"context_line":"# status, should be true 99.9% on the time,"},{"line_number":91,"context_line":"# but can be wrong during some transistion state"},{"line_number":92,"context_line":"# like shelving/rescuing"},{"line_number":93,"context_line":"LIBVIRT_STATUS \u003d {"},{"line_number":94,"context_line":"    VIR_DOMAIN_NOSTATE: \u0027building\u0027,"},{"line_number":95,"context_line":"    VIR_DOMAIN_RUNNING: \u0027active\u0027,"},{"line_number":96,"context_line":"    VIR_DOMAIN_BLOCKED: \u0027active\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a71b18c_77ae112f","line":93,"updated":"2016-12-12 15:48:16.000000000","message":"maybe move this to libvirt utils","commit_id":"caf1038776215d49c26dc13105b87c0798cc7c57"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"06609ad0ab7e01ce05a5d93c918d378bd9daf32b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"# status, should be true 99.9% on the time,"},{"line_number":91,"context_line":"# but can be wrong during some transistion state"},{"line_number":92,"context_line":"# like shelving/rescuing"},{"line_number":93,"context_line":"LIBVIRT_STATUS \u003d {"},{"line_number":94,"context_line":"    VIR_DOMAIN_NOSTATE: \u0027building\u0027,"},{"line_number":95,"context_line":"    VIR_DOMAIN_RUNNING: \u0027active\u0027,"},{"line_number":96,"context_line":"    VIR_DOMAIN_BLOCKED: \u0027active\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a6eadb0_f39ad1c4","line":93,"in_reply_to":"3a71b18c_77ae112f","updated":"2016-12-13 06:30:53.000000000","message":"Done","commit_id":"caf1038776215d49c26dc13105b87c0798cc7c57"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8e2e0b575244121d4454e850756a82901cdee496","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"            user_id \u003d metadata_xml.find(\"./owner/user\").attrib[\"uuid\"]"},{"line_number":189,"context_line":"            project_id \u003d metadata_xml.find(\"./owner/project\").attrib[\"uuid\"]"},{"line_number":190,"context_line":"            host_id \u003d hashlib.sha224("},{"line_number":191,"context_line":"                (project_id + self.conf.host).encode(\u0027utf-8\u0027)).hexdigest()"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"            # The image description is partial, but Gnocchi only care about the"},{"line_number":194,"context_line":"            # id, so we are fine"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a71b18c_3af560ec","line":191,"range":{"start_line":190,"start_character":0,"end_line":191,"end_character":74},"updated":"2016-12-12 15:48:16.000000000","message":"curious, but what\u0027s the reason for this hash?","commit_id":"caf1038776215d49c26dc13105b87c0798cc7c57"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"06609ad0ab7e01ce05a5d93c918d378bd9daf32b","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"            user_id \u003d metadata_xml.find(\"./owner/user\").attrib[\"uuid\"]"},{"line_number":189,"context_line":"            project_id \u003d metadata_xml.find(\"./owner/project\").attrib[\"uuid\"]"},{"line_number":190,"context_line":"            host_id \u003d hashlib.sha224("},{"line_number":191,"context_line":"                (project_id + self.conf.host).encode(\u0027utf-8\u0027)).hexdigest()"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"            # The image description is partial, but Gnocchi only care about the"},{"line_number":194,"context_line":"            # id, so we are fine"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a6eadb0_53aaa5d5","line":191,"range":{"start_line":190,"start_character":0,"end_line":191,"end_character":74},"in_reply_to":"3a71b18c_3af560ec","updated":"2016-12-13 06:30:53.000000000","message":"I don\u0027t known why nova does that. I have just copying from nova the host_id generation.","commit_id":"caf1038776215d49c26dc13105b87c0798cc7c57"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8e2e0b575244121d4454e850756a82901cdee496","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                \"OS-EXT-SRV-ATTR:host\": self.conf.host,"},{"line_number":209,"context_line":"                \"OS-EXT-STS:vm_state\": vm_state,"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"                \"project_id\": project_id,"},{"line_number":212,"context_line":"                \"tenant_id\": project_id,"},{"line_number":213,"context_line":"                \"user_id\": user_id,"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"                \"hostId\": host_id,"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a6eadb0_f9f72ff3","line":212,"range":{"start_line":211,"start_character":0,"end_line":212,"end_character":40},"updated":"2016-12-12 15:48:16.000000000","message":"do we need to set both?","commit_id":"caf1038776215d49c26dc13105b87c0798cc7c57"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"06609ad0ab7e01ce05a5d93c918d378bd9daf32b","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                \"OS-EXT-SRV-ATTR:host\": self.conf.host,"},{"line_number":209,"context_line":"                \"OS-EXT-STS:vm_state\": vm_state,"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"                \"project_id\": project_id,"},{"line_number":212,"context_line":"                \"tenant_id\": project_id,"},{"line_number":213,"context_line":"                \"user_id\": user_id,"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"                \"hostId\": host_id,"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a6eadb0_f3e81119","line":212,"range":{"start_line":211,"start_character":0,"end_line":212,"end_character":40},"in_reply_to":"1a6eadb0_f9f72ff3","updated":"2016-12-13 06:30:53.000000000","message":"I have removed project_id, we only use tenant_id.","commit_id":"caf1038776215d49c26dc13105b87c0798cc7c57"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a699184fa23cbaac8e39be1e328abf1cd1bb7834","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                # \u0027reservation_id\u0027,"},{"line_number":223,"context_line":"                # \u0027OS-EXT-AZ:availability_zone\u0027,"},{"line_number":224,"context_line":"                # \u0027kernel_id\u0027,"},{"line_number":225,"context_line":"                # \u0027ramdisk_id\u0027,"},{"line_number":226,"context_line":"            }"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"            LOG.debug(\"instance data: %s\", instance_data)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a6eadb0_cb7370b3","line":225,"updated":"2016-12-12 19:26:19.000000000","message":"we should be fine for these. all of these are included in the notification including missing image details:\n\nhttps://github.com/openstack/nova/blob/4f91ed3a547965ed96a22520edcfb783e7936e95/nova/notifications/base.py#L471-L501","commit_id":"caf1038776215d49c26dc13105b87c0798cc7c57"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"06609ad0ab7e01ce05a5d93c918d378bd9daf32b","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                # \u0027reservation_id\u0027,"},{"line_number":223,"context_line":"                # \u0027OS-EXT-AZ:availability_zone\u0027,"},{"line_number":224,"context_line":"                # \u0027kernel_id\u0027,"},{"line_number":225,"context_line":"                # \u0027ramdisk_id\u0027,"},{"line_number":226,"context_line":"            }"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"            LOG.debug(\"instance data: %s\", instance_data)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a6eadb0_13d58d42","line":225,"in_reply_to":"1a6eadb0_cb7370b3","updated":"2016-12-13 06:30:53.000000000","message":"Thanks for verifing that, I have adding this as comment and removed the new pollster :)","commit_id":"caf1038776215d49c26dc13105b87c0798cc7c57"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"36bebdb8831dd1d4718392db1f2219afcc1de00d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                     \u0027compute agents to be run simultaneously. \u0027"},{"line_number":38,"context_line":"                     \u0027(replaced by instance_discovery_method)\u0027),"},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027instance_discovery_method\u0027,"},{"line_number":40,"context_line":"               default\u003d\u0027dumb\u0027,"},{"line_number":41,"context_line":"               choices\u003d[\u0027dumb\u0027, \u0027workload_partitioning\u0027, \u0027libvirt_metadata\u0027],"},{"line_number":42,"context_line":"               help\u003d\"Ceilometer offers many methods to discover the instance\""},{"line_number":43,"context_line":"                    \"running on a compute node: \\n\""}],"source_content_type":"text/x-python","patch_set":23,"id":"1a6eadb0_e0caa26d","line":40,"range":{"start_line":40,"start_character":24,"end_line":40,"end_character":28},"updated":"2016-12-14 15:46:31.000000000","message":"should we just change to \u0027naive\u0027 or maybe we are saying it\u0027s dumb to use hyper-v? that is true? ;)","commit_id":"db25274d020ebda80e31c3db49ec7306ce1dbc0d"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"cf4cae90dfa8d299e8145f1bf3b25211ef17371f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                     \u0027compute agents to be run simultaneously. \u0027"},{"line_number":38,"context_line":"                     \u0027(replaced by instance_discovery_method)\u0027),"},{"line_number":39,"context_line":"    cfg.StrOpt(\u0027instance_discovery_method\u0027,"},{"line_number":40,"context_line":"               default\u003d\u0027dumb\u0027,"},{"line_number":41,"context_line":"               choices\u003d[\u0027dumb\u0027, \u0027workload_partitioning\u0027, \u0027libvirt_metadata\u0027],"},{"line_number":42,"context_line":"               help\u003d\"Ceilometer offers many methods to discover the instance\""},{"line_number":43,"context_line":"                    \"running on a compute node: \\n\""}],"source_content_type":"text/x-python","patch_set":23,"id":"1a6eadb0_a048aa88","line":40,"range":{"start_line":40,"start_character":24,"end_line":40,"end_character":28},"in_reply_to":"1a6eadb0_e0caa26d","updated":"2016-12-14 16:02:47.000000000","message":"Good catch, I always think libvirt sorry :p","commit_id":"db25274d020ebda80e31c3db49ec7306ce1dbc0d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"36bebdb8831dd1d4718392db1f2219afcc1de00d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            self.method \u003d conf.compute.instance_discovery_method"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"            # For backward compatibility"},{"line_number":86,"context_line":"            if self.method \u003d\u003d \"dump\" and conf.compute.workload_partitioning:"},{"line_number":87,"context_line":"                self.method \u003d \"workload_partitioning\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        if self.method \u003d\u003d \"libvirt_metadata\":"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a6eadb0_e0f542cb","line":86,"range":{"start_line":86,"start_character":31,"end_line":86,"end_character":35},"updated":"2016-12-14 15:46:31.000000000","message":"dumb or whatever word we use.","commit_id":"db25274d020ebda80e31c3db49ec7306ce1dbc0d"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"cf4cae90dfa8d299e8145f1bf3b25211ef17371f","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            self.method \u003d conf.compute.instance_discovery_method"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"            # For backward compatibility"},{"line_number":86,"context_line":"            if self.method \u003d\u003d \"dump\" and conf.compute.workload_partitioning:"},{"line_number":87,"context_line":"                self.method \u003d \"workload_partitioning\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        if self.method \u003d\u003d \"libvirt_metadata\":"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a6eadb0_6b93d34f","line":86,"range":{"start_line":86,"start_character":31,"end_line":86,"end_character":35},"in_reply_to":"1a6eadb0_e0f542cb","updated":"2016-12-14 16:02:47.000000000","message":"Done","commit_id":"db25274d020ebda80e31c3db49ec7306ce1dbc0d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"98111578efe81486bc4e0b915132e5af22e7ff87","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"            user_id \u003d metadata_xml.find(\"./owner/user\").attrib[\"uuid\"]"},{"line_number":152,"context_line":"            project_id \u003d metadata_xml.find(\"./owner/project\").attrib[\"uuid\"]"},{"line_number":153,"context_line":"            host_id \u003d hashlib.sha224("},{"line_number":154,"context_line":"                (project_id + self.conf.host).encode(\u0027utf-8\u0027)).hexdigest()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"            # The image description is partial, but Gnocchi only care about the"},{"line_number":157,"context_line":"            # id, so we are fine"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a6eadb0_c0de866c","line":154,"range":{"start_line":153,"start_character":0,"end_line":154,"end_character":74},"updated":"2016-12-14 15:43:25.000000000","message":"tbh, i\u0027d rather avoid having as much nova details in this as possible but not end of world for me. we could just remove this if we for some reason are constantly out of sync.\n\nmaybe we should just add a link to nova details?","commit_id":"db25274d020ebda80e31c3db49ec7306ce1dbc0d"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"cf4cae90dfa8d299e8145f1bf3b25211ef17371f","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"            user_id \u003d metadata_xml.find(\"./owner/user\").attrib[\"uuid\"]"},{"line_number":152,"context_line":"            project_id \u003d metadata_xml.find(\"./owner/project\").attrib[\"uuid\"]"},{"line_number":153,"context_line":"            host_id \u003d hashlib.sha224("},{"line_number":154,"context_line":"                (project_id + self.conf.host).encode(\u0027utf-8\u0027)).hexdigest()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"            # The image description is partial, but Gnocchi only care about the"},{"line_number":157,"context_line":"            # id, so we are fine"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a6eadb0_eb78c32d","line":154,"range":{"start_line":153,"start_character":0,"end_line":154,"end_character":74},"in_reply_to":"1a6eadb0_c0de866c","updated":"2016-12-14 16:02:47.000000000","message":"Done","commit_id":"db25274d020ebda80e31c3db49ec7306ce1dbc0d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"9b9626190cc5abb19d964860a5e23a664d6a4983","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                \"http://openstack.org/xmlns/libvirt/nova/1.0\")"},{"line_number":127,"context_line":"            metadata_xml \u003d etree.fromstring(xml_string)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"            # FIXME(sileht): We don\u0027t have the flavor ID here So the Gnocchi"},{"line_number":130,"context_line":"            # resource update will fail for compute sample (or put None ?)"},{"line_number":131,"context_line":"            # We have two solutions:"},{"line_number":132,"context_line":"            #   Create a glance image-list cache to get the id from the name"},{"line_number":133,"context_line":"            # OR:"},{"line_number":134,"context_line":"            #   storing the flavor_id doesn\u0027t have any sense because the flavor"},{"line_number":135,"context_line":"            #   description can change over the time, we should store the"},{"line_number":136,"context_line":"            #   detail of the flavor. this is why nova doesn\u0027t put the id in"},{"line_number":137,"context_line":"            #   the libvirt metadata"},{"line_number":138,"context_line":"            flavor_xml \u003d metadata_xml.find(\"./flavor\")"},{"line_number":139,"context_line":"            flavor \u003d {"},{"line_number":140,"context_line":"                \"name\": flavor_xml.attrib[\"name\"],"}],"source_content_type":"text/x-python","patch_set":31,"id":"ba5201f7_ccba2e23","line":137,"range":{"start_line":129,"start_character":0,"end_line":137,"end_character":36},"updated":"2017-01-04 16:54:06.000000000","message":"i think this is last blocker. you can see: \n\n  2017-01-04 16:07:52.752 19630 ERROR ceilometer.dispatcher.gnocchi [-] Resource 36b978ab-6b82-48cf-b07f-51e0d1492120 does not exist (HTTP 404)\n  2017-01-04 16:07:56.510 19630 ERROR ceilometer.dispatcher.gnocchi [-] Invalid input: required key not provided @ data[u\u0027flavor_id\u0027] (HTTP 400)\n\nso it seems it\u0027s never being created","commit_id":"74577111a99ad73c78f2db49097f41426de949f3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"c984116aa4d32b8658ed3ae8d36fc5aa3c1e0279","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                \"http://openstack.org/xmlns/libvirt/nova/1.0\")"},{"line_number":127,"context_line":"            metadata_xml \u003d etree.fromstring(xml_string)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"            # FIXME(sileht): We don\u0027t have the flavor ID here So the Gnocchi"},{"line_number":130,"context_line":"            # resource update will fail for compute sample (or put None ?)"},{"line_number":131,"context_line":"            # We have two solutions:"},{"line_number":132,"context_line":"            #   Create a glance image-list cache to get the id from the name"},{"line_number":133,"context_line":"            # OR:"},{"line_number":134,"context_line":"            #   storing the flavor_id doesn\u0027t have any sense because the flavor"},{"line_number":135,"context_line":"            #   description can change over the time, we should store the"},{"line_number":136,"context_line":"            #   detail of the flavor. this is why nova doesn\u0027t put the id in"},{"line_number":137,"context_line":"            #   the libvirt metadata"},{"line_number":138,"context_line":"            flavor_xml \u003d metadata_xml.find(\"./flavor\")"},{"line_number":139,"context_line":"            flavor \u003d {"},{"line_number":140,"context_line":"                \"name\": flavor_xml.attrib[\"name\"],"}],"source_content_type":"text/x-python","patch_set":31,"id":"ba5201f7_481feab6","line":137,"range":{"start_line":129,"start_character":0,"end_line":137,"end_character":36},"in_reply_to":"ba5201f7_41e18e99","updated":"2017-01-05 11:18:42.000000000","message":"I have done option 1 for now, since option 2 need some extra work.","commit_id":"74577111a99ad73c78f2db49097f41426de949f3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"f3aea081f68ede8ebebdb8610c88184aed5c021a","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                \"http://openstack.org/xmlns/libvirt/nova/1.0\")"},{"line_number":127,"context_line":"            metadata_xml \u003d etree.fromstring(xml_string)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"            # FIXME(sileht): We don\u0027t have the flavor ID here So the Gnocchi"},{"line_number":130,"context_line":"            # resource update will fail for compute sample (or put None ?)"},{"line_number":131,"context_line":"            # We have two solutions:"},{"line_number":132,"context_line":"            #   Create a glance image-list cache to get the id from the name"},{"line_number":133,"context_line":"            # OR:"},{"line_number":134,"context_line":"            #   storing the flavor_id doesn\u0027t have any sense because the flavor"},{"line_number":135,"context_line":"            #   description can change over the time, we should store the"},{"line_number":136,"context_line":"            #   detail of the flavor. this is why nova doesn\u0027t put the id in"},{"line_number":137,"context_line":"            #   the libvirt metadata"},{"line_number":138,"context_line":"            flavor_xml \u003d metadata_xml.find(\"./flavor\")"},{"line_number":139,"context_line":"            flavor \u003d {"},{"line_number":140,"context_line":"                \"name\": flavor_xml.attrib[\"name\"],"}],"source_content_type":"text/x-python","patch_set":31,"id":"ba5201f7_e32d3ca9","line":137,"range":{"start_line":129,"start_character":0,"end_line":137,"end_character":36},"in_reply_to":"ba5201f7_ac6eca93","updated":"2017-01-04 18:32:28.000000000","message":"I have just removed the requirement for having the flavor id for now. We can try to make something better later.","commit_id":"74577111a99ad73c78f2db49097f41426de949f3"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0e8217b0486673bb45099d2f2b1b3db489484737","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                \"http://openstack.org/xmlns/libvirt/nova/1.0\")"},{"line_number":127,"context_line":"            metadata_xml \u003d etree.fromstring(xml_string)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"            # FIXME(sileht): We don\u0027t have the flavor ID here So the Gnocchi"},{"line_number":130,"context_line":"            # resource update will fail for compute sample (or put None ?)"},{"line_number":131,"context_line":"            # We have two solutions:"},{"line_number":132,"context_line":"            #   Create a glance image-list cache to get the id from the name"},{"line_number":133,"context_line":"            # OR:"},{"line_number":134,"context_line":"            #   storing the flavor_id doesn\u0027t have any sense because the flavor"},{"line_number":135,"context_line":"            #   description can change over the time, we should store the"},{"line_number":136,"context_line":"            #   detail of the flavor. this is why nova doesn\u0027t put the id in"},{"line_number":137,"context_line":"            #   the libvirt metadata"},{"line_number":138,"context_line":"            flavor_xml \u003d metadata_xml.find(\"./flavor\")"},{"line_number":139,"context_line":"            flavor \u003d {"},{"line_number":140,"context_line":"                \"name\": flavor_xml.attrib[\"name\"],"}],"source_content_type":"text/x-python","patch_set":31,"id":"ba5201f7_ac6eca93","line":137,"range":{"start_line":129,"start_character":0,"end_line":137,"end_character":36},"in_reply_to":"ba5201f7_ccba2e23","updated":"2017-01-04 16:59:23.000000000","message":"i think the second solution is better... but i do we need to store details? they are already metrics. i wonder how stable the name is?","commit_id":"74577111a99ad73c78f2db49097f41426de949f3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"07fbaacd6cb6e84fdecff968bcbe3410e0e5c5e1","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                \"http://openstack.org/xmlns/libvirt/nova/1.0\")"},{"line_number":127,"context_line":"            metadata_xml \u003d etree.fromstring(xml_string)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"            # FIXME(sileht): We don\u0027t have the flavor ID here So the Gnocchi"},{"line_number":130,"context_line":"            # resource update will fail for compute sample (or put None ?)"},{"line_number":131,"context_line":"            # We have two solutions:"},{"line_number":132,"context_line":"            #   Create a glance image-list cache to get the id from the name"},{"line_number":133,"context_line":"            # OR:"},{"line_number":134,"context_line":"            #   storing the flavor_id doesn\u0027t have any sense because the flavor"},{"line_number":135,"context_line":"            #   description can change over the time, we should store the"},{"line_number":136,"context_line":"            #   detail of the flavor. this is why nova doesn\u0027t put the id in"},{"line_number":137,"context_line":"            #   the libvirt metadata"},{"line_number":138,"context_line":"            flavor_xml \u003d metadata_xml.find(\"./flavor\")"},{"line_number":139,"context_line":"            flavor \u003d {"},{"line_number":140,"context_line":"                \"name\": flavor_xml.attrib[\"name\"],"}],"source_content_type":"text/x-python","patch_set":31,"id":"ba5201f7_41e18e99","line":137,"range":{"start_line":129,"start_character":0,"end_line":137,"end_character":36},"in_reply_to":"ba5201f7_e32d3ca9","updated":"2017-01-05 06:49:58.000000000","message":"Damn Gnocchi doesn\u0027t allow to update a field, we can just drop or add them.","commit_id":"74577111a99ad73c78f2db49097f41426de949f3"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"0fbecf82b111d2bea8df2b0f4bf0264b0c5c62f0","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                     \u0027compute agents to be run simultaneously. \u0027"},{"line_number":42,"context_line":"                     \u0027(replaced by instance_discovery_method)\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027instance_discovery_method\u0027,"},{"line_number":44,"context_line":"               default\u003d\u0027naive\u0027,"},{"line_number":45,"context_line":"               choices\u003d[\u0027naive\u0027, \u0027workload_partitioning\u0027, \u0027libvirt_metadata\u0027],"},{"line_number":46,"context_line":"               help\u003d\"Ceilometer offers many methods to discover the instance\""},{"line_number":47,"context_line":"                    \"running on a compute node: \\n\""}],"source_content_type":"text/x-python","patch_set":36,"id":"ba5201f7_e25e8878","line":44,"updated":"2017-01-09 15:40:25.000000000","message":"libvirt_metadata by default?","commit_id":"470ad434f754e1f6d1c1078eb0f1d9c6c470a0c5"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"40b5197dccb45094b3809021ce51c416fb6c6c9d","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        if self.method \u003d\u003d \"libvirt_metadata\":"},{"line_number":94,"context_line":"            self._connection \u003d None"},{"line_number":95,"context_line":"            # 4096 instances on a compute should be enough :)"},{"line_number":96,"context_line":"            self._flavor_cache \u003d cachetools.LRUCache(4096)"},{"line_number":97,"context_line":"        else:"},{"line_number":98,"context_line":"            self.instances \u003d {}"},{"line_number":99,"context_line":"            self.last_run \u003d None"}],"source_content_type":"text/x-python","patch_set":36,"id":"ba5201f7_855374e1","line":96,"updated":"2017-01-05 14:04:26.000000000","message":"what happens if an instances flavour is changed? or can it be changed? wondering if you wanted to use self.expiration_time","commit_id":"470ad434f754e1f6d1c1078eb0f1d9c6c470a0c5"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"de25da0a4a0da8c8f068210651801b642f17567d","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        if self.method \u003d\u003d \"libvirt_metadata\":"},{"line_number":94,"context_line":"            self._connection \u003d None"},{"line_number":95,"context_line":"            # 4096 instances on a compute should be enough :)"},{"line_number":96,"context_line":"            self._flavor_cache \u003d cachetools.LRUCache(4096)"},{"line_number":97,"context_line":"        else:"},{"line_number":98,"context_line":"            self.instances \u003d {}"},{"line_number":99,"context_line":"            self.last_run \u003d None"}],"source_content_type":"text/x-python","patch_set":36,"id":"ba5201f7_b69a6c6c","line":96,"in_reply_to":"ba5201f7_855374e1","updated":"2017-01-05 15:08:42.000000000","message":"If the instance flavor change we will have a new name in the libvirt xml and we will query the new ID.\n\nI have some checks on nova (a mitaka install).\n\nThe flavor name is unique in nova. So mapping ID\u003c-\u003eName works for us.\n\n   $ openstack flavor create 2vcpu-512ram\n   Flavor with name 2vcpu-512ram already exists.\n\nA flavor cannot change its specs/name/attributes anymore.\n\nSo we are safe for having a cache, the only issue I see is if the flavor is delete.","commit_id":"470ad434f754e1f6d1c1078eb0f1d9c6c470a0c5"}],"ceilometer/compute/virt/libvirt/utils.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"084b06dba35482ee8b6e8548d862347b95a1f7cf","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    return libvirt.openReadOnly(uri)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def retry_on_disconnect(function):"},{"line_number":53,"context_line":"    def decorator(self, *args, **kwargs):"},{"line_number":54,"context_line":"        try:"},{"line_number":55,"context_line":"            return function(self, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a77a97e_86886be9","line":52,"updated":"2016-11-15 15:49:29.000000000","message":"sad to not see tenacity ;)","commit_id":"f43e2600872d873602cc405a3edfd1b01a42b133"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"8690a37bb47132ac1ef593407b784208d5445d97","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    return libvirt.openReadOnly(uri)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def retry_on_disconnect(function):"},{"line_number":53,"context_line":"    def decorator(self, *args, **kwargs):"},{"line_number":54,"context_line":"        try:"},{"line_number":55,"context_line":"            return function(self, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a77a97e_0be8e3e1","line":52,"in_reply_to":"7a77a97e_86886be9","updated":"2016-11-15 16:19:50.000000000","message":"I will add a TODO","commit_id":"f43e2600872d873602cc405a3edfd1b01a42b133"}],"releasenotes/notes/less-nova-polling-ac56687da3f8b1a3.yaml":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"0fbecf82b111d2bea8df2b0f4bf0264b0c5c62f0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - The Ceilometer compute agent can now retreives some instance metadata from"},{"line_number":4,"context_line":"    the metadata libvirt API instead of polling the Nova API. Since Mitaka,"},{"line_number":5,"context_line":"    Nova fills this metadata with some informations about the instance."},{"line_number":6,"context_line":"    To enable this feature you should set [compute]/instance_discovery_method \u003d"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"ba5201f7_8285bcae","line":3,"range":{"start_line":3,"start_character":41,"end_line":3,"end_character":50},"updated":"2017-01-09 15:40:25.000000000","message":"retrieve","commit_id":"470ad434f754e1f6d1c1078eb0f1d9c6c470a0c5"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"0fbecf82b111d2bea8df2b0f4bf0264b0c5c62f0","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    To enable this feature you should set [compute]/instance_discovery_method \u003d"},{"line_number":7,"context_line":"    libvirt_metadata in the configuration file."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    The only down side of this method is that user_metadata (and some other"},{"line_number":10,"context_line":"    instance attributes) are no longer part of the samples created by the"},{"line_number":11,"context_line":"    agent. But when Gnocchi is used as backend, this is not an issue since"},{"line_number":12,"context_line":"    Gnocchi doesn\u0027t store resource metadata aside of the measurements. And the"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"ba5201f7_a2a9e026","line":9,"range":{"start_line":9,"start_character":13,"end_line":9,"end_character":22},"updated":"2017-01-09 15:40:25.000000000","message":"downside","commit_id":"470ad434f754e1f6d1c1078eb0f1d9c6c470a0c5"}],"setup.cfg":[{"author":{"_account_id":16794,"name":"yaoyuan","username":"yaoyuan","inactive":true},"change_message_id":"e6eed473c923809adba74995e7f354a02c4325d7","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    volumes \u003d ceilometer.volume.discovery:VolumeDiscovery"},{"line_number":75,"context_line":"    volume_snapshots \u003d ceilometer.volume.discovery:VolumeSnapshotsDiscovery"},{"line_number":76,"context_line":"    volume_backups \u003d ceilometer.volume.discovery:VolumeBackupsDiscovery"},{"line_number":77,"context_line":"    instances \u003d ceilometer.compute.discovery:NovaPollingInstanceDiscovery"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"ceilometer.discover.ipmi \u003d"},{"line_number":80,"context_line":"    local_node \u003d ceilometer.agent.discovery.localnode:LocalNodeDiscovery"}],"source_content_type":"text/x-ttcn-cfg","patch_set":20,"id":"3a71b18c_08bbb773","line":77,"range":{"start_line":77,"start_character":45,"end_line":77,"end_character":73},"updated":"2016-12-01 09:25:59.000000000","message":"\"polling\" is no longer needed. Maybe \"NovaInstanceDiscovery\" is a better name","commit_id":"4d24d6d8aef9addcec9335512d94433db42e1ded"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"6d5e0725e6df7d352e1f42cce19006a432260df1","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    volumes \u003d ceilometer.volume.discovery:VolumeDiscovery"},{"line_number":75,"context_line":"    volume_snapshots \u003d ceilometer.volume.discovery:VolumeSnapshotsDiscovery"},{"line_number":76,"context_line":"    volume_backups \u003d ceilometer.volume.discovery:VolumeBackupsDiscovery"},{"line_number":77,"context_line":"    instances \u003d ceilometer.compute.discovery:NovaPollingInstanceDiscovery"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"ceilometer.discover.ipmi \u003d"},{"line_number":80,"context_line":"    local_node \u003d ceilometer.agent.discovery.localnode:LocalNodeDiscovery"}],"source_content_type":"text/x-ttcn-cfg","patch_set":20,"id":"3a71b18c_9b26c166","line":77,"range":{"start_line":77,"start_character":45,"end_line":77,"end_character":73},"in_reply_to":"3a71b18c_08bbb773","updated":"2016-12-09 14:47:25.000000000","message":"I have renamed that GlobalInstanceDiscovery and the compute agent one LocalInstanceDiscovery","commit_id":"4d24d6d8aef9addcec9335512d94433db42e1ded"}]}
