예제 #1
0
def common_parser(prog, description):
    """
    Both prepare and create share the same parser, those are defined here to
    avoid duplication
    """
    parser = argparse.ArgumentParser(
        prog=prog,
        formatter_class=argparse.RawDescriptionHelpFormatter,
        description=description,
    )
    required_args = parser.add_argument_group('required arguments')
    parser.add_argument(
        '--journal',
        help=
        '(filestore) A logical volume (vg_name/lv_name), or path to a device',
    )
    required_args.add_argument(
        '--data',
        required=True,
        type=arg_validators.LVPath(),
        help='OSD data path. A physical device or logical volume',
    )
    parser.add_argument(
        '--journal-size',
        default=5,
        metavar='GB',
        type=int,
        help='(filestore) Size (in GB) for the journal',
    )
    parser.add_argument(
        '--bluestore',
        action='store_true',
        help='Use the bluestore objectstore',
    )
    parser.add_argument(
        '--filestore',
        action='store_true',
        help='Use the filestore objectstore',
    )
    parser.add_argument(
        '--osd-id',
        help='Reuse an existing OSD id',
    )
    parser.add_argument(
        '--osd-fsid',
        help='Reuse an existing OSD fsid',
    )
    parser.add_argument(
        '--block.db',
        dest='block_db',
        help='(bluestore) Path to bluestore block.db logical volume or device',
    )
    parser.add_argument(
        '--block.wal',
        dest='block_wal',
        help='(bluestore) Path to bluestore block.wal logical volume or device',
    )
    # Do not parse args, so that consumers can do something before the args get
    # parsed triggering argparse behavior
    return parser
예제 #2
0
def common_parser(prog, description):
    """
    Both prepare and create share the same parser, those are defined here to
    avoid duplication
    """
    parser = argparse.ArgumentParser(
        prog=prog,
        formatter_class=argparse.RawDescriptionHelpFormatter,
        description=description,
    )

    required_group = parser.add_argument_group('required arguments')
    filestore_group = parser.add_argument_group('filestore')
    bluestore_group = parser.add_argument_group('bluestore')

    required_group.add_argument(
        '--data',
        required=True,
        type=arg_validators.LVPath(),
        help='OSD data path. A physical device or logical volume',
    )

    filestore_group.add_argument(
        '--filestore',
        action='store_true',
        help='Use the filestore objectstore',
    )

    filestore_group.add_argument(
        '--journal',
        help=
        '(REQUIRED) A logical volume (vg_name/lv_name), or path to a device',
    )

    bluestore_group.add_argument(
        '--bluestore',
        action='store_true',
        help='Use the bluestore objectstore',
    )

    bluestore_group.add_argument(
        '--block.db',
        dest='block_db',
        help='Path to bluestore block.db logical volume or device',
    )

    bluestore_group.add_argument(
        '--block.wal',
        dest='block_wal',
        help='Path to bluestore block.wal logical volume or device',
    )

    parser.add_argument(
        '--osd-id',
        help='Reuse an existing OSD id',
    )

    parser.add_argument(
        '--osd-fsid',
        help='Reuse an existing OSD fsid',
    )

    parser.add_argument(
        '--crush-device-class',
        dest='crush_device_class',
        help='Crush device class to assign this OSD to',
    )

    parser.add_argument(
        '--dmcrypt',
        action='store_true',
        help='Enable device encryption via dm-crypt',
    )

    # Do not parse args, so that consumers can do something before the args get
    # parsed triggering argparse behavior
    return parser
예제 #3
0
 def setup(self):
     self.validator = arg_validators.LVPath()