in awscli/customizations/opsworks.py [0:0]
def determine_details(self, args):
"""
Determine details (like the address to connect to and the hostname to
use) from the given arguments and the retrieved data.
Provides `self._use_address` (if not provided already),
`self._use_hostname` and `self._name_for_iam`.
"""
# determine the address to connect to
if not self._use_address:
if args.local:
pass
elif args.infrastructure_class == 'ec2':
if 'PublicIpAddress' in self._ec2_instance:
self._use_address = self._ec2_instance['PublicIpAddress']
elif 'PrivateIpAddress' in self._ec2_instance:
LOG.warning(
"Instance does not have a public IP address. Trying "
"to use the private address to connect.")
self._use_address = self._ec2_instance['PrivateIpAddress']
else:
# Should never happen
raise ValueError(
"The instance does not seem to have an IP address.")
elif args.infrastructure_class == 'on-premises':
self._use_address = args.target
# determine the names to use
if args.hostname:
self._use_hostname = args.hostname
self._name_for_iam = args.hostname
elif args.local:
self._use_hostname = None
self._name_for_iam = socket.gethostname()
else:
self._use_hostname = None
self._name_for_iam = args.target