<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def update_firmware(filename,
                    host=None,
                    admin_username=None,
                    admin_password=None):
    '''
    Updates firmware using local firmware file

    .. code-block:: bash

         salt dell dracr.update_firmware firmware.exe

    This executes the following command on your FX2
    (using username and password stored in the pillar data)

    .. code-block:: bash

         racadm update –f firmware.exe -u user –p pass

    '''
    if os.path.exists(filename):
        return _update_firmware('update -f {0}'.format(filename),
                                host=None,
                                admin_username=None,
                                admin_password=None)
    else:
        raise CommandExecutionError('Unable to find firmware file {0}'
                                    .format(filename))