如何映射命令参数
Workflow Automation ( WFA )命令中的参数会根据特定规则映射到特定属性和词典条目引用。创建或编辑 WFA 命令时,您必须了解映射命令参数的规则。
命令参数映射定义了如何在工作流中定义命令详细信息。在工作流中为命令指定命令详细信息时,命令的映射命令参数将显示在选项卡中。这些选项卡根据在参数映射选项卡的对象名称列中指定的组名称进行命名。在工作流中指定命令详细信息时,未映射的参数将显示在其他参数选项卡中。
根据命令类别以及在工作流编辑器中表示命令的方式,命令参数映射规则适用。
以下是命令类别:
-
用于创建对象的命令
-
用于更新对象的命令
-
用于删除对象的命令
-
用于处理可选父对象和子对象的命令
-
用于更新对象之间关联的命令
下面列出了每个类别的规则:
所有命令类别
映射命令参数时,应根据在工作流中使用命令的方式使用自然路径。
以下示例显示了如何定义自然路径:
-
对于
ArrayIP
参数,根据命令的不同,您应使用Volume
词典条目的aggregate.array.ip
属性,而不是array.ip
属性。当工作流创建卷,然后引用创建的卷对其执行额外步骤时,这一点非常重要。以下是类似的示例:
-
qtree
词典条目的volume.aggregate.array.ip
-
LUN
词典条目的volume.aggregate.array.ip
-
-
对于命令中使用的
Cluster
,应使用以下方法之一:-
卷
词典条目的vserver.cluster.primary_address
-
qtree
词典条目的volume.vserver.cluster.primary_address
-
用于创建对象的命令
此类命令用于以下操作之一:
-
查找父对象并定义新对象
-
搜索对象并在对象不存在时创建对象
对于此类命令,应使用以下参数映射规则:
-
将创建的对象的相关参数映射到对象的词典条目。
-
通过创建的词典条目的引用映射父对象。
-
添加新参数时,请确保词典条目中存在相关属性。
以下是此规则的例外情形:
-
创建的某些对象没有对应的词典条目,并且只有父对象映射到相关父词典条目,例如, * 创建 VIF* 命令,在此命令中,只能将一个数组映射到数组词典条目。
-
不需要进行参数映射
例如, * 创建聚合或调整聚合大小 * 命令中的
ExecutionTimeout
参数是一个未映射的参数。
-
以下经过认证的命令就是此类别的示例:
-
创建卷
-
创建 LUN
用于更新对象的命令
此类命令用于查找对象并更新属性。
对于此类命令,应使用以下参数映射规则:
-
将已更新的对象映射到词典条目。
-
请勿映射为对象更新的参数。
例如,在 * 设置卷状态 * 命令中,已映射
Volume
参数,但新的State
未映射。
用于删除对象的命令
此类命令用于查找并删除对象。
您应将命令删除的对象映射到其词典条目。例如,在 * 删除卷 * 命令中,要删除的 卷
将映射到 卷
词典条目的相关属性和引用。
用于处理可选父对象和子对象的命令
对于此类命令,应使用以下参数映射规则:
-
请勿将命令的任何必需参数映射为命令的可选参数的引用。
当命令处理特定父对象的可选子对象时,此规则更相关。在这种情况下,子对象和父对象应显式映射。例如,在 * 停止重复数据删除作业 * 命令中,如果指定了
Array
或给定Array
的所有卷,则该命令将停止在特定卷上运行的重复数据删除作业。在这种情况下,数组参数应直接映射到array
词典条目,而不是映射到Volume.Array
,因为Volume
是此命令中的一个可选参数。 -
如果逻辑级别的词典条目之间存在父级和子级关系,而不是特定命令中的实际实例之间存在父级和子级关系,则应分别映射这些对象。
例如,在 * 移动卷 * 命令中,将
卷
从其当前父聚合移动到新的目标聚合。因此,Volume
参数会映射到Volume
词典条目,而目标聚合参数会单独映射到aggregate
词典条目,而不是映射到volume.aggregate.name.
用于更新对象之间关联的命令
对于此类命令,应将关联和对象映射到相关的词典条目。例如,在 Add Volume to vFiler
命令中, Volume
和 vFiler
参数会映射到 Volume
和 vFiler
词典条目的相关属性。