【问题标题】:Simple runscript example with jclouds and clojure (or even just jclouds)带有 jclouds 和 clojure(甚至只是 jclouds)的简单 runscript 示例
【发布时间】:2015-06-11 18:55:01
【问题描述】:

我有这个 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 中的示例(因为我可以轻松地在两者之间进行转换)。

【问题讨论】:

  • 你用的是什么库?
  • 我不确定我是否理解你的问题@Alan。我正在使用 jclouds。 (.runScriptOnNode compute ...) 等价于 java 代码 compute.runScriptOnNode(...)computeComputeService 的一个实例。
  • 我正在尝试遵循jclouds.apache.org/start/compute 的示例,但是对于脚本,他们只是放置了一个名为script 的变量名,并且没有展示如何创建这样的脚本。所以任何脚本都可以(无论是运行lsecho 还是其他命令)。我只需要知道如何指定我的脚本。

标签: clojure jclouds


【解决方案1】:

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

如果您想使用Statement,那么您可以使用Statements 类中的辅助方法(类似于:Statements.exec("ls"))来构建它,但您可以使用语句或字符串表格。

以下是使用两种方法(使用字符串和使用语句)的示例,假设来自 OP 的示例代码围绕此代码:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多