Changeset View
Changeset View
Standalone View
Standalone View
src/conduit/ArcanistConduitEngine.php
<?php | <?php | ||||
final class ArcanistConduitEngine | final class ArcanistConduitEngine | ||||
extends Phobject { | extends Phobject { | ||||
private $conduitURI; | private $conduitURI; | ||||
private $conduitToken; | private $conduitToken; | ||||
private $conduitTimeout; | private $conduitTimeout; | ||||
private $basicAuthUser; | |||||
private $basicAuthPass; | |||||
private $client; | private $client; | ||||
private $callKey = 0; | private $callKey = 0; | ||||
private $activeFutures = array(); | private $activeFutures = array(); | ||||
private $resolvedFutures = array(); | private $resolvedFutures = array(); | ||||
public function isCallable() { | public function isCallable() { | ||||
return ($this->conduitURI !== null); | return ($this->conduitURI !== null); | ||||
Show All 21 Lines | public function setConduitTimeout($conduit_timeout) { | ||||
$this->conduitTimeout = $conduit_timeout; | $this->conduitTimeout = $conduit_timeout; | ||||
return $this; | return $this; | ||||
} | } | ||||
public function getConduitTimeout() { | public function getConduitTimeout() { | ||||
return $this->conduitTimeout; | return $this->conduitTimeout; | ||||
} | } | ||||
public function setBasicAuthUser($basic_auth_user) { | |||||
$this->basicAuthUser = $basic_auth_user; | |||||
return $this; | |||||
} | |||||
public function getBasicAuthUser() { | |||||
return $this->basicAuthUser; | |||||
} | |||||
public function setBasicAuthPass($basic_auth_pass) { | |||||
$this->basicAuthPass = $basic_auth_pass; | |||||
return $this; | |||||
} | |||||
public function getBasicAuthPass() { | |||||
return $this->basicAuthPass; | |||||
} | |||||
public function newCall($method, array $parameters) { | public function newCall($method, array $parameters) { | ||||
if ($this->conduitURI == null) { | if ($this->conduitURI == null) { | ||||
$this->raiseURIException(); | $this->raiseURIException(); | ||||
} | } | ||||
$next_key = ++$this->callKey; | $next_key = ++$this->callKey; | ||||
return id(new ArcanistConduitCall()) | return id(new ArcanistConduitCall()) | ||||
Show All 22 Lines | if (!$this->client) { | ||||
$client = new ConduitClient($conduit_uri); | $client = new ConduitClient($conduit_uri); | ||||
$timeout = $this->getConduitTimeout(); | $timeout = $this->getConduitTimeout(); | ||||
if ($timeout) { | if ($timeout) { | ||||
$client->setTimeout($timeout); | $client->setTimeout($timeout); | ||||
} | } | ||||
$basic_user = $this->getBasicAuthUser(); | |||||
$basic_pass = $this->getBasicAuthPass(); | |||||
if ($basic_user !== null || $basic_pass !== null) { | |||||
$client->setBasicAuthCredentials($basic_user, $basic_pass); | |||||
} | |||||
$token = $this->getConduitToken(); | $token = $this->getConduitToken(); | ||||
if ($token) { | if ($token) { | ||||
$client->setConduitToken($this->getConduitToken()); | $client->setConduitToken($this->getConduitToken()); | ||||
} | } | ||||
} | } | ||||
return $client; | return $client; | ||||
} | } | ||||
Show All 24 Lines | final class ArcanistConduitEngine | ||||
private function raiseURIException() { | private function raiseURIException() { | ||||
$list = id(new PhutilConsoleList()) | $list = id(new PhutilConsoleList()) | ||||
->addItem( | ->addItem( | ||||
pht( | pht( | ||||
'Run in a working copy with "phabricator.uri" set in ".arcconfig".')) | 'Run in a working copy with "phabricator.uri" set in ".arcconfig".')) | ||||
->addItem( | ->addItem( | ||||
pht( | pht( | ||||
'Set a default URI with `arc set-config default <uri>`.')) | 'Set a default URI with `arc set-config phabricator.uri <uri>`.')) | ||||
->addItem( | ->addItem( | ||||
pht( | pht( | ||||
'Specify a URI explicitly with `--conduit-uri=<uri>`.')); | 'Specify a URI explicitly with `--config phabricator.uri=<uri>`.')); | ||||
$block = id(new PhutilConsoleBlock()) | $block = id(new PhutilConsoleBlock()) | ||||
->addParagraph( | ->addParagraph( | ||||
pht( | pht( | ||||
'This command needs to communicate with Phabricator, but no '. | 'This command needs to communicate with Phabricator, but no '. | ||||
'Phabricator URI is configured.')) | 'Phabricator URI is configured.')) | ||||
->addList($list); | ->addList($list); | ||||
throw new ArcanistUsageException($block->drawConsoleString()); | throw new ArcanistUsageException($block->drawConsoleString()); | ||||
} | } | ||||
} | } |