2015-11-24 3 views
1

У меня есть этот простой сценарий потрясающего, и я хочу, чтобы выполнить это с помощью JAVA:Выполнения Fabric сценария через JAVA

from __future__ import with_statement 
    from fabric.api import * 
    from fabric.contrib.console import confirm 
    env.hosts = ['localhost'] 

    def updatefile(): 
    with shell_env(TERM='vt100'): 
    with cd('/Users/'): 
    run("pwd") 
    run("ls -l") 

    def execute(): 
     updatefile() 

Когда я выполнить этот сценарий из командной строки он работает: FAB -f test.py Выполняет, но я хотите выполнить через java. Пробовал с ..

public class ExecuteScript { 

@Test 
public void testExecuteScript() throws NumberFormatException, IOException{ 

    StringBuffer output = new StringBuffer(); 
    Process p; 
    try { 
     p = Runtime.getRuntime().exec("fab -f src/test/resources/scripts/test.py execute"); 
     p.waitFor(); 
     BufferedReader reader = 
       new BufferedReader(new InputStreamReader(p.getInputStream())); 

     String line = "";   
     while ((line = reader.readLine())!= null) { 
      output.append(line + "\n"); 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    System.out.println(output.toString()); 
} 
} 

Он не работает .. посмотрел на документацию для примеров ява в http://fabric8.io/gitbook/quickstarts.html ссылки разрываются.

ответ

0

Окружающая среда, убедитесь, что вы используете свою среду. Я хотел бы предложить вам использовать virtualenv, выглядит примерно так:

  1. virtualenv .env (не делают это в вашей папке Src, если что-то должно быть один каталог вниз, а также, пожалуйста, не проверить это в ваш исходный контроль)
  2. source .env/bin/activate

затем установите зависимости:

  1. pip install fabric
  2. ?? что еще вам нужно.

, то это важная часть:

./.env/bin/fab -f src/test/resources/scripts/test.py execute