Selaa lähdekoodia

HUE-9063 [fb] Fix aws get_default_region when no config

Change-Id: I7f9b87b27f039ae83943f532a77ef00d68476323
Jean-Francois Desjeans Gauthier 6 vuotta sitten
vanhempi
commit
85d602f5da
2 muutettua tiedostoa jossa 7 lisäystä ja 4 poistoa
  1. 3 2
      desktop/libs/aws/src/aws/client.py
  2. 4 2
      desktop/libs/aws/src/aws/conf.py

+ 3 - 2
desktop/libs/aws/src/aws/client.py

@@ -166,7 +166,7 @@ class Client(object):
         aws_access_key_id=credentials.get('AccessKeyId'),
         aws_secret_access_key=credentials.get('SecretAccessKey'),
         aws_security_token=credentials.get('SessionToken'),
-        region=aws_conf.get_region(conf),
+        region=aws_conf.get_region(conf=conf),
         host=conf.HOST.get(),
         proxy_address=conf.PROXY_ADDRESS.get(),
         proxy_port=conf.PROXY_PORT.get(),
@@ -181,7 +181,8 @@ class Client(object):
         aws_access_key_id=credentials.get('AccessKeyId'),
         aws_secret_access_key=credentials.get('SecretAccessKey'),
         aws_security_token=credentials.get('SessionToken'),
-        expiration=credentials.get('Expiration')
+        expiration=credentials.get('Expiration'),
+        region=aws_conf.get_region()
       )
 
   def get_s3_connection(self):

+ 4 - 2
desktop/libs/aws/src/aws/conf.py

@@ -87,10 +87,10 @@ def get_default_session_token():
 
 
 def get_default_region():
-  return get_region(AWS_ACCOUNTS['default']) if 'default' in AWS_ACCOUNTS else ''
+  return get_region(conf=AWS_ACCOUNTS['default']) if 'default' in AWS_ACCOUNTS else get_region()
 
 
-def get_region(conf):
+def get_region(conf=None):
   region = ''
 
   if conf:
@@ -241,6 +241,8 @@ def is_ec2_instance():
   # /sys/hypervisor/uuid doesn't work on m5/c5, but /sys/devices/virtual/dmi/id/product_uuid does
   try:
     return (os.path.exists('/sys/hypervisor/uuid') and open('/sys/hypervisor/uuid', 'read').read()[:3].lower() == 'ec2') or (os.path.exists('/sys/devices/virtual/dmi/id/product_uuid') and open('/sys/devices/virtual/dmi/id/product_uuid', 'read').read()[:3].lower() == 'ec2')
+  except IOError as e:
+    return 'Permission denied' in str(e) # If permission is denied, assume cost of network call
   except Exception as e:
     LOG.exception("Failed to read /sys/hypervisor/uuid or /sys/devices/virtual/dmi/id/product_uuid: %s" % e)
     return False