#
#  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.
#

{
    "zones": [
        {
            "name": "DevCloud-Basic-01",
            "enabled": "True",
            "physical_networks": [
                {
                    "broadcastdomainrange": "Zone",
                    "name": "Devcloud-Network-01",
                    "traffictypes": [
                        {
                            "typ": "Guest"
                        },
                        {
                            "typ": "Management"
                        }
                    ],
                    "providers": [
                        {
                            "broadcastdomainrange": "ZONE",
                            "name": "VirtualRouter"
                        },
                        {
                            "broadcastdomainrange": "Pod",
                            "name": "SecurityGroupProvider"
                        }
                    ]
                }
            ],
            "dns2": "8.8.4.4",
            "dns1": "8.8.8.8",
            "securitygroupenabled": "true",
            "localstorageenabled": "true",
            "networktype": "Basic",
            "pods": [
                {
                    "endip": "192.168.22.220",
                    "name": "DevCloud-POD-01",
                    "startip": "192.168.22.200",
                    "guestIpRanges": [
                        {
                            "startip": "192.168.22.100",
                            "endip": "192.168.22.199",
                            "netmask": "255.255.255.0",
                            "gateway": "192.168.22.5"
                        }
                    ],
                    "netmask": "255.255.255.0",
                    "clusters": [
                        {
                            "clustername": "DevCloud-CLUSTER-01",
                            "hypervisor": "XenServer",
                            "hosts": [
                                {
                                    "username": "root",
                                    "url": "http://192.168.22.10/",
                                    "password": "password"
                                }
                            ],
                            "clustertype": "CloudManaged"
                        }
                    ],
                    "gateway": "192.168.22.5"
                }
            ],
            "internaldns1": "8.8.8.8",
            "secondaryStorages": [
                {
                    "url": "nfs://192.168.22.5/exports/secondary",
                    "provider": "NFS"
                }
            ]
        }
    ],
    "logger": {
        "LogFolderPath": "/tmp/"
    },
    "mgtSvr": [
        {
            "mgtSvrIp": "192.168.22.1",
            "port": 8096
        }
    ],
    "dbSvr": {
        "dbSvr": "127.0.0.1",
        "port": 3306,
        "user": "cloud",
        "passwd": "cloud",
        "db": "cloud"
    }
}
