@@ -205,13 +205,15 @@ def decorator(self, opts):
205205 if version_check :
206206 check_versions (self .rest )
207207 if enterprise_check is not None :
208- enterprise , errors = self .rest .is_enterprise ()
208+ # check columnar when we check enterprise to avoid a duplicate fetch on pools
209+ enterprise , columnar , errors = self .rest .is_enterprise_columnar ()
209210 _exit_if_errors (errors )
210211
211212 if enterprise_check and not enterprise :
212213 _exit_if_errors (['Command only available in enterprise edition' ])
213214
214215 self .enterprise = enterprise
216+ self .columnar = columnar
215217
216218 return fn (self , opts )
217219 return decorator
@@ -313,7 +315,7 @@ def index_storage_mode_to_param(value, default="plasma"):
313315 return value
314316
315317
316- def process_services (services , enterprise , cluster_version = "0.0.0" ):
318+ def process_services (services , enterprise , columnar , cluster_version = "0.0.0" ):
317319 """Converts services to a format Couchbase understands"""
318320 sep = ","
319321 if services .find (sep ) < 0 :
@@ -333,7 +335,7 @@ def process_services(services, enterprise, cluster_version="0.0.0"):
333335 return None , ["Invalid service configuration. A manager only node cannot run any other services." ]
334336
335337 versionCheck = compare_versions (cluster_version , "7.6.0" )
336- if manager_only in svc_set and versionCheck == - 1 :
338+ if manager_only in svc_set and not columnar and versionCheck == - 1 :
337339 return None , ["The manager only service can only be used with >= 7.6.0 clusters" ]
338340
339341 if not enterprise :
@@ -905,7 +907,7 @@ def execute(self, opts):
905907 if "manager-only" in opts .services :
906908 _exit_if_errors (["Cannot initialize cluster with the manager only service" ])
907909
908- services , errors = process_services (opts .services , self .enterprise )
910+ services , errors = process_services (opts .services , self .enterprise , self . columnar )
909911 _exit_if_errors (errors )
910912
911913 if 'kv' not in services .split (',' ):
@@ -932,7 +934,7 @@ def execute(self, opts):
932934 _exit_if_errors (errors )
933935
934936 versionCheck = compare_versions (min_version , "7.2.3" )
935- if versionCheck == - 1 :
937+ if not self . columnar and versionCheck == - 1 :
936938 _exit_if_errors (["--cluster-init can only be used against >= 7.2.3 clusters" ])
937939
938940 if not self .enterprise and opts .notifications == "0" :
@@ -2437,7 +2439,7 @@ def execute(self, opts):
24372439 min_version , error = self .rest .min_version ()
24382440 _exit_if_errors (error )
24392441
2440- opts .services , errors = process_services (opts .services , self .enterprise , min_version )
2442+ opts .services , errors = process_services (opts .services , self .enterprise , self . columnar , min_version )
24412443 _exit_if_errors (errors )
24422444
24432445 settings , errors = self .rest .index_settings ()
@@ -3929,7 +3931,7 @@ def execute(self, opts):
39293931 _exit_if_errors (errors )
39303932
39313933 versionCheck = compare_versions (min_version , "7.2.3" )
3932- if not self .enterprise and versionCheck != - 1 :
3934+ if not self .enterprise and not self . columnar and versionCheck != - 1 :
39333935 _exit_if_errors (["Modifying notifications settings is an Enterprise Edition only feature" ])
39343936
39353937 enabled = None
0 commit comments