@@ -193,6 +193,7 @@ def _validate_hostnames(self):
193193 logger .debug (e )
194194 logger .error (
195195 "Could not resolve hostname: %s" , endpoint_url .geturl ())
196+ sys .exit (1 )
196197 if self .proxies is not None :
197198 proxy_url = urlparse (self .proxies ['https' ])
198199 try :
@@ -210,7 +211,7 @@ def _validate_hostnames(self):
210211 except socket .gaierror as e :
211212 logger .debug (e )
212213 logger .error ("Could not resolve proxy %s" , proxy_url .geturl ())
213- traceback . print_exc ( )
214+ sys . exit ( 1 )
214215
215216 def _test_urls (self , url , method ):
216217 """
@@ -277,23 +278,35 @@ def _test_openssl(self):
277278 sock = socket .socket ()
278279 sock .setblocking (1 )
279280 if self .proxies :
280- connect_str = 'CONNECT {0} HTTP/1.0\r \n ' .format (hostname )
281+ connect_str = 'CONNECT {0} HTTP/1.0\r \n ' .format (hostname [ 0 ] )
281282 if self .proxy_auth :
282283 connect_str += 'Proxy-Authorization: {0}\r \n ' .format (self .proxy_auth )
283284 connect_str += '\r \n '
284- proxy = urlparse (self .proxies ).netloc .split (':' )
285- sock .connect ((proxy [0 ], int (proxy [1 ])))
285+ proxy = urlparse (self .proxies ['https' ]).netloc .split (':' )
286+ try :
287+ sock .connect ((proxy [0 ], int (proxy [1 ])))
288+ except Exception as e :
289+ logger .debug (e )
290+ logger .error ('Failed to connect to proxy %s. Connection refused.' % self .proxies ['https' ])
291+ sys .exit (1 )
286292 sock .send (connect_str )
287- sock .recv (4096 )
293+ res = sock .recv (4096 )
294+ if 'HTTP/1.0 200 Connection established' not in res :
295+ logger .error ('Failed to connect to %s. Invalid hostname.' % self .base_url )
296+ sys .exit (1 )
288297 else :
289298 try :
290299 sock .connect ((hostname [0 ], 443 ))
291300 except socket .gaierror :
292- logger .error ('Error: Failed to connect to %s. Invalid hostname.' % base_url )
301+ logger .error ('Error: Failed to connect to %s. Invalid hostname.' % self . base_url )
293302 sys .exit (1 )
294303 ctx = SSL .Context (SSL .TLSv1_METHOD )
295304 if type (self .cert_verify ) is not bool :
296- ctx .load_verify_locations (self .cert_verify , None )
305+ if os .path .isfile (self .cert_verify ):
306+ ctx .load_verify_locations (self .cert_verify , None )
307+ else :
308+ logger .error ('Error: Invalid cert path: %s' % self .cert_verify )
309+ sys .exit (1 )
297310 ctx .set_verify (SSL .VERIFY_PEER , self ._verify_check )
298311 ssl_conn = SSL .Connection (ctx , sock )
299312 ssl_conn .set_connect_state ()
@@ -317,7 +330,8 @@ def _test_openssl(self):
317330 logger .info (self ._generate_cert_str (server_cert .get_subject (), 'subject=/' ))
318331 logger .info (self ._generate_cert_str (server_cert .get_issuer (), 'issuer=/' ))
319332 logger .info ('---' )
320- except SSL .Error :
333+ except SSL .Error as e :
334+ logger .debug ('SSL error: %s' % e )
321335 success = False
322336 logger .error ('Certificate chain test failed!' )
323337 ssl_conn .shutdown ()
@@ -581,9 +595,6 @@ def register(self, options):
581595 """
582596 Register this machine
583597 """
584-
585- delete_unregistered_file ()
586-
587598 client_hostname = determine_hostname ()
588599 # This will undo a blacklist
589600 logger .debug ("API: Create system" )
@@ -598,6 +609,8 @@ def register(self, options):
598609
599610 message = system .headers .get ("x-rh-message" , "" )
600611
612+ delete_unregistered_file ()
613+
601614 # Do grouping
602615 if options .group is not None :
603616 self .do_group (options .group )
0 commit comments