)]}'
{"releasenotes/notes/add-extra-apis-to-volume-v3-services-client-bf9b235cf5a611fe.yaml":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"6594ebfd7f404ab9aec3f3e17e1734a28d2287b7","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``enable_service``, ``disable_service`` , ``disable_log_reason``,"},{"line_number":5,"context_line":"    ``freeze_host`` and ``thaw_host``API endpoints to volume v3"},{"line_number":6,"context_line":"    ``services_client``."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"5f7c97a3_fc4558b5","line":5,"range":{"start_line":5,"start_character":35,"end_line":5,"end_character":37},"updated":"2018-06-19 02:09:59.000000000","message":"missing space between ticks and API","commit_id":"1a2c7446c601fceea9b4b37763755dc1b16bd1a1"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"a307fb6ebe41a0d865e8798a7d285cee0750fbbf","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``enable_service``, ``disable_service`` , ``disable_log_reason``,"},{"line_number":5,"context_line":"    ``freeze_host`` and ``thaw_host``API endpoints to volume v3"},{"line_number":6,"context_line":"    ``services_client``."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"5f7c97a3_d59e2f68","line":5,"range":{"start_line":5,"start_character":35,"end_line":5,"end_character":37},"in_reply_to":"5f7c97a3_fc4558b5","updated":"2018-06-19 04:45:34.000000000","message":"Done","commit_id":"1a2c7446c601fceea9b4b37763755dc1b16bd1a1"}],"tempest/api/volume/admin/test_volume_services_negative.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"f625b554889a1c68a2f0257ecf4eb4722009b2dc","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    @classmethod"},{"line_number":25,"context_line":"    def resource_setup(cls):"},{"line_number":26,"context_line":"        super(VolumeServicesNegativeTest, cls).resource_setup()"},{"line_number":27,"context_line":"        cls.services \u003d (cls.admin_volume_services_client.list_services()"},{"line_number":28,"context_line":"                        [\u0027services\u0027])"},{"line_number":29,"context_line":"        cls.host \u003d cls.services[0][\u0027host\u0027]"},{"line_number":30,"context_line":"        cls.binary \u003d cls.services[0][\u0027binary\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_5f99531d","line":27,"range":{"start_line":27,"start_character":23,"end_line":27,"end_character":24},"updated":"2017-10-10 07:52:35.000000000","message":"nit: bracket is not recommended","commit_id":"1d7bdfa883b5002018ba37fb178f96429e0e8c59"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"99ec6ae9d7d46f6e40cdbf7b2612e583a0bce060","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    @classmethod"},{"line_number":25,"context_line":"    def resource_setup(cls):"},{"line_number":26,"context_line":"        super(VolumeServicesNegativeTest, cls).resource_setup()"},{"line_number":27,"context_line":"        cls.services \u003d (cls.admin_volume_services_client.list_services()"},{"line_number":28,"context_line":"                        [\u0027services\u0027])"},{"line_number":29,"context_line":"        cls.host \u003d cls.services[0][\u0027host\u0027]"},{"line_number":30,"context_line":"        cls.binary \u003d cls.services[0][\u0027binary\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_a294a7e9","line":27,"range":{"start_line":27,"start_character":23,"end_line":27,"end_character":24},"in_reply_to":"5f4e5783_5f99531d","updated":"2017-10-10 09:49:26.000000000","message":"Done","commit_id":"1d7bdfa883b5002018ba37fb178f96429e0e8c59"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"f625b554889a1c68a2f0257ecf4eb4722009b2dc","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        fake_host \u003d data_utils.rand_name(self.__class__.__name__ + \u0027-host\u0027)"},{"line_number":36,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":37,"context_line":"                          self.admin_volume_services_client.enable_service,"},{"line_number":38,"context_line":"                          host\u003dfake_host, binary\u003dself.binary)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":41,"context_line":"    @decorators.idempotent_id(\u0027c571f179-c6e6-4c50-a0ab-368b628a8ac1\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_1f719be1","line":38,"range":{"start_line":38,"start_character":26,"end_line":38,"end_character":40},"updated":"2017-10-10 07:52:35.000000000","message":"maybe you can directly use host\u003d\u0027invalid_host\u0027 which is simpler","commit_id":"1d7bdfa883b5002018ba37fb178f96429e0e8c59"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"99ec6ae9d7d46f6e40cdbf7b2612e583a0bce060","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        fake_host \u003d data_utils.rand_name(self.__class__.__name__ + \u0027-host\u0027)"},{"line_number":36,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":37,"context_line":"                          self.admin_volume_services_client.enable_service,"},{"line_number":38,"context_line":"                          host\u003dfake_host, binary\u003dself.binary)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":41,"context_line":"    @decorators.idempotent_id(\u0027c571f179-c6e6-4c50-a0ab-368b628a8ac1\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_2288b7c4","line":38,"range":{"start_line":38,"start_character":26,"end_line":38,"end_character":40},"in_reply_to":"5f4e5783_1f719be1","updated":"2017-10-10 09:49:26.000000000","message":"Done, thanks","commit_id":"1d7bdfa883b5002018ba37fb178f96429e0e8c59"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"f625b554889a1c68a2f0257ecf4eb4722009b2dc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        fake_binary \u003d data_utils.rand_name(self.__class__.__name__ + \u0027-binary\u0027)"},{"line_number":44,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":45,"context_line":"                          self.admin_volume_services_client.disable_service,"},{"line_number":46,"context_line":"                          host\u003dself.host, binary\u003dfake_binary)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":49,"context_line":"    @decorators.idempotent_id(\u002777767b36-5e8f-4c68-a0b5-2308cc21ec64\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_7f4bef86","line":46,"range":{"start_line":46,"start_character":42,"end_line":46,"end_character":60},"updated":"2017-10-10 07:52:35.000000000","message":"ditto","commit_id":"1d7bdfa883b5002018ba37fb178f96429e0e8c59"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"99ec6ae9d7d46f6e40cdbf7b2612e583a0bce060","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        fake_binary \u003d data_utils.rand_name(self.__class__.__name__ + \u0027-binary\u0027)"},{"line_number":44,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":45,"context_line":"                          self.admin_volume_services_client.disable_service,"},{"line_number":46,"context_line":"                          host\u003dself.host, binary\u003dfake_binary)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":49,"context_line":"    @decorators.idempotent_id(\u002777767b36-5e8f-4c68-a0b5-2308cc21ec64\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_e2917ff3","line":46,"range":{"start_line":46,"start_character":42,"end_line":46,"end_character":60},"in_reply_to":"5f4e5783_7f4bef86","updated":"2017-10-10 09:49:26.000000000","message":"Done","commit_id":"1d7bdfa883b5002018ba37fb178f96429e0e8c59"}],"tempest/lib/services/volume/v2/services_client.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"1dec714882a6350e4fb100163361c5b0ecf265dc","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def enable_service(self, **kwargs):"},{"line_number":37,"context_line":"        \"\"\"Enable service on a host."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        TODO(jeremyZ): Current api-site doesn\u0027t contain this API description."},{"line_number":40,"context_line":"        After fixing the api-site, we need to fix here also for putting the"},{"line_number":41,"context_line":"        link to api-site."},{"line_number":42,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_3869ed8a","line":39,"updated":"2017-09-01 20:49:14.000000000","message":"Looks like the docs are now available: https://developer.openstack.org/api-ref/block-storage/v3/index.html#services-os-services","commit_id":"9bb95f4b1e44a61fb40014c6e9bc082be99b2bf6"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"489866afb6c0de611d89d2bafb7b356ae9931ef8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def enable_service(self, **kwargs):"},{"line_number":37,"context_line":"        \"\"\"Enable service on a host."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        TODO(jeremyZ): Current api-site doesn\u0027t contain this API description."},{"line_number":40,"context_line":"        After fixing the api-site, we need to fix here also for putting the"},{"line_number":41,"context_line":"        link to api-site."},{"line_number":42,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_cd39fef2","line":39,"in_reply_to":"7f287b81_3869ed8a","updated":"2017-09-03 04:08:32.000000000","message":"Yeah, the api-ref for the services v3 APIs is available now. But I\u0027m not sure whether using the v3 URL is suitable in this place, it could be a reference for v2 services APIs, :)","commit_id":"9bb95f4b1e44a61fb40014c6e9bc082be99b2bf6"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"f625b554889a1c68a2f0257ecf4eb4722009b2dc","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def disable_log_reason(self, **kwargs):"},{"line_number":63,"context_line":"        \"\"\"Disable scheduling for a volume service and log reason."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        TODO(jeremyZ): Current api-site doesn\u0027t contain this API description."},{"line_number":66,"context_line":"        After fixing the api-site, we need to fix here also for putting the"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_31136b10","line":63,"range":{"start_line":63,"start_character":11,"end_line":63,"end_character":66},"updated":"2017-10-10 07:52:35.000000000","message":"this seems not the same as that in v3, \nhttps://developer.openstack.org/api-ref/block-storage/v3/index.html#log-disabled-cinder-service-information\nwhich doesn\u0027t mention \"Disable scheduling for a volume service\" but only mention \"Log Disabled Cinder Service Information\"\ninstead.\nNow https://review.openstack.org/#/c/489920/ is abandoned, so I wonder when can v2 api doc be available?","commit_id":"1d7bdfa883b5002018ba37fb178f96429e0e8c59"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"99ec6ae9d7d46f6e40cdbf7b2612e583a0bce060","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def disable_log_reason(self, **kwargs):"},{"line_number":63,"context_line":"        \"\"\"Disable scheduling for a volume service and log reason."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        TODO(jeremyZ): Current api-site doesn\u0027t contain this API description."},{"line_number":66,"context_line":"        After fixing the api-site, we need to fix here also for putting the"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_bd8dea7c","line":63,"range":{"start_line":63,"start_character":11,"end_line":63,"end_character":66},"in_reply_to":"5f4e5783_31136b10","updated":"2017-10-10 09:49:26.000000000","message":"From the source code:\nhttps://github.com/openstack/cinder/blob/master/cinder/api/contrib/services.py#L217, we can find that \u0027disable\u0027 and \u0027disable-log-reason\u0027 are both DB actions. \u0027disable-log-reason\u0027 not only act \u0027disable\u0027, but also update extension attribute \u0027disabled_reason\u0027.\n\nI didn\u0027t notice that https://review.openstack.org/#/c/489920/ had been abandoned, I would like to go on with this patch.","commit_id":"1d7bdfa883b5002018ba37fb178f96429e0e8c59"}],"tempest/lib/services/volume/v3/services_client.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e29ba13c49625751d19518ae34e0175c87b1dec6","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \"\"\"Client class to send CRUD Volume Services API requests\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def list_services(self, **params):"},{"line_number":26,"context_line":"        \"\"\"List all cinder services."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":29,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_3eb3b20c","line":26,"range":{"start_line":26,"start_character":20,"end_line":26,"end_character":26},"updated":"2018-06-19 16:40:49.000000000","message":"Cinder","commit_id":"ef4e6837e831323150b1a1625a269d3c25cee062"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"da63194a1ca23f217438a9cd3fa1778f58652466","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \"\"\"Client class to send CRUD Volume Services API requests\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def list_services(self, **params):"},{"line_number":26,"context_line":"        \"\"\"List all cinder services."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":29,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_b697e245","line":26,"range":{"start_line":26,"start_character":20,"end_line":26,"end_character":26},"in_reply_to":"5f7c97a3_3eb3b20c","updated":"2018-06-20 01:35:04.000000000","message":"Done","commit_id":"ef4e6837e831323150b1a1625a269d3c25cee062"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e29ba13c49625751d19518ae34e0175c87b1dec6","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def disable_log_reason(self, **kwargs):"},{"line_number":68,"context_line":"        \"\"\"Disable scheduling for a volume service and log disabled reason."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":71,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_dec15e50","line":68,"range":{"start_line":68,"start_character":11,"end_line":68,"end_character":49},"updated":"2018-06-19 16:40:49.000000000","message":"Does this actually disable scheduling? Or does it simply log the reason for the disabling?","commit_id":"ef4e6837e831323150b1a1625a269d3c25cee062"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"da63194a1ca23f217438a9cd3fa1778f58652466","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def disable_log_reason(self, **kwargs):"},{"line_number":68,"context_line":"        \"\"\"Disable scheduling for a volume service and log disabled reason."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":71,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_36ac329e","line":68,"range":{"start_line":68,"start_character":11,"end_line":68,"end_character":49},"in_reply_to":"5f7c97a3_dec15e50","updated":"2018-06-20 01:35:04.000000000","message":"Yes, it will actually disable scheduling, the Cinder service status will be changed to \u0027disabled\u0027, and meanwhile the disabled reason will be record.","commit_id":"ef4e6837e831323150b1a1625a269d3c25cee062"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e29ba13c49625751d19518ae34e0175c87b1dec6","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def freeze_host(self, **kwargs):"},{"line_number":81,"context_line":"        \"\"\"Freeze a cinder backend host."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":84,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_7e9e0a6a","line":81,"range":{"start_line":81,"start_character":20,"end_line":81,"end_character":26},"updated":"2018-06-19 16:40:49.000000000","message":"Cinder","commit_id":"ef4e6837e831323150b1a1625a269d3c25cee062"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"da63194a1ca23f217438a9cd3fa1778f58652466","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def freeze_host(self, **kwargs):"},{"line_number":81,"context_line":"        \"\"\"Freeze a cinder backend host."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":84,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_768b8a1d","line":81,"range":{"start_line":81,"start_character":20,"end_line":81,"end_character":26},"in_reply_to":"5f7c97a3_7e9e0a6a","updated":"2018-06-20 01:35:04.000000000","message":"Done","commit_id":"ef4e6837e831323150b1a1625a269d3c25cee062"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e29ba13c49625751d19518ae34e0175c87b1dec6","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        return rest_client.ResponseBody(resp)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def thaw_host(self, **kwargs):"},{"line_number":93,"context_line":"        \"\"\"Thaw a cinder backend host."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":96,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_9ea1a6ab","line":93,"range":{"start_line":93,"start_character":18,"end_line":93,"end_character":24},"updated":"2018-06-19 16:40:49.000000000","message":"Cinder","commit_id":"ef4e6837e831323150b1a1625a269d3c25cee062"},{"author":{"_account_id":23081,"name":"Jeremy Zhang","email":"zhangjun_inspur@163.com","username":"jeremy.zhang"},"change_message_id":"da63194a1ca23f217438a9cd3fa1778f58652466","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        return rest_client.ResponseBody(resp)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def thaw_host(self, **kwargs):"},{"line_number":93,"context_line":"        \"\"\"Thaw a cinder backend host."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":96,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5f7c97a3_16825601","line":93,"range":{"start_line":93,"start_character":18,"end_line":93,"end_character":24},"in_reply_to":"5f7c97a3_9ea1a6ab","updated":"2018-06-20 01:35:04.000000000","message":"Done","commit_id":"ef4e6837e831323150b1a1625a269d3c25cee062"}]}
