示例#1
0
 public function testToArrayRemovesSshSession()
 {
     $server = Server::create(array('name' => 'appServer1.foo.bar', 'host' => 'foo.bar', 'port' => 22, 'username' => 'root', 'password' => '12341234'));
     /** @var Session $session */
     $session = $this->getMockBuilder('Ssh\\Session')->disableOriginalConstructor()->getMock();
     $server->setSession($session);
     $this->assertArrayNotHasKey('session', $server->toArray());
 }
示例#2
0
 /**
  * Creates a server instance.
  *
  * @param array $server Server
  *
  * @return Server
  */
 public function create(array $server)
 {
     $server = array_filter($server, function ($value) {
         return !is_null($value) || !empty($value);
     });
     if (!array_key_exists('host', $server)) {
         throw new \DomainException('Host is missing for passed server.');
     }
     if (!array_key_exists('name', $server)) {
         throw new \DomainException('Name is missing for passed server.');
     }
     if (!array_key_exists('password', $server) && !array_key_exists('privateKey', $server)) {
         throw new \DomainException(sprintf("No password and no private key file given for server '%s'.", $server['name']));
     }
     if (array_key_exists('password', $server) && array_key_exists('privateKey', $server)) {
         throw new \DomainException(sprintf("Both password and private key file given for server '%s'. Choose only one.", $server['name']));
     }
     if (array_key_exists('password', $server) && !array_key_exists('username', $server)) {
         throw new \DomainException(sprintf("Password given but username is missing for server '%s'.", $server['name']));
     }
     if (array_key_exists('privateKey', $server) && !array_key_exists('username', $server)) {
         throw new \DomainException(sprintf("Private key file given but username missing for server '%s'.", $server['name']));
     }
     if (array_key_exists('privateKey', $server) && !array_key_exists('publicKey', $server)) {
         throw new \DomainException(sprintf("Private key file given but public key file missing for server '%s'.", $server['name']));
     }
     if (array_key_exists('publicKey', $server) && !array_key_exists('privateKey', $server)) {
         throw new \DomainException(sprintf("Public key file given but private key file missing for server '%s'.", $server['name']));
     }
     if (!array_key_exists('tags', $server) || empty($server['tags'])) {
         $server['tags'] = array('all');
     }
     if (!array_key_exists('port', $server) || empty($server['port'])) {
         $server['port'] = 22;
     }
     $server = Server::create($server);
     $session = $this->sessionFactory->createFromServer($server);
     $server->setSession($session);
     return $server;
 }