)]}'
{"ceilometer/network/floatingip.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"5d189b43439296b39f0d9fe93501a5a3849a6513","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class FloatingIPPollster(plugin_base.PollsterBase):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    neutron_cli \u003d neutron_client.Client()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def _get_floating_ips(self):"},{"line_number":44,"context_line":"        return self.neutron_cli.fip_get_all()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_0f4e6d6f","line":41,"updated":"2016-01-21 11:11:02.000000000","message":"You can\u0027t do that, you\u0027re not sure the conf bas heen parsed at this point :(","commit_id":"45e32f48e588bbefe9aaa465fbe0d82507cd802f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"5d189b43439296b39f0d9fe93501a5a3849a6513","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    neutron_cli \u003d neutron_client.Client()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def _get_floating_ips(self):"},{"line_number":44,"context_line":"        return self.neutron_cli.fip_get_all()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_efa8b9dd","line":43,"updated":"2016-01-21 11:11:02.000000000","message":"not sure you need that if it\u0027s used once","commit_id":"45e32f48e588bbefe9aaa465fbe0d82507cd802f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c70a2c9dba8c460d71842b290f69998b67696a64","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    neutron_cli \u003d neutron_client.Client()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def _get_floating_ips(self):"},{"line_number":44,"context_line":"        return self.neutron_cli.fip_get_all()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_e188c024","line":43,"in_reply_to":"9a68dd71_efa8b9dd","updated":"2016-01-21 16:00:39.000000000","message":"agree","commit_id":"45e32f48e588bbefe9aaa465fbe0d82507cd802f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c70a2c9dba8c460d71842b290f69998b67696a64","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        \"\"\"Return a metadata dictionary for the fip usage data.\"\"\""},{"line_number":53,"context_line":"        metadata \u003d {"},{"line_number":54,"context_line":"            \u0027router_id\u0027: fip.get(\"router_id\"),"},{"line_number":55,"context_line":"            \u0027status\u0027: fip.get(\"status\"),"},{"line_number":56,"context_line":"            \u0027floating_network_id\u0027: fip.get(\"floating_network_id\"),"},{"line_number":57,"context_line":"            \u0027fixed_ip_address\u0027: fip.get(\"fixed_ip_address\"),"},{"line_number":58,"context_line":"            \u0027port_id\u0027: fip.get(\"port_id\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_01e154d0","line":55,"range":{"start_line":55,"start_character":13,"end_line":55,"end_character":39},"updated":"2016-01-21 16:00:39.000000000","message":"does it has default status ?","commit_id":"45e32f48e588bbefe9aaa465fbe0d82507cd802f"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"1e2b72ff7a9757dcdc03665b57daf592fd7691ec","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        \"\"\"Return a metadata dictionary for the fip usage data.\"\"\""},{"line_number":53,"context_line":"        metadata \u003d {"},{"line_number":54,"context_line":"            \u0027router_id\u0027: fip.get(\"router_id\"),"},{"line_number":55,"context_line":"            \u0027status\u0027: fip.get(\"status\"),"},{"line_number":56,"context_line":"            \u0027floating_network_id\u0027: fip.get(\"floating_network_id\"),"},{"line_number":57,"context_line":"            \u0027fixed_ip_address\u0027: fip.get(\"fixed_ip_address\"),"},{"line_number":58,"context_line":"            \u0027port_id\u0027: fip.get(\"port_id\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_247826f2","line":55,"range":{"start_line":55,"start_character":13,"end_line":55,"end_character":39},"in_reply_to":"9a68dd71_01e154d0","updated":"2016-01-21 16:10:05.000000000","message":"at this point we expect the status to be already validated.","commit_id":"45e32f48e588bbefe9aaa465fbe0d82507cd802f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c70a2c9dba8c460d71842b290f69998b67696a64","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        for fip in self._get_floating_ips():"},{"line_number":71,"context_line":"            status \u003d self._get_status_id(fip[\u0027status\u0027])"},{"line_number":72,"context_line":"            if status \u003d\u003d -1:"},{"line_number":73,"context_line":"                LOG.warn(_LW(\"Skipping IP ADDRESS: %s\") %"},{"line_number":74,"context_line":"                         fip[\u0027floating_ip_address\u0027])"},{"line_number":75,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_c1b7bcf3","line":72,"range":{"start_line":72,"start_character":12,"end_line":72,"end_character":27},"updated":"2016-01-21 16:00:39.000000000","message":"I don\u0027t think a number is more explicit than meaningful string :)","commit_id":"45e32f48e588bbefe9aaa465fbe0d82507cd802f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c70a2c9dba8c460d71842b290f69998b67696a64","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                name\u003d\u0027ip.floating\u0027,"},{"line_number":79,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":80,"context_line":"                unit\u003d\u0027ip\u0027,"},{"line_number":81,"context_line":"                volume\u003dstatus,"},{"line_number":82,"context_line":"                user_id\u003dNone,"},{"line_number":83,"context_line":"                project_id\u003dfip[\u0027tenant_id\u0027],"},{"line_number":84,"context_line":"                resource_id\u003dfip[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_64429e40","line":81,"range":{"start_line":81,"start_character":17,"end_line":81,"end_character":29},"updated":"2016-01-21 16:00:39.000000000","message":"I don\u0027t think it is a good idea to use status as volume. it is obscure.","commit_id":"45e32f48e588bbefe9aaa465fbe0d82507cd802f"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"1e2b72ff7a9757dcdc03665b57daf592fd7691ec","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                name\u003d\u0027ip.floating\u0027,"},{"line_number":79,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":80,"context_line":"                unit\u003d\u0027ip\u0027,"},{"line_number":81,"context_line":"                volume\u003dstatus,"},{"line_number":82,"context_line":"                user_id\u003dNone,"},{"line_number":83,"context_line":"                project_id\u003dfip[\u0027tenant_id\u0027],"},{"line_number":84,"context_line":"                resource_id\u003dfip[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_e4c76e10","line":81,"range":{"start_line":81,"start_character":17,"end_line":81,"end_character":29},"in_reply_to":"9a68dd71_64429e40","updated":"2016-01-21 16:10:05.000000000","message":"we do this for few resources today. We could just leave it as 1, but i dont see any value in that either. I\u0027m fine either way.","commit_id":"45e32f48e588bbefe9aaa465fbe0d82507cd802f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c70a2c9dba8c460d71842b290f69998b67696a64","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":80,"context_line":"                unit\u003d\u0027ip\u0027,"},{"line_number":81,"context_line":"                volume\u003dstatus,"},{"line_number":82,"context_line":"                user_id\u003dNone,"},{"line_number":83,"context_line":"                project_id\u003dfip[\u0027tenant_id\u0027],"},{"line_number":84,"context_line":"                resource_id\u003dfip[\u0027id\u0027],"},{"line_number":85,"context_line":"                timestamp\u003dtimeutils.utcnow().isoformat(),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_0164f446","line":82,"range":{"start_line":82,"start_character":16,"end_line":82,"end_character":29},"updated":"2016-01-21 16:00:39.000000000","message":"no user_id ?","commit_id":"45e32f48e588bbefe9aaa465fbe0d82507cd802f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"c8eaef76a797abaf95ef1ea4d68b40cf452f1111","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"cfg.CONF.import_group(\u0027service_types\u0027, \u0027ceilometer.neutron_client\u0027)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"STATUS \u003d {"},{"line_number":33,"context_line":"    \u0027inactive\u0027: 0,"},{"line_number":34,"context_line":"    \u0027active\u0027: 1,"},{"line_number":35,"context_line":"    \u0027pending_create\u0027: 2,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_fd3b82e9","line":32,"updated":"2016-01-21 15:42:13.000000000","message":"would be better to put that as a class attribute","commit_id":"9686749eced25b8c0fff830ae0ff5c1cf281b10e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"c8eaef76a797abaf95ef1ea4d68b40cf452f1111","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        return \u0027endpoint:%s\u0027 % cfg.CONF.service_types.neutron"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @staticmethod"},{"line_number":49,"context_line":"    def _form_metadata_for_fip(fip):"},{"line_number":50,"context_line":"        \"\"\"Return a metadata dictionary for the fip usage data.\"\"\""},{"line_number":51,"context_line":"        metadata \u003d {"},{"line_number":52,"context_line":"            \u0027router_id\u0027: fip.get(\"router_id\"),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_7d59d259","line":49,"updated":"2016-01-21 15:42:13.000000000","message":"no need for a method but ok","commit_id":"9686749eced25b8c0fff830ae0ff5c1cf281b10e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"c8eaef76a797abaf95ef1ea4d68b40cf452f1111","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        return metadata"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @staticmethod"},{"line_number":62,"context_line":"    def _get_status_id(value):"},{"line_number":63,"context_line":"        status \u003d value.lower()"},{"line_number":64,"context_line":"        return STATUS.get(status, -1)"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_bd78aac5","line":62,"updated":"2016-01-21 15:42:13.000000000","message":"delete this method","commit_id":"9686749eced25b8c0fff830ae0ff5c1cf281b10e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"c8eaef76a797abaf95ef1ea4d68b40cf452f1111","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for fip in self.neutron_cli.fip_get_all():"},{"line_number":69,"context_line":"            status \u003d self._get_status_id(fip[\u0027status\u0027])"},{"line_number":70,"context_line":"            if status \u003d\u003d -1:"},{"line_number":71,"context_line":"                LOG.warn(_LW(\"Skipping IP ADDRESS: %s\") %"},{"line_number":72,"context_line":"                         fip[\u0027floating_ip_address\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_7dab121e","line":69,"updated":"2016-01-21 15:42:13.000000000","message":"status \u003d STATUS.get(fip[\u0027status\u0027].lower())","commit_id":"9686749eced25b8c0fff830ae0ff5c1cf281b10e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ce228f9fc54247e8d986136b307d3b5fae3a52a0","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for fip in self.neutron_cli.fip_get_all():"},{"line_number":69,"context_line":"            status \u003d self._get_status_id(fip[\u0027status\u0027])"},{"line_number":70,"context_line":"            if status \u003d\u003d -1:"},{"line_number":71,"context_line":"                LOG.warn(_LW(\"Skipping IP ADDRESS: %s\") %"},{"line_number":72,"context_line":"                         fip[\u0027floating_ip_address\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_846472e5","line":69,"in_reply_to":"9a68dd71_61d29002","updated":"2016-01-21 15:56:16.000000000","message":"I don\u0027t understand your comment. I just proposed to replace that line by a simpler more Pythonic version.\n\nBut to reply about your question, we should meter EVERYTHING. It\u0027s not up to Ceilometer to decide what to do with the data. What you say make sense for one use case, which is billing, but they are a lot of other use cases.","commit_id":"9686749eced25b8c0fff830ae0ff5c1cf281b10e"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"4dae31c5ea2ea2bc02f024467b9b0f03b016249c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for fip in self.neutron_cli.fip_get_all():"},{"line_number":69,"context_line":"            status \u003d self._get_status_id(fip[\u0027status\u0027])"},{"line_number":70,"context_line":"            if status \u003d\u003d -1:"},{"line_number":71,"context_line":"                LOG.warn(_LW(\"Skipping IP ADDRESS: %s\") %"},{"line_number":72,"context_line":"                         fip[\u0027floating_ip_address\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_61d29002","line":69,"in_reply_to":"9a68dd71_7dab121e","updated":"2016-01-21 15:51:01.000000000","message":"The status could be \"DOWN\" here. Which really means the fip not usable/ext-net unreachable. I think we should skip if we get that state. No reason to bill a resource thats down? Hence the staus lookup.","commit_id":"9686749eced25b8c0fff830ae0ff5c1cf281b10e"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"bf9d9c26185a7577946624130b9099b612b6db02","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for fip in self.neutron_cli.fip_get_all():"},{"line_number":69,"context_line":"            status \u003d self._get_status_id(fip[\u0027status\u0027])"},{"line_number":70,"context_line":"            if status \u003d\u003d -1:"},{"line_number":71,"context_line":"                LOG.warn(_LW(\"Skipping IP ADDRESS: %s\") %"},{"line_number":72,"context_line":"                         fip[\u0027floating_ip_address\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_44c0ba2a","line":69,"in_reply_to":"9a68dd71_846472e5","updated":"2016-01-21 16:03:37.000000000","message":"yea i understand, I was just trying to get your opinion on this status. we follow this status pattern for all other resources currently. I\u0027ll check if down has any value in tracking other than fip being mis configured. I\u0027m fine with the one-liner btw.","commit_id":"9686749eced25b8c0fff830ae0ff5c1cf281b10e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"c8eaef76a797abaf95ef1ea4d68b40cf452f1111","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        for fip in self.neutron_cli.fip_get_all():"},{"line_number":69,"context_line":"            status \u003d self._get_status_id(fip[\u0027status\u0027])"},{"line_number":70,"context_line":"            if status \u003d\u003d -1:"},{"line_number":71,"context_line":"                LOG.warn(_LW(\"Skipping IP ADDRESS: %s\") %"},{"line_number":72,"context_line":"                         fip[\u0027floating_ip_address\u0027])"},{"line_number":73,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_5d672e25","line":70,"updated":"2016-01-21 15:42:13.000000000","message":"if status is None:","commit_id":"9686749eced25b8c0fff830ae0ff5c1cf281b10e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"c8eaef76a797abaf95ef1ea4d68b40cf452f1111","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            status \u003d self._get_status_id(fip[\u0027status\u0027])"},{"line_number":70,"context_line":"            if status \u003d\u003d -1:"},{"line_number":71,"context_line":"                LOG.warn(_LW(\"Skipping IP ADDRESS: %s\") %"},{"line_number":72,"context_line":"                         fip[\u0027floating_ip_address\u0027])"},{"line_number":73,"context_line":"                continue"},{"line_number":74,"context_line":"            res_metadata \u003d self._form_metadata_for_fip(fip)"},{"line_number":75,"context_line":"            yield sample.Sample("}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_7d9472e1","line":72,"updated":"2016-01-21 15:42:13.000000000","message":"you should say why you are skipping to help the operator here","commit_id":"9686749eced25b8c0fff830ae0ff5c1cf281b10e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4bb2d3c3452f496987ba9ba6314664cd956f732c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        for fip in self.neutron_cli.fip_get_all():"},{"line_number":64,"context_line":"            status \u003d self.STATUS.get(fip[\u0027status\u0027].lower())"},{"line_number":65,"context_line":"            if status is None:"},{"line_number":66,"context_line":"                LOG.warn(_LW(\"Invalid status, skipping IP ADDRESS %s\") %"},{"line_number":67,"context_line":"                         fip[\u0027floating_ip_address\u0027])"},{"line_number":68,"context_line":"                continue"},{"line_number":69,"context_line":"            res_metadata \u003d self._form_metadata_for_fip(fip)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_6ab02544","line":66,"updated":"2016-01-21 16:29:13.000000000","message":"address lower :)","commit_id":"7e679319aecb6d2dce96c0cb76a464bf1cb7a734"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"2cd5d6d9874e3bee2f734f947554e42dcb9fb123","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        for fip in self.neutron_cli.fip_get_all():"},{"line_number":64,"context_line":"            status \u003d self.STATUS.get(fip[\u0027status\u0027].lower())"},{"line_number":65,"context_line":"            if status is None:"},{"line_number":66,"context_line":"                LOG.warn(_LW(\"Invalid status, skipping IP ADDRESS %s\") %"},{"line_number":67,"context_line":"                         fip[\u0027floating_ip_address\u0027])"},{"line_number":68,"context_line":"                continue"},{"line_number":69,"context_line":"            res_metadata \u003d self._form_metadata_for_fip(fip)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_35b5ae30","line":66,"in_reply_to":"9a68dd71_6ab02544","updated":"2016-01-21 16:43:48.000000000","message":"Done","commit_id":"7e679319aecb6d2dce96c0cb76a464bf1cb7a734"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4bb2d3c3452f496987ba9ba6314664cd956f732c","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                name\u003d\u0027ip.floating\u0027,"},{"line_number":72,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":73,"context_line":"                unit\u003d\u0027ip\u0027,"},{"line_number":74,"context_line":"                volume\u003dstatus,"},{"line_number":75,"context_line":"                user_id\u003dfip.get(\u0027user_id\u0027, None),"},{"line_number":76,"context_line":"                project_id\u003dfip[\u0027tenant_id\u0027],"},{"line_number":77,"context_line":"                resource_id\u003dfip[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a68dd71_6adee56e","line":74,"updated":"2016-01-21 16:29:13.000000000","message":"I\u0027m not sure it\u0027s a good idea. Before you could probably count IP, now it\u0027s difficult. But well. It\u0027s not metering anyway, it\u0027s more monitoring.","commit_id":"7e679319aecb6d2dce96c0cb76a464bf1cb7a734"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1abdf72d2d005cf3e8cc72b7248494aa64b2589b","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":73,"context_line":"                unit\u003d\u0027ip\u0027,"},{"line_number":74,"context_line":"                volume\u003dstatus,"},{"line_number":75,"context_line":"                user_id\u003dfip.get(\u0027user_id\u0027, None),"},{"line_number":76,"context_line":"                project_id\u003dfip[\u0027tenant_id\u0027],"},{"line_number":77,"context_line":"                resource_id\u003dfip[\u0027id\u0027],"},{"line_number":78,"context_line":"                timestamp\u003dtimeutils.utcnow().isoformat(),"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_14489e5a","line":75,"updated":"2016-01-21 22:02:04.000000000","message":"None is implied","commit_id":"0c513f640bb09d1a04c912ac0cfd18dcbc2b4acb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"bdfe244a6b6a2b6ebf8248e7c0d8ca7b6c7569da","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"cfg.CONF.import_group(\u0027service_types\u0027, \u0027ceilometer.neutron_client\u0027)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class FloatingIPPollster(plugin_base.PollsterBase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_bad17959","line":30,"updated":"2016-01-21 22:40:32.000000000","message":"i don\u0027t think you need this but oh well","commit_id":"1f9f4e1072a5e5037b93734bafcc65e4211eb19f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"f1289f56e31a48d4f52af8b3182270cc22936a7f","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        for fip in self.neutron_cli.fip_get_all():"},{"line_number":64,"context_line":"            status \u003d self.STATUS.get(fip[\u0027status\u0027].lower())"},{"line_number":65,"context_line":"            if status is None:"},{"line_number":66,"context_line":"                LOG.warn(_LW(\"Invalid status, skipping IP address %s\") %"},{"line_number":67,"context_line":"                         fip[\u0027floating_ip_address\u0027])"},{"line_number":68,"context_line":"                continue"},{"line_number":69,"context_line":"            res_metadata \u003d self._form_metadata_for_fip(fip)"},{"line_number":70,"context_line":"            yield sample.Sample("}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_6327d964","line":67,"range":{"start_line":66,"start_character":16,"end_line":67,"end_character":52},"updated":"2016-01-22 02:58:44.000000000","message":"according to previous review comments, it could be \"DOWN\" status here, is it better to just skip ? at least, I think it is better to log the skipped \"fip[\u0027status\u0027]\" in the log message.","commit_id":"1f9f4e1072a5e5037b93734bafcc65e4211eb19f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"f1289f56e31a48d4f52af8b3182270cc22936a7f","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                name\u003d\u0027ip.floating\u0027,"},{"line_number":72,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":73,"context_line":"                unit\u003d\u0027ip\u0027,"},{"line_number":74,"context_line":"                volume\u003dstatus,"},{"line_number":75,"context_line":"                user_id\u003dfip.get(\u0027user_id\u0027),"},{"line_number":76,"context_line":"                project_id\u003dfip[\u0027tenant_id\u0027],"},{"line_number":77,"context_line":"                resource_id\u003dfip[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_03ee1dec","line":74,"range":{"start_line":74,"start_character":16,"end_line":74,"end_character":30},"updated":"2016-01-22 02:58:44.000000000","message":"I am ok with this, but still think the meaning of volume is obscure :(, maybe it should more explicitly explain in doc or a properer meter name than \u0027ip.floating\u0027.","commit_id":"1f9f4e1072a5e5037b93734bafcc65e4211eb19f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"f01057f32ddabaae02fc04e1c0a0ed412fd78b3d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                name\u003d\u0027ip.floating\u0027,"},{"line_number":72,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":73,"context_line":"                unit\u003d\u0027ip\u0027,"},{"line_number":74,"context_line":"                volume\u003dstatus,"},{"line_number":75,"context_line":"                user_id\u003dfip.get(\u0027user_id\u0027),"},{"line_number":76,"context_line":"                project_id\u003dfip[\u0027tenant_id\u0027],"},{"line_number":77,"context_line":"                resource_id\u003dfip[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_06ace1eb","line":74,"range":{"start_line":74,"start_character":16,"end_line":74,"end_character":30},"in_reply_to":"9a68dd71_03ee1dec","updated":"2016-01-22 09:03:09.000000000","message":"yes it is, but i think it\u0027s a problem with such pollsters anyway, so well…","commit_id":"1f9f4e1072a5e5037b93734bafcc65e4211eb19f"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"dc088a1c77efc464b647719199dfd9fb06514a41","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                name\u003d\u0027ip.floating\u0027,"},{"line_number":72,"context_line":"                type\u003dsample.TYPE_GAUGE,"},{"line_number":73,"context_line":"                unit\u003d\u0027ip\u0027,"},{"line_number":74,"context_line":"                volume\u003dstatus,"},{"line_number":75,"context_line":"                user_id\u003dfip.get(\u0027user_id\u0027),"},{"line_number":76,"context_line":"                project_id\u003dfip[\u0027tenant_id\u0027],"},{"line_number":77,"context_line":"                resource_id\u003dfip[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_800c2cee","line":74,"range":{"start_line":74,"start_character":16,"end_line":74,"end_character":30},"in_reply_to":"9a68dd71_06ace1eb","updated":"2016-01-22 12:38:03.000000000","message":"event pollsters? next cycle? or just data dump pollster and notification agent forms them into sample/event/blah.","commit_id":"1f9f4e1072a5e5037b93734bafcc65e4211eb19f"}],"ceilometer/neutron_client.py":[{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c70a2c9dba8c460d71842b290f69998b67696a64","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.client \u003d clientv20.Client(**params)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @logged"},{"line_number":69,"context_line":"    def network_get_all(self):"},{"line_number":70,"context_line":"        \"\"\"Returns all networks.\"\"\""},{"line_number":71,"context_line":"        resp \u003d self.client.list_networks()"},{"line_number":72,"context_line":"        return resp.get(\u0027networks\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_e42c4e4c","line":69,"range":{"start_line":69,"start_character":8,"end_line":69,"end_character":30},"updated":"2016-01-21 16:00:39.000000000","message":"why need this ?","commit_id":"45e32f48e588bbefe9aaa465fbe0d82507cd802f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"c8eaef76a797abaf95ef1ea4d68b40cf452f1111","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @logged"},{"line_number":124,"context_line":"    def fip_get_all(self):"},{"line_number":125,"context_line":"        fips \u003d self.client.list_floatingips()[\u0027floatingips\u0027]"},{"line_number":126,"context_line":"        return fips"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_3d191a89","line":125,"updated":"2016-01-21 15:42:13.000000000","message":"return self.client.…","commit_id":"9686749eced25b8c0fff830ae0ff5c1cf281b10e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1abdf72d2d005cf3e8cc72b7248494aa64b2589b","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.client \u003d clientv20.Client(**params)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @logged"},{"line_number":69,"context_line":"    def network_get_all(self):"},{"line_number":70,"context_line":"        \"\"\"Returns all networks.\"\"\""},{"line_number":71,"context_line":"        resp \u003d self.client.list_networks()"},{"line_number":72,"context_line":"        return resp.get(\u0027networks\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_71848cd3","line":69,"updated":"2016-01-21 22:02:04.000000000","message":"not used","commit_id":"0c513f640bb09d1a04c912ac0cfd18dcbc2b4acb"}],"ceilometer/tests/unit/network/test_floating_ip.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1abdf72d2d005cf3e8cc72b7248494aa64b2589b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    @mock.patch(\u0027ceilometer.pipeline.setup_pipeline\u0027, mock.MagicMock())"},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(_BaseTestFloatingIPPollster, self).setUp()"},{"line_number":34,"context_line":"        self.addCleanup(mock.patch.stopall)"},{"line_number":35,"context_line":"        self.context \u003d context.get_admin_context()"},{"line_number":36,"context_line":"        self.manager \u003d manager.AgentManager()"},{"line_number":37,"context_line":"        plugin_base._get_keystone \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_b42d1248","line":34,"updated":"2016-01-21 22:02:04.000000000","message":"what\u0027s this for?","commit_id":"0c513f640bb09d1a04c912ac0cfd18dcbc2b4acb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1abdf72d2d005cf3e8cc72b7248494aa64b2589b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(_BaseTestFloatingIPPollster, self).setUp()"},{"line_number":34,"context_line":"        self.addCleanup(mock.patch.stopall)"},{"line_number":35,"context_line":"        self.context \u003d context.get_admin_context()"},{"line_number":36,"context_line":"        self.manager \u003d manager.AgentManager()"},{"line_number":37,"context_line":"        plugin_base._get_keystone \u003d mock.Mock()"},{"line_number":38,"context_line":"        catalog \u003d (plugin_base._get_keystone.session.auth.get_access."}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_74423a12","line":35,"updated":"2016-01-21 22:02:04.000000000","message":"not used anywhere","commit_id":"0c513f640bb09d1a04c912ac0cfd18dcbc2b4acb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1abdf72d2d005cf3e8cc72b7248494aa64b2589b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        self.context \u003d context.get_admin_context()"},{"line_number":36,"context_line":"        self.manager \u003d manager.AgentManager()"},{"line_number":37,"context_line":"        plugin_base._get_keystone \u003d mock.Mock()"},{"line_number":38,"context_line":"        catalog \u003d (plugin_base._get_keystone.session.auth.get_access."},{"line_number":39,"context_line":"                   return_value.service_catalog)"},{"line_number":40,"context_line":"        catalog.get_endpoints \u003d mock.MagicMock("},{"line_number":41,"context_line":"            return_value\u003d{\u0027network\u0027: mock.ANY})"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_7459dafd","line":38,"updated":"2016-01-21 22:02:04.000000000","message":"is this used anywhere?","commit_id":"0c513f640bb09d1a04c912ac0cfd18dcbc2b4acb"}],"releasenotes/notes/fix-floatingip-pollster-f5172060c626b19e.yaml":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5972bb5bd3a83b5bfbfc1ebf86f472f9c477329f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  -  Patch was added to fix the broken floatingip pollster"},{"line_number":4,"context_line":"     that polled data from nova api. But since the nova api"},{"line_number":5,"context_line":"     filtered the data by tenant, ceilometer was not getting"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9a68dd71_1fe2f79f","line":2,"updated":"2016-01-21 22:33:12.000000000","message":"add bug link \n\n[`bug 1536338 \u003chttps://bugs.launchpad.net/ceilometer/+bug/1536338\u003e`_]","commit_id":"0919255f1a4d0eb14c7661fb23231bbbb3b4789c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5972bb5bd3a83b5bfbfc1ebf86f472f9c477329f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  -  Patch was added to fix the broken floatingip pollster"},{"line_number":4,"context_line":"     that polled data from nova api. But since the nova api"},{"line_number":5,"context_line":"     filtered the data by tenant, ceilometer was not getting"},{"line_number":6,"context_line":"     any data back. The fix chnages the pollster to use the"},{"line_number":7,"context_line":"     neutron api instead and get the floating ip info."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9a68dd71_9fd587ba","line":4,"updated":"2016-01-21 22:33:12.000000000","message":"s/api. But/api, but","commit_id":"0919255f1a4d0eb14c7661fb23231bbbb3b4789c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5972bb5bd3a83b5bfbfc1ebf86f472f9c477329f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  -  Patch was added to fix the broken floatingip pollster"},{"line_number":4,"context_line":"     that polled data from nova api. But since the nova api"},{"line_number":5,"context_line":"     filtered the data by tenant, ceilometer was not getting"},{"line_number":6,"context_line":"     any data back. The fix chnages the pollster to use the"},{"line_number":7,"context_line":"     neutron api instead and get the floating ip info."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9a68dd71_bfc88b23","line":6,"updated":"2016-01-21 22:33:12.000000000","message":"s/chnages/changes/","commit_id":"0919255f1a4d0eb14c7661fb23231bbbb3b4789c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5972bb5bd3a83b5bfbfc1ebf86f472f9c477329f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"     that polled data from nova api. But since the nova api"},{"line_number":5,"context_line":"     filtered the data by tenant, ceilometer was not getting"},{"line_number":6,"context_line":"     any data back. The fix chnages the pollster to use the"},{"line_number":7,"context_line":"     neutron api instead and get the floating ip info."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9a68dd71_7fd213d4","line":7,"updated":"2016-01-21 22:33:12.000000000","message":"s/and/to/","commit_id":"0919255f1a4d0eb14c7661fb23231bbbb3b4789c"}]}
