in ccmlib/node.py [0:0]
def run_cqlsh_process(self, cmds=None, cqlsh_options=None, terminator=''):
if cqlsh_options is None:
cqlsh_options = []
cqlsh = self.get_tool('cqlsh')
env = self.get_env()
extension.append_to_client_env(self, env)
if self.get_base_cassandra_version() >= 2.1:
host, port = self.network_interfaces['binary']
else:
host, port = self.network_interfaces['thrift']
args = []
args += cqlsh_options
extension.append_to_cqlsh_args(self, env, args)
args += [host, str(port)]
sys.stdout.flush()
if cmds is None:
if common.is_win():
subprocess.Popen([cqlsh] + args, env=env, creationflags=subprocess.CREATE_NEW_CONSOLE)
else:
os.execve(cqlsh, [common.platform_binary('cqlsh')] + args, env)
else:
p = subprocess.Popen([cqlsh] + args, env=env, stdin=subprocess.PIPE, stderr=subprocess.PIPE,
stdout=subprocess.PIPE, universal_newlines=True)
if cmds is not None:
for cmd in cmds.split(';'):
cmd = cmd.strip()
if cmd:
p.stdin.write(cmd + terminator)
p.stdin.write("quit;\n")
return p