diff options
Diffstat (limited to 'testing/mozharness/mozharness/lib')
-rw-r--r-- | testing/mozharness/mozharness/lib/__init__.py | 0 | ||||
-rw-r--r-- | testing/mozharness/mozharness/lib/python/__init__.py | 0 | ||||
-rw-r--r-- | testing/mozharness/mozharness/lib/python/authentication.py | 60 |
3 files changed, 60 insertions, 0 deletions
diff --git a/testing/mozharness/mozharness/lib/__init__.py b/testing/mozharness/mozharness/lib/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/testing/mozharness/mozharness/lib/__init__.py diff --git a/testing/mozharness/mozharness/lib/python/__init__.py b/testing/mozharness/mozharness/lib/python/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/testing/mozharness/mozharness/lib/python/__init__.py diff --git a/testing/mozharness/mozharness/lib/python/authentication.py b/testing/mozharness/mozharness/lib/python/authentication.py new file mode 100644 index 0000000000..5d7330e357 --- /dev/null +++ b/testing/mozharness/mozharness/lib/python/authentication.py @@ -0,0 +1,60 @@ +# ***** BEGIN LICENSE BLOCK ***** +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this file, +# You can obtain one at http://mozilla.org/MPL/2.0/. +# ***** END LICENSE BLOCK ***** + +"""module for http authentication operations""" +import getpass +import os + +CREDENTIALS_PATH = os.path.expanduser("~/.mozilla/credentials.cfg") +DIRNAME = os.path.dirname(CREDENTIALS_PATH) +LDAP_PASSWORD = None + + +def get_credentials(): + """Returns http credentials. + + The user's email address is stored on disk (for convenience in the future) + while the password is requested from the user on first invocation. + """ + global LDAP_PASSWORD + if not os.path.exists(DIRNAME): + os.makedirs(DIRNAME) + + if os.path.isfile(CREDENTIALS_PATH): + with open(CREDENTIALS_PATH, "r") as file_handler: + content = file_handler.read().splitlines() + + https_username = content[0].strip() + + if len(content) > 1: + # We want to remove files which contain the password + os.remove(CREDENTIALS_PATH) + else: + try: + # pylint: disable=W1609 + input_method = raw_input + except NameError: + input_method = input + + https_username = input_method("Please enter your full LDAP email address: ") + + with open(CREDENTIALS_PATH, "w+") as file_handler: + file_handler.write("%s\n" % https_username) + + os.chmod(CREDENTIALS_PATH, 0o600) + + if not LDAP_PASSWORD: + print("Please enter your LDAP password (we won't store it):") + LDAP_PASSWORD = getpass.getpass() + + return https_username, LDAP_PASSWORD + + +def get_credentials_path(): + if os.path.isfile(CREDENTIALS_PATH): + get_credentials() + + return CREDENTIALS_PATH |