)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"01ad3a1a5dcf758f991ec2574c21805a75169c86","unresolved":false,"context_lines":[{"line_number":10,"context_line":"proxy requires to connect to metadata_proxy_socket when queried."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This change allows to run metadata proxy with nobody. use/group by"},{"line_number":13,"context_line":"allowing to choose the metadata_proxy_socket mode with the new option"},{"line_number":14,"context_line":"metadata_proxy_socket_mode in order to adapt socket permissions to"},{"line_number":15,"context_line":"metadata proxy user/group."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a80dd14_6a11e152","line":13,"updated":"2015-03-17 15:57:26.000000000","message":"Instead of allowing to set directly socket mode, perhaps we should allow to choose between 3 modes which set mode to 0o644/664/666","commit_id":"7fb5816348a7e7c877e700eed3171943afe2eac0"}],"etc/metadata_agent.ini":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":52,"context_line":"# \u0027group\u0027: set metadata proxy socket mode to 0o664, to use when"},{"line_number":53,"context_line":"# metadata_proxy_group is agent effective group,"},{"line_number":54,"context_line":"# \u0027all\u0027: set metadata proxy socket mode to 0o666, to use otherwise."},{"line_number":55,"context_line":"# metadata_proxy_socket_mode \u003d user"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# Number of separate worker processes for metadata server. Defaults to"},{"line_number":58,"context_line":"# half the number of CPU cores"}],"source_content_type":"text/x-properties","patch_set":8,"id":"baa041b7_20038a11","line":55,"updated":"2015-04-01 14:03:02.000000000","message":"The way it\u0027s written, it suggests that user mode is the default one, while in reality, deduce is the default.","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"cc4edfb9ec170da83634ed513f072441eb8d9018","unresolved":false,"context_lines":[{"line_number":52,"context_line":"# \u0027group\u0027: set metadata proxy socket mode to 0o664, to use when"},{"line_number":53,"context_line":"# metadata_proxy_group is agent effective group,"},{"line_number":54,"context_line":"# \u0027all\u0027: set metadata proxy socket mode to 0o666, to use otherwise."},{"line_number":55,"context_line":"# metadata_proxy_socket_mode \u003d user"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# Number of separate worker processes for metadata server. Defaults to"},{"line_number":58,"context_line":"# half the number of CPU cores"}],"source_content_type":"text/x-properties","patch_set":8,"id":"baa041b7_ba390144","line":55,"in_reply_to":"baa041b7_20038a11","updated":"2015-04-01 16:37:24.000000000","message":"Done","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0b204225a34923517bdd68970e5947cd29672a37","unresolved":false,"context_lines":[{"line_number":52,"context_line":"# \u0027group\u0027: set metadata proxy socket mode to 0o664, to use when"},{"line_number":53,"context_line":"# metadata_proxy_group is agent effective group,"},{"line_number":54,"context_line":"# \u0027all\u0027: set metadata proxy socket mode to 0o666, to use otherwise."},{"line_number":55,"context_line":"# metadata_proxy_socket_mode \u003d user"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# Number of separate worker processes for metadata server. Defaults to"},{"line_number":58,"context_line":"# half the number of CPU cores"}],"source_content_type":"text/x-properties","patch_set":8,"id":"baa041b7_a0f8af7d","line":55,"in_reply_to":"baa041b7_ba390144","updated":"2015-04-01 17:46:34.000000000","message":"Really Done :s","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e7059508d8f147969ae031315aa5eb65116b6473","unresolved":false,"context_lines":[{"line_number":52,"context_line":"# \u0027group\u0027: set metadata proxy socket mode to 0o664, to use when"},{"line_number":53,"context_line":"# metadata_proxy_group is agent effective group,"},{"line_number":54,"context_line":"# \u0027all\u0027: set metadata proxy socket mode to 0o666, to use otherwise."},{"line_number":55,"context_line":"# metadata_proxy_socket_mode \u003d user"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# Number of separate worker processes for metadata server. Defaults to"},{"line_number":58,"context_line":"# half the number of CPU cores"}],"source_content_type":"text/x-properties","patch_set":10,"id":"baa041b7_eae698e7","line":55,"updated":"2015-04-01 16:55:25.000000000","message":"Not sure you actually applied any changes for the comments from the previous changeset. As I said there, it (incorrectly) suggests that user is the default.","commit_id":"ffb60015e06b720bccb021893041b8c0d18f707d"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"ccfc53689376ca802857a931f23b71441915264d","unresolved":false,"context_lines":[{"line_number":52,"context_line":"# \u0027group\u0027: set metadata proxy socket mode to 0o664, to use when"},{"line_number":53,"context_line":"# metadata_proxy_group is agent effective group,"},{"line_number":54,"context_line":"# \u0027all\u0027: set metadata proxy socket mode to 0o666, to use otherwise."},{"line_number":55,"context_line":"# metadata_proxy_socket_mode \u003d user"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# Number of separate worker processes for metadata server. Defaults to"},{"line_number":58,"context_line":"# half the number of CPU cores"}],"source_content_type":"text/x-properties","patch_set":10,"id":"baa041b7_40d8c31d","line":55,"in_reply_to":"baa041b7_eae698e7","updated":"2015-04-01 17:46:08.000000000","message":"Done","commit_id":"ffb60015e06b720bccb021893041b8c0d18f707d"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"dedd46b132f3330fed2c0bbcb6178e2a9ca8dd0a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"# metadata_proxy_user is agent effective user or root,"},{"line_number":52,"context_line":"# \u0027group\u0027: set metadata proxy socket mode to 0o664, to use when"},{"line_number":53,"context_line":"# metadata_proxy_group is agent effective group,"},{"line_number":54,"context_line":"# \u0027all\u0027: set metadata proxy socket mode to 0o666, to use otherwise."},{"line_number":55,"context_line":"# metadata_proxy_socket_mode \u003d deduce"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# Number of separate worker processes for metadata server. Defaults to"}],"source_content_type":"text/x-properties","patch_set":20,"id":"baa041b7_39e6d1b4","line":54,"updated":"2015-04-03 13:50:19.000000000","message":"the mode of the devil...","commit_id":"330c6eff2847afc64391bf27b00cf6caf5e1de84"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"758dc22efc292181f18201352bac43f9a501ab08","unresolved":false,"context_lines":[{"line_number":51,"context_line":"# metadata_proxy_user is agent effective user or root,"},{"line_number":52,"context_line":"# \u0027group\u0027: set metadata proxy socket mode to 0o664, to use when"},{"line_number":53,"context_line":"# metadata_proxy_group is agent effective group,"},{"line_number":54,"context_line":"# \u0027all\u0027: set metadata proxy socket mode to 0o666, to use otherwise."},{"line_number":55,"context_line":"# metadata_proxy_socket_mode \u003d deduce"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# Number of separate worker processes for metadata server. Defaults to"}],"source_content_type":"text/x-properties","patch_set":20,"id":"baa041b7_dbe34832","line":54,"in_reply_to":"baa041b7_39e6d1b4","updated":"2015-04-04 01:32:24.000000000","message":"the power of 0o777 compels you","commit_id":"330c6eff2847afc64391bf27b00cf6caf5e1de84"}],"etc/neutron.conf":[{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"6db4040a8d52c8b96d5ff1a6f7db6ea4f288f191","unresolved":false,"context_lines":[{"line_number":231,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d end of items for l3 extension \u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d items for metadata proxy configuration \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":234,"context_line":"# if metadata_proxy_user is agent effective user or root, then:"},{"line_number":235,"context_line":"#   set metadata_proxy_socket_mode \u003d user (in metadata_agent.ini)"},{"line_number":236,"context_line":"# else if metadata_proxy_user is agent effective group, then:"},{"line_number":237,"context_line":"#   set metadata_proxy_socket_mode \u003d group (in metadata_agent.ini)"}],"source_content_type":"text/plain","patch_set":6,"id":"da9b358b_89f586cc","line":234,"updated":"2015-03-31 14:57:01.000000000","message":"This wording is very tricky. But after reading it a few times and the corresponding section prior to this change, it does make sense.","commit_id":"bc766b7338d31246153be5c8c78ac9f915ae8579"}],"neutron/agent/linux/utils.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":338,"context_line":""},{"line_number":339,"context_line":"def is_effective_user(user_id_or_name):"},{"line_number":340,"context_line":"    euid \u003d os.geteuid()"},{"line_number":341,"context_line":"    if user_id_or_name \u003d\u003d euid:"},{"line_number":342,"context_line":"        return True"},{"line_number":343,"context_line":"    effective_user_name \u003d pwd.getpwuid(euid)[0]"},{"line_number":344,"context_line":"    return user_id_or_name \u003d\u003d effective_user_name"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_c0829ec8","line":341,"updated":"2015-04-01 14:03:02.000000000","message":"I assume that user_id_or_name is string even when ID is specified. So comparison won\u0027t ever match.","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"cc4edfb9ec170da83634ed513f072441eb8d9018","unresolved":false,"context_lines":[{"line_number":338,"context_line":""},{"line_number":339,"context_line":"def is_effective_user(user_id_or_name):"},{"line_number":340,"context_line":"    euid \u003d os.geteuid()"},{"line_number":341,"context_line":"    if user_id_or_name \u003d\u003d euid:"},{"line_number":342,"context_line":"        return True"},{"line_number":343,"context_line":"    effective_user_name \u003d pwd.getpwuid(euid)[0]"},{"line_number":344,"context_line":"    return user_id_or_name \u003d\u003d effective_user_name"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_3af9714e","line":341,"in_reply_to":"baa041b7_c0829ec8","updated":"2015-04-01 16:37:24.000000000","message":"Done","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":340,"context_line":"    euid \u003d os.geteuid()"},{"line_number":341,"context_line":"    if user_id_or_name \u003d\u003d euid:"},{"line_number":342,"context_line":"        return True"},{"line_number":343,"context_line":"    effective_user_name \u003d pwd.getpwuid(euid)[0]"},{"line_number":344,"context_line":"    return user_id_or_name \u003d\u003d effective_user_name"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_002be6ec","line":343,"updated":"2015-04-01 14:03:02.000000000","message":"We seem to have the same magic (pwd.getpwuid(euid)[0]) in the previous patch. Maybe it\u0027s worth moving it into a separate helper.","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"cc4edfb9ec170da83634ed513f072441eb8d9018","unresolved":false,"context_lines":[{"line_number":340,"context_line":"    euid \u003d os.geteuid()"},{"line_number":341,"context_line":"    if user_id_or_name \u003d\u003d euid:"},{"line_number":342,"context_line":"        return True"},{"line_number":343,"context_line":"    effective_user_name \u003d pwd.getpwuid(euid)[0]"},{"line_number":344,"context_line":"    return user_id_or_name \u003d\u003d effective_user_name"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_5afc353e","line":343,"in_reply_to":"baa041b7_002be6ec","updated":"2015-04-01 16:37:24.000000000","message":"Done","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    if group_id_or_name \u003d\u003d egid:"},{"line_number":350,"context_line":"        return True"},{"line_number":351,"context_line":"    effective_group_name \u003d grp.getgrgid(egid)[0]"},{"line_number":352,"context_line":"    return group_id_or_name \u003d\u003d effective_group_name"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"class UnixDomainHTTPConnection(httplib.HTTPConnection):"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_806db634","line":352,"updated":"2015-04-01 14:03:02.000000000","message":"same notes as above.","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"cc4edfb9ec170da83634ed513f072441eb8d9018","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    if group_id_or_name \u003d\u003d egid:"},{"line_number":350,"context_line":"        return True"},{"line_number":351,"context_line":"    effective_group_name \u003d grp.getgrgid(egid)[0]"},{"line_number":352,"context_line":"    return group_id_or_name \u003d\u003d effective_group_name"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"class UnixDomainHTTPConnection(httplib.HTTPConnection):"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_7afff934","line":352,"in_reply_to":"baa041b7_806db634","updated":"2015-04-01 16:37:24.000000000","message":"Done","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"}],"neutron/agent/metadata/agent.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        mode \u003d self.conf.metadata_proxy_socket_mode"},{"line_number":317,"context_line":"        if mode \u003d\u003d config.DEDUCE_MODE:"},{"line_number":318,"context_line":"            user \u003d self.conf.metadata_proxy_user"},{"line_number":319,"context_line":"            if (not user or user \u003d\u003d 0 or user \u003d\u003d \u0027root\u0027"},{"line_number":320,"context_line":"                    or agent_utils.is_effective_user(user)):"},{"line_number":321,"context_line":"                # user is agent effective user or root \u003d\u003e USER_MODE"},{"line_number":322,"context_line":"                mode \u003d config.USER_MODE"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_20eeeaec","line":319,"updated":"2015-04-01 14:03:02.000000000","message":"user is string, so comparing it to 0 (int) is probably wrong.","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"cc4edfb9ec170da83634ed513f072441eb8d9018","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        mode \u003d self.conf.metadata_proxy_socket_mode"},{"line_number":317,"context_line":"        if mode \u003d\u003d config.DEDUCE_MODE:"},{"line_number":318,"context_line":"            user \u003d self.conf.metadata_proxy_user"},{"line_number":319,"context_line":"            if (not user or user \u003d\u003d 0 or user \u003d\u003d \u0027root\u0027"},{"line_number":320,"context_line":"                    or agent_utils.is_effective_user(user)):"},{"line_number":321,"context_line":"                # user is agent effective user or root \u003d\u003e USER_MODE"},{"line_number":322,"context_line":"                mode \u003d config.USER_MODE"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_da43a56b","line":319,"in_reply_to":"baa041b7_20eeeaec","updated":"2015-04-01 16:37:24.000000000","message":"Done","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8e09f558e3073c08ff2fd0b1a5088eed3b74c1cd","unresolved":false,"context_lines":[{"line_number":315,"context_line":"    def _get_socket_mode(self):"},{"line_number":316,"context_line":"        mode \u003d self.conf.metadata_proxy_socket_mode"},{"line_number":317,"context_line":"        if mode \u003d\u003d config.DEDUCE_MODE:"},{"line_number":318,"context_line":"            user \u003d self.conf.metadata_proxy_user"},{"line_number":319,"context_line":"            if (not user or user \u003d\u003d \u00270\u0027 or user \u003d\u003d \u0027root\u0027"},{"line_number":320,"context_line":"                    or agent_utils.is_effective_user(user)):"},{"line_number":321,"context_line":"                # user is agent effective user or root \u003d\u003e USER_MODE"}],"source_content_type":"text/x-python","patch_set":13,"id":"baa041b7_2d5d96e9","line":318,"updated":"2015-04-02 13:53:03.000000000","message":"cfg.CONF.metadata_proxy_user ?","commit_id":"db206e8f2e41f6825f9e9e09bfd63a7d3fc8bc9f"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"a84d2ecf4de5d3ab493fc26224bc7cf8b767d0e2","unresolved":false,"context_lines":[{"line_number":315,"context_line":"    def _get_socket_mode(self):"},{"line_number":316,"context_line":"        mode \u003d self.conf.metadata_proxy_socket_mode"},{"line_number":317,"context_line":"        if mode \u003d\u003d config.DEDUCE_MODE:"},{"line_number":318,"context_line":"            user \u003d self.conf.metadata_proxy_user"},{"line_number":319,"context_line":"            if (not user or user \u003d\u003d \u00270\u0027 or user \u003d\u003d \u0027root\u0027"},{"line_number":320,"context_line":"                    or agent_utils.is_effective_user(user)):"},{"line_number":321,"context_line":"                # user is agent effective user or root \u003d\u003e USER_MODE"}],"source_content_type":"text/x-python","patch_set":13,"id":"baa041b7_4de7bae4","line":318,"in_reply_to":"baa041b7_2d5d96e9","updated":"2015-04-02 13:59:24.000000000","message":"self.conf \u003d\u003d conf.CONF according to L336","commit_id":"db206e8f2e41f6825f9e9e09bfd63a7d3fc8bc9f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"00e21f8d3f66d40218e364576bbf7a387bac5261","unresolved":false,"context_lines":[{"line_number":315,"context_line":"    def _get_socket_mode(self):"},{"line_number":316,"context_line":"        mode \u003d self.conf.metadata_proxy_socket_mode"},{"line_number":317,"context_line":"        if mode \u003d\u003d config.DEDUCE_MODE:"},{"line_number":318,"context_line":"            user \u003d self.conf.metadata_proxy_user"},{"line_number":319,"context_line":"            if (not user or user \u003d\u003d \u00270\u0027 or user \u003d\u003d \u0027root\u0027"},{"line_number":320,"context_line":"                    or agent_utils.is_effective_user(user)):"},{"line_number":321,"context_line":"                # user is agent effective user or root \u003d\u003e USER_MODE"}],"source_content_type":"text/x-python","patch_set":13,"id":"baa041b7_e8c1dc81","line":318,"in_reply_to":"baa041b7_4de7bae4","updated":"2015-04-02 14:15:32.000000000","message":"But this is in the UnixDomainMetadataProxy() class, L336 is the initialization of the MetadataProxyHandler() class, so is it visible?  From the traceback it\u0027s not:\n\n2015-04-02 11:38:22.273 4170 TRACE neutron Traceback (most recent call last):\n2015-04-02 11:38:22.273 4170 TRACE neutron   File \"/usr/local/bin/neutron-metadata-agent\", line 10, in \u003cmodule\u003e\n2015-04-02 11:38:22.273 4170 TRACE neutron     sys.exit(main())\n2015-04-02 11:38:22.273 4170 TRACE neutron   File \"/opt/stack/new/neutron/neutron/cmd/eventlet/agents/metadata.py\", line 17, in main\n2015-04-02 11:38:22.273 4170 TRACE neutron     metadata_agent.main()\n2015-04-02 11:38:22.273 4170 TRACE neutron   File \"/opt/stack/new/neutron/neutron/agent/metadata_agent.py\", line 42, in main\n2015-04-02 11:38:22.273 4170 TRACE neutron     proxy.run()\n2015-04-02 11:38:22.273 4170 TRACE neutron   File \"/opt/stack/new/neutron/neutron/agent/metadata/agent.py\", line 339, in run\n2015-04-02 11:38:22.273 4170 TRACE neutron     mode\u003dself._get_socket_mode())\n2015-04-02 11:38:22.273 4170 TRACE neutron   File \"/opt/stack/new/neutron/neutron/agent/metadata/agent.py\", line 318, in _get_socket_mode\n2015-04-02 11:38:22.273 4170 TRACE neutron     user \u003d self.conf.metadata_proxy_user\n2015-04-02 11:38:22.273 4170 TRACE neutron   File \"/usr/local/lib/python2.7/dist-packages/oslo_config/cfg.py\", line 1870, in __getattr__\n2015-04-02 11:38:22.273 4170 TRACE neutron     raise NoSuchOptError(name)\n2015-04-02 11:38:22.273 4170 TRACE neutron NoSuchOptError: no such option: metadata_proxy_user\n2015-04-02 11:38:22.273 4170 TRACE neutron","commit_id":"db206e8f2e41f6825f9e9e09bfd63a7d3fc8bc9f"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"50a190e6e94c906613beb7c8f7abd7c8764e2485","unresolved":false,"context_lines":[{"line_number":315,"context_line":"    def _get_socket_mode(self):"},{"line_number":316,"context_line":"        mode \u003d self.conf.metadata_proxy_socket_mode"},{"line_number":317,"context_line":"        if mode \u003d\u003d config.DEDUCE_MODE:"},{"line_number":318,"context_line":"            user \u003d self.conf.metadata_proxy_user"},{"line_number":319,"context_line":"            if (not user or user \u003d\u003d \u00270\u0027 or user \u003d\u003d \u0027root\u0027"},{"line_number":320,"context_line":"                    or agent_utils.is_effective_user(user)):"},{"line_number":321,"context_line":"                # user is agent effective user or root \u003d\u003e USER_MODE"}],"source_content_type":"text/x-python","patch_set":13,"id":"baa041b7_ce6861f8","line":318,"in_reply_to":"baa041b7_e8c1dc81","updated":"2015-04-02 14:50:20.000000000","message":"it seems strange it was highlighted only by tempest tests","commit_id":"db206e8f2e41f6825f9e9e09bfd63a7d3fc8bc9f"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"ccc3737b037b4ff50212beb53107f64014b3db9f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"MODE_MAP \u003d {"},{"line_number":41,"context_line":"    config.USER_MODE: 0o644,"},{"line_number":42,"context_line":"    config.GROUP_MODE: 0o664,"},{"line_number":43,"context_line":"    config.ALL_MODE: 0o666,"},{"line_number":44,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":20,"id":"baa041b7_04004400","line":41,"updated":"2015-04-03 13:34:21.000000000","message":"Since the values for these config options are also used in the testing code, it may make sense to define them as constants somewhere.","commit_id":"330c6eff2847afc64391bf27b00cf6caf5e1de84"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"450aafec5498782791f49a7d9b4946b6ea7ca02a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"MODE_MAP \u003d {"},{"line_number":41,"context_line":"    config.USER_MODE: 0o644,"},{"line_number":42,"context_line":"    config.GROUP_MODE: 0o664,"},{"line_number":43,"context_line":"    config.ALL_MODE: 0o666,"},{"line_number":44,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":20,"id":"baa041b7_83af9c93","line":41,"in_reply_to":"baa041b7_04004400","updated":"2015-04-03 22:04:03.000000000","message":"Will be done in a follow-up change or PS21","commit_id":"330c6eff2847afc64391bf27b00cf6caf5e1de84"}],"neutron/agent/metadata/config.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":78,"context_line":"               help\u003d_(\u0027Location for Metadata Proxy UNIX domain socket\u0027)),"},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027metadata_proxy_socket_mode\u0027,"},{"line_number":80,"context_line":"               default\u003dDEDUCE_MODE,"},{"line_number":81,"context_line":"               choices\u003d(DEDUCE_MODE, USER_MODE, GROUP_MODE, ALL_MODE),"},{"line_number":82,"context_line":"               help\u003d_(\"Metadata Proxy UNIX domain socket mode, 3 values \""},{"line_number":83,"context_line":"                      \"allowed: \""},{"line_number":84,"context_line":"                      \"\u0027deduce\u0027: deduce mode from metadata_proxy_user/group \""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_40aa0e1b","line":81,"updated":"2015-04-01 14:03:02.000000000","message":"nit: I would localize the list of all modes right after their definitions, so that next time you add a new mode, you don\u0027t forget to mention it here.","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"cc4edfb9ec170da83634ed513f072441eb8d9018","unresolved":false,"context_lines":[{"line_number":78,"context_line":"               help\u003d_(\u0027Location for Metadata Proxy UNIX domain socket\u0027)),"},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027metadata_proxy_socket_mode\u0027,"},{"line_number":80,"context_line":"               default\u003dDEDUCE_MODE,"},{"line_number":81,"context_line":"               choices\u003d(DEDUCE_MODE, USER_MODE, GROUP_MODE, ALL_MODE),"},{"line_number":82,"context_line":"               help\u003d_(\"Metadata Proxy UNIX domain socket mode, 3 values \""},{"line_number":83,"context_line":"                      \"allowed: \""},{"line_number":84,"context_line":"                      \"\u0027deduce\u0027: deduce mode from metadata_proxy_user/group \""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_354bc2b2","line":81,"in_reply_to":"baa041b7_40aa0e1b","updated":"2015-04-01 16:37:24.000000000","message":"Done","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                      \"allowed: \""},{"line_number":84,"context_line":"                      \"\u0027deduce\u0027: deduce mode from metadata_proxy_user/group \""},{"line_number":85,"context_line":"                      \"values, \""},{"line_number":86,"context_line":"                      \"\u0027user\u0027: set metadata proxy socket mode to 0o644, to \""},{"line_number":87,"context_line":"                      \"use when metadata_proxy_user is agent effective user \""},{"line_number":88,"context_line":"                      \"or root, \""},{"line_number":89,"context_line":"                      \"\u0027group\u0027: set metadata proxy socket mode to 0o664, to \""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_a0167a53","line":86,"updated":"2015-04-01 14:03:02.000000000","message":"Now that we have deduce option, do we really need other values? Or is it short to deduce the right value in some cases?","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"cc4edfb9ec170da83634ed513f072441eb8d9018","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                      \"allowed: \""},{"line_number":84,"context_line":"                      \"\u0027deduce\u0027: deduce mode from metadata_proxy_user/group \""},{"line_number":85,"context_line":"                      \"values, \""},{"line_number":86,"context_line":"                      \"\u0027user\u0027: set metadata proxy socket mode to 0o644, to \""},{"line_number":87,"context_line":"                      \"use when metadata_proxy_user is agent effective user \""},{"line_number":88,"context_line":"                      \"or root, \""},{"line_number":89,"context_line":"                      \"\u0027group\u0027: set metadata proxy socket mode to 0o664, to \""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_15c79e13","line":86,"in_reply_to":"baa041b7_a0167a53","updated":"2015-04-01 16:37:24.000000000","message":"I am not fluent with file ACL but it seems ACL can be used in place of group/all modes to avoid too broad permissions on metadata proxy socket. In such case, deduce mode is inefficient.","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"dcf7f8315bd75fbf4482244c04221f3c7486d060","unresolved":false,"context_lines":[{"line_number":20,"context_line":"SHARED_OPTS \u003d ["},{"line_number":21,"context_line":"    cfg.StrOpt(\u0027metadata_proxy_socket\u0027,"},{"line_number":22,"context_line":"               default\u003d\u0027$state_path/metadata_proxy\u0027,"},{"line_number":23,"context_line":"               help\u003d_(\u0027Location for Metadata Proxy UNIX domain socket\u0027)),"},{"line_number":24,"context_line":"    cfg.StrOpt(\u0027metadata_proxy_user\u0027,"},{"line_number":25,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":26,"context_line":"               help\u003d_(\"User (uid or name) running metadata proxy after \""}],"source_content_type":"text/x-python","patch_set":19,"id":"baa041b7_b029d639","line":23,"updated":"2015-04-03 12:09:17.000000000","message":"Nit: I realize this is just moved from the other module, but the two help strings should have periods at end. See oslo guidelines for help messages. http://docs.openstack.org/developer/oslo.config/styleguide.html","commit_id":"337cd119004ac05b1f88b5531f3c97a497c740dd"}],"neutron/tests/functional/agent/linux/helpers.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class RecursivePermDirFixture(fixtures.Fixture):"},{"line_number":39,"context_line":"    \"\"\"Ensure at least perms permissions on folder and ancestors.\"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, folder, perms):"},{"line_number":42,"context_line":"        super(RecursivePermDirFixture, self).__init__()"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_43e7b840","line":39,"updated":"2015-04-01 14:03:02.000000000","message":"nit: \u0027folder\u0027... it\u0027s not really a unix term. in Unix, we usually have directories.","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"cc4edfb9ec170da83634ed513f072441eb8d9018","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class RecursivePermDirFixture(fixtures.Fixture):"},{"line_number":39,"context_line":"    \"\"\"Ensure at least perms permissions on folder and ancestors.\"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, folder, perms):"},{"line_number":42,"context_line":"        super(RecursivePermDirFixture, self).__init__()"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_4748dd5b","line":39,"in_reply_to":"baa041b7_43e7b840","updated":"2015-04-01 16:37:24.000000000","message":"Done","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        current_folder \u003d self.folder"},{"line_number":50,"context_line":"        while previous_folder !\u003d current_folder:"},{"line_number":51,"context_line":"            perms \u003d os.stat(current_folder).st_mode"},{"line_number":52,"context_line":"            if perms \u0026 self.new_perms !\u003d self.new_perms:"},{"line_number":53,"context_line":"                os.chmod(current_folder, perms | self.new_perms)"},{"line_number":54,"context_line":"                self.addCleanup(self.safe_chmod, current_folder, perms)"},{"line_number":55,"context_line":"            previous_folder \u003d current_folder"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_e316cca6","line":52,"updated":"2015-04-01 14:03:02.000000000","message":"(no action required)\n\n-\u003e if perms ^ self.new_perms","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"cc4edfb9ec170da83634ed513f072441eb8d9018","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        current_folder \u003d self.folder"},{"line_number":50,"context_line":"        while previous_folder !\u003d current_folder:"},{"line_number":51,"context_line":"            perms \u003d os.stat(current_folder).st_mode"},{"line_number":52,"context_line":"            if perms \u0026 self.new_perms !\u003d self.new_perms:"},{"line_number":53,"context_line":"                os.chmod(current_folder, perms | self.new_perms)"},{"line_number":54,"context_line":"                self.addCleanup(self.safe_chmod, current_folder, perms)"},{"line_number":55,"context_line":"            previous_folder \u003d current_folder"}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_471a1d70","line":52,"in_reply_to":"baa041b7_e316cca6","updated":"2015-04-01 16:37:24.000000000","message":"we want to ensure at least self.new_perms.\n\nperms ^ self.new_perms seems not working when perms is more permissive than self.new_perms (ex: perms\u003d 0o777 and new_perms \u003d 0o700)\n\ni will rename new_perms to least_perms to clarify things","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"}],"neutron/tests/functional/agent/test_l3_agent.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":659,"context_line":"        self.assertIn(str(webob.exc.HTTPOk.code), firstline.split())"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"class NobodyUserMetadataL3AgentTestCase(MetadataL3AgentTestCase):"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    SOCKET_MODE \u003d 0o664"},{"line_number":665,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_43069821","line":662,"updated":"2015-04-01 14:03:02.000000000","message":"The name suggests that you rely on the fact that nobody has uid \u003d 65534. I guess you should rename the class not to suggest it.","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":665,"context_line":""},{"line_number":666,"context_line":"    def setUp(self):"},{"line_number":667,"context_line":"        super(NobodyUserMetadataL3AgentTestCase, self).setUp()"},{"line_number":668,"context_line":"        self.agent.conf.set_override(\u0027metadata_proxy_user\u0027, 65534)"},{"line_number":669,"context_line":"        self.agent.conf.set_override(\u0027metadata_proxy_watch_log\u0027, False)"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_83b0208d","line":668,"updated":"2015-04-01 14:03:02.000000000","message":"Isn\u0027t the config option of string type?","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0b5ecb4ae9c1d102f2640a2cb2d0e492caeb5f86","unresolved":false,"context_lines":[{"line_number":669,"context_line":"        self.agent.conf.set_override(\u0027metadata_proxy_watch_log\u0027, False)"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":""},{"line_number":672,"context_line":"class NobodyMetadataL3AgentTestCase(MetadataL3AgentTestCase):"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"    SOCKET_MODE \u003d 0o666"},{"line_number":675,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"baa041b7_06ff7e02","line":672,"updated":"2015-04-01 14:03:02.000000000","message":"both comments from above apply here too.","commit_id":"7908b232a500486c55987418b0636d04e1966cc4"}]}
