)]}'
{"nova/conf/cloudpipe.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5a739306832f9d74094b6de0f987484cd8bcb3d0","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from nova.i18n import _"},{"line_number":19,"context_line":"from nova import paths"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"vpn_image_id_opt \u003d cfg.StrOpt("},{"line_number":22,"context_line":"    \u0027vpn_image_id\u0027,"},{"line_number":23,"context_line":"    default\u003d\u00270\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_416c719c","line":20,"updated":"2016-01-27 13:24:43.000000000","message":"Insert TODO before to convert this to IntOpt?","commit_id":"23fb609b80c243a284ad873b37eea72c063b1c5c"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"b21e777321e7cee11648149b56772db26e29d99d","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from nova.i18n import _"},{"line_number":19,"context_line":"from nova import paths"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"vpn_image_id_opt \u003d cfg.StrOpt("},{"line_number":22,"context_line":"    \u0027vpn_image_id\u0027,"},{"line_number":23,"context_line":"    default\u003d\u00270\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_41dc4ae4","line":20,"in_reply_to":"7a5de9d1_416c719c","updated":"2016-01-28 07:11:05.000000000","message":"You mean add TODO here to inform changing to IntOpt in the future?","commit_id":"23fb609b80c243a284ad873b37eea72c063b1c5c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c271c1b47c116000cf43afb17109a44b58a16c7c","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from nova.i18n import _"},{"line_number":19,"context_line":"from nova import paths"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"vpn_image_id_opt \u003d cfg.StrOpt("},{"line_number":22,"context_line":"    \u0027vpn_image_id\u0027,"},{"line_number":23,"context_line":"    default\u003d\u00270\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_ad040f7e","line":20,"in_reply_to":"7a5de9d1_41dc4ae4","updated":"2016-01-28 09:05:45.000000000","message":"Yes, but it\u0027s not necessary right now (I\u0027m not even sure this will always receive ints anyway)","commit_id":"23fb609b80c243a284ad873b37eea72c063b1c5c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5a739306832f9d74094b6de0f987484cd8bcb3d0","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from nova.i18n import _"},{"line_number":19,"context_line":"from nova import paths"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"vpn_image_id_opt \u003d cfg.StrOpt("},{"line_number":22,"context_line":"    \u0027vpn_image_id\u0027,"},{"line_number":23,"context_line":"    default\u003d\u00270\u0027,"},{"line_number":24,"context_line":"    help\u003d\u0027Image ID used when starting up a cloudpipe vpn server\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_015e79e9","line":21,"range":{"start_line":21,"start_character":12,"end_line":21,"end_character":16},"updated":"2016-01-27 13:24:43.000000000","message":"nit: I\u0027d drop the \u0027_opt\u0027 suffix - we\u0027re not using Hungarian Notation here [1] and it\u0027s unnecessary :)\n\n[1] https://en.wikipedia.org/wiki/Hungarian_notation","commit_id":"23fb609b80c243a284ad873b37eea72c063b1c5c"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"b21e777321e7cee11648149b56772db26e29d99d","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from nova.i18n import _"},{"line_number":19,"context_line":"from nova import paths"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"vpn_image_id_opt \u003d cfg.StrOpt("},{"line_number":22,"context_line":"    \u0027vpn_image_id\u0027,"},{"line_number":23,"context_line":"    default\u003d\u00270\u0027,"},{"line_number":24,"context_line":"    help\u003d\u0027Image ID used when starting up a cloudpipe vpn server\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_214caec6","line":21,"range":{"start_line":21,"start_character":12,"end_line":21,"end_character":16},"in_reply_to":"7a5de9d1_015e79e9","updated":"2016-01-28 07:11:05.000000000","message":"Done","commit_id":"23fb609b80c243a284ad873b37eea72c063b1c5c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5a739306832f9d74094b6de0f987484cd8bcb3d0","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"def register_opts(conf):"},{"line_number":61,"context_line":"    conf.register_opts(ALL_OPTS)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_012c3949","line":61,"updated":"2016-01-27 13:24:43.000000000","message":"I could be missing something, but I think we\u0027re missing \u0027list_opts\u0027 function here?","commit_id":"23fb609b80c243a284ad873b37eea72c063b1c5c"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"b21e777321e7cee11648149b56772db26e29d99d","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"def register_opts(conf):"},{"line_number":61,"context_line":"    conf.register_opts(ALL_OPTS)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_5b23ddbd","line":61,"in_reply_to":"7a5de9d1_012c3949","updated":"2016-01-28 07:11:05.000000000","message":"huh, my bad","commit_id":"23fb609b80c243a284ad873b37eea72c063b1c5c"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"35be6328a8f93d22509ea2a3c1793ee6b9cc991f","unresolved":false,"context_lines":[{"line_number":21,"context_line":"vpn_image_id \u003d cfg.StrOpt("},{"line_number":22,"context_line":"    \u0027vpn_image_id\u0027,"},{"line_number":23,"context_line":"    default\u003d\u00270\u0027,"},{"line_number":24,"context_line":"    help\u003d\u0027Image ID used when starting up a cloudpipe vpn server\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"vpn_flavor \u003d cfg.StrOpt("},{"line_number":27,"context_line":"    \u0027vpn_flavor\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_5b8aab1c","line":24,"range":{"start_line":24,"start_character":9,"end_line":24,"end_character":64},"updated":"2016-02-05 02:21:13.000000000","message":"Add a marker function like the following.\n\n_(\u0027Image ID used when starting up a cloudpipe vpn server\u0027)","commit_id":"51d542770826c344509940ce625d9a8f0d9baedf"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"cb25bf5d9e7900f29fc056f8d8b901574f9d5338","unresolved":false,"context_lines":[{"line_number":21,"context_line":"vpn_image_id \u003d cfg.StrOpt("},{"line_number":22,"context_line":"    \u0027vpn_image_id\u0027,"},{"line_number":23,"context_line":"    default\u003d\u00270\u0027,"},{"line_number":24,"context_line":"    help\u003d\u0027Image ID used when starting up a cloudpipe vpn server\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"vpn_flavor \u003d cfg.StrOpt("},{"line_number":27,"context_line":"    \u0027vpn_flavor\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_0addb76e","line":24,"range":{"start_line":24,"start_character":9,"end_line":24,"end_character":64},"in_reply_to":"5a5ae5dd_5b8aab1c","updated":"2016-02-05 05:48:02.000000000","message":"Done","commit_id":"51d542770826c344509940ce625d9a8f0d9baedf"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"35be6328a8f93d22509ea2a3c1793ee6b9cc991f","unresolved":false,"context_lines":[{"line_number":46,"context_line":"vpn_key_suffix \u003d cfg.StrOpt("},{"line_number":47,"context_line":"    \u0027vpn_key_suffix\u0027,"},{"line_number":48,"context_line":"    default\u003d\u0027-vpn\u0027,"},{"line_number":49,"context_line":"    help\u003d\u0027Suffix to add to project name for vpn key and secgroups\u0027)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"ALL_OPTS \u003d [vpn_image_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_5b914b46","line":49,"range":{"start_line":49,"start_character":9,"end_line":49,"end_character":66},"updated":"2016-02-05 02:21:13.000000000","message":"ditto","commit_id":"51d542770826c344509940ce625d9a8f0d9baedf"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"cb25bf5d9e7900f29fc056f8d8b901574f9d5338","unresolved":false,"context_lines":[{"line_number":46,"context_line":"vpn_key_suffix \u003d cfg.StrOpt("},{"line_number":47,"context_line":"    \u0027vpn_key_suffix\u0027,"},{"line_number":48,"context_line":"    default\u003d\u0027-vpn\u0027,"},{"line_number":49,"context_line":"    help\u003d\u0027Suffix to add to project name for vpn key and secgroups\u0027)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"ALL_OPTS \u003d [vpn_image_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_eadffb66","line":49,"range":{"start_line":49,"start_character":9,"end_line":49,"end_character":66},"in_reply_to":"5a5ae5dd_5b914b46","updated":"2016-02-05 05:48:02.000000000","message":"Done","commit_id":"51d542770826c344509940ce625d9a8f0d9baedf"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"0439ec55265bf226d472530e495844b2ffe4cd0c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Huawei Technology corp."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"da0c15f0_bd175550","line":1,"updated":"2016-03-25 18:09:46.000000000","message":"Please remove this copyright line. This is not new code, simply moved code, and frankly, we should not be adding new copyright lines unless there is substantial code additions or changes.","commit_id":"3fadd9104d50f8f81380dcc9f24689b1f4f8c9e0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d66a1e47a0d59c960478ef6622ef1a9f567e5fdd","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from nova.i18n import _"},{"line_number":18,"context_line":"from nova import paths"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"cloudpipe_opts \u003d ["},{"line_number":21,"context_line":"    cfg.StrOpt("},{"line_number":22,"context_line":"        \u0027vpn_image_id\u0027,"},{"line_number":23,"context_line":"        default\u003d\u00270\u0027,"},{"line_number":24,"context_line":"        help\u003d_(\u0027Image ID used when starting up a cloudpipe vpn server\u0027)),"},{"line_number":25,"context_line":"    cfg.StrOpt("},{"line_number":26,"context_line":"        \u0027vpn_flavor\u0027,"},{"line_number":27,"context_line":"        default\u003d\u0027m1.tiny\u0027,"},{"line_number":28,"context_line":"        help\u003d_(\u0027Flavor for vpn instances\u0027)),"},{"line_number":29,"context_line":"    cfg.StrOpt("},{"line_number":30,"context_line":"        \u0027boot_script_template\u0027,"},{"line_number":31,"context_line":"        default\u003dpaths.basedir_def(\u0027nova/cloudpipe/bootscript.template\u0027),"},{"line_number":32,"context_line":"        help\u003d_(\u0027Template for cloudpipe instance boot script\u0027)),"},{"line_number":33,"context_line":"    cfg.StrOpt("},{"line_number":34,"context_line":"        \u0027dmz_net\u0027,"},{"line_number":35,"context_line":"        default\u003d\u002710.0.0.0\u0027,"},{"line_number":36,"context_line":"        help\u003d_(\u0027Network to push into openvpn config\u0027)),"},{"line_number":37,"context_line":"    cfg.StrOpt("},{"line_number":38,"context_line":"        \u0027dmz_mask\u0027,"},{"line_number":39,"context_line":"        default\u003d\u0027255.255.255.0\u0027,"},{"line_number":40,"context_line":"        help\u003d_(\u0027Netmask to push into openvpn config\u0027)),"},{"line_number":41,"context_line":"    cfg.StrOpt("},{"line_number":42,"context_line":"        \u0027vpn_key_suffix\u0027,"},{"line_number":43,"context_line":"        default\u003d\u0027-vpn\u0027,"},{"line_number":44,"context_line":"        help\u003d_(\u0027Suffix to add to project name for vpn key and secgroups\u0027))"},{"line_number":45,"context_line":"]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def register_opts(conf):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba0121b8_320e248c","line":45,"range":{"start_line":20,"start_character":0,"end_line":45,"end_character":1},"updated":"2016-04-01 08:58:58.000000000","message":"Why did you go from individual opts to a list? It\u0027s not wrong, but it does seem inconsistent with the majority of other configuration options and make\u0027s it a little harder to write documentation for.","commit_id":"4c08d37705908d50d44a388d33ccf41b93820cbe"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c8670b71d35d00a8675e1e05b6c334ba49958d4d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from nova.i18n import _"},{"line_number":18,"context_line":"from nova import paths"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"cloudpipe_opts \u003d ["},{"line_number":21,"context_line":"    cfg.StrOpt("},{"line_number":22,"context_line":"        \u0027vpn_image_id\u0027,"},{"line_number":23,"context_line":"        default\u003d\u00270\u0027,"},{"line_number":24,"context_line":"        help\u003d_(\u0027Image ID used when starting up a cloudpipe vpn server\u0027)),"},{"line_number":25,"context_line":"    cfg.StrOpt("},{"line_number":26,"context_line":"        \u0027vpn_flavor\u0027,"},{"line_number":27,"context_line":"        default\u003d\u0027m1.tiny\u0027,"},{"line_number":28,"context_line":"        help\u003d_(\u0027Flavor for vpn instances\u0027)),"},{"line_number":29,"context_line":"    cfg.StrOpt("},{"line_number":30,"context_line":"        \u0027boot_script_template\u0027,"},{"line_number":31,"context_line":"        default\u003dpaths.basedir_def(\u0027nova/cloudpipe/bootscript.template\u0027),"},{"line_number":32,"context_line":"        help\u003d_(\u0027Template for cloudpipe instance boot script\u0027)),"},{"line_number":33,"context_line":"    cfg.StrOpt("},{"line_number":34,"context_line":"        \u0027dmz_net\u0027,"},{"line_number":35,"context_line":"        default\u003d\u002710.0.0.0\u0027,"},{"line_number":36,"context_line":"        help\u003d_(\u0027Network to push into openvpn config\u0027)),"},{"line_number":37,"context_line":"    cfg.StrOpt("},{"line_number":38,"context_line":"        \u0027dmz_mask\u0027,"},{"line_number":39,"context_line":"        default\u003d\u0027255.255.255.0\u0027,"},{"line_number":40,"context_line":"        help\u003d_(\u0027Netmask to push into openvpn config\u0027)),"},{"line_number":41,"context_line":"    cfg.StrOpt("},{"line_number":42,"context_line":"        \u0027vpn_key_suffix\u0027,"},{"line_number":43,"context_line":"        default\u003d\u0027-vpn\u0027,"},{"line_number":44,"context_line":"        help\u003d_(\u0027Suffix to add to project name for vpn key and secgroups\u0027))"},{"line_number":45,"context_line":"]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def register_opts(conf):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba0121b8_533d9729","line":45,"range":{"start_line":20,"start_character":0,"end_line":45,"end_character":1},"in_reply_to":"ba0121b8_320e248c","updated":"2016-04-01 11:12:12.000000000","message":"I actually prefer this. Its consistent with the original definition, so it seems fine.","commit_id":"4c08d37705908d50d44a388d33ccf41b93820cbe"}]}
