Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add base_port_offset parameter to local_ydb #2323

Merged
merged 1 commit into from
Feb 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading