/** * @param $sourceFile * @return string */ protected function tunneledDatabaseImport($sourceFile) { //Create Dump Name Sql $dumpName = uniqid(time() . '_facilior_'); //Zip the File $this->fileService->gzip($sourceFile, $sourceFile . '.gz'); $baseSourceFile = basename($sourceFile . '.gz'); $scpCommand = 'scp ##SOURCEFILE## ##SSHUSER##@##SSHHOST##:~/##DUMPNAME##'; $scpResult = $this->shellService->execute($scpCommand, array('SOURCEFILE' => './.facilior/temp/' . $baseSourceFile, 'SSHUSER' => $this->environment->getSshUsername(), 'SSHHOST' => $this->environment->getSshHost(), 'DUMPNAME' => $dumpName . '.gz')); if ($scpResult->getExitCode() != 0) { return [$scpResult]; } $sshCommand = 'ssh -l ##SSHUSER## ##SSHHOST## "gunzip ##DUMPNAME##.gz ' . '&& mysql -h ##MYSQLHOST## -u ##MYSQLUSER## -p##MYSQLPASS## ##MYSQLDB## < ##DUMPNAME## ' . '&& rm ##DUMPNAME##"'; $sshResult = $this->shellService->execute($sshCommand, array('SSHUSER' => $this->environment->getSshUsername(), 'SSHHOST' => $this->environment->getSshHost(), 'DUMPNAME' => $dumpName, 'MYSQLHOST' => $this->environment->getHost(), 'MYSQLUSER' => $this->environment->getUsername(), 'MYSQLPASS' => $this->environment->getPassword(), 'MYSQLDB' => $this->environment->getDatabase())); return [$sshResult, $scpResult]; }
/** * @test * @return void */ public function testEnvironmentWillAssignVars() { $config = array('database' => array('username' => 'username', 'password' => 'password', 'host' => 'host', 'database' => 'database'), 'ssh_tunnel' => array('enabled' => true, 'host' => 'host', 'username' => 'username')); $env = new Environment($config); $this->assertSame('username', $env->getUsername()); $this->assertSame('password', $env->getPassword()); $this->assertSame('host', $env->getHost()); $this->assertSame('database', $env->getDatabase()); $this->assertSame('username', $env->getSshUsername()); $this->assertSame('host', $env->getSshHost()); $this->assertTrue($env->isSshTunnel()); }