def destroy(name, call=None):
    ''' Destroy a node.

    .. versionadded:: 2018.3.0

    Disconnect a minion from the master, and remove its keys.

    Optionally, (if ``remove_config_on_destroy`` is ``True``),
      disables salt-minion from running on the minion, and
      erases the Salt configuration files from it.

    Optionally, (if ``shutdown_on_destroy`` is ``True``),
      orders the minion to halt.

    CLI Example:

    .. code-block:: bash

        salt-cloud --destroy mymachine

    '''
    if call == 'function':
        raise SaltCloudSystemExit(
            'The destroy action must be called with -d, --destroy, '
            '-a, or --action.'
        )

    opts = __opts__

    __utils__['cloud.fire_event'](
        'event',
        'destroying instance',
        'salt/cloud/{0}/destroying'.format(name),
        args={'name': name},
        sock_dir=opts['sock_dir'],
        transport=opts['transport']
    )

    vm_ = get_configured_provider()
    local = salt.client.LocalClient()
    my_info = local.cmd(name, 'grains.get', ['salt-cloud'])
    try:
        vm_.update(my_info[name])  # get profile name to get config value
    except (IndexError, TypeError):
        pass
    if config.get_cloud_config_value(
           'remove_config_on_destroy', vm_, opts, default=True
            ):
        ret = local.cmd(name,  # prevent generating new keys on restart
                        'service.disable',
                        ['salt-minion'])
        if ret and ret[name]:
            log.info('disabled salt-minion service on %s', name)
        ret = local.cmd(name, 'config.get', ['conf_file'])
        if ret and ret[name]:
            confile = ret[name]
            ret = local.cmd(name, 'file.remove', [confile])
            if ret and ret[name]:
                log.info('removed minion %s configuration file %s',
                         name, confile)
        ret = local.cmd(name, 'config.get', ['pki_dir'])
        if ret and ret[name]:
            pki_dir = ret[name]
            ret = local.cmd(name, 'file.remove', [pki_dir])
            if ret and ret[name]:
                log.info(
                    'removed minion %s key files in %s',
                    name,
                    pki_dir)

    if config.get_cloud_config_value(
        'shutdown_on_destroy', vm_, opts, default=False
        ):
        ret = local.cmd(name, 'system.shutdown')
        if ret and ret[name]:
            log.info('system.shutdown for minion %s successful', name)

    __utils__['cloud.fire_event'](
        'event',
        'destroyed instance',
        'salt/cloud/{0}/destroyed'.format(name),
        args={'name': name},
        sock_dir=opts['sock_dir'],
        transport=opts['transport']
    )

    return {'Destroyed': '{0} was destroyed.'.format(name)}
def destroy ( name , call = None ) : if call == 'function' : raise SaltCloudSystemExit ( 'The destroy action must be called with -d, --destroy, ' '-a, or --action.' ) opts = __opts__ __utils__ [ 'cloud.fire_event' ] ( 'event' , 'destroying instance' , 'salt/cloud/{0}/destroying' . format ( name ) , args = { 'name' : name } , sock_dir = opts [ 'sock_dir' ] , transport = opts [ 'transport' ] ) vm_ = get_configured_provider ( ) local = salt . client . LocalClient ( ) my_info = local . cmd ( name , 'grains.get' , [ 'salt-cloud' ] ) try : vm_ . update ( my_info [ name ] ) except ( IndexError , TypeError ) : pass if config . get_cloud_config_value ( 'remove_config_on_destroy' , vm_ , opts , default = True ) : ret = local . cmd ( name , 'service.disable' , [ 'salt-minion' ] ) if ret and ret [ name ] : log . info ( 'disabled salt-minion service on %s' , name ) ret = local . cmd ( name , 'config.get' , [ 'conf_file' ] ) if ret and ret [ name ] : confile = ret [ name ] ret = local . cmd ( name , 'file.remove' , [ confile ] ) if ret and ret [ name ] : log . info ( 'removed minion %s configuration file %s' , name , confile ) ret = local . cmd ( name , 'config.get' , [ 'pki_dir' ] ) if ret and ret [ name ] : pki_dir = ret [ name ] ret = local . cmd ( name , 'file.remove' , [ pki_dir ] ) if ret and ret [ name ] : log . info ( 'removed minion %s key files in %s' , name , pki_dir ) if config . get_cloud_config_value ( 'shutdown_on_destroy' , vm_ , opts , default = False ) : ret = local . cmd ( name , 'system.shutdown' ) if ret and ret [ name ] : log . info ( 'system.shutdown for minion %s successful' , name ) __utils__ [ 'cloud.fire_event' ] ( 'event' , 'destroyed instance' , 'salt/cloud/{0}/destroyed' . format ( name ) , args = { 'name' : name } , sock_dir = opts [ 'sock_dir' ] , transport = opts [ 'transport' ] ) return { 'Destroyed' : '{0} was destroyed.' . format ( name ) }
Destroy a node.

    .. versionadded:: 2018.3.0

    Disconnect a minion from the master, and remove its keys.

    Optionally, (if ``remove_config_on_destroy`` is ``True``),
      disables salt-minion from running on the minion, and
      erases the Salt configuration files from it.

    Optionally, (if ``shutdown_on_destroy`` is ``True``),
      orders the minion to halt.

    CLI Example:

    .. code-block:: bash

        salt-cloud --destroy mymachine