text: from bootstrapvz.base import Task
  from bootstrapvz.common import phases
  import os
  
  
  class CheckAssetsPath(Task):
  	description = 'Checking whether the assets path exist'
  	phase = phases.preparation
  
  	@classmethod
  	def run(cls, info):
  		from bootstrapvz.common.exceptions import TaskError
  		assets = info.manifest.plugins['chef']['assets']
  		if not os.path.exists(assets):
  			msg = 'The assets directory {assets} does not exist.'.format(assets=assets)
  			raise TaskError(msg)
  		if not os.path.isdir(assets):
  			msg = 'The assets path {assets} does not point to a directory.'.format(assets=assets)
  			raise TaskError(msg)
  
  
  class AddPackages(Task):
  	description = 'Add chef package'
  	phase = phases.preparation
  
  	@classmethod
  	def run(cls, info):
  		info.packages.add('chef')
  
  
  class CopyChefAssets(Task):
  	description = 'Copying chef assets'
  	phase = phases.system_modification
  
  	@classmethod
  	def run(cls, info):
  		from bootstrapvz.common.tools import copy_tree
  		copy_tree(info.manifest.plugins['chef']['assets'], os.path.join(info.root, 'etc/chef'))
  