)]}'
{"api-ref/source/parameters.yaml":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":223,"context_line":"  type: string"},{"line_number":224,"context_line":"client_auth_option:"},{"line_number":225,"context_line":"  description: |"},{"line_number":226,"context_line":"    The type of the verify client certificate. One of the options ``None``,"},{"line_number":227,"context_line":"    ``Optional`` and ``Mandatory``."},{"line_number":228,"context_line":"  in: body"},{"line_number":229,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fdfeff1_0c0ae1d0","line":226,"updated":"2019-02-16 02:58:33.000000000","message":"re-word this.","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":224,"context_line":"client_auth_option:"},{"line_number":225,"context_line":"  description: |"},{"line_number":226,"context_line":"    The type of the verify client certificate. One of the options ``None``,"},{"line_number":227,"context_line":"    ``Optional`` and ``Mandatory``."},{"line_number":228,"context_line":"  in: body"},{"line_number":229,"context_line":"  required: true"},{"line_number":230,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9fdfeff1_6cfa8dbd","line":227,"updated":"2019-02-16 02:58:33.000000000","message":"Our settings like this are capitalized, so should be \"MANDATORY\", OPTIONAL, NONE","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"api-ref/source/v2/examples/listener-create-curl":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"curl -X POST -H \"Content-Type: application/json\" -H \"X-Auth-Token: \u003ctoken\u003e\" -d \u0027{\"listener\": {\"protocol\": \"TERMINATED_HTTPS\", \"description\": \"A great TLS listener\", \"admin_state_up\": true, \"connection_limit\": 200, \"protocol_port\": \"443\", \"loadbalancer_id\": \"607226db-27ef-4d41-ae89-f2a800e9c2db\", \"name\": \"great_tls_listener\", \"insert_headers\": {\"X-Forwarded-For\": \"true\", \"X-Forwarded-Port\": \"true\"}, \"default_tls_container_ref\": \"http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51\", \"sni_container_refs\": [\"http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51\", \"http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee\"], \"timeout_client_data\": 50000, \"timeout_member_connect\": 5000, \"timeout_member_data\": 50000, \"timeout_tcp_inspect\": 0, \"tags\": [\"test_tag\"], \"client_ca_tls_container_ref\": \"http://198.51.100.10:9311/v1/containers/35649991-49f3-4625-81ce-2465fe8932e5\", \"client_auth_option\": \"Mandatory\"}}\u0027 http://198.51.100.10:9876/v2/lbaas/listeners"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"9fdfeff1_cc0ff9dd","line":1,"updated":"2019-02-16 02:58:33.000000000","message":"Our settings like this are capitalized, so should be \"MANDATORY\"","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"api-ref/source/v2/examples/listener-create-request.json":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        \"timeout_tcp_inspect\": 0,"},{"line_number":23,"context_line":"        \"tags\": [\"test_tag\"],"},{"line_number":24,"context_line":"        \"client_ca_tls_container_ref\": \"http://198.51.100.10:9311/v1/containers/35649991-49f3-4625-81ce-2465fe8932e5\","},{"line_number":25,"context_line":"        \"client_auth_option\": \"Mandatory\""},{"line_number":26,"context_line":"    }"},{"line_number":27,"context_line":"}"}],"source_content_type":"application/json","patch_set":9,"id":"9fdfeff1_0c33c1ac","line":25,"updated":"2019-02-16 02:58:33.000000000","message":"Our settings like this are capitalized, so should be \"MANDATORY\"","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"api-ref/source/v2/examples/listener-create-response.json":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        \"timeout_tcp_inspect\": 0,"},{"line_number":38,"context_line":"        \"tags\": [\"test_tag\"],"},{"line_number":39,"context_line":"        \"client_ca_tls_container_ref\": \"http://198.51.100.10:9311/v1/containers/35649991-49f3-4625-81ce-2465fe8932e5\","},{"line_number":40,"context_line":"        \"client_auth_option\": \"Mandatory\""},{"line_number":41,"context_line":"    }"},{"line_number":42,"context_line":"}"}],"source_content_type":"application/json","patch_set":9,"id":"9fdfeff1_8ce33105","line":40,"updated":"2019-02-16 02:58:33.000000000","message":"Our settings like this are capitalized, so should be \"MANDATORY\"","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"api-ref/source/v2/examples/listener-show-response.json":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        \"timeout_tcp_inspect\": 0,"},{"line_number":38,"context_line":"        \"tags\": [\"test_tag\"],"},{"line_number":39,"context_line":"        \"client_ca_tls_container_ref\": \"http://198.51.100.10:9311/v1/containers/35649991-49f3-4625-81ce-2465fe8932e5\","},{"line_number":40,"context_line":"        \"client_auth_option\": \"Mandatory\""},{"line_number":41,"context_line":"    }"},{"line_number":42,"context_line":"}"}],"source_content_type":"application/json","patch_set":9,"id":"9fdfeff1_2ceec5ec","line":40,"updated":"2019-02-16 02:58:33.000000000","message":"Our settings like this are capitalized, so should be \"MANDATORY\"","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"api-ref/source/v2/listener.inc":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":46,"context_line":".. rest_parameters:: ../parameters.yaml"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   - admin_state_up: admin_state_up"},{"line_number":49,"context_line":"   - client_auth_option: client_auth_option"},{"line_number":50,"context_line":"   - client_ca_tls_container_ref: client_ca_tls_container_ref"},{"line_number":51,"context_line":"   - connection_limit: connection_limit"},{"line_number":52,"context_line":"   - created_at: created_at"}],"source_content_type":"text/x-c++src","patch_set":9,"id":"9fdfeff1_4ce9c9e0","line":49,"range":{"start_line":49,"start_character":5,"end_line":49,"end_character":23},"updated":"2019-02-16 02:58:33.000000000","message":"client_authentication","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"octavia/api/drivers/utils.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"9fdfeff1_ecbd1dd8","updated":"2019-02-16 02:58:33.000000000","message":"We need to update the provider doc","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"octavia/api/v2/controllers/listener.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2b28b5d7a4d1b838f886bb69b6bcfdbd30a7f692","unresolved":false,"context_lines":[{"line_number":202,"context_line":"                \"be provided for %s protocol listeners.\") %"},{"line_number":203,"context_line":"                constants.PROTOCOL_TERMINATED_HTTPS)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        # Make sure we have a client CA cert if they enable client auth"},{"line_number":206,"context_line":"        if (listener_dict.get(\u0027client_authentication\u0027) !\u003d"},{"line_number":207,"context_line":"            constants.CLIENT_AUTH_NONE and not"},{"line_number":208,"context_line":"                listener_dict.get(\u0027client_ca_tls_certificate_id\u0027)):"}],"source_content_type":"text/x-python","patch_set":11,"id":"9fdfeff1_e6e19f9c","line":205,"updated":"2019-02-16 22:22:43.000000000","message":"Missing a unit test branch","commit_id":"5572be5ae861bc24e68649238f384792523442ed"}],"octavia/api/v2/types/listener.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    timeout_tcp_inspect \u003d wtypes.wsattr(wtypes.IntegerType())"},{"line_number":57,"context_line":"    tags \u003d wtypes.wsattr(wtypes.ArrayType(wtypes.StringType()))"},{"line_number":58,"context_line":"    client_ca_tls_container_ref \u003d wtypes.StringType()"},{"line_number":59,"context_line":"    client_auth_option \u003d wtypes.wsattr(wtypes.text)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @classmethod"},{"line_number":62,"context_line":"    def from_data_model(cls, data_model, children\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fdfeff1_6ce84de1","line":59,"range":{"start_line":59,"start_character":4,"end_line":59,"end_character":22},"updated":"2019-02-16 02:58:33.000000000","message":"I think we should clarify this, and just use \"client_authentication\"","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    timeout_tcp_inspect \u003d wtypes.wsattr(wtypes.IntegerType())"},{"line_number":57,"context_line":"    tags \u003d wtypes.wsattr(wtypes.ArrayType(wtypes.StringType()))"},{"line_number":58,"context_line":"    client_ca_tls_container_ref \u003d wtypes.StringType()"},{"line_number":59,"context_line":"    client_auth_option \u003d wtypes.wsattr(wtypes.text)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @classmethod"},{"line_number":62,"context_line":"    def from_data_model(cls, data_model, children\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fdfeff1_c93b6be7","line":59,"updated":"2019-02-16 02:58:33.000000000","message":"StringType","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    tags \u003d wtypes.wsattr(wtypes.ArrayType(wtypes.StringType(max_length\u003d255)))"},{"line_number":148,"context_line":"    client_ca_tls_container_ref \u003d wtypes.StringType(max_length\u003d255)"},{"line_number":149,"context_line":"    client_auth_option \u003d wtypes.wsattr("},{"line_number":150,"context_line":"        wtypes.Enum(str, *constants.SUPPPORT_CLIENT_AUTH_TYPES))"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"class ListenerRootPOST(types.BaseType):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fdfeff1_a911475f","line":150,"updated":"2019-02-16 02:58:33.000000000","message":"Default None?","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"octavia/common/constants.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":562,"context_line":"TYPE_NONE \u003d \u0027None\u0027"},{"line_number":563,"context_line":"TYPE_OPTIONAL \u003d \u0027Optional\u0027"},{"line_number":564,"context_line":"TYPE_MANDATORY \u003d \u0027Mandatory\u0027"},{"line_number":565,"context_line":"SUPPPORT_CLIENT_AUTH_TYPES \u003d [TYPE_NONE, TYPE_OPTIONAL, TYPE_MANDATORY]"},{"line_number":566,"context_line":"VERIFY_OPTION_MAPPING \u003d {TYPE_NONE: \u0027none\u0027, TYPE_OPTIONAL: \u0027optional\u0027,"},{"line_number":567,"context_line":"                         TYPE_MANDATORY: \u0027required\u0027}"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fdfeff1_0cc18154","line":565,"range":{"start_line":565,"start_character":0,"end_line":565,"end_character":8},"updated":"2019-02-16 02:58:33.000000000","message":"SUPPORTED","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"octavia/common/exceptions.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":369,"context_line":"    message \u003d _(\u0027Error with file %(file_name)s. Reason: %(reason)s\u0027)"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"class MissClientCertArgument(APIException):"},{"line_number":373,"context_line":"    msg \u003d _(\"Client certificate option \u0027%(option)s\u0027 must be specified.\")"},{"line_number":374,"context_line":"    code \u003d 400"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fdfeff1_8ccc9189","line":372,"updated":"2019-02-16 02:58:33.000000000","message":"We can probably use ValidationException","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"octavia/common/jinja/haproxy/jinja_cfg.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                client_ca_cert.id)"},{"line_number":242,"context_line":"            verify_type \u003d getattr("},{"line_number":243,"context_line":"                listener.client_ca_tls_certificate_id,"},{"line_number":244,"context_line":"                \u0027client_cert_auth_option\u0027)"},{"line_number":245,"context_line":"            ret_value[\u0027verify_type\u0027] \u003d constants.VERIFY_OPTION_MAPPING.get("},{"line_number":246,"context_line":"                verify_type)"},{"line_number":247,"context_line":"        if listener.default_pool:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fdfeff1_68002335","line":244,"updated":"2019-02-16 02:58:33.000000000","message":"Fix this","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"octavia/db/migration/alembic_migrations/versions/f21ae3f21adc_add_client_auth_option.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":30,"context_line":"down_revision \u003d \u0027f1ca45e2761c\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def upgrade():"},{"line_number":34,"context_line":"    op.add_column(u\u0027certification\u0027,"},{"line_number":35,"context_line":"                  sa.Column(u\u0027client_cert_auth_option\u0027, sa.String(16),"},{"line_number":36,"context_line":"                            nullable\u003dFalse))"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fdfeff1_eca2fdad","line":33,"updated":"2019-02-16 02:58:33.000000000","message":"We need a table with the options and a foreign key relationship to the listener table.","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":33,"context_line":"def upgrade():"},{"line_number":34,"context_line":"    op.add_column(u\u0027certification\u0027,"},{"line_number":35,"context_line":"                  sa.Column(u\u0027client_cert_auth_option\u0027, sa.String(16),"},{"line_number":36,"context_line":"                            nullable\u003dFalse))"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fdfeff1_aca8758b","line":36,"updated":"2019-02-16 02:58:33.000000000","message":"We need to think about if null can be None, otherwise we need to do a migration for existing load balancers.","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}],"octavia/db/prepare.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"d8a0ef4167588126757b7711294ce9df21d70ea3","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            \u0027client_ca_tls_container_ref\u0027)"},{"line_number":104,"context_line":"    if \u0027client_auth_option\u0027 in listener_dict:"},{"line_number":105,"context_line":"        listener_dict[\u0027client_cert_auth_option\u0027] \u003d listener_dict.pop("},{"line_number":106,"context_line":"            \u0027client_auth_option\u0027)"},{"line_number":107,"context_line":"    return listener_dict"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9fdfeff1_ac8155fd","line":106,"updated":"2019-02-16 02:58:33.000000000","message":"Why?","commit_id":"612827720b8e5c7c54d9bc0f6f4500caaf8488b1"}]}
