'Create a new node, and start deployment.
@inherits: :class:`NodeDriver.deploy_node`
:keyword    enable_root: If true, root password will be set to
vnc_password (this will enable SSH access)
and default \'toor\' account will be deleted.
:type       enable_root: ``bool``'

def deploy_node(self, **kwargs):

    image = kwargs['image']
    vnc_password = kwargs.get('vnc_password', None)
    enable_root = kwargs.get('enable_root', False)
    if (not vnc_password):
        raise ValueError('You    need    to    provide    vnc_password    argument    if    you    want    to    use    deployment')
    if ((image in self._standard_drives) and (not self._standard_drives[image]['supports_deployment'])):
        raise ValueError(('Image    %s    does    not    support    deployment' % image.id))
    if enable_root:
        script = ("unset    HISTFILE;echo    root:%s    |    chpasswd;sed    -i    '/^toor.*$/d'    /etc/passwd    /etc/shadow;history    -c" % vnc_password)
        root_enable_script = ScriptDeployment(script=script, delete=True)
        deploy = kwargs.get('deploy', None)
        if deploy:
            if (isinstance(deploy, ScriptDeployment) or isinstance(deploy, SSHKeyDeployment)):
                deployment = MultiStepDeployment([deploy, root_enable_script])
            elif isinstance(deploy, MultiStepDeployment):
                deployment = deploy
                deployment.add(root_enable_script)
        else:
            deployment = root_enable_script
        kwargs['deploy'] = deployment
    if (not kwargs.get('ssh_username', None)):
        kwargs['ssh_username'] = 'toor'
    return super(ElasticStackBaseNodeDriver, self).deploy_node(**kwargs)
