)]}'
{"rally/osclients.py":[{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"b201a57f8e4b5b6a1a966a565932e9d2aec41796","unresolved":false,"context_lines":[{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        version \u003d self.choose_version(version)"},{"line_number":444,"context_line":"        api_url \u003d self._get_endpoint(service_type)"},{"line_number":445,"context_line":"        api_url +\u003d \"/v%s\" % version"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        session \u003d self._get_barbican_session(endpoint\u003dapi_url)"},{"line_number":448,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_4902db0c","line":445,"updated":"2016-06-16 02:05:21.000000000","message":"It would be better if it was this way. \napi_url \u003d \"%s/v%s\" % (self._get_endpoint(service_type),\n                      self.choose_version(version))","commit_id":"92e8ea32a84f726bac36c211eefac9cfbec41683"},{"author":{"_account_id":18618,"name":"Sonali Pitre","email":"sonali.pitre@in.ibm.com","username":"Sonali"},"change_message_id":"571eb0a048d3518c02e62e9d9085956cdb704f7c","unresolved":false,"context_lines":[{"line_number":442,"context_line":""},{"line_number":443,"context_line":"        version \u003d self.choose_version(version)"},{"line_number":444,"context_line":"        api_url \u003d self._get_endpoint(service_type)"},{"line_number":445,"context_line":"        api_url +\u003d \"/v%s\" % version"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        session \u003d self._get_barbican_session(endpoint\u003dapi_url)"},{"line_number":448,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_de13ca5a","line":445,"in_reply_to":"7aa08908_4902db0c","updated":"2016-06-20 05:16:00.000000000","message":"Done","commit_id":"92e8ea32a84f726bac36c211eefac9cfbec41683"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"26de7148625965014501ebd08cf449c6b4a3b3bc","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            auth\u003dauth, verify\u003dverify,"},{"line_number":162,"context_line":"            timeout\u003dCONF.openstack_client_http_timeout)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def _get_barbican_session(self, auth\u003dNone, endpoint\u003dNone):"},{"line_number":165,"context_line":"        from keystoneclient.auth import identity"},{"line_number":166,"context_line":"        from keystoneclient import session as ks_session"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_2f01853a","line":164,"updated":"2016-06-28 15:58:43.000000000","message":"- Why we can\u0027t use this https://github.com/openstack/rally/blob/master/rally/osclients.py#L164 function instead of the new one?\n - auth variable not used here\n - strange to see separate session function for barbican, how it differs from others sessions for other projects\n - possibly this should be execute if auth \u003d\u003d None?","commit_id":"fc5aa1409bd1024aa75c37379e8a7a90c5b7bca5"},{"author":{"_account_id":18618,"name":"Sonali Pitre","email":"sonali.pitre@in.ibm.com","username":"Sonali"},"change_message_id":"5fd8b7d18e3876a367bf5deea5164ec452a65fa3","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            auth\u003dauth, verify\u003dverify,"},{"line_number":162,"context_line":"            timeout\u003dCONF.openstack_client_http_timeout)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def _get_barbican_session(self, auth\u003dNone, endpoint\u003dNone):"},{"line_number":165,"context_line":"        from keystoneclient.auth import identity"},{"line_number":166,"context_line":"        from keystoneclient import session as ks_session"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_96ddfc16","line":164,"in_reply_to":"3aaa91ec_2f01853a","updated":"2016-07-04 14:46:48.000000000","message":"Done\n\nInitially, we got error while using the Token API and only Identity password methods were working. We understood that Barbican client must need project information to be passed explicitly and thus we used separate method to get the session. \nHowever, we tried this time and are able to use the existing get_session method to get the barbican client. Thus, removing redundant method now. I\u0027ll be uploading the results shortly.","commit_id":"fc5aa1409bd1024aa75c37379e8a7a90c5b7bca5"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"26de7148625965014501ebd08cf449c6b4a3b3bc","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def _get_barbican_session(self, auth\u003dNone, endpoint\u003dNone):"},{"line_number":165,"context_line":"        from keystoneclient.auth import identity"},{"line_number":166,"context_line":"        from keystoneclient import session as ks_session"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        kc \u003d self.keystone()"},{"line_number":169,"context_line":"        auth \u003d identity.v2.Password(auth_url\u003dkc.auth_url,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_9976b5a1","line":166,"updated":"2016-06-28 15:58:43.000000000","message":"looks like this is deprecated usage and you\u0027d better use keystoneauth1 https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/session.py","commit_id":"fc5aa1409bd1024aa75c37379e8a7a90c5b7bca5"},{"author":{"_account_id":18618,"name":"Sonali Pitre","email":"sonali.pitre@in.ibm.com","username":"Sonali"},"change_message_id":"5fd8b7d18e3876a367bf5deea5164ec452a65fa3","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def _get_barbican_session(self, auth\u003dNone, endpoint\u003dNone):"},{"line_number":165,"context_line":"        from keystoneclient.auth import identity"},{"line_number":166,"context_line":"        from keystoneclient import session as ks_session"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        kc \u003d self.keystone()"},{"line_number":169,"context_line":"        auth \u003d identity.v2.Password(auth_url\u003dkc.auth_url,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_76c170e4","line":166,"in_reply_to":"3aaa91ec_9976b5a1","updated":"2016-07-04 14:46:48.000000000","message":"Done.\n\nThis is redundant now, as we have removed this method.","commit_id":"fc5aa1409bd1024aa75c37379e8a7a90c5b7bca5"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"26de7148625965014501ebd08cf449c6b4a3b3bc","unresolved":false,"context_lines":[{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        session \u003d self._get_barbican_session(endpoint\u003dapi_url)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"        return barbican.Client(session\u003dsession)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"@configure(\"manila\", default_version\u003d\"1\", default_service_type\u003d\"share\","}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_dbf18a97","line":448,"updated":"2016-06-28 15:58:43.000000000","message":"Client have more arguments we need to allow to pass them https://github.com/openstack/python-barbicanclient/blob/master/barbicanclient/client.py","commit_id":"fc5aa1409bd1024aa75c37379e8a7a90c5b7bca5"},{"author":{"_account_id":18618,"name":"Sonali Pitre","email":"sonali.pitre@in.ibm.com","username":"Sonali"},"change_message_id":"5fd8b7d18e3876a367bf5deea5164ec452a65fa3","unresolved":false,"context_lines":[{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        session \u003d self._get_barbican_session(endpoint\u003dapi_url)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"        return barbican.Client(session\u003dsession)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"@configure(\"manila\", default_version\u003d\"1\", default_service_type\u003d\"share\","}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_56ab941d","line":448,"in_reply_to":"3aaa91ec_dbf18a97","updated":"2016-07-04 14:46:48.000000000","message":"Done","commit_id":"fc5aa1409bd1024aa75c37379e8a7a90c5b7bca5"}],"rally/plugins/openstack/cleanup/resources.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"1198f54348ab1cdc6afa1834486589e7d6f48d57","unresolved":false,"context_lines":[{"line_number":712,"context_line":"# BARBICAN"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"@base.resource(\"barbican\", \"secrets\", order\u003d1500, tenant_resource\u003dTrue)"},{"line_number":715,"context_line":"class BarbicanSecrets(base.ResourceManager):"},{"line_number":716,"context_line":"    pass"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_8b048d7e","line":715,"updated":"2016-06-28 21:27:25.000000000","message":"You need to override here at least list() method https://github.com/openstack/python-barbicanclient/blob/master/barbicanclient/secrets.py#L543 Otherwise we will delete only 10 secrets during cleanup\n\nAlso looks like we need to override:\n - is_delete() because of https://github.com/openstack/rally/blob/master/rally/plugins/openstack/cleanup/base.py#L107 and https://github.com/openstack/python-barbicanclient/blob/master/barbicanclient/secrets.py#L446\n\n- possibly the same is for id() and delete()\n\nWhat is https://github.com/openstack/python-barbicanclient/blob/master/barbicanclient/secrets.py#L533 ? Is it proper secret?","commit_id":"fc5aa1409bd1024aa75c37379e8a7a90c5b7bca5"},{"author":{"_account_id":18618,"name":"Sonali Pitre","email":"sonali.pitre@in.ibm.com","username":"Sonali"},"change_message_id":"5fd8b7d18e3876a367bf5deea5164ec452a65fa3","unresolved":false,"context_lines":[{"line_number":712,"context_line":"# BARBICAN"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"@base.resource(\"barbican\", \"secrets\", order\u003d1500, tenant_resource\u003dTrue)"},{"line_number":715,"context_line":"class BarbicanSecrets(base.ResourceManager):"},{"line_number":716,"context_line":"    pass"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_b640f857","line":715,"in_reply_to":"3aaa91ec_8b048d7e","updated":"2016-07-04 14:46:48.000000000","message":"Done.\n\nDon\u0027t think delete() needs to be overridden after overriding the id() method. (id() method returns reference to a secret as id and delete will use only that param.) Rest of the methods are overridden.\n\nThe secret ref contains reference to a secret. We can get secret using this reference. We have overridden id() method to return this reference.","commit_id":"fc5aa1409bd1024aa75c37379e8a7a90c5b7bca5"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"49506484a43b3e63f06bbfae1f6246bc9c4454d8","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from rally.plugins.openstack.wrappers import keystone as keystone_wrapper"},{"line_number":30,"context_line":"from rally.task import utils as task_utils"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"import urllib2"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_b99f4402","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":14},"updated":"2016-07-04 16:48:40.000000000","message":"you should import six.moves.urllib instead for py2/py3 compatibility","commit_id":"be4bbb1af291cbdd1f544603174a64ddf9c47173"},{"author":{"_account_id":18618,"name":"Sonali Pitre","email":"sonali.pitre@in.ibm.com","username":"Sonali"},"change_message_id":"dfc2cdcc817db1d7e7b889a12d22b19d0b3b84f7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from rally.plugins.openstack.wrappers import keystone as keystone_wrapper"},{"line_number":30,"context_line":"from rally.task import utils as task_utils"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"import urllib2"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_b7423a3c","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":14},"in_reply_to":"1aa78d24_b99f4402","updated":"2016-07-12 13:38:43.000000000","message":"imported barbicanclient exceptions instead.","commit_id":"be4bbb1af291cbdd1f544603174a64ddf9c47173"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"5b7a36b4b8522f3801ba77ca7bc8431a8960e2dc","unresolved":false,"context_lines":[{"line_number":741,"context_line":"        try:"},{"line_number":742,"context_line":"            self._manager().get(self.id())"},{"line_number":743,"context_line":"            return False"},{"line_number":744,"context_line":"        except urllib2.HTTPError as ae:"},{"line_number":745,"context_line":"            return ae.error_code"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_54042714","line":744,"range":{"start_line":744,"start_character":8,"end_line":744,"end_character":39},"updated":"2016-07-04 16:51:49.000000000","message":"btw, it looks like barbicanclient doesn\u0027t return this exception. Based on https://github.com/openstack/python-barbicanclient/blob/master/barbicanclient/client.py#L86-L109 it raises own exception instead.","commit_id":"be4bbb1af291cbdd1f544603174a64ddf9c47173"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"49506484a43b3e63f06bbfae1f6246bc9c4454d8","unresolved":false,"context_lines":[{"line_number":741,"context_line":"        try:"},{"line_number":742,"context_line":"            self._manager().get(self.id())"},{"line_number":743,"context_line":"            return False"},{"line_number":744,"context_line":"        except urllib2.HTTPError as ae:"},{"line_number":745,"context_line":"            return ae.error_code"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_79bcbc6c","line":744,"range":{"start_line":744,"start_character":15,"end_line":744,"end_character":32},"updated":"2016-07-04 16:48:40.000000000","message":"urllib.error.HTTPError instead","commit_id":"be4bbb1af291cbdd1f544603174a64ddf9c47173"},{"author":{"_account_id":18618,"name":"Sonali Pitre","email":"sonali.pitre@in.ibm.com","username":"Sonali"},"change_message_id":"dfc2cdcc817db1d7e7b889a12d22b19d0b3b84f7","unresolved":false,"context_lines":[{"line_number":741,"context_line":"        try:"},{"line_number":742,"context_line":"            self._manager().get(self.id())"},{"line_number":743,"context_line":"            return False"},{"line_number":744,"context_line":"        except urllib2.HTTPError as ae:"},{"line_number":745,"context_line":"            return ae.error_code"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_b7699ac0","line":744,"range":{"start_line":744,"start_character":8,"end_line":744,"end_character":39},"in_reply_to":"1aa78d24_54042714","updated":"2016-07-12 13:38:43.000000000","message":"Done.\n\nAdded barbicanclient to requirements.txt for the same.","commit_id":"be4bbb1af291cbdd1f544603174a64ddf9c47173"},{"author":{"_account_id":18618,"name":"Sonali Pitre","email":"sonali.pitre@in.ibm.com","username":"Sonali"},"change_message_id":"dfc2cdcc817db1d7e7b889a12d22b19d0b3b84f7","unresolved":false,"context_lines":[{"line_number":741,"context_line":"        try:"},{"line_number":742,"context_line":"            self._manager().get(self.id())"},{"line_number":743,"context_line":"            return False"},{"line_number":744,"context_line":"        except urllib2.HTTPError as ae:"},{"line_number":745,"context_line":"            return ae.error_code"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_d7b8a613","line":744,"range":{"start_line":744,"start_character":15,"end_line":744,"end_character":32},"in_reply_to":"1aa78d24_79bcbc6c","updated":"2016-07-12 13:38:43.000000000","message":"Handled barbicanclient exceptions.","commit_id":"be4bbb1af291cbdd1f544603174a64ddf9c47173"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"49506484a43b3e63f06bbfae1f6246bc9c4454d8","unresolved":false,"context_lines":[{"line_number":742,"context_line":"            self._manager().get(self.id())"},{"line_number":743,"context_line":"            return False"},{"line_number":744,"context_line":"        except urllib2.HTTPError as ae:"},{"line_number":745,"context_line":"            return ae.error_code"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"# KEYSTONE"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_d9adf032","line":745,"range":{"start_line":745,"start_character":12,"end_line":745,"end_character":32},"updated":"2016-07-04 16:48:40.000000000","message":"Should we return error_code or just check that it equals to 404?","commit_id":"be4bbb1af291cbdd1f544603174a64ddf9c47173"},{"author":{"_account_id":18618,"name":"Sonali Pitre","email":"sonali.pitre@in.ibm.com","username":"Sonali"},"change_message_id":"dfc2cdcc817db1d7e7b889a12d22b19d0b3b84f7","unresolved":false,"context_lines":[{"line_number":742,"context_line":"            self._manager().get(self.id())"},{"line_number":743,"context_line":"            return False"},{"line_number":744,"context_line":"        except urllib2.HTTPError as ae:"},{"line_number":745,"context_line":"            return ae.error_code"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"# KEYSTONE"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_b7b07a44","line":745,"range":{"start_line":745,"start_character":12,"end_line":745,"end_character":32},"in_reply_to":"1aa78d24_d9adf032","updated":"2016-07-12 13:38:43.000000000","message":"Handled different exceptions from barbicanclient.\nSo just returning the errors.","commit_id":"be4bbb1af291cbdd1f544603174a64ddf9c47173"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"82796751fba53fdbd4c35ccd779f6e7528dcde0c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from barbicanclient import exceptions as barbican_exception"},{"line_number":17,"context_line":"from boto import exception as boto_exception"},{"line_number":18,"context_line":"from neutronclient.common import exceptions as neutron_exceptions"},{"line_number":19,"context_line":"from novaclient import exceptions as nova_exc"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_8ab32be9","line":16,"updated":"2017-10-17 23:11:06.000000000","message":"do not import to global namespace client library, these imports are taking too long time to be imported if not used. \n\nBelow, things are removed in another patch","commit_id":"593cc1fbf2ca47e92773f1a2fcec118694816e6d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"82796751fba53fdbd4c35ccd779f6e7528dcde0c","unresolved":false,"context_lines":[{"line_number":922,"context_line":"@base.resource(\"barbican\", \"secrets\", order\u003d1500, tenant_resource\u003dTrue)"},{"line_number":923,"context_line":"class BarbicanSecrets(base.ResourceManager):"},{"line_number":924,"context_line":""},{"line_number":925,"context_line":"    def _fetch_all(self, func, *args, **kwargs):"},{"line_number":926,"context_line":"        \"\"\"Generator that keeps fetching secrets until there\u0027s none left.\"\"\""},{"line_number":927,"context_line":"        offset \u003d 0"},{"line_number":928,"context_line":"        limit \u003d 100"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_4ace535a","line":925,"updated":"2017-10-17 23:11:06.000000000","message":"there is no need to have here *args, **kwargs, this function is used only in one place that passes only one argument name, beigin explicit here is going to simplify code.","commit_id":"593cc1fbf2ca47e92773f1a2fcec118694816e6d"}],"rally/plugins/openstack/scenarios/barbican/secrets.py":[{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"b201a57f8e4b5b6a1a966a565932e9d2aec41796","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        create_secret_kwargs \u003d {}"},{"line_number":105,"context_line":"        list_secrets_kwargs \u003d {}"},{"line_number":106,"context_line":"        secret \u003d self._create_secret(**create_secret_kwargs)"},{"line_number":107,"context_line":"        self._list_secrets(**list_secrets_kwargs)"},{"line_number":108,"context_line":"        self._delete_secret(secret.secret_ref)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_d4b2e205","line":106,"updated":"2016-06-16 02:05:21.000000000","message":"Here the argument is not necessary.","commit_id":"92e8ea32a84f726bac36c211eefac9cfbec41683"},{"author":{"_account_id":18618,"name":"Sonali Pitre","email":"sonali.pitre@in.ibm.com","username":"Sonali"},"change_message_id":"571eb0a048d3518c02e62e9d9085956cdb704f7c","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        create_secret_kwargs \u003d {}"},{"line_number":105,"context_line":"        list_secrets_kwargs \u003d {}"},{"line_number":106,"context_line":"        secret \u003d self._create_secret(**create_secret_kwargs)"},{"line_number":107,"context_line":"        self._list_secrets(**list_secrets_kwargs)"},{"line_number":108,"context_line":"        self._delete_secret(secret.secret_ref)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_3b65c044","line":106,"in_reply_to":"7aa08908_d4b2e205","updated":"2016-06-20 05:16:00.000000000","message":"Done","commit_id":"92e8ea32a84f726bac36c211eefac9cfbec41683"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"b201a57f8e4b5b6a1a966a565932e9d2aec41796","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        create_secret_kwargs \u003d {}"},{"line_number":105,"context_line":"        list_secrets_kwargs \u003d {}"},{"line_number":106,"context_line":"        secret \u003d self._create_secret(**create_secret_kwargs)"},{"line_number":107,"context_line":"        self._list_secrets(**list_secrets_kwargs)"},{"line_number":108,"context_line":"        self._delete_secret(secret.secret_ref)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_14cd8a86","line":107,"updated":"2016-06-16 02:05:21.000000000","message":"same here","commit_id":"92e8ea32a84f726bac36c211eefac9cfbec41683"},{"author":{"_account_id":18618,"name":"Sonali Pitre","email":"sonali.pitre@in.ibm.com","username":"Sonali"},"change_message_id":"571eb0a048d3518c02e62e9d9085956cdb704f7c","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        create_secret_kwargs \u003d {}"},{"line_number":105,"context_line":"        list_secrets_kwargs \u003d {}"},{"line_number":106,"context_line":"        secret \u003d self._create_secret(**create_secret_kwargs)"},{"line_number":107,"context_line":"        self._list_secrets(**list_secrets_kwargs)"},{"line_number":108,"context_line":"        self._delete_secret(secret.secret_ref)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_9b56745c","line":107,"in_reply_to":"7aa08908_14cd8a86","updated":"2016-06-20 05:16:00.000000000","message":"Done","commit_id":"92e8ea32a84f726bac36c211eefac9cfbec41683"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"82796751fba53fdbd4c35ccd779f6e7528dcde0c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from rally.task import validation"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class BarbicanSecrets(utils.BarbicanScenario):"},{"line_number":23,"context_line":"    \"\"\"Benchmark scenarios for Barbican secrets.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @validation.required_services(consts.Service.BARBICAN)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_6afc6f6f","line":22,"updated":"2017-10-17 23:11:06.000000000","message":"scenarios should be ported to new framework.","commit_id":"593cc1fbf2ca47e92773f1a2fcec118694816e6d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"82796751fba53fdbd4c35ccd779f6e7528dcde0c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class BarbicanSecrets(utils.BarbicanScenario):"},{"line_number":23,"context_line":"    \"\"\"Benchmark scenarios for Barbican secrets.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @validation.required_services(consts.Service.BARBICAN)"},{"line_number":26,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":27,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"barbican\"]})"},{"line_number":28,"context_line":"    def list_secrets(self, **kwargs):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_ea2dfffd","line":25,"updated":"2017-10-17 23:11:06.000000000","message":"use new validators here","commit_id":"593cc1fbf2ca47e92773f1a2fcec118694816e6d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"82796751fba53fdbd4c35ccd779f6e7528dcde0c","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @validation.required_services(consts.Service.BARBICAN)"},{"line_number":26,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":27,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"barbican\"]})"},{"line_number":28,"context_line":"    def list_secrets(self, **kwargs):"},{"line_number":29,"context_line":"        \"\"\"List all secrets.\"\"\""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5f4e5783_4a3c132e","line":27,"updated":"2017-10-17 23:11:06.000000000","message":"cleanup@openstack -\u003e we now use full names here","commit_id":"593cc1fbf2ca47e92773f1a2fcec118694816e6d"}],"tests/unit/plugins/openstack/scenarios/barbican/test_secrets.py":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"6f2bc6e683ae41a01ebc9e29ac9e3c6c9217a26d","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def test_create_and_list_secrets(self):"},{"line_number":32,"context_line":"        scenario \u003d secrets.BarbicanSecrets(self.context)"},{"line_number":33,"context_line":"        scenario._create_secret \u003d mock.MagicMock()"},{"line_number":34,"context_line":"        scenario._list_secrets \u003d mock.MagicMock()"},{"line_number":35,"context_line":"        scenario.create_and_list_secrets()"},{"line_number":36,"context_line":"        scenario._create_secret.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a71b18c_75a3fb4f","line":33,"range":{"start_line":33,"start_character":34,"end_line":33,"end_character":48},"updated":"2016-12-08 07:57:47.000000000","message":"Please use MagicMock only if it is required. mock.Mock is enough in most cases.","commit_id":"3fb8fb06dcb0170e1e68e5d2fc8c9f97a4bcbfab"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"89f54994a68e12f9c6a6b9e7962833dedd7fc184","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def test_create_and_list_secrets(self):"},{"line_number":32,"context_line":"        scenario \u003d secrets.BarbicanSecrets(self.context)"},{"line_number":33,"context_line":"        scenario._create_secret \u003d mock.MagicMock()"},{"line_number":34,"context_line":"        scenario._list_secrets \u003d mock.MagicMock()"},{"line_number":35,"context_line":"        scenario.create_and_list_secrets()"},{"line_number":36,"context_line":"        scenario._create_secret.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f4e5783_0a717b44","line":33,"range":{"start_line":33,"start_character":34,"end_line":33,"end_character":48},"in_reply_to":"3a71b18c_75a3fb4f","updated":"2017-10-17 22:51:22.000000000","message":"it actually doesn\u0027t matter, it\u0027s both ok to use Mock and MagicMock.","commit_id":"3fb8fb06dcb0170e1e68e5d2fc8c9f97a4bcbfab"}]}
