#
#  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-Advanced-01",
            "guestcidraddress": "10.1.1.0/24",
            "localstorageenabled": true,
            "dns1": "8.8.8.8",
            "physical_networks": [
                {
                    "broadcastdomainrange": "Zone",
                    "vlan": "100-200",
                    "name": "DevCloud-Network-01",
                    "traffictypes": [
                        {
                            "xen": "GUEST",
                            "typ": "Guest"
                        },
                        {
                            "xen": "MGMT",
                            "typ": "Management"
                        },
                        {
                            "xen": "PUBLIC",
                            "typ": "Public"
                        }
                    ],
                    "providers": [
                        {
                            "broadcastdomainrange": "ZONE",
                            "name": "VirtualRouter"
                        },
                        {
                            "broadcastdomainrange": "ZONE",
                            "name": "VpcVirtualRouter"
                        },
                        {
                            "broadcastdomainrange": "ZONE",
                            "name": "InternalLbVm"
                        }
                    ],
                    "isolationmethods": [
                        "VLAN"
                    ]
                }
            ],
            "ipranges": [
                {
                    "startip": "192.168.23.100",
                    "endip": "192.168.23.120",
                    "netmask": "255.255.255.0",
                    "vlan": "untagged",
                    "gateway": "192.168.23.5"
                }
            ],
            "networktype": "Advanced",
            "pods": [
                {
                    "startip": "192.168.22.100",
                    "endip": "192.168.22.120",
                    "name": "DevCloud-POD-01",
                    "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",
                    "details": [ ]
                }
            ]
        }
    ],
    "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"
    }
}
