Skip to content
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
8 changes: 7 additions & 1 deletion service/arangod_config_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,8 @@ func createArangodConf(log zerolog.Logger, bsCfg BootstrapConfig, myHostDir, myC

// createArangodArgs returns the command line arguments needed to run an arangod server of given type.
func createArangodArgs(log zerolog.Logger, config Config, clusterConfig ClusterConfig, myContainerDir, myContainerLogFile string,
myPeerID, myAddress, myPort string, serverType ServerType, arangodConfig configFile, agentRecoveryID string, databaseAutoUpgrade bool) []string {
myPeerID, myAddress, myPort string, serverType ServerType, arangodConfig configFile, agentRecoveryID string, databaseAutoUpgrade bool,
features DatabaseFeatures) []string {
containerConfFileName := filepath.Join(myContainerDir, arangodConfFileName)

args := make([]string, 0, 40)
Expand All @@ -165,6 +166,11 @@ func createArangodArgs(log zerolog.Logger, config Config, clusterConfig ClusterC
optionPair{"--log.file", slasher(myContainerLogFile)},
optionPair{"--log.force-direct", "false"},
)

if !config.RunningInDocker && features.HasCopyInstallationFiles() {
options = append(options, optionPair{"--javascript.copy-installation", "true"})
}

if databaseAutoUpgrade {
options = append(options,
optionPair{"--database.auto-upgrade", "true"})
Expand Down
16 changes: 14 additions & 2 deletions service/database_features.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ import driver "github.com/arangodb/go-driver"
type DatabaseFeatures driver.Version

const (
v32 driver.Version = "3.2.0"
v34 driver.Version = "3.4.0"
v32 driver.Version = "3.2.0"
v33_17 driver.Version = "3.3.17"
v34 driver.Version = "3.4.0"
)

// NewDatabaseFeatures returns a new DatabaseFeatures based on
Expand All @@ -52,3 +53,14 @@ func (v DatabaseFeatures) DefaultStorageEngine() string {
}
return "mmfiles"
}

// HasCopyInstallationFiles does server support copying installation files
func (v DatabaseFeatures) HasCopyInstallationFiles() bool {
if driver.Version(v).CompareTo(v34) >= 0 {
return true
}
if driver.Version(v).CompareTo(v33_17) >= 0 {
return true
}
return false
}
3 changes: 2 additions & 1 deletion service/runtime_server_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,8 @@ func startServer(ctx context.Context, log zerolog.Logger, runtimeContext runtime
clusterConfig, myPeer, _ := runtimeContext.ClusterConfig()
upgradeManager := runtimeContext.UpgradeManager()
databaseAutoUpgrade := upgradeManager.ServerDatabaseAutoUpgrade(serverType)
args, err := createServerArgs(log, config, clusterConfig, myContainerDir, myContainerLogFile, myPeer.ID, myHostAddress, strconv.Itoa(myPort), serverType, arangodConfig, containerSecretFileName, bsCfg.RecoveryAgentID, databaseAutoUpgrade)
args, err := createServerArgs(log, config, clusterConfig, myContainerDir, myContainerLogFile, myPeer.ID, myHostAddress, strconv.Itoa(myPort), serverType, arangodConfig,
containerSecretFileName, bsCfg.RecoveryAgentID, databaseAutoUpgrade, features)
if err != nil {
return nil, false, maskAny(err)
}
Expand Down
4 changes: 2 additions & 2 deletions service/server_config_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,10 @@ func collectServerConfigVolumes(serverType ServerType, config configFile) []Volu
// createServerArgs returns the command line arguments needed to run an arangod/arangosync server of given type.
func createServerArgs(log zerolog.Logger, config Config, clusterConfig ClusterConfig, myContainerDir, myContainerLogFile string,
myPeerID, myAddress, myPort string, serverType ServerType, arangodConfig configFile,
clusterJWTSecretFile, agentRecoveryID string, databaseAutoUpgrade bool) ([]string, error) {
clusterJWTSecretFile, agentRecoveryID string, databaseAutoUpgrade bool, features DatabaseFeatures) ([]string, error) {
switch serverType.ProcessType() {
case ProcessTypeArangod:
return createArangodArgs(log, config, clusterConfig, myContainerDir, myContainerLogFile, myPeerID, myAddress, myPort, serverType, arangodConfig, agentRecoveryID, databaseAutoUpgrade), nil
return createArangodArgs(log, config, clusterConfig, myContainerDir, myContainerLogFile, myPeerID, myAddress, myPort, serverType, arangodConfig, agentRecoveryID, databaseAutoUpgrade, features), nil
case ProcessTypeArangoSync:
return createArangoSyncArgs(log, config, clusterConfig, myContainerDir, myContainerLogFile, myPeerID, myAddress, myPort, serverType, clusterJWTSecretFile)
default:
Expand Down