- client = utils.SSHClient(self.controllers[0], self.node_user_name,
- key_filename=self.key_file)
- if self.use_containers:
- ncbase = "/var/lib/config-data/puppet-generated/nova"
- else:
- ncbase = ""
- try:
- cmd = 'sudo grep "^transport_url" %s/etc/nova/nova.conf' % ncbase
- ret, url = client.ssh(cmd)
- if ret:
- raise Exception('Exec command to get transport from '
- 'controller(%s) failed, '
- 'ret=%s, output=%s'
- % (self.controllers[0], ret, url))
- elif self.controllers[0] not in url:
- # need to use ip instead of hostname
- ret = (re.sub("@.*:", "@%s:" % self.controllers[0],
- url[0].split("=", 1)[1]))
- except:
- cmd = 'grep -i "^rabbit" %s/etc/nova/nova.conf' % ncbase
- ret, lines = client.ssh(cmd)
- if ret:
- raise Exception('Exec command to get transport from '
- 'controller(%s) in Apex installer failed, '
- 'ret=%s, output=%s'
- % (self.controllers[0], ret, url))
- else:
- for line in lines.split('\n'):
- if line.startswith("rabbit_userid"):
- rabbit_userid = line.split("=")
- if line.startswith("rabbit_port"):
- rabbit_port = line.split("=")
- if line.startswith("rabbit_password"):
- rabbit_password = line.split("=")
- ret = "rabbit://%s:%s@%s:%s/?ssl=0" % (rabbit_userid,
- rabbit_password,
- self.controllers[0],
- rabbit_port)
- self.log.debug('get_transport_url %s' % ret)
- return ret