使用 jclouds 和 clojure(甚至只是 jclouds)的简单运行脚本示例
Simple runscript example with jclouds and clojure (or even just 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 或 [=21] 中为 ls
命令创建语句对象=].我会接受 Clojure 或 Java 中的示例(因为我可以轻松地在两者之间进行转换)。
runScriptOnNode
有多种形式。正如 ComputeService 接口中定义的那样,脚本可以作为 Statement
对象或简单的字符串提供。
如果你想使用 Statement
那么你可以使用 Statements class 中的辅助方法来构建它(类似于:Statements.exec("ls")
),但是使用语句或字符串形式由您决定。
下面是使用两种方法(使用字符串和使用语句)的示例,假设来自 OP 的示例代码包含此代码:
(.runScriptOnNode compute node-id "ls")
(.runScriptOnNode compute node-id (Statements/exec "ls"))
我有这个 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 或 [=21] 中为 ls
命令创建语句对象=].我会接受 Clojure 或 Java 中的示例(因为我可以轻松地在两者之间进行转换)。
runScriptOnNode
有多种形式。正如 ComputeService 接口中定义的那样,脚本可以作为 Statement
对象或简单的字符串提供。
如果你想使用 Statement
那么你可以使用 Statements class 中的辅助方法来构建它(类似于:Statements.exec("ls")
),但是使用语句或字符串形式由您决定。
下面是使用两种方法(使用字符串和使用语句)的示例,假设来自 OP 的示例代码包含此代码:
(.runScriptOnNode compute node-id "ls")
(.runScriptOnNode compute node-id (Statements/exec "ls"))