本文整理汇总了Python中heat.engine.template.Template.resource_definitions方法的典型用法代码示例。如果您正苦于以下问题:Python Template.resource_definitions方法的具体用法?Python Template.resource_definitions怎么用?Python Template.resource_definitions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类heat.engine.template.Template
的用法示例。
在下文中一共展示了Template.resource_definitions方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: restore
# 需要导入模块: from heat.engine.template import Template [as 别名]
# 或者: from heat.engine.template.Template import resource_definitions [as 别名]
def restore(self, snapshot):
'''
Restore the given snapshot, invoking handle_restore on all resources.
'''
if snapshot.stack_id != self.id:
self.state_set(self.RESTORE, self.FAILED,
"Can't restore snapshot from other stack")
return
self.updated_time = datetime.utcnow()
tmpl = Template(snapshot.data['template'])
for name, defn in tmpl.resource_definitions(self).iteritems():
rsrc = resource.Resource(name, defn, self)
data = snapshot.data['resources'].get(name)
handle_restore = getattr(rsrc, 'handle_restore', None)
if callable(handle_restore):
defn = handle_restore(defn, data)
tmpl.add_resource(defn, name)
newstack = self.__class__(self.context, self.name, tmpl, self.env,
timeout_mins=self.timeout_mins,
disable_rollback=self.disable_rollback)
newstack.parameters.set_stack_id(self.identifier())
updater = scheduler.TaskRunner(self.update_task, newstack,
action=self.RESTORE)
updater()