code: public CommandResponse doVagrant(String vagrantVm, final String... vagrantCommand) {
          CommandResponse response = commandProcessor.run(
                  aCommand("vagrant").withArguments(vagrantCommand).withOptions(vagrantVm)
          );
  
          if(!response.isSuccessful()) {
              throw new RuntimeException("Errors during vagrant execution: \n" + response.getErrors());
          }
  
          // Check for puppet errors. Not vagrant still returns 0 when puppet fails
          // May not be needed after this PR released: https://github.com/mitchellh/vagrant/pull/1175
          for (String line : response.getOutput().split("\n\u001B")) {
              if (line.startsWith("[1;35merr:")) {
                  throw new RuntimeException("Error in puppet output: " + line);
              }
          }
  
          return response;
      }
docs: Executes vagrant command which means that arguments passed here will be prepended with "vagrant"
  @param vagrantCommand arguments for <i>vagrant</i> command
  @return vagrant response object