)]}'
{"rally_openstack/task/scenarios/manila/shares.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"cb0dedcef07d651e97d72aed8f20f1325f2e525d","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            **kwargs)"},{"line_number":125,"context_line":"        self._allow_access_share(share, \u0027ip\u0027, fip[\u0027ip\u0027], \u0027rw\u0027)"},{"line_number":126,"context_line":"        mount_opt \u003d \"-t nfs -o nfsvers\u003d4.1,proto\u003dtcp\""},{"line_number":127,"context_line":"        script \u003d f\"cloud-init status -w;\" \\"},{"line_number":128,"context_line":"                 f\"sudo mount {mount_opt} {location[0]} /mnt || exit 1;\" \\"},{"line_number":129,"context_line":"                 f\"sudo dd if\u003d/dev/zero of\u003d/mnt/testfile bs\u003d1M count\u003d250\" \\"},{"line_number":130,"context_line":"                 f\" || exit 2; ls -l /mnt; df -h\""}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_0291da47","line":127,"updated":"2020-03-30 13:36:54.000000000","message":"What do you think about making https://github.com/openstack/rally-openstack/blob/master/rally_openstack/task/scenarios/vm/vmtasks.py#L363 configurable? I.e make some python func `construct_dd_load_script` that accepts `pre_step` (in your case it will be mount command), destination( /mnt/testfile for you and /dev/null as default for other scripts) and puts that all into template.\nIn this case, your scenario will produce not only text output of dd, but more info that can be displayed like https://3ccfa460626bcbcd5573-a08e6c66608ea4a38311c244e9d75f73.ssl.cf1.rackcdn.com/715656/1/check/rally-task-neutron/722cc85/results/report.html#/VMTasks.dd_load_test/output","commit_id":"1edf7e922ac093d9386ac00967d86614f17376f3"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"cb0dedcef07d651e97d72aed8f20f1325f2e525d","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                    \"Error running command %(command)s. \""},{"line_number":150,"context_line":"                    \"Error %(code)s: %(error)s\" % {"},{"line_number":151,"context_line":"                        \"command\": command, \"code\": code, \"error\": err})"},{"line_number":152,"context_line":"            # Let\u0027s try to load output data"},{"line_number":153,"context_line":"            try:"},{"line_number":154,"context_line":"                data \u003d json.loads(out)"},{"line_number":155,"context_line":"                # \u0027echo 42\u0027 produces very json-compatible result"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_62c42692","line":152,"updated":"2020-03-30 13:36:54.000000000","message":"The script at L127 doesn\u0027t produce any JSON-like output, so everything at L152-161 \u0026 L173-176 is redundant.\n\nI propose to split text_area_output with something like\n\n    self.add_output(complete\u003d{\n        \"title\": \"Script StdOut\",\n        \"chart_plugin\": \"TextArea\",\n        \"data\": out.split(\"\\n\")\n    })\n    if err:\n        self.add_output(complete\u003d{\n            \"title\": \"Script StdErr\",\n            \"chart_plugin\": \"TextArea\",\n            \"data\": err.split(\"\\n\")\n        })\n\nPS: In case if you would like to address a comment at L127, I prefer to move this logic to a separate method since it looks similar to what VMTask scenario uses.","commit_id":"1edf7e922ac093d9386ac00967d86614f17376f3"}]}
