@log_task('<STR_LIT>')<EOL><INDENT>def initialize(self):<DEDENT>
prefix = self.paths.prefix_path()<EOL>os.environ['<STR_LIT>'] = prefix<EOL>os.environ['<STR_LIT>'] = os.path.dirname(prefix)<EOL>with utils.RollbackContext() as rollback:<EOL><INDENT>with LogTask('<STR_LIT>'):<EOL><INDENT>try:<EOL><INDENT>os.mkdir(prefix)<EOL><DEDENT>except OSError as error:<EOL><INDENT>raise RuntimeError(<EOL>'<STR_LIT>' % (prefix, error)<EOL>)<EOL><DEDENT><DEDENT>rollback.prependDefer(shutil.rmtree, prefix)<EOL>with open(self.paths.uuid(), '<STR_LIT:w>') as f,LogTask('<STR_LIT>'):<EOL><INDENT>f.write(uuid.uuid1().hex)<EOL><DEDENT>with LogTask('<STR_LIT>'):<EOL><INDENT>self._create_ssh_keys()<EOL><DEDENT>with LogTask('<STR_LIT>'):<EOL><INDENT>with open(self.paths.prefix_lagofile(), '<STR_LIT:w>') as fd:<EOL><INDENT>fd.write('<STR_LIT>')<EOL><DEDENT><DEDENT>rollback.clear()<EOL><DEDENT>
Initialize this prefix, this includes creating the destination path,
and creating the uuid for the prefix, for any other actions see
:func:`Prefix.virt_conf`

Will safely roll back if any of those steps fail

Returns:
    None

Raises:
    RuntimeError: If it fails to create the prefix dir