)]}'
{"shade/__init__.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"b69f6f35586fb747d2a84a4d64581dedc94f10e9","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"    def use_internal_network(self):"},{"line_number":1036,"context_line":"        return self._use_internal_network"},{"line_number":1037,"context_line":""},{"line_number":1038,"context_line":"    def get_external_network(self):"},{"line_number":1039,"context_line":"        \"\"\"Return the network that is configured to route northbound."},{"line_number":1040,"context_line":""},{"line_number":1041,"context_line":"        :returns: A network dict if one is found, None otherwise."}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_2fa3abb3","line":1038,"updated":"2015-09-29 21:45:33.000000000","message":"These two functions should probably have a single utility method that accepts the filters and returns an IP if it exists. Then these wrapper gets can set the flag and ext_net values properly.","commit_id":"b775a7cef9130ae459a0f5521d47405133ba20d7"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"35144d1852d40fe90444bf92269fcbef9dcb4a1f","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"        \"\"\""},{"line_number":1043,"context_line":"        if not self.use_external_network():"},{"line_number":1044,"context_line":"            return None"},{"line_number":1045,"context_line":"        if not self._external_network or self._external_network_flag:"},{"line_number":1046,"context_line":"            ext_net \u003d None"},{"line_number":1047,"context_line":"            if self.has_service(\u0027network\u0027):"},{"line_number":1048,"context_line":"                if self._external_network_name_or_id:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_a0179c43","line":1045,"updated":"2015-09-30 20:11:59.000000000","message":"For the life of me, I cannot figure out what this _external_network_flag flag is for.","commit_id":"b775a7cef9130ae459a0f5521d47405133ba20d7"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"35144d1852d40fe90444bf92269fcbef9dcb4a1f","unresolved":false,"context_lines":[{"line_number":1047,"context_line":"            if self.has_service(\u0027network\u0027):"},{"line_number":1048,"context_line":"                if self._external_network_name_or_id:"},{"line_number":1049,"context_line":"                    ext_net \u003d self.get_network("},{"line_number":1050,"context_line":"                        self._external_network_name_or_id)"},{"line_number":1051,"context_line":"                if not ext_net:"},{"line_number":1052,"context_line":"                    ext_nets \u003d self.search_networks("},{"line_number":1053,"context_line":"                        filters\u003d{\u0027router:external\u0027: True})"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_a5dfaed4","line":1050,"updated":"2015-09-30 20:11:59.000000000","message":"If we\u0027ve been given an explicit network to use, but we cannot find this network,  this should be a severe error, IMO. Falling through to use any externally routable network is probably not what a user would expect if they\u0027ve supplied the network to use.","commit_id":"b775a7cef9130ae459a0f5521d47405133ba20d7"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"52ddad8bbb2bf0cfe1b77c1c73d8c63534a4873c","unresolved":false,"context_lines":[{"line_number":1058,"context_line":"                raise OpenStackCloudException("},{"line_number":1059,"context_line":"                    \"Network {network} was provided for external\""},{"line_number":1060,"context_line":"                    \" access and that network could not be found\".format("},{"line_number":1061,"context_line":"                        network\u003dself._external_network_name_or_id))"},{"line_number":1062,"context_line":"            else:"},{"line_number":1063,"context_line":"                return ext_net"},{"line_number":1064,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_78682b88","line":1061,"updated":"2015-10-01 19:01:27.000000000","message":"s/self._external_network_name_or_id/name_or_id/","commit_id":"a280e37167df9b78023efe7e197904cc28ff8702"}],"shade/meta.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"b69f6f35586fb747d2a84a4d64581dedc94f10e9","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if int_ip is not None:"},{"line_number":89,"context_line":"            return int_ip"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    if cloud and cloud.has_service(\u0027network\u0027):"},{"line_number":92,"context_line":"        try:"},{"line_number":93,"context_line":"            server_ports \u003d cloud.search_ports("},{"line_number":94,"context_line":"                filters\u003d{\u0027device_id\u0027: server[\u0027id\u0027]})"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_0f290737","line":91,"updated":"2015-09-29 21:45:33.000000000","message":"Isn\u0027t this block compeltely redundant now? I am not sure how we would fall through to here if the above code runs.\n\nWe return if not using internal network.\nWe return if we have a private IP.\nIf we didn\u0027t find a private IP we fall through and run this code which should be functionally equivalent to the other code? And noop?","commit_id":"b775a7cef9130ae459a0f5521d47405133ba20d7"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"b69f6f35586fb747d2a84a4d64581dedc94f10e9","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        if ext_ip is not None:"},{"line_number":149,"context_line":"            return ext_ip"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    if cloud.has_service(\u0027network\u0027):"},{"line_number":152,"context_line":"        try:"},{"line_number":153,"context_line":"            # Search a fixed IP attached to an external net. Unfortunately"},{"line_number":154,"context_line":"            # Neutron ports don\u0027t have a \u0027floating_ips\u0027 attribute"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_6f18c31e","line":151,"updated":"2015-09-29 21:45:33.000000000","message":"See above.","commit_id":"b775a7cef9130ae459a0f5521d47405133ba20d7"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"37d2fb1266e060e0c2adba896b8f2add133b7ce7","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    # The chances of this finding something that the previous search did"},{"line_number":93,"context_line":"    # not find, but this time we walk the list of ports and see what\u0027s"},{"line_number":94,"context_line":"    # attached to them. It\u0027s the most correct way and does not count on"},{"line_number":95,"context_line":"    # the nova metadata being correct or formatted right"},{"line_number":96,"context_line":"    if cloud and cloud.has_service(\u0027network\u0027):"},{"line_number":97,"context_line":"        try:"},{"line_number":98,"context_line":"            server_ports \u003d cloud.search_ports("}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_d88057fa","line":95,"updated":"2015-10-01 19:03:43.000000000","message":"This sentence doesn\u0027t make much sense.","commit_id":"a280e37167df9b78023efe7e197904cc28ff8702"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"37d2fb1266e060e0c2adba896b8f2add133b7ce7","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    # The chances of this finding something that the previous search did"},{"line_number":157,"context_line":"    # not find, but this time we walk the list of ports and see what\u0027s"},{"line_number":158,"context_line":"    # attached to them. It\u0027s the most correct way and does not count on"},{"line_number":159,"context_line":"    # the nova metadata being correct or formatted right"},{"line_number":160,"context_line":"    if cloud.has_service(\u0027network\u0027):"},{"line_number":161,"context_line":"        try:"},{"line_number":162,"context_line":"            # Search a fixed IP attached to an external net. Unfortunately"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_f8851b07","line":159,"updated":"2015-10-01 19:03:43.000000000","message":"This sentence doesn\u0027t make much sense.","commit_id":"a280e37167df9b78023efe7e197904cc28ff8702"}]}
