# Copyright (C) 2018  AT&T Intellectual Property.  All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

dependencies:
  - name: common
    version: ~6.x-0
    repository: 'file://../common'
  - name: mariadb-galera
    version: ~6.x-0
    repository: 'file://../mariadb-galera'
    condition: global.mariadbGalera.localCluster
  - name: mariadb-init
    version: ~6.x-0
    repository: 'file://../mariadb-init'
    condition: not global.mariadbGalera.localCluster
