)]}'
{"nova/rootwrap/__init__.py":[{"author":{"_account_id":1419,"name":"Mike Pittaro","email":"mikeyp@LaHondaResearch.org","username":"mikeyp-3"},"change_message_id":"654ef5b39972dc7b583e4f0d76ed3a218545e843","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright (c) 2011 Openstack, LLC."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2B5Q%3D","line":1,"updated":"2011-12-06 17:10:06.000000000","message":"not needed","commit_id":"221fb5163f6ea3d79db846e036bc6fc77e80d807"}],"nova/rootwrap/compute.py":[{"author":{"_account_id":1419,"name":"Mike Pittaro","email":"mikeyp@LaHondaResearch.org","username":"mikeyp-3"},"change_message_id":"654ef5b39972dc7b583e4f0d76ed3a218545e843","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright (c) 2011 Openstack, LLC."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2B4w%3D","line":1,"updated":"2011-12-06 17:10:06.000000000","message":"not needed","commit_id":"221fb5163f6ea3d79db846e036bc6fc77e80d807"}],"nova/rootwrap/filters.py":[{"author":{"_account_id":1419,"name":"Mike Pittaro","email":"mikeyp@LaHondaResearch.org","username":"mikeyp-3"},"change_message_id":"654ef5b39972dc7b583e4f0d76ed3a218545e843","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright (c) 2011 Openstack, LLC."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2B5M%3D","line":1,"updated":"2011-12-06 17:10:06.000000000","message":"not needed","commit_id":"221fb5163f6ea3d79db846e036bc6fc77e80d807"}],"nova/rootwrap/network.py":[{"author":{"_account_id":1419,"name":"Mike Pittaro","email":"mikeyp@LaHondaResearch.org","username":"mikeyp-3"},"change_message_id":"654ef5b39972dc7b583e4f0d76ed3a218545e843","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright (c) 2011 Openstack, LLC."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2B5E%3D","line":1,"updated":"2011-12-06 17:10:06.000000000","message":"not needed - in a few files.","commit_id":"221fb5163f6ea3d79db846e036bc6fc77e80d807"}],"nova/rootwrap/volume.py":[{"author":{"_account_id":1419,"name":"Mike Pittaro","email":"mikeyp@LaHondaResearch.org","username":"mikeyp-3"},"change_message_id":"654ef5b39972dc7b583e4f0d76ed3a218545e843","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright (c) 2011 Openstack, LLC."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2B44%3D","line":1,"updated":"2011-12-06 17:10:06.000000000","message":"not needed","commit_id":"221fb5163f6ea3d79db846e036bc6fc77e80d807"},{"author":{"_account_id":321,"name":"Lorin Hochstein","email":"lorinh@gmail.com","username":"lorinh"},"change_message_id":"2fe6120f1acc471fd8db0d8f9d316a38e99dc6b7","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"filters \u003d ["},{"line_number":23,"context_line":"    # nova/volume/iscsi.py: ietadm / ? --op *"},{"line_number":24,"context_line":"    CommandFilter(\"/usr/sbin/ietadm\", \"root\"),"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    # nova/volume/driver.py: \u0027vgs\u0027, \u0027--noheadings\u0027, \u0027-o\u0027, \u0027name\u0027"},{"line_number":27,"context_line":"    CommandFilter(\"/sbin/vgs\", \"root\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAC3%2F%2F%2Byw%3D","line":24,"updated":"2011-12-06 21:28:58.000000000","message":"I think this is missing /usr/sbin/tgtadm. (I assume this needs to run as root, but not 100% certain)","commit_id":"9ed1c6ffbfb653a02235a3602e45923570388b3f"}],"nova/rootwrap/wrapper.py":[{"author":{"_account_id":1419,"name":"Mike Pittaro","email":"mikeyp@LaHondaResearch.org","username":"mikeyp-3"},"change_message_id":"654ef5b39972dc7b583e4f0d76ed3a218545e843","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    for f in filters:"},{"line_number":52,"context_line":"        if f.match(userargs):"},{"line_number":53,"context_line":"            # Skip if executable is absent"},{"line_number":54,"context_line":"            if not os.access(f.exec_path, os.X_OK):"},{"line_number":55,"context_line":"                continue"},{"line_number":56,"context_line":"            # Otherwise return matching filter for execution"},{"line_number":57,"context_line":"            return f"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2B40%3D","line":54,"updated":"2011-12-06 17:10:06.000000000","message":"This might skip a valid executable.\nThis access check happens under the current real uid/gid.  the path might be executable by root, and not by the current user.  Non issue if this is always executed as root.","commit_id":"221fb5163f6ea3d79db846e036bc6fc77e80d807"}]}
