Skip to content

Commit 619dab2

Browse files
authored
Merge pull request #494 from owncloud/fed-db-fix
Drone: run Federation server on db other than sqlite
2 parents 73a99c3 + 6741465 commit 619dab2

File tree

2 files changed

+251
-39
lines changed

2 files changed

+251
-39
lines changed

.drone.starlark

Lines changed: 71 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1894,6 +1894,7 @@ def acceptance():
18941894
environment['S3_TYPE'] = 'ceph'
18951895
if (params['scalityS3'] != False):
18961896
environment['S3_TYPE'] = 'scality'
1897+
federationDbSuffix = '-federated'
18971898

18981899
result = {
18991900
'kind': 'pipeline',
@@ -1906,32 +1907,7 @@ def acceptance():
19061907
'steps':
19071908
installCore(server, db, params['useBundledApp']) +
19081909
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 []) +
19351911
installApp(phpVersion) +
19361912
installExtraApps(phpVersion, params['extraApps']) +
19371913
setupServerAndApp(phpVersion, params['logLevel']) +
@@ -1962,7 +1938,10 @@ def acceptance():
19621938
scalityService(params['scalityS3']) +
19631939
params['extraServices'] +
19641940
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 [] ),
19661945
'depends_on': [],
19671946
'trigger': {}
19681947
}
@@ -2502,3 +2481,68 @@ def ldapIntegration():
25022481
return False
25032482

25042483
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

Comments
 (0)