Skip to content

Commit 6ee64a5

Browse files
authored
Merge pull request #202 from graetzer/feature/copy-installation-files
Copy installation files on startup
2 parents 194a96e + 597c7f3 commit 6ee64a5

File tree

4 files changed

+25
-6
lines changed

4 files changed

+25
-6
lines changed

service/arangod_config_builder.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ func createArangodConf(log zerolog.Logger, bsCfg BootstrapConfig, myHostDir, myC
143143

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

149150
args := make([]string, 0, 40)
@@ -165,6 +166,11 @@ func createArangodArgs(log zerolog.Logger, config Config, clusterConfig ClusterC
165166
optionPair{"--log.file", slasher(myContainerLogFile)},
166167
optionPair{"--log.force-direct", "false"},
167168
)
169+
170+
if !config.RunningInDocker && features.HasCopyInstallationFiles() {
171+
options = append(options, optionPair{"--javascript.copy-installation", "true"})
172+
}
173+
168174
if databaseAutoUpgrade {
169175
options = append(options,
170176
optionPair{"--database.auto-upgrade", "true"})

service/database_features.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ import driver "github.com/arangodb/go-driver"
2929
type DatabaseFeatures driver.Version
3030

3131
const (
32-
v32 driver.Version = "3.2.0"
33-
v34 driver.Version = "3.4.0"
32+
v32 driver.Version = "3.2.0"
33+
v33_17 driver.Version = "3.3.17"
34+
v34 driver.Version = "3.4.0"
3435
)
3536

3637
// NewDatabaseFeatures returns a new DatabaseFeatures based on
@@ -52,3 +53,14 @@ func (v DatabaseFeatures) DefaultStorageEngine() string {
5253
}
5354
return "mmfiles"
5455
}
56+
57+
// HasCopyInstallationFiles does server support copying installation files
58+
func (v DatabaseFeatures) HasCopyInstallationFiles() bool {
59+
if driver.Version(v).CompareTo(v34) >= 0 {
60+
return true
61+
}
62+
if driver.Version(v).CompareTo(v33_17) >= 0 {
63+
return true
64+
}
65+
return false
66+
}

service/runtime_server_manager.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,8 @@ func startServer(ctx context.Context, log zerolog.Logger, runtimeContext runtime
167167
clusterConfig, myPeer, _ := runtimeContext.ClusterConfig()
168168
upgradeManager := runtimeContext.UpgradeManager()
169169
databaseAutoUpgrade := upgradeManager.ServerDatabaseAutoUpgrade(serverType)
170-
args, err := createServerArgs(log, config, clusterConfig, myContainerDir, myContainerLogFile, myPeer.ID, myHostAddress, strconv.Itoa(myPort), serverType, arangodConfig, containerSecretFileName, bsCfg.RecoveryAgentID, databaseAutoUpgrade)
170+
args, err := createServerArgs(log, config, clusterConfig, myContainerDir, myContainerLogFile, myPeer.ID, myHostAddress, strconv.Itoa(myPort), serverType, arangodConfig,
171+
containerSecretFileName, bsCfg.RecoveryAgentID, databaseAutoUpgrade, features)
171172
if err != nil {
172173
return nil, false, maskAny(err)
173174
}

service/server_config_builder.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,10 @@ func collectServerConfigVolumes(serverType ServerType, config configFile) []Volu
7575
// createServerArgs returns the command line arguments needed to run an arangod/arangosync server of given type.
7676
func createServerArgs(log zerolog.Logger, config Config, clusterConfig ClusterConfig, myContainerDir, myContainerLogFile string,
7777
myPeerID, myAddress, myPort string, serverType ServerType, arangodConfig configFile,
78-
clusterJWTSecretFile, agentRecoveryID string, databaseAutoUpgrade bool) ([]string, error) {
78+
clusterJWTSecretFile, agentRecoveryID string, databaseAutoUpgrade bool, features DatabaseFeatures) ([]string, error) {
7979
switch serverType.ProcessType() {
8080
case ProcessTypeArangod:
81-
return createArangodArgs(log, config, clusterConfig, myContainerDir, myContainerLogFile, myPeerID, myAddress, myPort, serverType, arangodConfig, agentRecoveryID, databaseAutoUpgrade), nil
81+
return createArangodArgs(log, config, clusterConfig, myContainerDir, myContainerLogFile, myPeerID, myAddress, myPort, serverType, arangodConfig, agentRecoveryID, databaseAutoUpgrade, features), nil
8282
case ProcessTypeArangoSync:
8383
return createArangoSyncArgs(log, config, clusterConfig, myContainerDir, myContainerLogFile, myPeerID, myAddress, myPort, serverType, clusterJWTSecretFile)
8484
default:

0 commit comments

Comments
 (0)