def authorizeUser(): # poll once with any existing public key, just in case a previous login # attempt was interrupted after it completed if _pollForAuth(): return # python 2 + 3 compatibility try: global input input = raw_input except NameError: pass sys.stdout.write('\nYou need to log in with Github.\n') if os.name == 'nt' or os.environ.get('DISPLAY'): input(colorama.Style.BRIGHT + 'Press enter to continue.\n' + colorama.Style.DIM + 'Your browser will open to complete login.' + colorama.Style.NORMAL + '\n') registry_access.openBrowserLogin(provider='github') sys.stdout.write('waiting for response...') sys.stdout.write( colorama.Style.DIM + '\nIf you are unable to use a browser on this machine, please copy and ' + 'paste this URL into a browser:\n' + registry_access.getLoginURL(provider='github') + '\n' + colorama.Style.NORMAL) sys.stdout.flush() else: sys.stdout.write( '\nyotta is unable to open a browser for you to complete login ' + 'on this machine. Please copy and paste this URL into a ' 'browser to complete login:\n' + registry_access.getLoginURL(provider='github') + '\n') sys.stdout.write('waiting for response...') sys.stdout.flush() poll_start = datetime.datetime.utcnow() while datetime.datetime.utcnow() - poll_start < datetime.timedelta( minutes=5): time.sleep(5) sys.stdout.write('.') sys.stdout.flush() if _pollForAuth(): sys.stdout.write('\n') return raise Exception('Login timed out: please try again.')
def authorizeUser(registry=None, provider='github', interactive=True): # poll once with any existing public key, just in case a previous login # attempt was interrupted after it completed try: if _pollForAuth(registry=registry): return 0 except registry_access.AuthError as e: logger.error('%s' % e) return 1 # python 2 + 3 compatibility try: global input input = raw_input except NameError: pass if interactive: login_instruction = '\nYou need to log in to do this.\n' if provider == 'github': login_instruction = '\nYou need to log in with Github to do this.\n' sys.stdout.write(login_instruction) if os.name == 'nt' or os.environ.get('DISPLAY'): input( colorama.Style.BRIGHT+ 'Press enter to continue.\n'+ colorama.Style.DIM+ 'Your browser will open to complete login.'+ colorama.Style.NORMAL+'\n' ) _openBrowserLogin(provider=provider, registry=registry) sys.stdout.write('waiting for response...') sys.stdout.write( colorama.Style.DIM+ '\nIf you are unable to use a browser on this machine, please copy and '+ 'paste this URL into a browser:\n'+ registry_access.getLoginURL(provider=provider, registry=registry)+'\n'+ colorama.Style.NORMAL ) sys.stdout.flush() else: sys.stdout.write( '\nyotta is unable to open a browser for you to complete login '+ 'on this machine. Please copy and paste this URL into a ' 'browser to complete login:\n'+ registry_access.getLoginURL(provider=provider, registry=registry)+'\n' ) sys.stdout.write('waiting for response...') sys.stdout.flush() poll_start = datetime.datetime.utcnow() while datetime.datetime.utcnow() - poll_start < datetime.timedelta(minutes=5): time.sleep(5) sys.stdout.write('.') sys.stdout.flush() try: if _pollForAuth(registry=registry): sys.stdout.write('\n') return 0 except registry_access.AuthError as e: logger.error('%s' % e) return 1 raise AuthTimedOut('timed out: please try again.') else: logger.error('login required (yotta is running in noninteractive mode)') logger.info('login URL: %s', registry_access.getLoginURL(provider=provider, registry=registry)) return 1
def _openBrowserLogin(provider=None, registry=None): webbrowser.open(registry_access.getLoginURL(provider=provider, registry=registry))
def authorizeUser(registry=None, provider='github', interactive=True): if not globalconf.get('plain'): DIM = colorama.Style.DIM #pylint: disable=no-member BRIGHT = colorama.Style.BRIGHT #pylint: disable=no-member NORMAL = colorama.Style.NORMAL #pylint: disable=no-member else: DIM = BRIGHT = NORMAL = u'' # poll once with any existing public key, just in case a previous login # attempt was interrupted after it completed try: if _pollForAuth(registry=registry): return 0 except registry_access.AuthError as e: logger.error('%s' % e) return 1 # python 2 + 3 compatibility try: global input input = raw_input except NameError: pass if interactive: login_instruction = '\nYou need to log in to do this.\n' if provider == 'github': login_instruction = '\nYou need to log in with Github to do this.\n' sys.stdout.write(login_instruction) if os.name == 'nt' or os.environ.get('DISPLAY'): input(BRIGHT + 'Press enter to continue.\n' + DIM + 'Your browser will open to complete login.' + NORMAL + '\n') _openBrowserLogin(provider=provider, registry=registry) sys.stdout.write('waiting for response...') sys.stdout.write( DIM + '\nIf you are unable to use a browser on this machine, please copy and ' + 'paste this URL into a browser:\n' + registry_access.getLoginURL(provider=provider, registry=registry) + '\n' + NORMAL) sys.stdout.flush() else: sys.stdout.write( '\nyotta is unable to open a browser for you to complete login ' + 'on this machine. Please copy and paste this URL into a ' 'browser to complete login:\n' + registry_access.getLoginURL( provider=provider, registry=registry) + '\n') sys.stdout.write('waiting for response...') sys.stdout.flush() poll_start = datetime.datetime.utcnow() while datetime.datetime.utcnow() - poll_start < datetime.timedelta( minutes=5): time.sleep(5) sys.stdout.write('.') sys.stdout.flush() try: if _pollForAuth(registry=registry): sys.stdout.write('\n') return 0 except registry_access.AuthError as e: logger.error('%s' % e) return 1 raise AuthTimedOut('timed out: please try again.') else: logger.error( 'login required (yotta is running in noninteractive mode)') logger.info( 'login URL: %s', registry_access.getLoginURL(provider=provider, registry=registry)) return 1
def _openBrowserLogin(provider=None, registry=None): webbrowser.open( registry_access.getLoginURL(provider=provider, registry=registry))
def authorizeUser(registry=None, provider="github", interactive=True): # poll once with any existing public key, just in case a previous login # attempt was interrupted after it completed try: if _pollForAuth(registry=registry): return except registry_access.AuthError as e: logger.error("%s" % e) return # python 2 + 3 compatibility try: global input input = raw_input except NameError: pass if interactive: login_instruction = "\nYou need to log in to do this.\n" if provider == "github": login_instruction = "\nYou need to log in with Github to do this.\n" sys.stdout.write(login_instruction) if os.name == "nt" or os.environ.get("DISPLAY"): input( colorama.Style.BRIGHT + "Press enter to continue.\n" + colorama.Style.DIM + "Your browser will open to complete login." + colorama.Style.NORMAL + "\n" ) _openBrowserLogin(provider=provider, registry=registry) sys.stdout.write("waiting for response...") sys.stdout.write( colorama.Style.DIM + "\nIf you are unable to use a browser on this machine, please copy and " + "paste this URL into a browser:\n" + registry_access.getLoginURL(provider=provider, registry=registry) + "\n" + colorama.Style.NORMAL ) sys.stdout.flush() else: sys.stdout.write( "\nyotta is unable to open a browser for you to complete login " + "on this machine. Please copy and paste this URL into a " "browser to complete login:\n" + registry_access.getLoginURL(provider=provider, registry=registry) + "\n" ) sys.stdout.write("waiting for response...") sys.stdout.flush() poll_start = datetime.datetime.utcnow() while datetime.datetime.utcnow() - poll_start < datetime.timedelta(minutes=5): time.sleep(5) sys.stdout.write(".") sys.stdout.flush() try: if _pollForAuth(registry=registry): sys.stdout.write("\n") return except registry_access.AuthError as e: logger.error("%s" % e) return raise Exception("Login timed out: please try again.") else: logger.error("login required (yotta is running in noninteractive mode)") logger.info("login URL: %s", registry_access.getLoginURL(provider=provider, registry=registry))