)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"8f9de59d646102616877e3b352a6b2fc8f84f0f8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     astaroverov \u003castaroverov@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-03-16 13:34:38 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] OSResources should be extended to cover all scenarios"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Simple patch which extends OSResources on all available services"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3a1ff146_9454d721","line":7,"range":{"start_line":7,"start_character":50,"end_line":7,"end_character":59},"updated":"2017-03-16 11:28:04.000000000","message":"It is better to use word \"resources\"","commit_id":"06ffd2067d627ec8c7d7dff5ea9cd2db1810c010"}],"tests/ci/osresources.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"8f9de59d646102616877e3b352a6b2fc8f84f0f8","unresolved":false,"context_lines":[{"line_number":327,"context_line":"            search_opts\u003d{\"all_tenants\": True})"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"class Ceilometer(ResourceManager):"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    REQUIRED_SERVICE \u003d consts.Service.CEILOMETER"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    def list_alarms(self):"},{"line_number":335,"context_line":"        return self.client.alarms.list()"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def list_events(self):"},{"line_number":338,"context_line":"        return self.client.events.list()"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def list_event_types(self):"},{"line_number":341,"context_line":"        return self.client.event_types.list()"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    def list_event_traits(self):"},{"line_number":344,"context_line":"        result \u003d []"},{"line_number":345,"context_line":"        for event in self.client.events.list():"},{"line_number":346,"context_line":"            for trait in event.traits:"},{"line_number":347,"context_line":"                result.extend(self.client.traits.list("},{"line_number":348,"context_line":"                    event_type\u003devent.event_type,"},{"line_number":349,"context_line":"                    trait_name\u003dtrait[\"name\"]))"},{"line_number":350,"context_line":"        return result"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def list_event_trait_descriptions(self):"},{"line_number":353,"context_line":"        result \u003d []"},{"line_number":354,"context_line":"        result.extend([self.client.trait_description.list(event_type)"},{"line_number":355,"context_line":"                       for event_type in self.client.event_types.list()])"},{"line_number":356,"context_line":"        return result"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"    def list_samples(self):"},{"line_number":359,"context_line":"        return self.client.new_samples.list()"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    def list_resources(self):"},{"line_number":362,"context_line":"        return self.client.resources.list()"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    def list_meters(self):"},{"line_number":365,"context_line":"        return self.client.meters.list()"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"class Gnocchi(ResourceManager):"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    REQUIRED_SERVICE \u003d consts.Service.GNOCCHI"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"    def list_resources(self):"},{"line_number":373,"context_line":"        return self.client.resource.list()"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"class Ironic(ResourceManager):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a1ff146_cf023c09","line":373,"range":{"start_line":330,"start_character":0,"end_line":373,"end_character":42},"updated":"2017-03-16 11:28:04.000000000","message":"As far as I remember, ceilometer resources do not have a mechanism for cleanup (they have embedded cleanup), so we will always have not removed resources and it is ok.","commit_id":"06ffd2067d627ec8c7d7dff5ea9cd2db1810c010"}]}
