 75fdadad1d
			
		
	
	75fdadad1d
	
	
	
		
			
			Run if route/show, extract ipv4 addresses and pick the first one. Fall back to 127.0.0.1 as before if we don't find anything or if we have running the ip route/show commands Fixes LP# 1193013 Change-Id: If73f0f6bf67f858f7506220debab0f74cc9e3cb4
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # vim: tabstop=4 shiftwidth=4 softtabstop=4
 | |
| 
 | |
| # Copyright 2010 United States Government as represented by the
 | |
| # Administrator of the National Aeronautics and Space Administration.
 | |
| # All Rights Reserved.
 | |
| # Copyright 2012 Red Hat, Inc.
 | |
| #
 | |
| #    Licensed under the Apache License, Version 2.0 (the "License"); you may
 | |
| #    not use this file except in compliance with the License. You may obtain
 | |
| #    a copy of the License at
 | |
| #
 | |
| #         http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| #    Unless required by applicable law or agreed to in writing, software
 | |
| #    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | |
| #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | |
| #    License for the specific language governing permissions and limitations
 | |
| #    under the License.
 | |
| 
 | |
| import socket
 | |
| 
 | |
| from oslo.config import cfg
 | |
| 
 | |
| from nova import utils
 | |
| 
 | |
| CONF = cfg.CONF
 | |
| 
 | |
| 
 | |
| def _get_my_ip():
 | |
|     """
 | |
|     Returns the actual ip of the local machine.
 | |
| 
 | |
|     This code figures out what source address would be used if some traffic
 | |
|     were to be sent out to some well known address on the Internet. In this
 | |
|     case, a Google DNS server is used, but the specific address does not
 | |
|     matter much.  No traffic is actually sent.
 | |
|     """
 | |
|     try:
 | |
|         csock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 | |
|         csock.connect(('8.8.8.8', 80))
 | |
|         (addr, port) = csock.getsockname()
 | |
|         csock.close()
 | |
|         return addr
 | |
|     except socket.error:
 | |
|         return utils.get_my_ipv4_address()
 | |
| 
 | |
| 
 | |
| netconf_opts = [
 | |
|     cfg.StrOpt('my_ip',
 | |
|                default=_get_my_ip(),
 | |
|                help='ip address of this host'),
 | |
|     cfg.StrOpt('host',
 | |
|                default=socket.gethostname(),
 | |
|                help='Name of this node.  This can be an opaque identifier.  '
 | |
|                     'It is not necessarily a hostname, FQDN, or IP address. '
 | |
|                     'However, the node name must be valid within '
 | |
|                     'an AMQP key, and if using ZeroMQ, a valid '
 | |
|                     'hostname, FQDN, or IP address'),
 | |
|     cfg.BoolOpt('use_ipv6',
 | |
|                 default=False,
 | |
|                 help='use ipv6'),
 | |
| ]
 | |
| 
 | |
| CONF.register_opts(netconf_opts)
 |