)]}'
{"devstack/plugin.sh":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"105ea95ca4df7aacdebab3bf1ed67594167ede2f","unresolved":true,"context_lines":[{"line_number":159,"context_line":"    if [ $? -ne 0 ]; then"},{"line_number":160,"context_line":"      sudo groupadd docker"},{"line_number":161,"context_line":"    fi"},{"line_number":162,"context_line":"    add_user_to_group $STORLETS_SWIFT_RUNTIME_USER docker"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    if [ $STORLETS_SWIFT_RUNTIME_USER \u003d\u003d $USER ]; then"},{"line_number":165,"context_line":"      # NOTE(takashi): We need this workaroud because we can\u0027t reload"}],"source_content_type":"text/x-sh","patch_set":31,"id":"d900cd3a_c48b2a11","line":162,"updated":"2021-04-16 06:54:11.000000000","message":"I may be missing something but where the add_user_to_group function come from?","commit_id":"d1990c6f9ba46121d718c878ea1412fa6cd70151"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f04277a64e229040d7547df69afba5c2148de514","unresolved":true,"context_lines":[{"line_number":159,"context_line":"    if [ $? -ne 0 ]; then"},{"line_number":160,"context_line":"      sudo groupadd docker"},{"line_number":161,"context_line":"    fi"},{"line_number":162,"context_line":"    add_user_to_group $STORLETS_SWIFT_RUNTIME_USER docker"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    if [ $STORLETS_SWIFT_RUNTIME_USER \u003d\u003d $USER ]; then"},{"line_number":165,"context_line":"      # NOTE(takashi): We need this workaroud because we can\u0027t reload"}],"source_content_type":"text/x-sh","patch_set":31,"id":"f2e26417_5796b294","line":162,"in_reply_to":"d900cd3a_c48b2a11","updated":"2021-04-16 07:19:20.000000000","message":"It is implemented in devstack.\n https://github.com/openstack/devstack/blob/master/functions-common#L2070-L2077","commit_id":"d1990c6f9ba46121d718c878ea1412fa6cd70151"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"105ea95ca4df7aacdebab3bf1ed67594167ede2f","unresolved":true,"context_lines":[{"line_number":346,"context_line":"    mkdir -p ${TMP_REGISTRY_PREFIX}/repositories/$SWIFT_DEFAULT_PROJECT_ID"},{"line_number":347,"context_line":"    _generate_default_tenant_dockerfile"},{"line_number":348,"context_line":"    cd ${TMP_REGISTRY_PREFIX}/repositories/$SWIFT_DEFAULT_PROJECT_ID"},{"line_number":349,"context_line":"    sudo docker build -q -t ${SWIFT_DEFAULT_PROJECT_ID:0:13} ."},{"line_number":350,"context_line":"    cd -"},{"line_number":351,"context_line":"}"},{"line_number":352,"context_line":""}],"source_content_type":"text/x-sh","patch_set":31,"id":"0d4643cb_2e2d24cf","line":349,"updated":"2021-04-16 06:54:11.000000000","message":"If we have the user permitted to access docker socket, it still need not to add `sudo` here?","commit_id":"d1990c6f9ba46121d718c878ea1412fa6cd70151"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f04277a64e229040d7547df69afba5c2148de514","unresolved":true,"context_lines":[{"line_number":346,"context_line":"    mkdir -p ${TMP_REGISTRY_PREFIX}/repositories/$SWIFT_DEFAULT_PROJECT_ID"},{"line_number":347,"context_line":"    _generate_default_tenant_dockerfile"},{"line_number":348,"context_line":"    cd ${TMP_REGISTRY_PREFIX}/repositories/$SWIFT_DEFAULT_PROJECT_ID"},{"line_number":349,"context_line":"    sudo docker build -q -t ${SWIFT_DEFAULT_PROJECT_ID:0:13} ."},{"line_number":350,"context_line":"    cd -"},{"line_number":351,"context_line":"}"},{"line_number":352,"context_line":""}],"source_content_type":"text/x-sh","patch_set":31,"id":"3e7a02bc_00f7e744","line":349,"in_reply_to":"0d4643cb_2e2d24cf","updated":"2021-04-16 07:19:20.000000000","message":"We allow $STORLETS_SWIFT_RUNTIME_USER to access to docker but it can be different from $USER .\nThus during installation process we should use sudo here.","commit_id":"d1990c6f9ba46121d718c878ea1412fa6cd70151"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"a255205981bdfd888da54856f90ee27a2a33d180","unresolved":true,"context_lines":[{"line_number":47,"context_line":"# Storlets install tunables"},{"line_number":48,"context_line":"STORLETS_DEFAULT_USER_DOMAIN_ID\u003d${STORLETS_DEFAULT_USER_DOMAIN_ID:-default}"},{"line_number":49,"context_line":"STORLETS_DEFAULT_PROJECT_DOMAIN_ID\u003d${STORLETS_DEFAULT_PROJECT_DOMAIN_ID:-default}"},{"line_number":50,"context_line":"STORLET_MANAGEMENT_USER\u003d${STORLET_MANAGEMENT_USER:-$USER}"},{"line_number":51,"context_line":"STORLETS_DOCKER_DEVICE\u003d${STORLETS_DOCKER_DEVICE:-/home/docker_device}"},{"line_number":52,"context_line":"STORLETS_DOCKER_BASE_IMG\u003d${STORLETS_DOCKER_BASE_IMG:-ubuntu:20.04}"},{"line_number":53,"context_line":"STORLETS_DOCKER_BASE_IMG_NAME\u003d${STORLETS_DOCKER_BASE_IMG_NAME:-ubuntu_20.04}"}],"source_content_type":"text/x-sh","patch_set":36,"id":"898a5fbf_ea51af3e","side":"PARENT","line":50,"updated":"2021-08-20 02:39:55.000000000","message":"OK, this is unused variable.","commit_id":"e2060cd3426899bcdac8f710e68b5146007d0986"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"a255205981bdfd888da54856f90ee27a2a33d180","unresolved":true,"context_lines":[{"line_number":59,"context_line":"STORLETS_DEPENDENCY_CONTAINER_NAME\u003d${STORLETS_DEPENDENCY_CONTAINER_NAME:-dependency}"},{"line_number":60,"context_line":"STORLETS_LOG_CONTAIER_NAME\u003d${STORLETS_LOG_CONTAIER_NAME:-log}"},{"line_number":61,"context_line":"STORLETS_GATEWAY_MODULE\u003d${STORLETS_GATEWAY_MODULE:-docker}"},{"line_number":62,"context_line":"STORLETS_GATEWAY_CONF_FILE\u003d${STORLETS_GATEWAY_CONF_FILE:-${SWIFT_CONF_DIR}/storlet_docker_gateway.conf}"},{"line_number":63,"context_line":"STORLETS_PROXY_EXECUTION_ONLY\u003d${STORLETS_PROXY_EXECUTION_ONLY:-false}"},{"line_number":64,"context_line":"STORLETS_SCRIPTS_DIR\u003d${STORLETS_SCRIPTS_DIR:-\"$STORLETS_DOCKER_DEVICE\"/scripts}"},{"line_number":65,"context_line":"STORLETS_STORLETS_DIR\u003d${STORLETS_STORLETS_DIR:-\"$STORLETS_DOCKER_DEVICE\"/storlets/scopes}"}],"source_content_type":"text/x-sh","patch_set":36,"id":"0ca4bf34_bf59f2f7","line":62,"range":{"start_line":62,"start_character":57,"end_line":62,"end_character":74},"updated":"2021-08-20 02:39:55.000000000","message":"Where SWIFT_CONF_DIR comes from?","commit_id":"d60176cc2f7286257ab8d2187329943efec09bb7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e80c4b05813ee57ea05ed5b6bbe142102957271b","unresolved":true,"context_lines":[{"line_number":59,"context_line":"STORLETS_DEPENDENCY_CONTAINER_NAME\u003d${STORLETS_DEPENDENCY_CONTAINER_NAME:-dependency}"},{"line_number":60,"context_line":"STORLETS_LOG_CONTAIER_NAME\u003d${STORLETS_LOG_CONTAIER_NAME:-log}"},{"line_number":61,"context_line":"STORLETS_GATEWAY_MODULE\u003d${STORLETS_GATEWAY_MODULE:-docker}"},{"line_number":62,"context_line":"STORLETS_GATEWAY_CONF_FILE\u003d${STORLETS_GATEWAY_CONF_FILE:-${SWIFT_CONF_DIR}/storlet_docker_gateway.conf}"},{"line_number":63,"context_line":"STORLETS_PROXY_EXECUTION_ONLY\u003d${STORLETS_PROXY_EXECUTION_ONLY:-false}"},{"line_number":64,"context_line":"STORLETS_SCRIPTS_DIR\u003d${STORLETS_SCRIPTS_DIR:-\"$STORLETS_DOCKER_DEVICE\"/scripts}"},{"line_number":65,"context_line":"STORLETS_STORLETS_DIR\u003d${STORLETS_STORLETS_DIR:-\"$STORLETS_DOCKER_DEVICE\"/storlets/scopes}"}],"source_content_type":"text/x-sh","patch_set":36,"id":"b5ff95a6_41b50189","line":62,"range":{"start_line":62,"start_character":57,"end_line":62,"end_character":74},"in_reply_to":"0ca4bf34_bf59f2f7","updated":"2021-08-20 02:59:42.000000000","message":"This comes lib/swift of devstack\n https://github.com/openstack/devstack/blob/8b8a4c75b72eb44dd5c11950951cf6e6d9a1d778/lib/swift#L67\n\nWe source that file before executing plugin.sh\n https://github.com/openstack/storlets/blob/e2060cd3426899bcdac8f710e68b5146007d0986/s2aio.sh#L47","commit_id":"d60176cc2f7286257ab8d2187329943efec09bb7"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"a255205981bdfd888da54856f90ee27a2a33d180","unresolved":true,"context_lines":[{"line_number":135,"context_line":"    rm /tmp/storlet-docker-gateway.conf"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    # Create storlet related containers and set ACLs"},{"line_number":138,"context_line":"    start_swift"},{"line_number":139,"context_line":"    _export_swift_os_vars"},{"line_number":140,"context_line":"    openstack object store account set --property Storlet-Enabled\u003dTrue"},{"line_number":141,"context_line":"    swift post --read-acl $SWIFT_DEFAULT_PROJECT:$SWIFT_MEMBER_USER $STORLETS_STORLET_CONTAINER_NAME"}],"source_content_type":"text/x-sh","patch_set":36,"id":"9d06189a_dd610111","line":138,"updated":"2021-08-20 02:39:55.000000000","message":"sorry, i\u0027m not sure where those new start/stop_swift function are defined.\nI\u0027m checked my Swift-All-In-One env but I couldn\u0027t find so that it doesn\u0027t seem swift native ones.\n\nPerhaps, is it devstack one? (Because this is devstack plugin)","commit_id":"d60176cc2f7286257ab8d2187329943efec09bb7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e80c4b05813ee57ea05ed5b6bbe142102957271b","unresolved":true,"context_lines":[{"line_number":135,"context_line":"    rm /tmp/storlet-docker-gateway.conf"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    # Create storlet related containers and set ACLs"},{"line_number":138,"context_line":"    start_swift"},{"line_number":139,"context_line":"    _export_swift_os_vars"},{"line_number":140,"context_line":"    openstack object store account set --property Storlet-Enabled\u003dTrue"},{"line_number":141,"context_line":"    swift post --read-acl $SWIFT_DEFAULT_PROJECT:$SWIFT_MEMBER_USER $STORLETS_STORLET_CONTAINER_NAME"}],"source_content_type":"text/x-sh","patch_set":36,"id":"78ba644b_b2480737","line":138,"in_reply_to":"9d06189a_dd610111","updated":"2021-08-20 02:59:42.000000000","message":"The function is also implemented lib/swift in devstack. \n https://github.com/openstack/devstack/blob/8b8a4c75b72eb44dd5c11950951cf6e6d9a1d778/lib/swift#L775\n\nBecause this is devstack plugin(precisely speaking current plugin.sh is not devstack plugin because it is not called inside devstack but that\u0027s another thing) so it\u0027d make sense to reuse existing functions in devstack here.","commit_id":"d60176cc2f7286257ab8d2187329943efec09bb7"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"a255205981bdfd888da54856f90ee27a2a33d180","unresolved":true,"context_lines":[{"line_number":291,"context_line":"    done"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    sudo mkdir -p -m 0755 $STORLETS_DOCKER_DEVICE"},{"line_number":294,"context_line":"    sudo chown -R \"$STORLETS_SWIFT_RUNTIME_USER\":\"$STORLETS_SWIFT_RUNTIME_GROUP\" $STORLETS_DOCKER_DEVICE"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    # NOTE(takashi): We should cleanup egg-info directory here, otherwise it"},{"line_number":297,"context_line":"    #                causes permission denined when installing package by tox."}],"source_content_type":"text/x-sh","patch_set":36,"id":"4a87efb0_4b156db0","line":294,"updated":"2021-08-20 02:39:55.000000000","message":"OK. we still needs STORLETS_DOCKER_DEVICE for some circumstances (e.g. pipe for communication)","commit_id":"d60176cc2f7286257ab8d2187329943efec09bb7"}],"tests/unit/gateway/gateways/docker/test_runtime.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"185e2b85e34613b697cca7ddbee68cc86e9c47f5","unresolved":false,"context_lines":[{"line_number":449,"context_line":"                mock.patch(\u0027storlets.gateway.gateways.docker.runtime.\u0027"},{"line_number":450,"context_line":"                           \u0027RunTimeSandbox.wait\u0027) as wait:"},{"line_number":451,"context_line":"            _restart.side_effect \u003d StorletTimeout()"},{"line_number":452,"context_line":"            with assertRaises(StorletRuntimeException):"},{"line_number":453,"context_line":"                self.sbox.restart()"},{"line_number":454,"context_line":"            self.assertEqual(1, pipe_dir.call_count)"},{"line_number":455,"context_line":"            self.assertEqual(1, _restart.call_count)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9f560f44_66ab8487","line":452,"updated":"2020-09-08 14:42:39.000000000","message":"pep8: F821 undefined name \u0027assertRaises\u0027","commit_id":"a06496889a2a5ed2ccb768fda54dd6751df53733"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"a255205981bdfd888da54856f90ee27a2a33d180","unresolved":true,"context_lines":[{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        # TODO(takashi): should test timeout case"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    def test__restart(self):"},{"line_number":303,"context_line":"        # storlet container is not running"},{"line_number":304,"context_line":"        with mock.patch(\u0027storlets.gateway.gateways.docker.runtime.\u0027"},{"line_number":305,"context_line":"                        \u0027docker.from_env\u0027) as docker_from_env:"}],"source_content_type":"text/x-python","patch_set":36,"id":"578e68bf_690ca190","line":302,"range":{"start_line":302,"start_character":13,"end_line":302,"end_character":14},"updated":"2021-08-20 02:39:55.000000000","message":"OIC. this is only testing internal `_restart` ... hmmm...\n\nI don\u0027t have better idea for naming this. Let\u0027s leave this as it is.","commit_id":"d60176cc2f7286257ab8d2187329943efec09bb7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e80c4b05813ee57ea05ed5b6bbe142102957271b","unresolved":true,"context_lines":[{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        # TODO(takashi): should test timeout case"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    def test__restart(self):"},{"line_number":303,"context_line":"        # storlet container is not running"},{"line_number":304,"context_line":"        with mock.patch(\u0027storlets.gateway.gateways.docker.runtime.\u0027"},{"line_number":305,"context_line":"                        \u0027docker.from_env\u0027) as docker_from_env:"}],"source_content_type":"text/x-python","patch_set":36,"id":"a71e80c0_6ad2fcad","line":302,"range":{"start_line":302,"start_character":13,"end_line":302,"end_character":14},"in_reply_to":"578e68bf_690ca190","updated":"2021-08-20 02:59:42.000000000","message":"I didn\u0027t get a better naming either. Note that we still have test_restart to test the restrt method wrapping _restart below, so that\u0027s why I left the method name \"_\"restart here.","commit_id":"d60176cc2f7286257ab8d2187329943efec09bb7"}]}
