)]}'
{"rally/exceptions.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                \"\\nReason:\\n %(reason)s\")"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class InvalidContextSetup(RallyException):"},{"line_number":116,"context_line":"    msg_fmt \u003d _(\"Context setup is invalid: %(reason)s\")"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_466cfa34","line":115,"updated":"2015-08-11 21:26:49.000000000","message":"Lets not add new exception. And raise RallyException. This module would be rewrite and this will decrease number of future work.","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                \"\\nReason:\\n %(reason)s\")"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class InvalidContextSetup(RallyException):"},{"line_number":116,"context_line":"    msg_fmt \u003d _(\"Context setup is invalid: %(reason)s\")"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_29e152ff","line":115,"in_reply_to":"1a4dcd0f_466cfa34","updated":"2016-11-04 19:03:31.000000000","message":"Done","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"}],"rally/plugins/openstack/context/manila.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            # for list with share networks. It is required for balancing."},{"line_number":164,"context_line":"            self.context[\"tenants\"][tenant_id][\"sn_iterator\"] \u003d utils.RAMInt()"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"            # Create shares"},{"line_number":167,"context_line":"            self._create_shares("},{"line_number":168,"context_line":"                manila_scenario,"},{"line_number":169,"context_line":"                tenant_id,"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_264449b5","line":166,"updated":"2015-08-11 21:26:49.000000000","message":"This is obvious comment. _create_shares could be format in less number of lines","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            # for list with share networks. It is required for balancing."},{"line_number":164,"context_line":"            self.context[\"tenants\"][tenant_id][\"sn_iterator\"] \u003d utils.RAMInt()"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"            # Create shares"},{"line_number":167,"context_line":"            self._create_shares("},{"line_number":168,"context_line":"                manila_scenario,"},{"line_number":169,"context_line":"                tenant_id,"}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_19569506","line":166,"in_reply_to":"1a4dcd0f_264449b5","updated":"2016-11-04 19:03:31.000000000","message":"Done","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            # for list with share networks. It is required for balancing."},{"line_number":212,"context_line":"            self.context[\"tenants\"][tenant_id][\"sn_iterator\"] \u003d utils.RAMInt()"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"            # Create shares"},{"line_number":215,"context_line":"            self._create_shares("},{"line_number":216,"context_line":"                manila_scenario,"},{"line_number":217,"context_line":"                tenant_id,"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_a6005967","line":214,"updated":"2015-08-11 21:26:49.000000000","message":"This is obvious comment. _create_shares could be format in less number of lines","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            # for list with share networks. It is required for balancing."},{"line_number":212,"context_line":"            self.context[\"tenants\"][tenant_id][\"sn_iterator\"] \u003d utils.RAMInt()"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"            # Create shares"},{"line_number":215,"context_line":"            self._create_shares("},{"line_number":216,"context_line":"                manila_scenario,"},{"line_number":217,"context_line":"                tenant_id,"}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_395b5930","line":214,"in_reply_to":"1a4dcd0f_a6005967","updated":"2016-11-04 19:03:31.000000000","message":"Done","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                manila_scenario \u003d manila_utils.ManilaScenario({\"user\": user})"},{"line_number":242,"context_line":"                self._create_shares("},{"line_number":243,"context_line":"                    manila_scenario,"},{"line_number":244,"context_line":"                    tenant_id,"},{"line_number":245,"context_line":"                    self.config[\"share_proto\"],"},{"line_number":246,"context_line":"                    self.config[\"size\"])"},{"line_number":247,"context_line":"        elif self.context[\"config\"].get(\"existing_users\"):"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_e6a741bb","line":244,"updated":"2015-08-11 21:26:49.000000000","message":"this could be write in less number of lines","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                manila_scenario \u003d manila_utils.ManilaScenario({\"user\": user})"},{"line_number":242,"context_line":"                self._create_shares("},{"line_number":243,"context_line":"                    manila_scenario,"},{"line_number":244,"context_line":"                    tenant_id,"},{"line_number":245,"context_line":"                    self.config[\"share_proto\"],"},{"line_number":246,"context_line":"                    self.config[\"size\"])"},{"line_number":247,"context_line":"        elif self.context[\"config\"].get(\"existing_users\"):"}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_f977219d","line":244,"in_reply_to":"1a4dcd0f_e6a741bb","updated":"2016-11-04 19:03:31.000000000","message":"It is intentional. Such approach minimizes merge conflicts.","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    @utils.log_task_wrapper(LOG.info, _(\"Exit context: `manila`\"))"},{"line_number":321,"context_line":"    def cleanup(self):"},{"line_number":322,"context_line":"        # NOTE(vponomaryov): delete shares that were created by context"},{"line_number":323,"context_line":"        self._cleanup_tenant_shares()"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        if not self.context.get(\"manila_delete_share_networks\", True):"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_667b3129","line":322,"updated":"2015-08-11 21:26:49.000000000","message":"This is obvious comment. Please delete it","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    @utils.log_task_wrapper(LOG.info, _(\"Exit context: `manila`\"))"},{"line_number":321,"context_line":"    def cleanup(self):"},{"line_number":322,"context_line":"        # NOTE(vponomaryov): delete shares that were created by context"},{"line_number":323,"context_line":"        self._cleanup_tenant_shares()"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        if not self.context.get(\"manila_delete_share_networks\", True):"}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_397279ae","line":322,"in_reply_to":"1a4dcd0f_667b3129","updated":"2016-11-04 19:03:31.000000000","message":"Done","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"}],"rally/plugins/openstack/context/manila/manila_shares.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"faaefb969e830010c09810f38c19f72e8a434069","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        \"type\": \"object\","},{"line_number":39,"context_line":"        \"$schema\": rally_consts.JSON_SCHEMA,"},{"line_number":40,"context_line":"        \"properties\": {"},{"line_number":41,"context_line":"            # NOTE(vponomaryov): set it bigger than zero only if scenarios that"},{"line_number":42,"context_line":"            # use precreated shares will be run."},{"line_number":43,"context_line":"            \"shares_per_tenant\": {"},{"line_number":44,"context_line":"                \"type\": \"integer\","},{"line_number":45,"context_line":"                \"minimum\": 0,"},{"line_number":46,"context_line":"            },"},{"line_number":47,"context_line":"            # NOTE(vponomaryov): size, share_proto and share type are used"},{"line_number":48,"context_line":"            # for creation of shares."},{"line_number":49,"context_line":"            \"size\": {"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_004d6899","line":46,"range":{"start_line":41,"start_character":12,"end_line":46,"end_character":14},"updated":"2016-11-11 16:50:16.000000000","message":"I\u0027m totally against such behaviour! If user specified shares context, then we should create shares. If users do not want to use shares context, then he/she can remove context from his/her task. Also we support jinja templates which allows to easily enable or disable different blocks in task config.","commit_id":"a055edc32c0b0f048b43acadb118526419a69773"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3b591c2d37a3ea089c3fe8a036e160584b64835c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        \"type\": \"object\","},{"line_number":39,"context_line":"        \"$schema\": rally_consts.JSON_SCHEMA,"},{"line_number":40,"context_line":"        \"properties\": {"},{"line_number":41,"context_line":"            # NOTE(vponomaryov): set it bigger than zero only if scenarios that"},{"line_number":42,"context_line":"            # use precreated shares will be run."},{"line_number":43,"context_line":"            \"shares_per_tenant\": {"},{"line_number":44,"context_line":"                \"type\": \"integer\","},{"line_number":45,"context_line":"                \"minimum\": 0,"},{"line_number":46,"context_line":"            },"},{"line_number":47,"context_line":"            # NOTE(vponomaryov): size, share_proto and share type are used"},{"line_number":48,"context_line":"            # for creation of shares."},{"line_number":49,"context_line":"            \"size\": {"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_1434c947","line":46,"range":{"start_line":41,"start_character":12,"end_line":46,"end_character":14},"in_reply_to":"9a629dbe_004d6899","updated":"2016-11-11 18:19:56.000000000","message":"Done","commit_id":"a055edc32c0b0f048b43acadb118526419a69773"}],"rally/plugins/openstack/scenarios/manila/shares.py":[{"author":{"_account_id":7369,"name":"Sergey Skripnick","email":"sskripnick@mirantis.com","username":"redixin"},"change_message_id":"97ac97497c0db2ba781cd9548d3d30f6c85edf1c","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self._list_shares(detailed\u003ddetailed)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    @validation.required_services(consts.Service.MANILA)"},{"line_number":215,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":216,"context_line":"    @base.scenario()"},{"line_number":217,"context_line":"    def set_and_delete_metadata(self, sets\u003d10, set_size\u003d3,"},{"line_number":218,"context_line":"                                deletes\u003d5, delete_size\u003d3,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_13744933","line":215,"updated":"2015-06-15 15:23:54.000000000","message":"This seems a reason why sample tasks validation failed.\n\nThis line makes scenatio require openstack user contexts.","commit_id":"b4f5a10a14e5e0e0060f0c229af51ab0dcefe912"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"59b86e6238126d9a66bb1667cb626d388f704a93","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self._list_shares(detailed\u003ddetailed)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    @validation.required_services(consts.Service.MANILA)"},{"line_number":215,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":216,"context_line":"    @base.scenario()"},{"line_number":217,"context_line":"    def set_and_delete_metadata(self, sets\u003d10, set_size\u003d3,"},{"line_number":218,"context_line":"                                deletes\u003d5, delete_size\u003d3,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_d6680ff8","line":215,"in_reply_to":"fa32b979_13744933","updated":"2015-06-15 15:54:37.000000000","message":"As discussed in IRC. This requires either users context or deployment with preconfigured users. Both cases are expected in current case. That is why this validator here.","commit_id":"b4f5a10a14e5e0e0060f0c229af51ab0dcefe912"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        :param key_max_length: maximum size of metadata key to set"},{"line_number":234,"context_line":"        :param value_min_length: minimal size of metadata value to set"},{"line_number":235,"context_line":"        :param value_max_length: maximum size of metadata value to set"},{"line_number":236,"context_line":"        \"\"\""},{"line_number":237,"context_line":"        if sets * set_size \u003c deletes * delete_size:"},{"line_number":238,"context_line":"            raise exceptions.InvalidArgumentsException("},{"line_number":239,"context_line":"                \"Not enough metadata keys will be created: \""}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_89320e5d","line":236,"updated":"2015-08-11 21:26:49.000000000","message":"please add to docstring :raises: section","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        :param key_max_length: maximum size of metadata key to set"},{"line_number":234,"context_line":"        :param value_min_length: minimal size of metadata value to set"},{"line_number":235,"context_line":"        :param value_max_length: maximum size of metadata value to set"},{"line_number":236,"context_line":"        \"\"\""},{"line_number":237,"context_line":"        if sets * set_size \u003c deletes * delete_size:"},{"line_number":238,"context_line":"            raise exceptions.InvalidArgumentsException("},{"line_number":239,"context_line":"                \"Not enough metadata keys will be created: \""}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_b3722f48","line":236,"in_reply_to":"1a4dcd0f_89320e5d","updated":"2016-11-04 19:03:31.000000000","message":"Done","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            raise exceptions.InvalidContextSetup("},{"line_number":246,"context_line":"                reason\u003d(\"This scenario requires, at least, one share to be \""},{"line_number":247,"context_line":"                        \"created in context. Please specify context option \""},{"line_number":248,"context_line":"                        \"\u0027shares_per_tenant\u0027 bigger than 0\"))"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        share \u003d random.choice(self.context[\"tenant\"][\"shares\"])"},{"line_number":251,"context_line":"        keys \u003d self._set_metadata("}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_49cc066a","line":248,"updated":"2015-08-11 21:26:49.000000000","message":"Lets add validator to scenario that we need share context. https://github.com/openstack/rally/blob/master/rally/task/validation.py#L542","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            raise exceptions.InvalidContextSetup("},{"line_number":246,"context_line":"                reason\u003d(\"This scenario requires, at least, one share to be \""},{"line_number":247,"context_line":"                        \"created in context. Please specify context option \""},{"line_number":248,"context_line":"                        \"\u0027shares_per_tenant\u0027 bigger than 0\"))"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        share \u003d random.choice(self.context[\"tenant\"][\"shares\"])"},{"line_number":251,"context_line":"        keys \u003d self._set_metadata("}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_09dc8e45","line":248,"in_reply_to":"1a4dcd0f_49cc066a","updated":"2016-11-04 19:03:31.000000000","message":"Done","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            share\u003dshare,"},{"line_number":253,"context_line":"            sets\u003dsets,"},{"line_number":254,"context_line":"            set_size\u003dset_size,"},{"line_number":255,"context_line":"            key_min_length\u003dkey_min_length,"},{"line_number":256,"context_line":"            key_max_length\u003dkey_max_length,"},{"line_number":257,"context_line":"            value_min_length\u003dvalue_min_length,"},{"line_number":258,"context_line":"            value_max_length\u003dvalue_max_length)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_29673ab8","line":255,"updated":"2015-08-11 21:26:49.000000000","message":"This could be write in less number if lines.","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            share\u003dshare,"},{"line_number":253,"context_line":"            sets\u003dsets,"},{"line_number":254,"context_line":"            set_size\u003dset_size,"},{"line_number":255,"context_line":"            key_min_length\u003dkey_min_length,"},{"line_number":256,"context_line":"            key_max_length\u003dkey_max_length,"},{"line_number":257,"context_line":"            value_min_length\u003dvalue_min_length,"},{"line_number":258,"context_line":"            value_max_length\u003dvalue_max_length)"}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_13983b6a","line":255,"in_reply_to":"1a4dcd0f_29673ab8","updated":"2016-11-04 19:03:31.000000000","message":"It is intentional. Easier to add/remove data.","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"faaefb969e830010c09810f38c19f72e8a434069","unresolved":false,"context_lines":[{"line_number":271,"context_line":"            are provided."},{"line_number":272,"context_line":"        :raises exceptions.RallyException: when \u0027shares\u0027 context is not set up."},{"line_number":273,"context_line":"        \"\"\""},{"line_number":274,"context_line":"        if sets * set_size \u003c deletes * delete_size:"},{"line_number":275,"context_line":"            raise exceptions.InvalidArgumentsException("},{"line_number":276,"context_line":"                \"Not enough metadata keys will be created: \""},{"line_number":277,"context_line":"                \"Setting %(num_keys)s keys, but deleting %(num_deletes)s\" %"},{"line_number":278,"context_line":"                {\"num_keys\": sets * set_size,"},{"line_number":279,"context_line":"                 \"num_deletes\": deletes * delete_size})"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        shares \u003d self.context.get(\"tenant\", {}).get(\"shares\", [])"},{"line_number":282,"context_line":"        if len(shares) \u003c 1:"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_a0875cb3","line":279,"range":{"start_line":274,"start_character":8,"end_line":279,"end_character":55},"updated":"2016-11-11 16:50:16.000000000","message":"It should be implemented via validators interface. Your behaviour can led to create a number of redundant resources(all contexts will be executed on this step).","commit_id":"a055edc32c0b0f048b43acadb118526419a69773"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3b591c2d37a3ea089c3fe8a036e160584b64835c","unresolved":false,"context_lines":[{"line_number":271,"context_line":"            are provided."},{"line_number":272,"context_line":"        :raises exceptions.RallyException: when \u0027shares\u0027 context is not set up."},{"line_number":273,"context_line":"        \"\"\""},{"line_number":274,"context_line":"        if sets * set_size \u003c deletes * delete_size:"},{"line_number":275,"context_line":"            raise exceptions.InvalidArgumentsException("},{"line_number":276,"context_line":"                \"Not enough metadata keys will be created: \""},{"line_number":277,"context_line":"                \"Setting %(num_keys)s keys, but deleting %(num_deletes)s\" %"},{"line_number":278,"context_line":"                {\"num_keys\": sets * set_size,"},{"line_number":279,"context_line":"                 \"num_deletes\": deletes * delete_size})"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        shares \u003d self.context.get(\"tenant\", {}).get(\"shares\", [])"},{"line_number":282,"context_line":"        if len(shares) \u003c 1:"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_97c37b37","line":279,"range":{"start_line":274,"start_character":8,"end_line":279,"end_character":55},"in_reply_to":"9a629dbe_a0875cb3","updated":"2016-11-11 18:19:56.000000000","message":"Done","commit_id":"a055edc32c0b0f048b43acadb118526419a69773"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"faaefb969e830010c09810f38c19f72e8a434069","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                 \"num_deletes\": deletes * delete_size})"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        shares \u003d self.context.get(\"tenant\", {}).get(\"shares\", [])"},{"line_number":282,"context_line":"        if len(shares) \u003c 1:"},{"line_number":283,"context_line":"            raise exceptions.RallyException("},{"line_number":284,"context_line":"                \"At least one share has to be created in context. Please \""},{"line_number":285,"context_line":"                \"specify context option \u0027shares_per_tenant\u0027 bigger than 0.\""},{"line_number":286,"context_line":"            )"},{"line_number":287,"context_line":"        share \u003d shares[self.context[\"iteration\"] % len(shares)]"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        keys \u003d self._set_metadata("}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_800fb835","line":286,"range":{"start_line":282,"start_character":8,"end_line":286,"end_character":13},"updated":"2016-11-11 16:50:16.000000000","message":"it is redundant. shares context should create shares all the time. Also @validation.required_contexts(manila_consts.SHARES_CONTEXT_NAME) will check that this context is specified (btw, you can set default values to this context in \"configure\" decorator)","commit_id":"a055edc32c0b0f048b43acadb118526419a69773"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3b591c2d37a3ea089c3fe8a036e160584b64835c","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                 \"num_deletes\": deletes * delete_size})"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        shares \u003d self.context.get(\"tenant\", {}).get(\"shares\", [])"},{"line_number":282,"context_line":"        if len(shares) \u003c 1:"},{"line_number":283,"context_line":"            raise exceptions.RallyException("},{"line_number":284,"context_line":"                \"At least one share has to be created in context. Please \""},{"line_number":285,"context_line":"                \"specify context option \u0027shares_per_tenant\u0027 bigger than 0.\""},{"line_number":286,"context_line":"            )"},{"line_number":287,"context_line":"        share \u003d shares[self.context[\"iteration\"] % len(shares)]"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        keys \u003d self._set_metadata("}],"source_content_type":"text/x-python","patch_set":22,"id":"9a629dbe_d47b31f3","line":286,"range":{"start_line":282,"start_character":8,"end_line":286,"end_character":13},"in_reply_to":"9a629dbe_800fb835","updated":"2016-11-11 18:19:56.000000000","message":"Done","commit_id":"a055edc32c0b0f048b43acadb118526419a69773"}],"rally/plugins/openstack/scenarios/manila/utils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        elif value_max_length not in range(1, 1024):"},{"line_number":157,"context_line":"            raise exceptions.InvalidArgumentsException("},{"line_number":158,"context_line":"                \"value_max_length \u0027%s\u0027 is not in range(1, 1024)\" %"},{"line_number":159,"context_line":"                value_max_length)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        keys \u003d []"},{"line_number":162,"context_line":"        for i in range(sets):"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_dc3212a7","line":159,"updated":"2015-08-11 21:26:49.000000000","message":"I think that this bunch of ifs must be check by scenario + decorator \u0027number\u0027 https://github.com/openstack/rally/blob/master/rally/task/validation.py#L83","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        elif value_max_length not in range(1, 1024):"},{"line_number":157,"context_line":"            raise exceptions.InvalidArgumentsException("},{"line_number":158,"context_line":"                \"value_max_length \u0027%s\u0027 is not in range(1, 1024)\" %"},{"line_number":159,"context_line":"                value_max_length)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        keys \u003d []"},{"line_number":162,"context_line":"        for i in range(sets):"}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_33a9bfe0","line":159,"in_reply_to":"1a4dcd0f_dc3212a7","updated":"2016-11-04 19:03:31.000000000","message":"Done","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                key \u003d self._generate_random_name(prefix\u003d\"\", length\u003dkey_length)"},{"line_number":176,"context_line":"                keys.append(key)"},{"line_number":177,"context_line":"                metadata[key] \u003d self._generate_random_name("},{"line_number":178,"context_line":"                    prefix\u003d\"\", length\u003dvalue_length)"},{"line_number":179,"context_line":"            self.clients(\"manila\").shares.set_metadata(share, metadata)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        return keys"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_7c55febf","line":178,"updated":"2015-08-11 21:26:49.000000000","message":"Looks like prefix is unused here. Isn\u0027t he?","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                key \u003d self._generate_random_name(prefix\u003d\"\", length\u003dkey_length)"},{"line_number":176,"context_line":"                keys.append(key)"},{"line_number":177,"context_line":"                metadata[key] \u003d self._generate_random_name("},{"line_number":178,"context_line":"                    prefix\u003d\"\", length\u003dvalue_length)"},{"line_number":179,"context_line":"            self.clients(\"manila\").shares.set_metadata(share, metadata)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        return keys"}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_559ffb4f","line":178,"in_reply_to":"1a4dcd0f_7c55febf","updated":"2016-11-04 19:03:31.000000000","message":"Done","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        :param share: The share to delete metadata from"},{"line_number":188,"context_line":"        :param deletes: how many operations to perform"},{"line_number":189,"context_line":"        :param delete_size: number of metadata keys to delete in each operation"},{"line_number":190,"context_line":"        :param keys: a list of keys to choose deletion candidates from"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":"        if not keys:"},{"line_number":193,"context_line":"            raise exceptions.InvalidArgumentsException("}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_1c15dae3","line":190,"updated":"2015-08-11 21:26:49.000000000","message":"PLease document raises if they exists","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        :param share: The share to delete metadata from"},{"line_number":188,"context_line":"        :param deletes: how many operations to perform"},{"line_number":189,"context_line":"        :param delete_size: number of metadata keys to delete in each operation"},{"line_number":190,"context_line":"        :param keys: a list of keys to choose deletion candidates from"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":"        if not keys:"},{"line_number":193,"context_line":"            raise exceptions.InvalidArgumentsException("}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_95e35333","line":190,"in_reply_to":"1a4dcd0f_1c15dae3","updated":"2016-11-04 19:03:31.000000000","message":"Done","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"48f8678d7a994ec9635267c65d6618da3c75fa1c","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        :param delete_size: number of metadata keys to delete in each operation"},{"line_number":190,"context_line":"        :param keys: a list of keys to choose deletion candidates from"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":"        if not keys:"},{"line_number":193,"context_line":"            raise exceptions.InvalidArgumentsException("},{"line_number":194,"context_line":"                \"Param \u0027keys\u0027 should be list with values. keys \u003d \u0027%s\u0027\" % keys)"},{"line_number":195,"context_line":"        elif len(keys) \u003c deletes * delete_size:"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_dc3d3290","line":192,"updated":"2015-08-11 21:26:49.000000000","message":"if you what to check whether this is a list and its not empty. Then the rigth way to check also on isinstance()","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7c23c76fb003c43c2c6a73acd020849b784a6da6","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        :param delete_size: number of metadata keys to delete in each operation"},{"line_number":190,"context_line":"        :param keys: a list of keys to choose deletion candidates from"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":"        if not keys:"},{"line_number":193,"context_line":"            raise exceptions.InvalidArgumentsException("},{"line_number":194,"context_line":"                \"Param \u0027keys\u0027 should be list with values. keys \u003d \u0027%s\u0027\" % keys)"},{"line_number":195,"context_line":"        elif len(keys) \u003c deletes * delete_size:"}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_75acff8c","line":192,"in_reply_to":"1a4dcd0f_dc3d3290","updated":"2016-11-04 19:03:31.000000000","message":"Done","commit_id":"688976f72d50433ce95245b2cf083f73e9910a99"}]}
