public static parseToNodeOptionsFromFiles ( $files = [] ) |
public static function parseToNodeOptionsFromFiles($files = array())
{
$nodesOptions = array();
$servers = self::parseFromFiles($files);
foreach ($servers as $key => $config) {
if (strpos($key, "*") !== false) {
continue;
}
if (isset($config["altax.ignore"]) && $config["altax.ignore"]) {
continue;
}
$nodesOptions[$key] = array();
if (isset($config["hostname"])) {
$nodesOptions[$key]["host"] = $config["hostname"];
}
if (isset($config["port"])) {
$nodesOptions[$key]["port"] = $config["port"];
}
if (isset($config["user"])) {
$nodesOptions[$key]["username"] = $config["user"];
}
if (isset($config["identityfile"])) {
$nodesOptions[$key]["key"] = $config["identityfile"];
}
if (isset($config["altax.roles"])) {
$rolesStr = str_replace(array(" ", "\t"), "", $config["altax.roles"]);
$roles = explode(",", $rolesStr);
$nodesOptions[$key]["roles"] = $roles;
}
}
return $nodesOptions;
}
public function testParseToNodeOptionsFormFiles() { $config = SSHConfig::parseToNodeOptionsFromFiles(array(__DIR__ . "/SSHConfigTest/ssh_config", __DIR__ . "/SSHConfigTest/ssh_config2", __DIR__ . "/SSHConfigTest/ssh_config3")); // print_r($config); $this->assertEquals("192.168.56.2", $config["test-server5"]["host"]); $this->assertEquals("22", $config["test-server5"]["port"]); $this->assertEquals("kohkimakimoto", $config["test-server5"]["username"]); $this->assertEquals("~/.ssh/id_rsa", $config["test-server5"]["key"]); $this->assertEquals("web", $config["test-server5"]["roles"][0]); $this->assertEquals("db", $config["test-server5"]["roles"][1]); }