#
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.
#

---
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/accord"
#- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/brandeis"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/gatech"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/georgiastate"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/iugateway"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/lsu"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/nanoconfinement"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/nanoshape"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/newmexicostate"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/nsg"
#- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/oiitandy"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/oscer"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/phasta"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/scigap"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/seagrid"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/simvascular"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/southdakota"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/southernillinois"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/testdrive"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/uab"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/ultrascan"
#- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/utah"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/wvsu"
#- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/iugeosurvey"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/csbglsu"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/NCSAIndustry"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/Kentucky"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/searchingSRA"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/r-hpc"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/rutgersgemr"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/nexttdb"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/interactwel"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/hubzero"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/epwgateway"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/ampgateway"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/hubzero"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/ddstudio"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/sdstate"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/saverx"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/mines"
- include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/distantreader"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/pfec-hydro"
# - include: pga-single-vhost.yml vars_dir="{{ inventory_dir }}/pga_config/snowvision"
...
