Skip to content

Commit

Permalink
add base_port_offset parameter to local_ydb
Browse files Browse the repository at this point in the history
  • Loading branch information
qrort committed Feb 28, 2024
1 parent d9e9dba commit 0d4f6ff
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 12 deletions.
6 changes: 5 additions & 1 deletion ydb/public/tools/lib/cmds/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ def __init__(self):
self.auth_config_path = None
self.debug_logging = []
self.fixed_ports = False
self.base_port_offset = 0
self.public_http_config_path = None
self.dont_use_log_files = False
self.enabled_feature_flags = []
Expand Down Expand Up @@ -330,7 +331,8 @@ def deploy(arguments):

port_allocator = None
if getattr(arguments, 'fixed_ports', False):
port_allocator = KikimrFixedPortAllocator([KikimrFixedNodePortAllocator()])
base_port_offset = getattr(arguments, 'base_port_offset', 0)
port_allocator = KikimrFixedPortAllocator(base_port_offset, [KikimrFixedNodePortAllocator(base_port_offset=base_port_offset)])

optionals = {}
if enable_tls():
Expand Down Expand Up @@ -511,6 +513,7 @@ def produce_arguments(args):
parser.add_argument("--debug-logging", nargs='*')
parser.add_argument("--enable-pq", action='store_true', default=False)
parser.add_argument("--fixed-ports", action='store_true', default=False)
parser.add_argument("--base-port-offset", action="store", type=int, default=0)
parser.add_argument("--pq-client-service-type", action='append', default=[])
parser.add_argument("--enable-datastreams", action='store_true', default=False)
parser.add_argument("--enable-pqcd", action='store_true', default=False)
Expand All @@ -519,6 +522,7 @@ def produce_arguments(args):
arguments.suppress_version_check = parsed.suppress_version_check
arguments.ydb_working_dir = parsed.ydb_working_dir
arguments.fixed_ports = parsed.fixed_ports
arguments.base_port_offset = parsed.base_port_offset
if parsed.use_packages is not None:
arguments.use_packages = parsed.use_packages
if parsed.debug_logging:
Expand Down
7 changes: 6 additions & 1 deletion ydb/public/tools/local_ydb/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,12 @@
default=False,
action='store_true',
)

sub_parser.add_argument(
'--base-port-offset',
type=int,
default=0,
action='store',
)
sub_parser.add_argument(
'--ydb-binary-path', required=True,
help='Path to binary file'
Expand Down
24 changes: 14 additions & 10 deletions ydb/tests/library/harness/kikimr_port_allocator.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,9 +160,12 @@ def release_ports(self):
#

class KikimrFixedNodePortAllocator(KikimrNodePortAllocatorInterface):
def __init__(self, mon_port=8765, grpc_port=2135, mbus_port=2134, ic_port=19001, sqs_port=8771, grpc_ssl_port=2137,

def __init__(self, base_port_offset, mon_port=8765, grpc_port=2135, mbus_port=2134, ic_port=19001, sqs_port=8771, grpc_ssl_port=2137,
ext_port=2237, public_http_port=8766):
super(KikimrFixedNodePortAllocator, self).__init__()

self.base_port_offset = base_port_offset
if os.getenv('MON_PORT') is not None:
self.__mon_port = int(os.getenv('MON_PORT'))
else:
Expand Down Expand Up @@ -192,44 +195,45 @@ def __init__(self, mon_port=8765, grpc_port=2135, mbus_port=2134, ic_port=19001,

@property
def mon_port(self):
return self.__mon_port
return self.__mon_port + self.base_port_offset

@property
def grpc_ssl_port(self):
return self.__grpc_ssl_port
return self.__grpc_ssl_port + self.base_port_offset

@property
def grpc_port(self):
return self.__grpc_port
return self.__grpc_port + self.base_port_offset

@property
def mbus_port(self):
return self.__mbus_port
return self.__mbus_port + self.base_port_offset

@property
def ic_port(self):
return self.__ic_port
return self.__ic_port + self.base_port_offset

@property
def sqs_port(self):
return self.__sqs_port
return self.__sqs_port + self.base_port_offset

@property
def ext_port(self):
return self.__ext_port
return self.__ext_port + self.base_port_offset

def public_http_port(self):
return self.__public_http_port
return self.__public_http_port + self.base_port_offset


class KikimrFixedPortAllocator(KikimrPortAllocatorInterface):
def __init__(self,
base_port_offset,
nodes_port_allocators_list=(),
slots_port_allocators_list=()):
super(KikimrFixedPortAllocator, self).__init__()
self.__nodes_port_allocators_list = nodes_port_allocators_list
self.__slots_port_allocators_list = slots_port_allocators_list
self.__default_value = KikimrFixedNodePortAllocator()
self.__default_value = KikimrFixedNodePortAllocator(base_port_offset)

def get_node_port_allocator(self, node_index):
if node_index <= len(self.__nodes_port_allocators_list):
Expand Down

0 comments on commit 0d4f6ff

Please sign in to comment.