使用jclouds和clojure(甚至只是jclouds)的简单运行脚本示例

时间:2015-06-11 18:55:02

标签: clojure jclouds

我有这个clojure代码

(let [group-name "my-test-group"
      compute (compute-service provider user password)
      node (create-node compute group-name)
      node-id (.getId node)]
  (.runScriptOnNode compute node-id ??)
  (destroy-node compute node-id))

我想在我的实例上运行ls作为示例。我可以在??中添加什么来完成这项工作?

阅读Jclouds文档,它说我应该在那里放置一个Statement对象,但我不知道如何在Clojure或Java中为ls命令创建一个语句对象。我接受Clojure或Java中的一个例子(因为我可以很容易地在两者之间进行转换)。

1 个答案:

答案 0 :(得分:1)

runScriptOnNode有几种形式。如ComputeService接口中所定义,脚本可以作为Statement对象或简单字符串提供。

如果你想使用Statement,那么你可以使用Statements类中的辅助方法(类似于:Statements.exec("ls"))来构建它,但这取决于你使用Statement或String表单。

以下是使用两种方法(使用String和with Statement)的示例,假设OP中的示例代码包含此代码:

(.runScriptOnNode compute node-id "ls")
(.runScriptOnNode compute node-id (Statements/exec "ls"))