)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"d9d1566ccc8c1b2e7add696ca661aa81f6015473","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     YAMAMOTO Takashi \u003cyamamoto@midokura.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-03 03:57:36 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Do not specify port security attributes unless the extension is enabled"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"CONF.network_feature_enabled.port_security [1] was introduced"},{"line_number":10,"context_line":"recently.  It\u0027s enabled by devstack unconditionally and breaks"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a629dbe_93fddd3c","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":71},"updated":"2016-11-09 00:04:54.000000000","message":"Keep first line to 50 characters","commit_id":"85f25e308d192d46b1e6d74f4b83a618d7586c45"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d706e0e0a1d55a33c31175fd3db51489e5236002","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     YAMAMOTO Takashi \u003cyamamoto@midokura.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-03 03:57:36 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Do not specify port security attributes unless the extension is enabled"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"CONF.network_feature_enabled.port_security [1] was introduced"},{"line_number":10,"context_line":"recently.  It\u0027s enabled by devstack unconditionally and breaks"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a629dbe_a7c89ba9","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":71},"in_reply_to":"9a629dbe_93fddd3c","updated":"2016-11-10 07:54:04.000000000","message":"Done","commit_id":"85f25e308d192d46b1e6d74f4b83a618d7586c45"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fa6dc6e9bd56e3a6103adcc84ac158c2adca2a6e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Do not specify port security attributes unless the extension is enabled"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"CONF.network_feature_enabled.port_security [1] was introduced"},{"line_number":10,"context_line":"recently.  It\u0027s enabled by devstack unconditionally and breaks"},{"line_number":11,"context_line":"plugins without the extension.  This commit fixes the regression"},{"line_number":12,"context_line":"by avoiding using the extension unless it\u0027s available."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Why CONF.network_feature_enabled.port_security was necessary"},{"line_number":15,"context_line":"in addition to the usual mechanism is unclear to me."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"[1] I1efd5c838aa0d73cc6e8864e3041eea25850198d"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a629dbe_eb99c76f","line":15,"range":{"start_line":9,"start_character":0,"end_line":15,"end_character":52},"updated":"2016-11-08 19:27:52.000000000","message":"I am fine to go forward with managing this with the extension-list as Neutron development.\nHowever, this message doesn\u0027t explain anything of Neutron development at all.\nand it is easy to imagine new confusions come after merging this patch.\n\nI think it is necessary to make the exisiting port_security option deprecated with enough help message and add this code in a single patch.","commit_id":"85f25e308d192d46b1e6d74f4b83a618d7586c45"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d706e0e0a1d55a33c31175fd3db51489e5236002","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Do not specify port security attributes unless the extension is enabled"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"CONF.network_feature_enabled.port_security [1] was introduced"},{"line_number":10,"context_line":"recently.  It\u0027s enabled by devstack unconditionally and breaks"},{"line_number":11,"context_line":"plugins without the extension.  This commit fixes the regression"},{"line_number":12,"context_line":"by avoiding using the extension unless it\u0027s available."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Why CONF.network_feature_enabled.port_security was necessary"},{"line_number":15,"context_line":"in addition to the usual mechanism is unclear to me."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"[1] I1efd5c838aa0d73cc6e8864e3041eea25850198d"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a629dbe_c744af1c","line":15,"range":{"start_line":9,"start_character":0,"end_line":15,"end_character":52},"in_reply_to":"9a629dbe_91d7554a","updated":"2016-11-10 07:54:04.000000000","message":"i added some explanation. hope it\u0027s what you asked.","commit_id":"85f25e308d192d46b1e6d74f4b83a618d7586c45"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"529c92b71b29471da12fcb2ea9d37efbfc8f2c82","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Do not specify port security attributes unless the extension is enabled"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"CONF.network_feature_enabled.port_security [1] was introduced"},{"line_number":10,"context_line":"recently.  It\u0027s enabled by devstack unconditionally and breaks"},{"line_number":11,"context_line":"plugins without the extension.  This commit fixes the regression"},{"line_number":12,"context_line":"by avoiding using the extension unless it\u0027s available."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Why CONF.network_feature_enabled.port_security was necessary"},{"line_number":15,"context_line":"in addition to the usual mechanism is unclear to me."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"[1] I1efd5c838aa0d73cc6e8864e3041eea25850198d"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a629dbe_91d7554a","line":15,"range":{"start_line":9,"start_character":0,"end_line":15,"end_character":52},"in_reply_to":"9a629dbe_eb99c76f","updated":"2016-11-10 07:03:01.000000000","message":"can you explain what you mean by neutron development?","commit_id":"85f25e308d192d46b1e6d74f4b83a618d7586c45"}],"releasenotes/notes/deprecate-port_security_enabled-ff1ab128ca491ab4.yaml":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"176a9232dc30a3300b6ef42dcc5a5346367141da","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - CONF.network_feature_enabled.port_security option was deprecated."},{"line_number":4,"context_line":"    It\u0027s recommended to set it True and configure"},{"line_number":5,"context_line":"    CONF.network_feature_enabled.api_extensions appropriately."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"dfeb2761_2f9a5e6d","line":5,"range":{"start_line":3,"start_character":0,"end_line":5,"end_character":62},"updated":"2017-04-04 09:00:18.000000000","message":"I think we should explain the situation in upgrade section: where user with  CONF.network_feature_enabled.port_security\u003dTrue may end up skipping the tests as per their api_extensions setting.\n\ncase 3 in https://review.openstack.org/#/c/392464/7/tempest/scenario/manager.py","commit_id":"e881b2dd637b7692092cd1c25f6720ffa3dc92e8"}],"tempest/config.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9c6a226ac3d090a050037b10286794b2bbbed893","unresolved":false,"context_lines":[{"line_number":598,"context_line":"    cfg.BoolOpt(\u0027port_security\u0027,"},{"line_number":599,"context_line":"                default\u003dFalse,"},{"line_number":600,"context_line":"                help\u003d\"Does the test environment support port security? \""},{"line_number":601,"context_line":"                     \"[DEPRECATED]\"),"},{"line_number":602,"context_line":"]"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"validation_group \u003d cfg.OptGroup(name\u003d\u0027validation\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a629dbe_b156eb03","line":601,"range":{"start_line":601,"start_character":22,"end_line":601,"end_character":34},"updated":"2016-11-11 00:36:25.000000000","message":"This deprecation way is wrong.\n\nPlease use deprecated_for_removal and deprecated_reason instead of writing just a comment.","commit_id":"0e1beb116798471da888dec301d72a410a9bf8e1"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"4a8c1a8e3ea687136c5c42b0debadbfb48b1761a","unresolved":false,"context_lines":[{"line_number":598,"context_line":"    cfg.BoolOpt(\u0027port_security\u0027,"},{"line_number":599,"context_line":"                default\u003dFalse,"},{"line_number":600,"context_line":"                help\u003d\"Does the test environment support port security? \""},{"line_number":601,"context_line":"                     \"[DEPRECATED]\"),"},{"line_number":602,"context_line":"]"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"validation_group \u003d cfg.OptGroup(name\u003d\u0027validation\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a77a97e_847535fb","line":601,"range":{"start_line":601,"start_character":22,"end_line":601,"end_character":34},"in_reply_to":"9a629dbe_b156eb03","updated":"2016-11-18 05:07:26.000000000","message":"Done","commit_id":"0e1beb116798471da888dec301d72a410a9bf8e1"}],"tempest/scenario/manager.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"79243d958e4c27b70c76ea44acce2fd951f5d849","unresolved":false,"context_lines":[{"line_number":681,"context_line":"        network_kwargs \u003d dict(name\u003dname, tenant_id\u003dtenant_id)"},{"line_number":682,"context_line":"        # Neutron disables port security by default so we have to check the"},{"line_number":683,"context_line":"        # config before trying to create the network with port_security_enabled"},{"line_number":684,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":685,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":686,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"},{"line_number":687,"context_line":"        result \u003d networks_client.create_network(**network_kwargs)"},{"line_number":688,"context_line":"        network \u003d result[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_772fe73e","line":685,"range":{"start_line":684,"start_character":0,"end_line":685,"end_character":60},"updated":"2016-11-02 23:14:23.000000000","message":"I am not sure why we need to check both on the above.\nThey seems the same meaning from the names.\nIt is nice to describe the reason on the commit message.","commit_id":"7c4649482ba3486898dc96c8e7e81a33ae9ee365"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"e3887c0dae4a513a113a4b70d90a449702f0a550","unresolved":false,"context_lines":[{"line_number":681,"context_line":"        network_kwargs \u003d dict(name\u003dname, tenant_id\u003dtenant_id)"},{"line_number":682,"context_line":"        # Neutron disables port security by default so we have to check the"},{"line_number":683,"context_line":"        # config before trying to create the network with port_security_enabled"},{"line_number":684,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":685,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":686,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"},{"line_number":687,"context_line":"        result \u003d networks_client.create_network(**network_kwargs)"},{"line_number":688,"context_line":"        network \u003d result[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_e65c277f","line":685,"range":{"start_line":684,"start_character":0,"end_line":685,"end_character":60},"in_reply_to":"ba5da102_772fe73e","updated":"2016-11-03 03:58:16.000000000","message":"Done","commit_id":"7c4649482ba3486898dc96c8e7e81a33ae9ee365"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d0c9a5887861bd4037722bfbb9ba4253ecb793a2","unresolved":false,"context_lines":[{"line_number":681,"context_line":"        network_kwargs \u003d dict(name\u003dname, tenant_id\u003dtenant_id)"},{"line_number":682,"context_line":"        # Neutron disables port security by default so we have to check the"},{"line_number":683,"context_line":"        # config before trying to create the network with port_security_enabled"},{"line_number":684,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":685,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":686,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"},{"line_number":687,"context_line":"        result \u003d networks_client.create_network(**network_kwargs)"},{"line_number":688,"context_line":"        network \u003d result[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_1a3ed227","line":685,"range":{"start_line":684,"start_character":0,"end_line":685,"end_character":60},"in_reply_to":"ba5da102_772fe73e","updated":"2016-11-03 00:35:19.000000000","message":"honestly speaking, i don\u0027t understand the rationale of CONF.network_feature_enabled.port_security.\nas you +2\u0027ed the change [1], you know it better than i do. :-)\n\n[1] I1efd5c838aa0d73cc6e8864e3041eea25850198d","commit_id":"7c4649482ba3486898dc96c8e7e81a33ae9ee365"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"d9d1566ccc8c1b2e7add696ca661aa81f6015473","unresolved":false,"context_lines":[{"line_number":679,"context_line":"            tenant_id \u003d networks_client.tenant_id"},{"line_number":680,"context_line":"        name \u003d data_utils.rand_name(namestart)"},{"line_number":681,"context_line":"        network_kwargs \u003d dict(name\u003dname, tenant_id\u003dtenant_id)"},{"line_number":682,"context_line":"        # Neutron disables port security by default so we have to check the"},{"line_number":683,"context_line":"        # config before trying to create the network with port_security_enabled"},{"line_number":684,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":685,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":686,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a629dbe_aee35832","line":683,"range":{"start_line":682,"start_character":8,"end_line":683,"end_character":79},"updated":"2016-11-09 00:04:54.000000000","message":"Change comment as needed","commit_id":"85f25e308d192d46b1e6d74f4b83a618d7586c45"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d706e0e0a1d55a33c31175fd3db51489e5236002","unresolved":false,"context_lines":[{"line_number":679,"context_line":"            tenant_id \u003d networks_client.tenant_id"},{"line_number":680,"context_line":"        name \u003d data_utils.rand_name(namestart)"},{"line_number":681,"context_line":"        network_kwargs \u003d dict(name\u003dname, tenant_id\u003dtenant_id)"},{"line_number":682,"context_line":"        # Neutron disables port security by default so we have to check the"},{"line_number":683,"context_line":"        # config before trying to create the network with port_security_enabled"},{"line_number":684,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":685,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":686,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a629dbe_e7b1b348","line":683,"range":{"start_line":682,"start_character":8,"end_line":683,"end_character":79},"in_reply_to":"9a629dbe_aee35832","updated":"2016-11-10 07:54:04.000000000","message":"Done","commit_id":"85f25e308d192d46b1e6d74f4b83a618d7586c45"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"bb0969bc9bd761da8f2b9def68f76356c5628251","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        #  - CONF.network_feature_enabled.api_extensions"},{"line_number":701,"context_line":"        #  - CONF.network_feature_enabled.port_security"},{"line_number":702,"context_line":"        # The latter is a temporary hack and will be removed in the future."},{"line_number":703,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":704,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":705,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"},{"line_number":706,"context_line":"        result \u003d networks_client.create_network(**network_kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_c730d758","line":703,"updated":"2016-11-21 10:25:17.000000000","message":"Shouldn\u0027t this be a \"or\" instead of an \"and\" ?","commit_id":"e881b2dd637b7692092cd1c25f6720ffa3dc92e8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bb1dbfb88f80b992ecb7392c1fd057d74d3a5e2b","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        #  - CONF.network_feature_enabled.api_extensions"},{"line_number":701,"context_line":"        #  - CONF.network_feature_enabled.port_security"},{"line_number":702,"context_line":"        # The latter is a temporary hack and will be removed in the future."},{"line_number":703,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":704,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":705,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"},{"line_number":706,"context_line":"        result \u003d networks_client.create_network(**network_kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ffe62b97_a728dee1","line":703,"in_reply_to":"5a3905b3_f6b3b108","updated":"2017-03-27 15:39:30.000000000","message":"yea we have 2 contradicted config options here and one really break some deployment. \n\nI agree with Andrea that we cannot change the default value of port_security to True which breaks people.\n\nSo \u0027and\u0027 condition looks a much better solution here which solve bug#1638487 and also honor the port_security config options also.\n\nBelow can be possible deployment:\n \n1. port_security\u003dTrue, api_extensions\u003d\u0027all\u0027 (or it include port-security extension).\n- old behavior: create net with \u0027port_security_enabled\u0027, \n- new behavior: same\n\n2. port_security\u003dfalse, api_extensions\u003d\u0027all\u0027 (or it include port-security extension).\n- old behavior: create net without \u0027port_security_enabled\u0027, \n- new behavior: same\n\n3. port_security\u003dTrue, api_extensions\u003d[it does not include port-security extension].\n- old behavior: create net with \u0027port_security_enabled\u0027, \n- new behavior: changed\n\n4. port_security\u003dfalse, api_extensions\u003d[it does not include port-security extension].\n- old behavior: create net without \u0027port_security_enabled\u0027, \n- new behavior: same\n\ncase 3rd is what this bug is about where actual port-security extension not available but port_security option was true.\n\nmaking it \u0027or\u0027 condition makes behavior change for 2nd.\n\nSo 3rd case leads to failure where it add \u0027port_security_enabled\u0027 in API request which is failed by neutron.\nand 2nd is the where it does not include the extra attribute in request so no failure from neutron(but yea it can leads to other test behavior change).\n\nBut we have to take one decision. I think we go with \u0027and\u0027 condition with deprecation of port_security config option and with well documented about this behavior change and recommend to use api_extensions.","commit_id":"e881b2dd637b7692092cd1c25f6720ffa3dc92e8"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"f387d69df1988fa48d9209ef3540f9b4760e3822","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        #  - CONF.network_feature_enabled.api_extensions"},{"line_number":701,"context_line":"        #  - CONF.network_feature_enabled.port_security"},{"line_number":702,"context_line":"        # The latter is a temporary hack and will be removed in the future."},{"line_number":703,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":704,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":705,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"},{"line_number":706,"context_line":"        result \u003d networks_client.create_network(**network_kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da4df55a_e53ba2cf","line":703,"in_reply_to":"7a77a97e_c05eef78","updated":"2016-12-23 18:11:12.000000000","message":"This is kind of an impossible situation :S\n\nSince config is a stable interface, we need to honour the current behaviour.\n\nRight now we have an inconsistent default, where port-security is False by default, but the list of api_extensions \u003d\u003d all by default. The current logic behaves so that port-security overrides api_extensions, so we need to respect that until the deprecation cycle is over.\n\nHowever, saying that port-security is deprecated means that we encourage our users to use the list in api_extensions only. But if they do so, the default value (False) of port-security will cause the test to be skipped.\n\nBut we cannot change the default to \"True\" either because that would change the default behaviour in case nothing is changed in the configuration, so network scenario tests would suddenly start using port_security.\n\nSo the only way out I see is via documentation i.e. tell this option is deprecated, but in case you want to enable port_security please set it to true, which is really ugly. Does anyone has a better idea?","commit_id":"e881b2dd637b7692092cd1c25f6720ffa3dc92e8"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"bad82598654bbe6758946bea9bfd681b532d1e9d","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        #  - CONF.network_feature_enabled.api_extensions"},{"line_number":701,"context_line":"        #  - CONF.network_feature_enabled.port_security"},{"line_number":702,"context_line":"        # The latter is a temporary hack and will be removed in the future."},{"line_number":703,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":704,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":705,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"},{"line_number":706,"context_line":"        result \u003d networks_client.create_network(**network_kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_c05eef78","line":703,"in_reply_to":"7a77a97e_c730d758","updated":"2016-11-21 10:47:48.000000000","message":"my understanding is that for older branches it needs to be disabled in case api_extensions\u003dall and port_security\u003dfalse.","commit_id":"e881b2dd637b7692092cd1c25f6720ffa3dc92e8"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"17ef83a11c82ddd80d17249f7290c07a7cde9b63","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        #  - CONF.network_feature_enabled.api_extensions"},{"line_number":701,"context_line":"        #  - CONF.network_feature_enabled.port_security"},{"line_number":702,"context_line":"        # The latter is a temporary hack and will be removed in the future."},{"line_number":703,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":704,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":705,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"},{"line_number":706,"context_line":"        result \u003d networks_client.create_network(**network_kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a3905b3_f6b3b108","line":703,"in_reply_to":"da4df55a_e53ba2cf","updated":"2017-01-19 06:26:10.000000000","message":"the introduction of the new port_security option, with the associated devstack change, changed the behaviour for the certain configuration and broke compatibility.  i\u0027m not sure why we can\u0027t change it again.","commit_id":"e881b2dd637b7692092cd1c25f6720ffa3dc92e8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1634684a878739f4ed91f218348c536cceacd02f","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        #  - CONF.network_feature_enabled.api_extensions"},{"line_number":701,"context_line":"        #  - CONF.network_feature_enabled.port_security"},{"line_number":702,"context_line":"        # The latter is a temporary hack and will be removed in the future."},{"line_number":703,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":704,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":705,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"},{"line_number":706,"context_line":"        result \u003d networks_client.create_network(**network_kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfeb2761_80749969","line":703,"in_reply_to":"ffe62b97_843462df","updated":"2017-04-04 10:14:02.000000000","message":"yea, there is no best solution here and we have to go with better one.\n\nAs discussed on IRC we can go with following approach.\n\nAs current change(L703) will change behavior of 3rd case only, we can raise InvalidConfiguration exception in that case (where port_security\u003dTrue, api_extensions\u003d[it does not include port-security extension]) with proper message saying that\n\n\"There are two conflict config options in tempest.conf: network_feature_enabled[port_security]\u003d%s, network_feature_enabled[api_extensions]\u003d%s.  CONF.network_feature_enabled.port_security has been deprecated and will be removed in future. Configure the api_extensions correctly to include the \u0027port-security\u0027 extension as per your cloud configuration. \n\nSo if anyone changed the default value of \u0027port_security\u0027 and not configured the \u0027api_extensions\u0027 with \u0027port-security\u0027 extension will fail.","commit_id":"e881b2dd637b7692092cd1c25f6720ffa3dc92e8"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"fd4a2d9852d06d593e9e4728c0456dfa80ef506d","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        #  - CONF.network_feature_enabled.api_extensions"},{"line_number":701,"context_line":"        #  - CONF.network_feature_enabled.port_security"},{"line_number":702,"context_line":"        # The latter is a temporary hack and will be removed in the future."},{"line_number":703,"context_line":"        if (tempest.test.is_extension_enabled(\u0027port-security\u0027, \u0027network\u0027) and"},{"line_number":704,"context_line":"                CONF.network_feature_enabled.port_security):"},{"line_number":705,"context_line":"            network_kwargs[\u0027port_security_enabled\u0027] \u003d port_security_enabled"},{"line_number":706,"context_line":"        result \u003d networks_client.create_network(**network_kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ffe62b97_843462df","line":703,"in_reply_to":"ffe62b97_a728dee1","updated":"2017-03-29 05:05:19.000000000","message":"I believe it should be OR here. Yes, it may break some setups with wrong configuration (where they specify port-security in api_extensions - or all - but don\u0027t want to execute the tests), but that makes sense to enable the tests for those that correctly configure tempest with just api_extensions.","commit_id":"e881b2dd637b7692092cd1c25f6720ffa3dc92e8"}]}
