@@ -1894,6 +1894,7 @@ def acceptance():
1894
1894
environment['S3_TYPE'] = 'ceph'
1895
1895
if (params['scalityS3'] != False):
1896
1896
environment['S3_TYPE'] = 'scality'
1897
+ federationDbSuffix = '-federated'
1897
1898
1898
1899
result = {
1899
1900
'kind': 'pipeline',
@@ -1906,32 +1907,7 @@ def acceptance():
1906
1907
'steps':
1907
1908
installCore(server, db, params['useBundledApp']) +
1908
1909
installTestrunner(phpVersion, params['useBundledApp']) +
1909
- ([
1910
- {
1911
- 'name': 'install-federation',
1912
- 'image': 'owncloudci/core',
1913
- 'pull': 'always',
1914
- 'settings': {
1915
- 'version': server,
1916
- 'core_path': '/var/www/owncloud/federated'
1917
- }
1918
- },
1919
- {
1920
- 'name': 'configure-federation',
1921
- 'image': 'owncloudci/php:%s' % phpVersion,
1922
- 'pull': 'always',
1923
- 'commands': [
1924
- 'echo "export TEST_SERVER_FED_URL=http://federated" > /var/www/owncloud/saved-settings.sh',
1925
- 'cd /var/www/owncloud/federated',
1926
- 'php occ a:l',
1927
- 'php occ a:e testing',
1928
- 'php occ a:l',
1929
- 'php occ config:system:set trusted_domains 1 --value=federated',
1930
- 'php occ log:manage --level %s' % params['logLevel'],
1931
- 'php occ config:list'
1932
- ]
1933
- }
1934
- ] + owncloudLog('federated') if params['federatedServerNeeded'] else []) +
1910
+ (installFederated(server, phpVersion, params['logLevel'], db, federationDbSuffix) + owncloudLog('federated') if params['federatedServerNeeded'] else []) +
1935
1911
installApp(phpVersion) +
1936
1912
installExtraApps(phpVersion, params['extraApps']) +
1937
1913
setupServerAndApp(phpVersion, params['logLevel']) +
@@ -1962,7 +1938,10 @@ def acceptance():
1962
1938
scalityService(params['scalityS3']) +
1963
1939
params['extraServices'] +
1964
1940
owncloudService(server, phpVersion, 'server', '/var/www/owncloud/server', False) +
1965
- (owncloudService(server, phpVersion, 'federated', '/var/www/owncloud/federated', False) if params['federatedServerNeeded'] else []),
1941
+ ((
1942
+ owncloudService(server, phpVersion, 'federated', '/var/www/owncloud/federated', False) +
1943
+ databaseServiceForFederation(db, federationDbSuffix)
1944
+ ) if params['federatedServerNeeded'] else [] ),
1966
1945
'depends_on': [],
1967
1946
'trigger': {}
1968
1947
}
@@ -2502,3 +2481,68 @@ def ldapIntegration():
2502
2481
return False
2503
2482
2504
2483
return pipelines
2484
+
2485
+ def installFederated(federatedServerVersion, phpVersion, logLevel, db, dbSuffix = '-federated'):
2486
+ host = getDbName(db)
2487
+ dbType = host
2488
+
2489
+ username = getDbUsername(db)
2490
+ password = getDbPassword(db)
2491
+ database = getDbDatabase(db) + dbSuffix
2492
+
2493
+ if host == 'mariadb':
2494
+ dbType = 'mysql'
2495
+ elif host == 'postgres':
2496
+ dbType = 'pgsql'
2497
+ elif host == 'oracle':
2498
+ dbType = 'oci'
2499
+ return [
2500
+ {
2501
+ 'name': 'install-federated',
2502
+ 'image': 'owncloudci/core',
2503
+ 'pull': 'always',
2504
+ 'settings': {
2505
+ 'version': federatedServerVersion,
2506
+ 'core_path': '/var/www/owncloud/federated',
2507
+ 'db_type': 'mysql',
2508
+ 'db_name': database,
2509
+ 'db_host': host + dbSuffix,
2510
+ 'db_username': username,
2511
+ 'db_password': password
2512
+ },
2513
+ },
2514
+ {
2515
+ 'name': 'configure-federation',
2516
+ 'image': 'owncloudci/php:%s' % phpVersion,
2517
+ 'pull': 'always',
2518
+ 'commands': [
2519
+ 'echo "export TEST_SERVER_FED_URL=http://federated" > /var/www/owncloud/saved-settings.sh',
2520
+ 'cd /var/www/owncloud/federated',
2521
+ 'php occ a:l',
2522
+ 'php occ a:e testing',
2523
+ 'php occ a:l',
2524
+ 'php occ config:system:set trusted_domains 1 --value=federated',
2525
+ 'php occ log:manage --level %s' % logLevel,
2526
+ 'php occ config:list'
2527
+ ]
2528
+ }
2529
+ ]
2530
+
2531
+ def databaseServiceForFederation(db, suffix):
2532
+ dbName = getDbName(db)
2533
+
2534
+ if dbName not in ['mariadb', 'mysql']:
2535
+ print('Not implemented federated database for ', dbName)
2536
+ return []
2537
+
2538
+ return [{
2539
+ 'name': dbName + suffix,
2540
+ 'image': db,
2541
+ 'pull': 'always',
2542
+ 'environment': {
2543
+ 'MYSQL_USER': getDbUsername(db),
2544
+ 'MYSQL_PASSWORD': getDbPassword(db),
2545
+ 'MYSQL_DATABASE': getDbDatabase(db) + suffix,
2546
+ 'MYSQL_ROOT_PASSWORD': getDbRootPassword()
2547
+ }
2548
+ }]
0 commit comments