Altax\Util\SSHConfig::parseToNodeOptionsFromFiles PHP Method

parseToNodeOptionsFromFiles() public static method

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;
    }

Usage Example

Example #1
0
 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]);
 }
All Usage Examples Of Altax\Util\SSHConfig::parseToNodeOptionsFromFiles