~curtin-dev/curtin/trunk

« back to all changes in this revision

Viewing changes to curtin/commands/clear_holders.py

  • Committer: Scott Moser
  • Date: 2017-12-20 17:33:03 UTC
  • Revision ID: smoser@ubuntu.com-20171220173303-29gha5qb8wpqrd40
README: Mention move of revision control to git.

curtin development has moved its revision control to git.
It is available at
  https://code.launchpad.net/curtin

Clone with
  git clone https://git.launchpad.net/curtin
or
  git clone git+ssh://git.launchpad.net/curtin

For more information see
  http://curtin.readthedocs.io/en/latest/topics/development.html

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#   Copyright (C) 2016 Canonical Ltd.
2
 
#
3
 
#   Author: Wesley Wiedenmeier <wesley.wiedenmeier@canonical.com>
4
 
#
5
 
#   Curtin is free software: you can redistribute it and/or modify it under
6
 
#   the terms of the GNU Affero General Public License as published by the
7
 
#   Free Software Foundation, either version 3 of the License, or (at your
8
 
#   option) any later version.
9
 
#
10
 
#   Curtin is distributed in the hope that it will be useful, but WITHOUT ANY
11
 
#   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12
 
#   FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for
13
 
#   more details.
14
 
#
15
 
#   You should have received a copy of the GNU Affero General Public License
16
 
#   along with Curtin.  If not, see <http://www.gnu.org/licenses/>.
17
 
 
18
 
from curtin import block
19
 
from . import populate_one_subcmd
20
 
 
21
 
 
22
 
def clear_holders_main(args):
23
 
    """
24
 
    wrapper for clear_holders accepting cli args
25
 
    """
26
 
    if (not all(block.is_block_device(device) for device in args.devices) or
27
 
            len(args.devices) == 0):
28
 
        raise ValueError('invalid devices specified')
29
 
    block.clear_holders.start_clear_holders_deps()
30
 
    block.clear_holders.clear_holders(args.devices, try_preserve=args.preserve)
31
 
    if args.preserve:
32
 
        print('ran clear_holders attempting to preserve data. however, '
33
 
              'hotplug support for some devices may cause holders to restart ')
34
 
    block.clear_holders.assert_clear(args.devices)
35
 
 
36
 
 
37
 
CMD_ARGUMENTS = (
38
 
    (('devices',
39
 
      {'help': 'devices to free', 'default': [], 'nargs': '+'}),
40
 
     (('-p', '--preserve'),
41
 
      {'help': 'try to shut down holders without erasing anything',
42
 
       'default': False, 'action': 'store_true'}),
43
 
     )
44
 
)
45
 
 
46
 
 
47
 
def POPULATE_SUBCMD(parser):
48
 
    populate_one_subcmd(parser, CMD_ARGUMENTS, clear_holders_main)