const BCONSOLE_COMMAND_PATTERN = "%s%s -c %s %s 2>&1 <<END_OF_DATA\ngui on\n%s\nquit\nEND_OF_DATA";
+ const BCONSOLE_API_COMMAND_PATTERN = "%s%s -c %s %s 2>&1 <<END_OF_DATA\ngui on\n.api 2 nosignal api_opts=o\n%s\nquit\nEND_OF_DATA";
+
const BCONSOLE_DIRECTORS_PATTERN = "%s%s -c %s -l 2>&1";
private $allowed_commands = array(
'.storage',
'.client',
'.pool',
- '.schedule'
+ '.schedule',
+ '.api',
+ '.status'
);
private $config;
return (object)array('output' => $output, 'exitcode' => (integer)$exitcode);
}
- public function bconsoleCommand($director, array $command, $user = null) {
+ public function bconsoleCommand($director, array $command, $api = false) {
if (count($this->config) > 0 && $this->config['enabled'] !== '1') {
throw new BConsoleException(
BconsoleError::MSG_ERROR_BCONSOLE_DISABLED,
}
$base_command = count($command) > 0 ? $command[0] : null;
if($this->isCommandValid($base_command) === true) {
- $result = $this->execCommand($director, $command, $user);
+ $result = $this->execCommand($director, $command, $api);
} else {
throw new BConsoleException(
BconsoleError::MSG_ERROR_INVALID_COMMAND,
return $result;
}
- private function execCommand($director, array $command, $user) {
+ private function execCommand($director, array $command, $api = false) {
$cmd = '';
$result = null;
if(!is_null($director) && $this->isValidDirector($director) === false) {
$dir = is_null($director) ? '': '-D ' . $director;
$sudo = ($this->getUseSudo() === true) ? self::SUDO . ' ' : '';
$bconsole_command = implode(' ', $command);
+ $pattern = ($api === true) ? self::BCONSOLE_API_COMMAND_PATTERN : self::BCONSOLE_COMMAND_PATTERN;
$cmd = sprintf(
- self::BCONSOLE_COMMAND_PATTERN,
+ $pattern,
$sudo,
self::getCmdPath(),
self::getCfgPath(),