)]}'
{"functions":[{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"b15f1da716a59c85655311f83cb17b5674d4710d","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"        vmdk_create_type\u003d\"${vmdk_create_type#*\\\"}\""},{"line_number":1411,"context_line":"        vmdk_create_type\u003d\"${vmdk_create_type%?}\""},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"        descriptor_data_pair_msg\u003d\"Monolithic flat and VMFS disks should use a descriptor-data pair.\""},{"line_number":1414,"context_line":"        if [[ \"$vmdk_create_type\" \u003d \"monolithicSparse\" ]]; then"},{"line_number":1415,"context_line":"            vmdk_disktype\u003d\"sparse\""},{"line_number":1416,"context_line":"        elif [[ \"$vmdk_create_type\" \u003d \"monolithicFlat\" || \"$vmdk_create_type\" \u003d \"vmfs\" ]]; then"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAATn%2F%2Bc3c%3D","line":1413,"updated":"2013-11-25 22:31:49.000000000","message":"Sometimes it is tricky to break long lines of bash code, but lines that can be easily broken into shorter ones (e.g comments, long strings, which can be broken with a trailing \\) probably should be to make review easier. There are a couple of similar instances below as well.","commit_id":"96f61ac5099ed92d9a3c11249ce3102ac6e9fa9f"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"be09e500128b4a0971e82f8eba17d7b1d6b45da8","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"        vmdk_create_type\u003d\"${vmdk_create_type#*\\\"}\""},{"line_number":1411,"context_line":"        vmdk_create_type\u003d\"${vmdk_create_type%?}\""},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"        descriptor_data_pair_msg\u003d\"Monolithic flat and VMFS disks should use a descriptor-data pair.\""},{"line_number":1414,"context_line":"        if [[ \"$vmdk_create_type\" \u003d \"monolithicSparse\" ]]; then"},{"line_number":1415,"context_line":"            vmdk_disktype\u003d\"sparse\""},{"line_number":1416,"context_line":"        elif [[ \"$vmdk_create_type\" \u003d \"monolithicFlat\" || \"$vmdk_create_type\" \u003d \"vmfs\" ]]; then"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAATn%2F%2BFR0%3D","line":1413,"in_reply_to":"AAAATn%2F%2Bc3c%3D","updated":"2013-12-02 19:17:06.000000000","message":"Done","commit_id":"96f61ac5099ed92d9a3c11249ce3102ac6e9fa9f"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"b15f1da716a59c85655311f83cb17b5674d4710d","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"            flat_fname\u003d\"$(head -25 $IMAGE | grep -G \u0027RW\\|RDONLY [0-9]+ FLAT\\|VMFS\u0027 $IMAGE)\""},{"line_number":1419,"context_line":"            flat_fname\u003d\"${flat_fname#*\\\"}\""},{"line_number":1420,"context_line":"            flat_fname\u003d\"${flat_fname%?}\""},{"line_number":1421,"context_line":"            if [[ -z $flat_name ]]; then"},{"line_number":1422,"context_line":"                flat_fname\u003d\"$IMAGE_NAME-flat.vmdk\""},{"line_number":1423,"context_line":"            fi"},{"line_number":1424,"context_line":"            flat_url\u003d\"${image_url:0:${#image_url} - ${#IMAGE_FNAME}}$flat_fname\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAATn%2F%2Bc0k%3D","line":1421,"updated":"2013-11-25 22:31:49.000000000","message":"$flat_name -\u003e \"$flat_name\"","commit_id":"96f61ac5099ed92d9a3c11249ce3102ac6e9fa9f"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"be09e500128b4a0971e82f8eba17d7b1d6b45da8","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"            flat_fname\u003d\"$(head -25 $IMAGE | grep -G \u0027RW\\|RDONLY [0-9]+ FLAT\\|VMFS\u0027 $IMAGE)\""},{"line_number":1419,"context_line":"            flat_fname\u003d\"${flat_fname#*\\\"}\""},{"line_number":1420,"context_line":"            flat_fname\u003d\"${flat_fname%?}\""},{"line_number":1421,"context_line":"            if [[ -z $flat_name ]]; then"},{"line_number":1422,"context_line":"                flat_fname\u003d\"$IMAGE_NAME-flat.vmdk\""},{"line_number":1423,"context_line":"            fi"},{"line_number":1424,"context_line":"            flat_url\u003d\"${image_url:0:${#image_url} - ${#IMAGE_FNAME}}$flat_fname\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAATn%2F%2BFR4%3D","line":1421,"in_reply_to":"AAAATn%2F%2Bc0k%3D","updated":"2013-12-02 19:17:06.000000000","message":"Done","commit_id":"96f61ac5099ed92d9a3c11249ce3102ac6e9fa9f"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"b15f1da716a59c85655311f83cb17b5674d4710d","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"            if [[ -z $flat_name ]]; then"},{"line_number":1422,"context_line":"                flat_fname\u003d\"$IMAGE_NAME-flat.vmdk\""},{"line_number":1423,"context_line":"            fi"},{"line_number":1424,"context_line":"            flat_url\u003d\"${image_url:0:${#image_url} - ${#IMAGE_FNAME}}$flat_fname\""},{"line_number":1425,"context_line":"            warn $LINENO \"$descriptor_data_pair_msg Attempt to retrieve the *-flat.vmdk: $flat_url\""},{"line_number":1426,"context_line":"            if [[ $flat_url !\u003d file* ]]; then"},{"line_number":1427,"context_line":"                if [[ ! -f $FILES/$flat_fname || \"$(stat -c \"%s\" $FILES/$flat_fname)\" \u003d \"0\" ]]; then"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAATn%2F%2Bc20%3D","line":1424,"updated":"2013-11-25 22:31:49.000000000","message":"My head kinda hurts on this one :-). Consider extracting a part the expression into a more descriptive variable, then using the variable instead.","commit_id":"96f61ac5099ed92d9a3c11249ce3102ac6e9fa9f"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"be09e500128b4a0971e82f8eba17d7b1d6b45da8","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"            if [[ -z $flat_name ]]; then"},{"line_number":1422,"context_line":"                flat_fname\u003d\"$IMAGE_NAME-flat.vmdk\""},{"line_number":1423,"context_line":"            fi"},{"line_number":1424,"context_line":"            flat_url\u003d\"${image_url:0:${#image_url} - ${#IMAGE_FNAME}}$flat_fname\""},{"line_number":1425,"context_line":"            warn $LINENO \"$descriptor_data_pair_msg Attempt to retrieve the *-flat.vmdk: $flat_url\""},{"line_number":1426,"context_line":"            if [[ $flat_url !\u003d file* ]]; then"},{"line_number":1427,"context_line":"                if [[ ! -f $FILES/$flat_fname || \"$(stat -c \"%s\" $FILES/$flat_fname)\" \u003d \"0\" ]]; then"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAATn%2F%2BFRw%3D","line":1424,"in_reply_to":"AAAATn%2F%2Bc20%3D","updated":"2013-12-02 19:17:06.000000000","message":"Done","commit_id":"96f61ac5099ed92d9a3c11249ce3102ac6e9fa9f"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"b15f1da716a59c85655311f83cb17b5674d4710d","unresolved":false,"context_lines":[{"line_number":1424,"context_line":"            flat_url\u003d\"${image_url:0:${#image_url} - ${#IMAGE_FNAME}}$flat_fname\""},{"line_number":1425,"context_line":"            warn $LINENO \"$descriptor_data_pair_msg Attempt to retrieve the *-flat.vmdk: $flat_url\""},{"line_number":1426,"context_line":"            if [[ $flat_url !\u003d file* ]]; then"},{"line_number":1427,"context_line":"                if [[ ! -f $FILES/$flat_fname || \"$(stat -c \"%s\" $FILES/$flat_fname)\" \u003d \"0\" ]]; then"},{"line_number":1428,"context_line":"                    wget -c $flat_url -O $FILES/$flat_fname"},{"line_number":1429,"context_line":"                    if [[ $? -ne 0 ]]; then"},{"line_number":1430,"context_line":"                        echo \"Flat disk not found: $flat_url\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAATn%2F%2Bc2s%3D","line":1427,"updated":"2013-11-25 22:31:49.000000000","message":"Can you remind me what case the \"stat -c ...\" part is trying to catch?","commit_id":"96f61ac5099ed92d9a3c11249ce3102ac6e9fa9f"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"b15f1da716a59c85655311f83cb17b5674d4710d","unresolved":false,"context_lines":[{"line_number":1443,"context_line":"            IMAGE_NAME\u003d\"${flat_fname}\""},{"line_number":1444,"context_line":"        elif [[ -z \"$vmdk_create_type\" ]]; then"},{"line_number":1445,"context_line":"            # *-flat.vmdk provided: attempt to retrieve the descriptor (*.vmdk) to retrieve appropriate"},{"line_number":1446,"context_line":"            descriptor_fname\u003d\"${IMAGE_NAME:0:${#IMAGE_NAME} - 5}.vmdk\""},{"line_number":1447,"context_line":"            flat_url\u003d\"${image_url:0:${#image_url} - ${#IMAGE_FNAME}}$flat_fname\""},{"line_number":1448,"context_line":"            descriptor_url\u003d$flat_url$descriptor_fname"},{"line_number":1449,"context_line":"            warn $LINENO \"$descriptor_data_pair_msg Attempt to retrieve the descriptor *.vmdk: $descriptor_url\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAATn%2F%2Bc2I%3D","line":1446,"updated":"2013-11-25 22:31:49.000000000","message":"if the file path does not end in \u0027-flat.vmdk\u0027, we should bail. So I suggest we additionally verify that the 5 characters stripped are indeed \u0027-flat\u0027","commit_id":"96f61ac5099ed92d9a3c11249ce3102ac6e9fa9f"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"be09e500128b4a0971e82f8eba17d7b1d6b45da8","unresolved":false,"context_lines":[{"line_number":1443,"context_line":"            IMAGE_NAME\u003d\"${flat_fname}\""},{"line_number":1444,"context_line":"        elif [[ -z \"$vmdk_create_type\" ]]; then"},{"line_number":1445,"context_line":"            # *-flat.vmdk provided: attempt to retrieve the descriptor (*.vmdk) to retrieve appropriate"},{"line_number":1446,"context_line":"            descriptor_fname\u003d\"${IMAGE_NAME:0:${#IMAGE_NAME} - 5}.vmdk\""},{"line_number":1447,"context_line":"            flat_url\u003d\"${image_url:0:${#image_url} - ${#IMAGE_FNAME}}$flat_fname\""},{"line_number":1448,"context_line":"            descriptor_url\u003d$flat_url$descriptor_fname"},{"line_number":1449,"context_line":"            warn $LINENO \"$descriptor_data_pair_msg Attempt to retrieve the descriptor *.vmdk: $descriptor_url\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAATn%2F%2BFHg%3D","line":1446,"in_reply_to":"AAAATn%2F%2Bc2I%3D","updated":"2013-12-02 19:17:06.000000000","message":"Done","commit_id":"96f61ac5099ed92d9a3c11249ce3102ac6e9fa9f"},{"author":{"_account_id":8027,"name":"Vui Lam","email":"vui@vmware.com","username":"vui"},"change_message_id":"b15f1da716a59c85655311f83cb17b5674d4710d","unresolved":false,"context_lines":[{"line_number":1468,"context_line":"                vmdk_adapter_type\u003d\"${vmdk_adapter_type#*\\\"}\""},{"line_number":1469,"context_line":"                vmdk_adapter_type\u003d\"${vmdk_adapter_type%?}\""},{"line_number":1470,"context_line":"            fi"},{"line_number":1471,"context_line":"            vmdk_disktype\u003d\"preallocated\""},{"line_number":1472,"context_line":"        else"},{"line_number":1473,"context_line":"            #TODO(alegendre): handle streamOptimized once supported by the VMware driver."},{"line_number":1474,"context_line":"            vmdk_disktype\u003d\"preallocated\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAATn%2F%2Bc1M%3D","line":1471,"updated":"2013-11-25 22:31:49.000000000","message":"So we don\u0027t miss it, the TODO in 1473 should be duplicated here.","commit_id":"96f61ac5099ed92d9a3c11249ce3102ac6e9fa9f"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"be09e500128b4a0971e82f8eba17d7b1d6b45da8","unresolved":false,"context_lines":[{"line_number":1468,"context_line":"                vmdk_adapter_type\u003d\"${vmdk_adapter_type#*\\\"}\""},{"line_number":1469,"context_line":"                vmdk_adapter_type\u003d\"${vmdk_adapter_type%?}\""},{"line_number":1470,"context_line":"            fi"},{"line_number":1471,"context_line":"            vmdk_disktype\u003d\"preallocated\""},{"line_number":1472,"context_line":"        else"},{"line_number":1473,"context_line":"            #TODO(alegendre): handle streamOptimized once supported by the VMware driver."},{"line_number":1474,"context_line":"            vmdk_disktype\u003d\"preallocated\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAATn%2F%2BFQI%3D","line":1471,"in_reply_to":"AAAATn%2F%2Bc1M%3D","updated":"2013-12-02 19:17:06.000000000","message":"Done","commit_id":"96f61ac5099ed92d9a3c11249ce3102ac6e9fa9f"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"19677514deb23f110b6629c75e2f3838e919881e","unresolved":false,"context_lines":[{"line_number":1458,"context_line":"            warn $LINENO \"$descriptor_data_pair_msg\"`"},{"line_number":1459,"context_line":"                         `\" Attempt to retrieve the descriptor *.vmdk: $descriptor_url\""},{"line_number":1460,"context_line":"            if [[ $flat_path !\u003d file* ]]; then"},{"line_number":1461,"context_line":"                if [[ ! -f $FILES/$descriptor_fname || \"$(stat -c \"%s\" $FILES/$descriptor_fname)\" \u003d \"0\" ]]; then"},{"line_number":1462,"context_line":"                    wget -c $descriptor_url -O $FILES/$descriptor_fname"},{"line_number":1463,"context_line":"                    if [[ $? -ne 0 ]]; then"},{"line_number":1464,"context_line":"                        warn $LINENO \"Descriptor not found $descriptor_url\""}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAATn%2F9%2FIg%3D","line":1461,"updated":"2013-12-03 18:40:26.000000000","message":"is there any way of writing this line or to wrap it in 2 lines","commit_id":"6f51ab802fdb7fb5c2069ecf0b8b0df250080bc9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"19677514deb23f110b6629c75e2f3838e919881e","unresolved":false,"context_lines":[{"line_number":1474,"context_line":"                 fi"},{"line_number":1475,"context_line":"            fi"},{"line_number":1476,"context_line":"            if $descriptor_found; then"},{"line_number":1477,"context_line":"                vmdk_adapter_type\u003d\"$(head -25 $descriptor_url | grep -a -F -m 1 \u0027ddb.adapterType \u003d\u0027 $descriptor_url)\""},{"line_number":1478,"context_line":"                vmdk_adapter_type\u003d\"${vmdk_adapter_type#*\\\"}\""},{"line_number":1479,"context_line":"                vmdk_adapter_type\u003d\"${vmdk_adapter_type%?}\""},{"line_number":1480,"context_line":"            fi"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAATn%2F9%2FIY%3D","line":1477,"updated":"2013-12-03 18:40:26.000000000","message":"ditto","commit_id":"6f51ab802fdb7fb5c2069ecf0b8b0df250080bc9"},{"author":{"_account_id":8302,"name":"Ryan Hsu","email":"hryan@vmware.com","username":"rhsu"},"change_message_id":"4b62aac91d7d05701bd04ca3dfd033698d4ff02c","unresolved":false,"context_lines":[{"line_number":1493,"context_line":"        # NOTE: For backwards compatibility reasons, colons may be used in place"},{"line_number":1494,"context_line":"        # of semi-colons for property delimiters but they are not permitted"},{"line_number":1495,"context_line":"        # characters in NTFS filesystems."},{"line_number":1496,"context_line":"        property_string\u003d`echo \"$IMAGE_NAME\" | grep -oP \u0027(?\u003c\u003d-)(?!.*-).+[:;].+[:;].+$\u0027`"},{"line_number":1497,"context_line":"        IFS\u003d\u0027:;\u0027 read -a props \u003c\u003c\u003c \"$property_string\""},{"line_number":1498,"context_line":"        vmdk_disktype\u003d\"${props[0]:-$vmdk_disktype}\""},{"line_number":1499,"context_line":"        vmdk_adapter_type\u003d\"${props[1]:-$vmdk_adapter_type}\""}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAATn%2F9%2Bvc%3D","line":1496,"updated":"2013-12-03 20:09:54.000000000","message":"Regex pattern will need to be updated so the properties can be fed through the filename. Most likely this just requires adding a \"-flat\" at the end of the pattern.","commit_id":"2ca19106c1be45cd674b8cba27816af0a78a93cb"}]}
