in dns/py/runner.py [0:0]
def _wait_for_status(self, active):
while True:
code, out, err = self._kubectl(
None, 'get', '-o', 'yaml', 'pods', '-l', _app_label)
if code != 0:
_log.error('Error: stderr\n%s', add_prefix('err | ', err))
raise Exception('error getting pod information: %d', code)
pods = yaml.safe_load(out)
_log.info('Waiting for server to be %s (%d pods active)',
'up' if active else 'deleted',
len(pods['items']))
if (active and len(pods['items']) > 0) or \
(not active and len(pods['items']) == 0):
break
time.sleep(1)
if active:
break_loop = False
while True:
client_pods = self._get_pod(_client_label)
if len(client_pods) == 0:
continue
for podname in client_pods:
code, out, err = self._kubectl(
None,
'exec', podname, '--',
'dig', '@' + self.args.dns_ip,
'kubernetes.default.svc.cluster.local.')
if code == 0:
break_loop = True
break
if break_loop:
break
_log.info('Waiting for DNS service to start')
time.sleep(1)
_log.info('DNS is up')