initial code repo
[stor4nfv.git] / src / ceph / src / ceph-volume / ceph_volume / devices / lvm / common.py
diff --git a/src/ceph/src/ceph-volume/ceph_volume/devices/lvm/common.py b/src/ceph/src/ceph-volume/ceph_volume/devices/lvm/common.py
new file mode 100644 (file)
index 0000000..b2fbbf9
--- /dev/null
@@ -0,0 +1,67 @@
+from ceph_volume.util import arg_validators
+import argparse
+
+
+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
+
+
+create_parser = common_parser  # noqa
+prepare_parser = common_parser  # noqa