# 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: ~7.x-0
    repository: 'file://../common'
  - name: repositoryGenerator
    version: ~7.x-0
    repository: 'file://../repositoryGenerator'
  - name: mariadb-galera
    version: ~7.x-0
    repository: 'file://../mariadb-galera'
    condition: global.mariadbGalera.localCluster
  - name: mariadb-init
    version: ~7.x-0
    repository: 'file://../mariadb-init'
    condition: not global.mariadbGalera.localCluster
