)]}'
{"devstack/lib/ironic":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"94792ee8fce66c9fd07deeb9bba6dd00da686b35","unresolved":false,"context_lines":[{"line_number":1199,"context_line":"    # over iSCSI."},{"line_number":1200,"context_line":"    if is_glance_configuration_required; then"},{"line_number":1201,"context_line":"        if [[ \"$SWIFT_ENABLE_TEMPURLS\" \u003d\u003d \"False\" ]] ; then"},{"line_number":1202,"context_line":"            die $LINENO \"SWIFT_ENABLE_TEMPURLS must be True. This is \" \\"},{"line_number":1203,"context_line":"                        \"required either because IRONIC_DEPLOY_DRIVER was \" \\"},{"line_number":1204,"context_line":"                        \"set to some agent_* driver OR configuration of \" \\"},{"line_number":1205,"context_line":"                        \"Glance with Swift was explicitly requested with \" \\"},{"line_number":1206,"context_line":"                        \"IRONIC_CONFIGURE_GLANCE_WITH_SWIFT\u003dTrue\""},{"line_number":1207,"context_line":"        fi"},{"line_number":1208,"context_line":"        iniset $IRONIC_CONF_FILE glance swift_endpoint_url ${SWIFT_SERVICE_PROTOCOL}://${SERVICE_HOST}:${SWIFT_DEFAULT_BIND_PORT:-8080}"},{"line_number":1209,"context_line":"        iniset $IRONIC_CONF_FILE glance swift_api_version v1"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"df87a7cf_8a0b46d4","line":1206,"range":{"start_line":1202,"start_character":0,"end_line":1206,"end_character":65},"updated":"2017-12-08 13:03:54.000000000","message":"nit: Seems like we should revise this text...","commit_id":"7e3cb0002382d4a8ee278fd9ac0b52fe78bd44cd"}],"ironic/common/glance_service/v2/image_service.py":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"2eb4846377743777b41ca93b31af393a0bc94257","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                auth_ref \u003d swift_session.auth.get_auth_ref(swift_session)"},{"line_number":152,"context_line":"                account \u003d \u0027AUTH_%s\u0027 % auth_ref.project_id"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"            url_fragments[\u0027account\u0027] \u003d account"},{"line_number":155,"context_line":"            template \u003d \u0027/{api_version}/{account}/{container}/{object_id}\u0027"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        url_path \u003d template.format(**url_fragments)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_629086ee","line":154,"updated":"2017-12-07 16:45:17.000000000","message":"in fact at this point you can try to get the swift_temp_url key as well, via swiftclient\u0027s head_account","commit_id":"f7b0994b74e81bfb04ef2f195e23c1760dd5cf51"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f604e0fb2bfe7043662acdfd7cf4d3914c20f2c3","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                auth_ref \u003d swift_session.auth.get_auth_ref(swift_session)"},{"line_number":152,"context_line":"                account \u003d \u0027AUTH_%s\u0027 % auth_ref.project_id"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"            url_fragments[\u0027account\u0027] \u003d account"},{"line_number":155,"context_line":"            template \u003d \u0027/{api_version}/{account}/{container}/{object_id}\u0027"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        url_path \u003d template.format(**url_fragments)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_6c538218","line":154,"in_reply_to":"df87a7cf_629086ee","updated":"2017-12-08 10:48:52.000000000","message":"Yeah, but probably in a separate patch just to keep it clean.","commit_id":"f7b0994b74e81bfb04ef2f195e23c1760dd5cf51"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"25d863096b20305dd0c7c0b963ec01ed5a99a445","unresolved":false,"context_lines":[{"line_number":198,"context_line":"    def _validate_temp_url_config(self):"},{"line_number":199,"context_line":"        \"\"\"Validate the required settings for a temporary URL.\"\"\""},{"line_number":200,"context_line":"        if (not CONF.glance.swift_temp_url_key and"},{"line_number":201,"context_line":"                CONF.deploy.object_store_endpoint_type !\u003d \u0027swift\u0027):"},{"line_number":202,"context_line":"            raise exc.MissingParameterValue(_("},{"line_number":203,"context_line":"                \u0027Swift temporary URLs require a shared secret to be created. \u0027"},{"line_number":204,"context_line":"                \u0027You must provide \"swift_temp_url_key\" as a config option.\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_38754fcd","line":201,"updated":"2017-12-13 11:20:32.000000000","message":"hmmm, I wonder if we can support this for radosgw too, they same to document the header: http://docs.ceph.com/docs/jewel/radosgw/swift/tempurl/#post-temp-url-keys","commit_id":"83dd6a1c0ea0b2ec8059b90a3f7af5f2d766fef2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cd5576b4d2df7b4dc17d8b51f2ad29ad77bdd2b9","unresolved":false,"context_lines":[{"line_number":198,"context_line":"    def _validate_temp_url_config(self):"},{"line_number":199,"context_line":"        \"\"\"Validate the required settings for a temporary URL.\"\"\""},{"line_number":200,"context_line":"        if (not CONF.glance.swift_temp_url_key and"},{"line_number":201,"context_line":"                CONF.deploy.object_store_endpoint_type !\u003d \u0027swift\u0027):"},{"line_number":202,"context_line":"            raise exc.MissingParameterValue(_("},{"line_number":203,"context_line":"                \u0027Swift temporary URLs require a shared secret to be created. \u0027"},{"line_number":204,"context_line":"                \u0027You must provide \"swift_temp_url_key\" as a config option.\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_58684eb9","line":201,"in_reply_to":"df87a7cf_38754fcd","updated":"2017-12-13 14:10:39.000000000","message":"I agree, we very likely could, as my understanding is the intent is to be a moderately compatible drop-in replacement for swift.\n\nI suspect without some level of CI integration testing in our gating, it might be something we need to avoid because the decision to use radosgw is a opinionated choice within a deployment, and I worry that we do not have enough context to make that independently to fully understand why, and then test it as such.\n\nOf course, if we an integration test with radosgw, that would be a different matter.","commit_id":"83dd6a1c0ea0b2ec8059b90a3f7af5f2d766fef2"}],"ironic/common/swift.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"d6b44b412a2fe3b4b230b983a40cb9860f701c3c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"class SwiftAPI(object):"},{"line_number":41,"context_line":"    \"\"\"API for communicating with Swift.\"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    connection \u003d None"},{"line_number":44,"context_line":"    \"\"\"Underlying Swift connection object.\"\"\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_3e14bb43","line":43,"updated":"2017-12-08 16:22:39.000000000","message":"Why is this needed? I see we set self.connection on line 87. What is the purpose of this class level version?","commit_id":"7e3cb0002382d4a8ee278fd9ac0b52fe78bd44cd"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"c1240e50ab96952c856ed8992aa96008318e4445","unresolved":false,"context_lines":[{"line_number":40,"context_line":"class SwiftAPI(object):"},{"line_number":41,"context_line":"    \"\"\"API for communicating with Swift.\"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    connection \u003d None"},{"line_number":44,"context_line":"    \"\"\"Underlying Swift connection object.\"\"\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_bea20bad","line":43,"in_reply_to":"df87a7cf_1eba1709","updated":"2017-12-08 16:37:35.000000000","message":"Thanks","commit_id":"7e3cb0002382d4a8ee278fd9ac0b52fe78bd44cd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8b04b17443573892af85b94f7ed5b0ea84d18999","unresolved":false,"context_lines":[{"line_number":40,"context_line":"class SwiftAPI(object):"},{"line_number":41,"context_line":"    \"\"\"API for communicating with Swift.\"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    connection \u003d None"},{"line_number":44,"context_line":"    \"\"\"Underlying Swift connection object.\"\"\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_1eba1709","line":43,"in_reply_to":"df87a7cf_3e14bb43","updated":"2017-12-08 16:23:41.000000000","message":"Logically, to document it as a public field. Technically, to make autospec work with mocking SwiftAPI (otherwise it does not catch this attribute).","commit_id":"7e3cb0002382d4a8ee278fd9ac0b52fe78bd44cd"}],"ironic/conf/glance.py":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"87aaee65315a5c05af52ca82f5263f40ca5527ec","unresolved":false,"context_lines":[{"line_number":35,"context_line":"               help\u003d_(\u0027The secret token given to Swift to allow temporary URL \u0027"},{"line_number":36,"context_line":"                      \u0027downloads. Required for temporary URLs. For the \u0027"},{"line_number":37,"context_line":"                      \u0027Swift backend, the key on the service project is used \u0027"},{"line_number":38,"context_line":"                      \u0027if missing.\u0027),"},{"line_number":39,"context_line":"               secret\u003dTrue),"},{"line_number":40,"context_line":"    cfg.IntOpt(\u0027swift_temp_url_duration\u0027,"},{"line_number":41,"context_line":"               default\u003d1200,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_1cd89fec","line":38,"range":{"start_line":38,"start_character":33,"end_line":38,"end_character":35},"updated":"2017-12-12 10:34:24.000000000","message":"may be mention here \u0027.. as set in [swift] section\u0027 ?","commit_id":"8a37135e2089f886d55cdbe16c80f0fb3b4aedfe"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"87aaee65315a5c05af52ca82f5263f40ca5527ec","unresolved":false,"context_lines":[{"line_number":72,"context_line":"               \u0027Do not include trailing \"/\". \u0027"},{"line_number":73,"context_line":"               \u0027For example, use \"https://swift.example.com\". If using RADOS \u0027"},{"line_number":74,"context_line":"               \u0027Gateway, endpoint may also contain /swift path; if it does \u0027"},{"line_number":75,"context_line":"               \u0027not, it will be appended. Required for temporary URLs, will \u0027"},{"line_number":76,"context_line":"               \u0027be fetched from the service catalog, if not provided.\u0027)),"},{"line_number":77,"context_line":"    cfg.StrOpt("},{"line_number":78,"context_line":"        \u0027swift_api_version\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_fc8a9bbc","line":75,"range":{"start_line":75,"start_character":42,"end_line":75,"end_character":50},"updated":"2017-12-12 10:34:24.000000000","message":"does not make sense with \u0027..if not provided\u0027.","commit_id":"8a37135e2089f886d55cdbe16c80f0fb3b4aedfe"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"87aaee65315a5c05af52ca82f5263f40ca5527ec","unresolved":false,"context_lines":[{"line_number":87,"context_line":"               \u0027UUID for the account configured in the glance-api.conf. \u0027"},{"line_number":88,"context_line":"               \u0027For example: \"AUTH_a422b2-91f3-2f46-74b7-d7c9e8958f5d30\". \u0027"},{"line_number":89,"context_line":"               \u0027If not set, the default value is calculated based on the ID \u0027"},{"line_number":90,"context_line":"               \u0027of the project used to access Swift. \u0027"},{"line_number":91,"context_line":"               \u0027Swift temporary URL format: \u0027"},{"line_number":92,"context_line":"               \u0027\"endpoint_url/api_version/[account/]container/object_id\"\u0027)),"},{"line_number":93,"context_line":"    cfg.StrOpt("}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_bc9093ee","line":90,"range":{"start_line":90,"start_character":19,"end_line":90,"end_character":51},"updated":"2017-12-12 10:34:24.000000000","message":"the same on mentioning the [swift] section","commit_id":"8a37135e2089f886d55cdbe16c80f0fb3b4aedfe"}]}
