import pwd
import getpass
import copy
+import errno
try:
from collections import OrderedDict
return True
+ def __try_login(self, username, password):
+ param = {'username': username, 'password' : password}
+ try:
+ return self.send_POST('/login', param)
+ except socket.error as err:
+ print("Socket error while sending login information: ", err)
+ if err.errno == errno.ECONNRESET:
+ print("Please check the logs of b10-cmdctl, there may be a "
+ "problem accepting SSL connections, such as a "
+ "permission problem on the server certificate file.")
+ raise FailToLogin()
+
def login_to_cmdctl(self):
'''Login to cmdctl with the username and password given by
the user. After the login is sucessful, the username and
# Look at existing username/password combinations and try to log in
users = self._get_saved_user_info(self.csv_file_dir, CSV_FILE_NAME)
for row in users:
- param = {'username': row[0], 'password' : row[1]}
- try:
- response = self.send_POST('/login', param)
- data = response.read().decode()
- except socket.error as err:
- print("Socket error while sending login information:", err)
- raise FailToLogin()
-
+ response = self.__try_login(row[0], row[1])
+ data = response.read().decode()
if response.status == http.client.OK:
# Is interactive?
if sys.stdin.isatty():
username = input("Username: ")
passwd = getpass.getpass()
- param = {'username': username, 'password' : passwd}
- try:
- response = self.send_POST('/login', param)
- data = response.read().decode()
- print(data)
- except socket.error as err:
- print("Socket error while sending login information:", err)
- raise FailToLogin()
+
+ response = self.__try_login(username, passwd)
+ data = response.read().decode()
+ print(data)
if response.status == http.client.OK:
self._save_user_info(username, passwd, self.csv_file_dir,