Remove wait sleep time and use the runtime status to see if its up
This commit is contained in:
		@@ -531,6 +531,32 @@ class ProgramRuntime(component.Component):
 | 
			
		||||
    def stop(self):
 | 
			
		||||
        return 0
 | 
			
		||||
 | 
			
		||||
    def wait_active(self, between_wait=1, max_attempts=5):
 | 
			
		||||
        rt_name = self.name
 | 
			
		||||
        num_started = len(self.apps_to_start)
 | 
			
		||||
        if not num_started:
 | 
			
		||||
            raise excp.StartException("No %r programs started, can not wait for them to become active..." % (rt_name))
 | 
			
		||||
 | 
			
		||||
        def waiter(try_num):
 | 
			
		||||
            LOG.info("Waiting %s seconds for component %s programs to start.", between_wait, colorizer.quote(rt_name))
 | 
			
		||||
            LOG.info("Please wait...")
 | 
			
		||||
            sh.sleep(between_wait)
 | 
			
		||||
 | 
			
		||||
        for i in range(0, max_attempts):
 | 
			
		||||
            statii = self.status()
 | 
			
		||||
            if len(statii) == num_started:
 | 
			
		||||
                not_worked = []
 | 
			
		||||
                for p_status in statii:
 | 
			
		||||
                    if p_status.status != STATUS_STARTED:
 | 
			
		||||
                        not_worked.append(p_status)
 | 
			
		||||
                if len(not_worked) == 0:
 | 
			
		||||
                    return
 | 
			
		||||
            waiter(i + 1)
 | 
			
		||||
 | 
			
		||||
        tot_time = max(0, between_wait * max_attempts)
 | 
			
		||||
        raise excp.StartException("Failed waiting %s seconds for component %r programs to become active..."
 | 
			
		||||
                                  % (tot_time, rt_name))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EmptyRuntime(ProgramRuntime):
 | 
			
		||||
    pass
 | 
			
		||||
 
 | 
			
		||||
@@ -198,7 +198,6 @@ class GlanceRuntime(comp.PythonRuntime):
 | 
			
		||||
    def __init__(self, *args, **kargs):
 | 
			
		||||
        comp.PythonRuntime.__init__(self, *args, **kargs)
 | 
			
		||||
        self.bin_dir = sh.joinpths(self.get_option('app_dir'), 'bin')
 | 
			
		||||
        self.wait_time = self.get_int_option('service_wait_seconds')
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def apps_to_start(self):
 | 
			
		||||
@@ -224,8 +223,7 @@ class GlanceRuntime(comp.PythonRuntime):
 | 
			
		||||
        comp.PythonRuntime.post_start(self)
 | 
			
		||||
        if self.get_bool_option('load-images'):
 | 
			
		||||
            # Install any images that need activating...
 | 
			
		||||
            LOG.info("Waiting %s seconds so that glance can start up before image install." % (self.wait_time))
 | 
			
		||||
            sh.sleep(self.wait_time)
 | 
			
		||||
            self.wait_active()
 | 
			
		||||
            params = {}
 | 
			
		||||
            params['glance'] = ghelper.get_shared_params(**self.options)
 | 
			
		||||
            params['keystone'] = khelper.get_shared_params(ip=self.get_option('ip'),
 | 
			
		||||
 
 | 
			
		||||
@@ -196,7 +196,6 @@ class KeystoneRuntime(comp.PythonRuntime):
 | 
			
		||||
    def __init__(self, *args, **kargs):
 | 
			
		||||
        comp.PythonRuntime.__init__(self, *args, **kargs)
 | 
			
		||||
        self.bin_dir = sh.joinpths(self.get_option('app_dir'), 'bin')
 | 
			
		||||
        self.wait_time = self.get_int_option('service_wait_seconds')
 | 
			
		||||
        self.init_fn = sh.joinpths(self.get_option('trace_dir'), INIT_WHAT_HAPPENED)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -214,8 +213,7 @@ class KeystoneRuntime(comp.PythonRuntime):
 | 
			
		||||
 | 
			
		||||
    def post_start(self):
 | 
			
		||||
        if not sh.isfile(self.init_fn) and self.get_bool_option('do-init'):
 | 
			
		||||
            LOG.info("Waiting %s seconds so that keystone can start up before running first time init." % (self.wait_time))
 | 
			
		||||
            sh.sleep(self.wait_time)
 | 
			
		||||
            self.wait_active()
 | 
			
		||||
            LOG.info("Running commands to initialize keystone.")
 | 
			
		||||
            (fn, contents) = utils.load_template(self.name, INIT_WHAT_FN)
 | 
			
		||||
            LOG.debug("Initializing with contents of %s", fn)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# This script cleans up the system as part of a nova uninstall
 | 
			
		||||
# This script cleans up the system iptables/services as part of a nova uninstall
 | 
			
		||||
#
 | 
			
		||||
# It is best effort!
 | 
			
		||||
# 
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user