)]}'
{"neutron/agent/linux/iplex.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"939441a987701b2e2f98d6b687e7465f83fe01b6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class IplexSupportError(n_exc.NeutronException):"},{"line_number":28,"context_line":"    pass"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class UnsupportedIplexCommand(IplexSupportError):"},{"line_number":32,"context_line":"    message \u003d _(\"iplex command is not supported: %(reason)s\")"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class IplexWrapper(object):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_06b96413","line":32,"range":{"start_line":27,"start_character":0,"end_line":32,"end_character":61},"updated":"2017-06-28 08:53:22.000000000","message":"This should go to common.exceptions","commit_id":"9ffd52ac14ec1ae8ac5b86f0e3afc06d4729169c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"939441a987701b2e2f98d6b687e7465f83fe01b6","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        cmd \u003d [\u0027show\u0027, str(port_id)] if port_id else [\u0027show\u0027, \u0027all\u0027]"},{"line_number":58,"context_line":"        return cls._get_iplex_output(cmd, namespace\u003dnamespace)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @classmethod"},{"line_number":61,"context_line":"    def _get_iplex_output(cls, cmd, namespace\u003dNone):"},{"line_number":62,"context_line":"        iplex_cmd \u003d [\u0027iplex\u0027] + cmd"},{"line_number":63,"context_line":"        iplex_cmd \u003d ip_lib.add_namespace_to_cmd(iplex_cmd, namespace\u003dnamespace)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_e60788c9","line":60,"range":{"start_line":60,"start_character":5,"end_line":60,"end_character":16},"updated":"2017-06-28 08:53:22.000000000","message":"Or static method. The class object is not used here.","commit_id":"9ffd52ac14ec1ae8ac5b86f0e3afc06d4729169c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"939441a987701b2e2f98d6b687e7465f83fe01b6","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                check_exit_code\u003dFalse,"},{"line_number":68,"context_line":"                return_stderr\u003dTrue,"},{"line_number":69,"context_line":"                log_fail_as_error\u003dFalse,"},{"line_number":70,"context_line":"                run_as_root\u003dTrue)"},{"line_number":71,"context_line":"        except Exception as e:"},{"line_number":72,"context_line":"            LOG.exception(_LE(\"Failed executing iplex command\"))"},{"line_number":73,"context_line":"            raise UnsupportedIplexCommand(reason\u003de)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_a682b0fe","line":70,"range":{"start_line":70,"start_character":16,"end_line":70,"end_character":27},"updated":"2017-06-28 08:53:22.000000000","message":"Why don\u0027t you use privsep to execute this as root?\n\nDoing this you can avoid using rootwrap","commit_id":"9ffd52ac14ec1ae8ac5b86f0e3afc06d4729169c"}],"neutron/conf/agent/vfd_conf.py":[{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"95fee18980bbf669193a99cdcf4c3e07b47de123","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from neutron._i18n import _"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"OPTS \u003d ["},{"line_number":22,"context_line":"    cfg.StrOpt(\u0027config_path_template\u0027,"},{"line_number":23,"context_line":"               default\u003d\u0027/var/lib/vfd/config/{port_uuid}.json\u0027,"},{"line_number":24,"context_line":"               help\u003d\u0027Path to store port configuration for vf-agent\u0027)"},{"line_number":25,"context_line":"]"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def register_ovs_agent_opts(cfg\u003dcfg.CONF):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_55cb1f71","line":25,"range":{"start_line":21,"start_character":0,"end_line":25,"end_character":1},"updated":"2017-06-22 15:08:24.000000000","message":"this hasn\u0027t been used yet..","commit_id":"ab87111ca19d9a34b208db4ebe639877551a6656"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"939441a987701b2e2f98d6b687e7465f83fe01b6","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"OPTS \u003d ["},{"line_number":22,"context_line":"    cfg.StrOpt(\u0027config_path_template\u0027,"},{"line_number":23,"context_line":"               default\u003d\u0027/var/lib/vfd/config/{port_uuid}.json\u0027,"},{"line_number":24,"context_line":"               help\u003d_(\u0027Path to store port configuration for vf-agent\u0027))"},{"line_number":25,"context_line":"]"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_a6e510de","line":23,"range":{"start_line":23,"start_character":44,"end_line":23,"end_character":55},"updated":"2017-06-28 08:53:22.000000000","message":"Is this correct?","commit_id":"9ffd52ac14ec1ae8ac5b86f0e3afc06d4729169c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"939441a987701b2e2f98d6b687e7465f83fe01b6","unresolved":false,"context_lines":[{"line_number":21,"context_line":"OPTS \u003d ["},{"line_number":22,"context_line":"    cfg.StrOpt(\u0027config_path_template\u0027,"},{"line_number":23,"context_line":"               default\u003d\u0027/var/lib/vfd/config/{port_uuid}.json\u0027,"},{"line_number":24,"context_line":"               help\u003d_(\u0027Path to store port configuration for vf-agent\u0027))"},{"line_number":25,"context_line":"]"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_66ced863","line":24,"range":{"start_line":24,"start_character":20,"end_line":24,"end_character":22},"updated":"2017-06-28 08:53:22.000000000","message":"Don\u0027t translate","commit_id":"9ffd52ac14ec1ae8ac5b86f0e3afc06d4729169c"}],"neutron/tests/functional/agent/linux/test_iplex.py":[{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"95fee18980bbf669193a99cdcf4c3e07b47de123","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class IplexTestCase(test_ip_lib.IpLibTestFramework):"},{"line_number":23,"context_line":"    def setUp(self):"},{"line_number":24,"context_line":"        super(IplexTestCase, self).setUp()"},{"line_number":25,"context_line":"        self.iplex \u003d iplex.IplexWrapper()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def test_device(self):"},{"line_number":28,"context_line":"        attr \u003d self.generate_device_details()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_95ae5796","line":25,"updated":"2017-06-22 15:08:24.000000000","message":"I still need to generate_devices here but currently I have created them locally.","commit_id":"ab87111ca19d9a34b208db4ebe639877551a6656"}],"test-requirements.txt":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"939441a987701b2e2f98d6b687e7465f83fe01b6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"PyMySQL\u003e\u003d0.7.6 # MIT License"},{"line_number":25,"context_line":"tempest\u003e\u003d14.0.0 # Apache-2.0"},{"line_number":26,"context_line":"bashate\u003e\u003d0.2 # Apache-2.0"},{"line_number":27,"context_line":"docopt\u003e\u003d0.6.2 # MIT"}],"source_content_type":"text/plain","patch_set":2,"id":"5f201791_2647c0be","line":27,"updated":"2017-06-28 08:53:22.000000000","message":"This library is in requirements.txt. There is no need to install it twice preparing the tests.","commit_id":"9ffd52ac14ec1ae8ac5b86f0e3afc06d4729169c"}]}
