':type script: ``str``
:keyword script: Contents of the script to run.
:type args: ``list``
:keyword args: Optional command line arguments which get passed to the
deployment script file.
:type name: ``str``
:keyword name: Name of the script to upload it as, if not specified,
a random name will be chosen.
:type delete: ``bool``
:keyword delete: Whether to delete the script on completion.'

def __init__(self, script, args=None, name=None, delete=False):

    script = self._get_string_value(argument_name='script', argument_value=script)
    self.script = script
    self.args = (args or [])
    self.stdout = None
    self.stderr = None
    self.exit_status = None
    self.delete = delete
    self.name = name
    if (self.name is None):
        random_string = binascii.hexlify(os.urandom(4))
        random_string = random_string.decode('ascii')
        self.name = ('libcloud_deployment_%s.sh' % random_string)
