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