)]}'
{"ceilometer/api/controllers/v2/meters.py":[{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"df1ba7e3240bdebc374bae39d6eec55df7272dc5","unresolved":false,"context_lines":[{"line_number":481,"context_line":"    def get_all(self, q\u003dNone, limit\u003dNone, unique\u003dNone):"},{"line_number":482,"context_line":"        \"\"\"Return all known meters, based on the data recorded so far."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        :param q: Filter rules for the meters to be returned."},{"line_number":485,"context_line":"        \"\"\""},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        rbac.enforce(\u0027get_meters\u0027, pecan.request)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_81bcfa06","line":484,"updated":"2015-12-21 03:42:10.000000000","message":"it is better to add description about the parameters.","commit_id":"92e50821fa6a27496577af4ccc1d939780c11877"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"6fda1c034c328f0b0fdd79a5c8c410be2f4f871c","unresolved":false,"context_lines":[{"line_number":482,"context_line":"        \"\"\"Return all known meters, based on the data recorded so far."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        :param q: Filter rules for the meters to be returned."},{"line_number":485,"context_line":"        :param unique: flag to indicate unique meters to be returned."},{"line_number":486,"context_line":"        \"\"\""},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        rbac.enforce(\u0027get_meters\u0027, pecan.request)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_be0964df","line":485,"updated":"2016-01-22 09:31:33.000000000","message":"When I test this functionality with url like:\n\n/v2/meters?unique\u003dFalse\u0027 \n\nno matter what value of \"unique\" taken, the value of var unique in get_all() method will be True, it seems will get bool value from a string, so if we specify a value of unique in request url, the value will always be True, except without unique specified. please check it.\n\nyou can use strutils.bool_from_string() method, to convert the string value to bool value. see the \"direct\" parameter of post() method, L297","commit_id":"035b5df82cd4a1662e8ce390073280865fc3f2aa"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"fc0203f3831167c8473eb081878db1473e741d22","unresolved":false,"context_lines":[{"line_number":477,"context_line":"    def _lookup(self, meter_name, *remainder):"},{"line_number":478,"context_line":"        return MeterController(meter_name), remainder"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    @wsme_pecan.wsexpose([Meter], [base.Query], int, bool)"},{"line_number":481,"context_line":"    def get_all(self, q\u003dNone, limit\u003dNone, unique\u003dFalse):"},{"line_number":482,"context_line":"        \"\"\"Return all known meters, based on the data recorded so far."},{"line_number":483,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_28fc076f","line":480,"range":{"start_line":480,"start_character":53,"end_line":480,"end_character":57},"updated":"2016-01-25 01:39:32.000000000","message":"no, you need to change bool type to str, and change this unique parameter to \"\", otherwise the input value of unique will be auto-converted to bool from string, the problem remains","commit_id":"bc7a30c1ac5ea4c64bcd637c678c53d905134abf"}],"ceilometer/storage/base.py":[{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"6fda1c034c328f0b0fdd79a5c8c410be2f4f871c","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    @staticmethod"},{"line_number":196,"context_line":"    def get_meters(user\u003dNone, project\u003dNone, resource\u003dNone, source\u003dNone,"},{"line_number":197,"context_line":"                   metaquery\u003dNone, limit\u003dNone, unique\u003dNone):"},{"line_number":198,"context_line":"        \"\"\"Return an iterable of model.Meter instances."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        Iterable items containing meter information."}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_9ed4a020","line":197,"range":{"start_line":197,"start_character":54,"end_line":197,"end_character":58},"updated":"2016-01-22 09:31:33.000000000","message":"False as default","commit_id":"035b5df82cd4a1662e8ce390073280865fc3f2aa"}],"ceilometer/storage/impl_hbase.py":[{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"562041ea8af327c30d8ae5a4f0a6fb894b935624","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                    if limit and len(result) \u003e\u003d limit:"},{"line_number":278,"context_line":"                        return"},{"line_number":279,"context_line":"                    _m_rts, m_source, name, m_type, unit \u003d m[0]"},{"line_number":280,"context_line":"                    if unique:"},{"line_number":281,"context_line":"                        meter_dict \u003d {\u0027name\u0027: name,"},{"line_number":282,"context_line":"                                      \u0027type\u0027: m_type,"},{"line_number":283,"context_line":"                                      \u0027unit\u0027: unit,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_ce05a1c2","line":280,"updated":"2016-01-13 08:47:40.000000000","message":"I think it\u0027s needed to set \u0027source\u0027: None","commit_id":"c6467e2b72feb7cad9360275b1242d3925a563cc"}],"ceilometer/storage/impl_sqlalchemy.py":[{"author":{"_account_id":18137,"name":"Xia Linjuan","email":"ljxiash@cn.ibm.com","username":"xialinjuan"},"change_message_id":"b350fc9085140c9bda3b601e686f263e9cb6f5e7","unresolved":false,"context_lines":[{"line_number":521,"context_line":"                models.Resource,"},{"line_number":522,"context_line":"                models.Resource.internal_id \u003d\u003d"},{"line_number":523,"context_line":"                models.Sample.resource_id).group_by("},{"line_number":524,"context_line":"                models.Sample.meter_id)"},{"line_number":525,"context_line":"        else:"},{"line_number":526,"context_line":"            subq \u003d session.query(func.max(models.Sample.id).label(\u0027id\u0027)).join("},{"line_number":527,"context_line":"                models.Resource,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_1b5dc414","line":524,"updated":"2015-12-21 11:44:56.000000000","message":"maybe if unique is true, we could only show meters regardless of resource_id, user_id,project_id.","commit_id":"92e50821fa6a27496577af4ccc1d939780c11877"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"df1ba7e3240bdebc374bae39d6eec55df7272dc5","unresolved":false,"context_lines":[{"line_number":554,"context_line":"                name\u003drow.name,"},{"line_number":555,"context_line":"                type\u003drow.type,"},{"line_number":556,"context_line":"                unit\u003drow.unit,"},{"line_number":557,"context_line":"                resource_id\u003drow.resource_id,"},{"line_number":558,"context_line":"                project_id\u003drow.project_id,"},{"line_number":559,"context_line":"                source\u003drow.source_id,"},{"line_number":560,"context_line":"                user_id\u003drow.user_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_87188a1f","line":557,"range":{"start_line":557,"start_character":16,"end_line":557,"end_character":44},"updated":"2015-12-21 03:42:10.000000000","message":"if we return only one meter item on all resources, what is the resource_id ? should we need resource_id if so ?","commit_id":"92e50821fa6a27496577af4ccc1d939780c11877"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"135c2e0e4150581fb3f03a8493e61abcdf201ade","unresolved":false,"context_lines":[{"line_number":527,"context_line":"                models.Resource,"},{"line_number":528,"context_line":"                models.Resource.internal_id \u003d\u003d"},{"line_number":529,"context_line":"                models.Sample.resource_id).group_by("},{"line_number":530,"context_line":"                models.Sample.meter_id, models.Resource.resource_id)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"        if resource:"},{"line_number":533,"context_line":"            subq \u003d subq.filter(models.Resource.resource_id \u003d\u003d resource)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_d4964b3e","line":530,"updated":"2016-01-05 13:54:59.000000000","message":"since these are pretty much exact same query, i\u0027d probably just pass in group_by attributes rather to copy/paste entire query","commit_id":"6e413ebf83cf8bb45392b1a8f47cf597e61bb911"}],"ceilometer/storage/pymongo_base.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a4340e8211185219408f6baebaea43fbfa9e0bdd","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        for r in self.db.resource.find(q):"},{"line_number":91,"context_line":"            for r_meter in r[\u0027meter\u0027]:"},{"line_number":92,"context_line":"                if unique:"},{"line_number":93,"context_line":"                    if r_meter[\u0027counter_name\u0027] in meter_names:"},{"line_number":94,"context_line":"                        continue"},{"line_number":95,"context_line":"                    else:"},{"line_number":96,"context_line":"                        meter_names.add(r_meter[\u0027counter_name\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba63e191_dd403d0a","line":93,"updated":"2016-01-18 22:53:22.000000000","message":"there is actually a meter collection as well. we should use that instead.\n\nhttps://github.com/openstack/ceilometer/blob/master/ceilometer/storage/impl_mongodb.py#L267","commit_id":"035b5df82cd4a1662e8ce390073280865fc3f2aa"},{"author":{"_account_id":13560,"name":"Rohit Jaiswal","email":"rohit.jaiswal@gmail.com","username":"rjaiswal"},"change_message_id":"69e8fa9ecb79b260137869afd8610562528c7700","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        for r in self.db.resource.find(q):"},{"line_number":91,"context_line":"            for r_meter in r[\u0027meter\u0027]:"},{"line_number":92,"context_line":"                if unique:"},{"line_number":93,"context_line":"                    if r_meter[\u0027counter_name\u0027] in meter_names:"},{"line_number":94,"context_line":"                        continue"},{"line_number":95,"context_line":"                    else:"},{"line_number":96,"context_line":"                        meter_names.add(r_meter[\u0027counter_name\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba63e191_df26bf67","line":93,"in_reply_to":"ba63e191_dd403d0a","updated":"2016-01-19 17:32:40.000000000","message":"I think thats what is happening here, the second for loop (Line 91) is iterating through the meter array in the matched resource document and then we identify the unique meter names across all resources by adding them in a set. Let me know if i missed anything.","commit_id":"035b5df82cd4a1662e8ce390073280865fc3f2aa"}]}
