)]}'
{"rally/plugins/openstack/scenarios/cinder/qos_specs.py":[{"author":{"_account_id":22960,"name":"Hai Shi","email":"shihai1992@gmail.com","username":"haishi"},"change_message_id":"323c9896d6cf60aa923e1a5b6fd9786c10ddde40","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        :param set_specs_args: A dict of key/value pairs to be set"},{"line_number":70,"context_line":"        \"\"\""},{"line_number":71,"context_line":"        qos \u003d self.admin_cinder.create_qos(create_specs_args)"},{"line_number":72,"context_line":"        self.admin_cinder.set_qos(qos_id\u003dqos.id, set_specs_args\u003dset_specs_args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5ff73747_5c983469","line":72,"range":{"start_line":72,"start_character":49,"end_line":72,"end_character":78},"updated":"2017-04-23 04:19:20.000000000","message":"(You can ignore it)NOTE:It looks we can use exact arguments of specs_args.","commit_id":"7c333e7390762e8367f6da58ef38cd7428b59c6d"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"2363b9b16a75cbfa79cd404e11fd1ca22b5b3b54","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.admin_cinder.get_qos(qos.id)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"@validation.restricted_parameters(\"name\")"},{"line_number":60,"context_line":"@validation.required_services(consts.Service.CINDER)"},{"line_number":61,"context_line":"@validation.add(\"required_platform\", platform\u003d\"openstack\", admin\u003dTrue)"},{"line_number":62,"context_line":"@scenario.configure(context\u003d{\"admin_cleanup\": [\"cinder\"]},"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f044301_58ea290f","line":59,"updated":"2017-05-08 09:36:12.000000000","message":"@validation.restricted_parameters(\"name\", subdict\u003dcreate_specs_args)","commit_id":"ba1b80c33dabf12519729d5d9490dfaebd629674"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ebddc7b7671abf58bafc6c070e0d877a62a2914d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"@scenario.configure(context\u003d{\"admin_cleanup\": [\"cinder\"]},"},{"line_number":63,"context_line":"                    name\u003d\"CinderQos.create_and_set_qos\")"},{"line_number":64,"context_line":"class CreateAndSetQos(cinder_utils.CinderBasic):"},{"line_number":65,"context_line":"    def run(self, create_specs_args, set_specs_args):"},{"line_number":66,"context_line":"        \"\"\"Create a qos, then Add/Update keys in qos specs."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        :param create_specs_args: A dict of key/value pairs to create qos"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff0f0b1f_390a1226","line":65,"range":{"start_line":65,"start_character":18,"end_line":65,"end_character":35},"updated":"2017-05-18 05:58:56.000000000","message":"can we specify and document all available spec args explicitly instead of having one arg? It relates to all scenarios in this module","commit_id":"60d5f8047a737d39b74fb6d3c0330f4a6261f7fd"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"3fbb82b963b4a9ff812102c0d03f1bb55b318bca","unresolved":false,"context_lines":[{"line_number":62,"context_line":"@scenario.configure(context\u003d{\"admin_cleanup\": [\"cinder\"]},"},{"line_number":63,"context_line":"                    name\u003d\"CinderQos.create_and_set_qos\")"},{"line_number":64,"context_line":"class CreateAndSetQos(cinder_utils.CinderBasic):"},{"line_number":65,"context_line":"    def run(self, create_specs_args, set_specs_args):"},{"line_number":66,"context_line":"        \"\"\"Create a qos, then Add/Update keys in qos specs."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        :param create_specs_args: A dict of key/value pairs to create qos"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff0f0b1f_f1eb6ad9","line":65,"range":{"start_line":65,"start_character":18,"end_line":65,"end_character":35},"in_reply_to":"ff0f0b1f_390a1226","updated":"2017-05-19 05:13:27.000000000","message":"Done","commit_id":"60d5f8047a737d39b74fb6d3c0330f4a6261f7fd"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"271e06c5b5652dd06bb011e0005685bc6e39126b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"@scenario.configure(context\u003d{\"admin_cleanup\": [\"cinder\"]},"},{"line_number":28,"context_line":"                    name\u003d\"CinderQos.create_and_list_qos\")"},{"line_number":29,"context_line":"class CreateAndListQos(cinder_utils.CinderBasic):"},{"line_number":30,"context_line":"    def run(self, specs):"},{"line_number":31,"context_line":"        \"\"\"create a qos, then list all qos."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        :param specs: A dict of key/value pairs to create qos"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_bf756acd","line":30,"updated":"2017-05-22 23:57:26.000000000","message":"As Andrey comment, please use exactly arguments instead of specs.  THANKS","commit_id":"cdeaa5470ee18b13b4dffd132fcc1b635f11448e"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"140b949e6fdfdd2402b1f839abb737f4fab8a335","unresolved":false,"context_lines":[{"line_number":27,"context_line":"@scenario.configure(context\u003d{\"admin_cleanup\": [\"cinder\"]},"},{"line_number":28,"context_line":"                    name\u003d\"CinderQos.create_and_list_qos\")"},{"line_number":29,"context_line":"class CreateAndListQos(cinder_utils.CinderBasic):"},{"line_number":30,"context_line":"    def run(self, specs):"},{"line_number":31,"context_line":"        \"\"\"create a qos, then list all qos."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        :param specs: A dict of key/value pairs to create qos"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_95d8451e","line":30,"in_reply_to":"ff0f0b1f_bf756acd","updated":"2017-05-23 01:35:42.000000000","message":"I will change soon.","commit_id":"cdeaa5470ee18b13b4dffd132fcc1b635f11448e"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"271e06c5b5652dd06bb011e0005685bc6e39126b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"@scenario.configure(context\u003d{\"admin_cleanup\": [\"cinder\"]},"},{"line_number":48,"context_line":"                    name\u003d\"CinderQos.create_and_get_qos\")"},{"line_number":49,"context_line":"class CreateAndGetQos(cinder_utils.CinderBasic):"},{"line_number":50,"context_line":"    def run(self, specs):"},{"line_number":51,"context_line":"        \"\"\"Create a qos, then get details of the qos."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        :param specs: A dict of key/value pairs to create qos"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_9f7e26ad","line":50,"updated":"2017-05-22 23:57:26.000000000","message":"same here","commit_id":"cdeaa5470ee18b13b4dffd132fcc1b635f11448e"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"140b949e6fdfdd2402b1f839abb737f4fab8a335","unresolved":false,"context_lines":[{"line_number":47,"context_line":"@scenario.configure(context\u003d{\"admin_cleanup\": [\"cinder\"]},"},{"line_number":48,"context_line":"                    name\u003d\"CinderQos.create_and_get_qos\")"},{"line_number":49,"context_line":"class CreateAndGetQos(cinder_utils.CinderBasic):"},{"line_number":50,"context_line":"    def run(self, specs):"},{"line_number":51,"context_line":"        \"\"\"Create a qos, then get details of the qos."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        :param specs: A dict of key/value pairs to create qos"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_55086d90","line":50,"in_reply_to":"ff0f0b1f_9f7e26ad","updated":"2017-05-23 01:35:42.000000000","message":"same","commit_id":"cdeaa5470ee18b13b4dffd132fcc1b635f11448e"}],"rally/plugins/openstack/services/storage/block.py":[{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"2363b9b16a75cbfa79cd404e11fd1ca22b5b3b54","unresolved":false,"context_lines":[{"line_number":221,"context_line":"    def set_qos(self, qos, set_specs_args):"},{"line_number":222,"context_line":"        \"\"\"Add/Update keys in qos specs."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        :param qos_id: The instance of the :class:`QoSSpecs` to get"},{"line_number":225,"context_line":"        :param set_specs_args: A dict of key/value pairs to be set"},{"line_number":226,"context_line":"        :rtype: :class:`QoSSpecs`"},{"line_number":227,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f044301_78e28531","line":224,"updated":"2017-05-08 09:36:12.000000000","message":"please fix this param comment","commit_id":"ba1b80c33dabf12519729d5d9490dfaebd629674"}],"rally/plugins/openstack/services/storage/cinder_common.py":[{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"4a90547f7f2bd646dba7dacdb575e998cadb6a2a","unresolved":false,"context_lines":[{"line_number":524,"context_line":"        :param set_specs_args: A dict of key/value pairs to be set"},{"line_number":525,"context_line":"        :rtype: :class:`QoSSpecs`"},{"line_number":526,"context_line":"        \"\"\""},{"line_number":527,"context_line":"        return self._impl.set_qos(qos_id, set_specs_args)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":530,"context_line":"        \"\"\"Delete the given backup."}],"source_content_type":"text/x-python","patch_set":1,"id":"5ff73747_cc5377e2","line":527,"updated":"2017-04-22 05:10:12.000000000","message":"I think we need to create the struct of qos like https://github.com/openstack/rally/blob/master/rally/plugins/openstack/services/storage/block.py#L25\n\n@Andrey, how about do you think? I saw we missed the struct of qos.","commit_id":"7c333e7390762e8367f6da58ef38cd7428b59c6d"},{"author":{"_account_id":22960,"name":"Hai Shi","email":"shihai1992@gmail.com","username":"haishi"},"change_message_id":"e5c0ea4f06b02319a9a9e9bbc113f54cc1ccce2a","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        with atomic.ActionTimer(self, aname):"},{"line_number":236,"context_line":"            return self._get_client().qos_specs.get(qos_id)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    def set_qos(self, qos_id, set_specs_args):"},{"line_number":239,"context_line":"        \"\"\"Add/Update keys in qos specs."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        :param qos_id: The ID of the :class:`QoSSpecs` to get"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f044301_e0638f19","line":238,"range":{"start_line":238,"start_character":8,"end_line":238,"end_character":15},"updated":"2017-05-06 15:44:44.000000000","message":"set_qos_keys() would be more exact.","commit_id":"5feb4974183b7808563ca301ba9d21d5e4671520"},{"author":{"_account_id":22960,"name":"Hai Shi","email":"shihai1992@gmail.com","username":"haishi"},"change_message_id":"be23093353d7ff81f6f5345c9bde78b88d996ac1","unresolved":false,"context_lines":[{"line_number":555,"context_line":"        :rtype: :class: \u0027QoSSpecs\u0027"},{"line_number":556,"context_line":"        \"\"\""},{"line_number":557,"context_line":"        self._impl.set_qos(qos.id, set_specs_args)"},{"line_number":558,"context_line":"        return self._unify_qos(qos)"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":561,"context_line":"        \"\"\"Delete the given backup."}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_a4f56eef","line":558,"range":{"start_line":558,"start_character":31,"end_line":558,"end_character":34},"updated":"2017-05-22 14:08:35.000000000","message":"This instance is not the latest qos.","commit_id":"cdeaa5470ee18b13b4dffd132fcc1b635f11448e"},{"author":{"_account_id":22960,"name":"Hai Shi","email":"shihai1992@gmail.com","username":"haishi"},"change_message_id":"ca76eaf36629575b8f0d4382f5956c62e0cc3ba5","unresolved":false,"context_lines":[{"line_number":555,"context_line":"        :rtype: :class: \u0027QoSSpecs\u0027"},{"line_number":556,"context_line":"        \"\"\""},{"line_number":557,"context_line":"        self._impl.set_qos(qos.id, set_specs_args)"},{"line_number":558,"context_line":"        return self._unify_qos(qos)"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":561,"context_line":"        \"\"\"Delete the given backup."}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_d88a74bd","line":558,"range":{"start_line":558,"start_character":31,"end_line":558,"end_character":34},"in_reply_to":"ff0f0b1f_55df4d0c","updated":"2017-05-23 02:25:42.000000000","message":"looks like it should be:\nqos \u003d self._impl.set_qos(qos.id, set_specs_args)\nreturn self._unify_qos(qos)","commit_id":"cdeaa5470ee18b13b4dffd132fcc1b635f11448e"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"140b949e6fdfdd2402b1f839abb737f4fab8a335","unresolved":false,"context_lines":[{"line_number":555,"context_line":"        :rtype: :class: \u0027QoSSpecs\u0027"},{"line_number":556,"context_line":"        \"\"\""},{"line_number":557,"context_line":"        self._impl.set_qos(qos.id, set_specs_args)"},{"line_number":558,"context_line":"        return self._unify_qos(qos)"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":561,"context_line":"        \"\"\"Delete the given backup."}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_55df4d0c","line":558,"range":{"start_line":558,"start_character":31,"end_line":558,"end_character":34},"in_reply_to":"ff0f0b1f_a4f56eef","updated":"2017-05-23 01:35:42.000000000","message":"why not? qos have be updated by self._impl.set_qos(qos.id, set_specs_args).","commit_id":"cdeaa5470ee18b13b4dffd132fcc1b635f11448e"},{"author":{"_account_id":22960,"name":"Hai Shi","email":"shihai1992@gmail.com","username":"haishi"},"change_message_id":"7579898d3cdb9fe44b15a8add494e63f9719758e","unresolved":false,"context_lines":[{"line_number":555,"context_line":"        :rtype: :class: \u0027QoSSpecs\u0027"},{"line_number":556,"context_line":"        \"\"\""},{"line_number":557,"context_line":"        self._impl.set_qos(qos.id, set_specs_args)"},{"line_number":558,"context_line":"        return self._unify_qos(qos)"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":561,"context_line":"        \"\"\"Delete the given backup."}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_56393aef","line":558,"range":{"start_line":558,"start_character":31,"end_line":558,"end_character":34},"in_reply_to":"ff0f0b1f_d34c9543","updated":"2017-05-25 10:00:17.000000000","message":"So we should use qos_specs which is from DictWithMeta to update qos_specs of qos and return self._unify_qos(qos) later.","commit_id":"cdeaa5470ee18b13b4dffd132fcc1b635f11448e"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"3f26b47b23362a142f827f591d29262726704f32","unresolved":false,"context_lines":[{"line_number":555,"context_line":"        :rtype: :class: \u0027QoSSpecs\u0027"},{"line_number":556,"context_line":"        \"\"\""},{"line_number":557,"context_line":"        self._impl.set_qos(qos.id, set_specs_args)"},{"line_number":558,"context_line":"        return self._unify_qos(qos)"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":561,"context_line":"        \"\"\"Delete the given backup."}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_d34c9543","line":558,"range":{"start_line":558,"start_character":31,"end_line":558,"end_character":34},"in_reply_to":"ff0f0b1f_d88a74bd","updated":"2017-05-23 02:42:10.000000000","message":"the set_qos func returns \u003cclass \u0027cinderclient.apiclient.base.DictWithMeta\u0027\u003e, is not class \u0027cinderclient.v2.qos_specs.QoSSpecs\u0027, so we can\u0027t do \u0027qos\u003dself._impl.set_qos(...)\u0027, and  Qos isn\u0027t be included in DictWithMeta. the DictWithMeta seems to be {\"qos_specs\": {\"key\": \"value\", ...}}, I have fixd the _unify_qos method.","commit_id":"cdeaa5470ee18b13b4dffd132fcc1b635f11448e"}]}
