|
39 | 39 |
|
40 | 40 | # Standard libraries |
41 | 41 | import argparse |
| 42 | +import ast |
42 | 43 | import json |
43 | 44 | import os |
44 | 45 | import re |
@@ -772,7 +773,6 @@ def __init__(self): |
772 | 773 | getattr(self, args.command)() |
773 | 774 |
|
774 | 775 | def config_host(self): |
775 | | - import ast |
776 | 776 | parser = argparse.ArgumentParser( |
777 | 777 | description='Discovers/connects device(s), and creates config file for DSS API layer') |
778 | 778 | parser.add_argument( |
@@ -906,6 +906,31 @@ def verify_nkv_cli(self): |
906 | 906 | parser.add_argument("-n", "--numobj", type=str, help="Number of objects for each thread (default=1000)", default="1000") |
907 | 907 | parser.add_argument("-x", "--kvpair", type=str, default=None, nargs="+", help="one or more key=value pairs for nkv_config.json \ |
908 | 908 | file update. For e.g., nkv_need_path_stat=1 nkv_max_key_length=1024 and so on.") |
| 909 | + parser.add_argument("-p", "--ports", type=int, nargs='+', required=False, help="Port numbers to be used for nvme discover.") |
| 910 | + parser.add_argument("-addrs", "--addrs", type=str, nargs='+', help="Space-delimited list of ip for nvme discovery (required)") |
| 911 | + parser.add_argument("-proto", "--proto", type=str, help="Protocol for nvme discovery (default: rdma)", default="rdma") |
| 912 | + parser.add_argument( |
| 913 | + "-g2", |
| 914 | + "--gen2", |
| 915 | + action='store_true', |
| 916 | + required=False, |
| 917 | + help="Specifies if Gen2 version of target should be configured" |
| 918 | + ) |
| 919 | + parser.add_argument( |
| 920 | + "-rdd_port", |
| 921 | + "--rdd_port", |
| 922 | + type=str, |
| 923 | + default="1234", |
| 924 | + help="Port to be used for all RDD configurations" |
| 925 | + ) |
| 926 | + parser.add_argument( |
| 927 | + "-vlan_ip_map", |
| 928 | + "--vlan_ip_map", |
| 929 | + type=ast.literal_eval, |
| 930 | + nargs="+", |
| 931 | + required=False, |
| 932 | + help="Mapping between front and back end ips" |
| 933 | + ) |
909 | 934 |
|
910 | 935 | args = parser.parse_args(sys.argv[2:]) |
911 | 936 |
|
@@ -933,11 +958,35 @@ def verify_nkv_cli(self): |
933 | 958 | print("provide workload type") |
934 | 959 | return |
935 | 960 |
|
| 961 | + global gen2_flag, vlan_ip_map, rdd_port |
| 962 | + if args.gen2: |
| 963 | + gen2_flag = args.gen2 |
| 964 | + print("Configuring NKV Config to gen2..") |
| 965 | + if args.vlan_ip_map: |
| 966 | + vlan_ip_map = args.vlan_ip_map |
| 967 | + if args.rdd_port: |
| 968 | + rdd_port = args.rdd_port |
| 969 | + else: |
| 970 | + gen2_flag = None |
| 971 | + |
| 972 | + if args.addrs is not None and args.ports is not None: |
| 973 | + disc_addrs = [] |
| 974 | + for port in args.ports: |
| 975 | + disc_addrs = ( |
| 976 | + ["{}:{}".format(addr, port) for addr in args.addrs] |
| 977 | + ) |
| 978 | + else: |
| 979 | + print("Must specify --addrs AND --ports or --hosts AND --vlan-ids AND --ports") |
| 980 | + sys.exit(-1) |
| 981 | + |
| 982 | + if args.proto: |
| 983 | + disc_proto = args.proto |
| 984 | + |
936 | 985 | nkv_kv_pair = args.kvpair |
937 | 986 |
|
938 | 987 | cmd = 'nvme list-subsys | grep ' + addr_octet + ' | awk \'{ print "/dev/" $2 "n1" }\' | paste -sd,' |
939 | 988 | drive_list = get_drives_list(cmd) |
940 | | - create_config_file(self.disc_proto, self.disc_addrs, nkv_kv_pair, drive_list, nkv_conf_file) |
| 989 | + create_config_file(disc_proto, disc_addrs, nkv_kv_pair, drive_list, nkv_conf_file) |
941 | 990 |
|
942 | 991 | meta_str = socket.gethostname() + "/numa" + numa |
943 | 992 |
|
|
0 commit comments