<!--
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.
-->
<deploy>

<!-- SETUP YOUR ZONES, PODS, VLANS HERE -->

<!-- Zone configuration (I do delete default pod and zone)-->
	<command>
		<name>deletePod</name>
		<parameters>
			<item>
				<name>id</name>
				<value>1</value>
			</item>
		</parameters>
	</command>

	<command>
		<name>deleteZone</name>
		<parameters>
			<item>
				<name>id</name>
				<value>1</value>
			</item>
		</parameters>
	</command>

	<command>
		<name>createZone</name>
		<parameters>
			<item>
				<name>name</name>
				<value>ZONE1</value>
			</item>
			<item>
				<name>dns1</name>
				<value>192.168.10.253</value>
			</item>
			<item>
				<name>dns2</name>
				<value>192.168.10.254</value>
			</item>
			<item>
				<name>internaldns1</name>
				<value>192.168.10.253</value>
			</item>
			<item>
				<name>vlan</name>
				<value>400-499</value>
			</item>
			<item>
                	<name>guestcidraddress</name>
                    <value>10.1.1.0/24</value>
            </item>
		</parameters>
	</command>

	<command>
		<name>createVlanIpRange</name>
		<parameters>
			<item>
				<name>name</name>
				<value>Public</value>
			</item>
			<item>
				<name>zoneid</name>
				<value>2</value>
			</item>
			<item>
				<name>vlan</name>
				<value>19</value>
			</item>
			<item>
				<name>gateway</name>
				<value>172.19.0.1</value>
			</item>
			<item>
				<name>netmask</name>
				<value>255.255.0.0</value>
			</item>
			<item>
				<name>startip</name>
				<value>172.19.0.100</value>
			</item>
			<item>
				<name>endip</name>
				<value>172.19.0.254</value>
			</item>
		</parameters>
	</command>

	<command>
		<name>createPod</name>
		<parameters>
			<item>
				<name>name</name>
				<value>POD1</value>
			</item>
			<item>
				<name>zoneid</name>
				<value>2</value>
			</item>
			<item>
				<name>cidr</name>
				<value>192.168.161.0/24</value>
			</item>
			<item>
				<name>startip</name>
				<value>192.168.161.100</value>
			</item>
			<item>
				<name>endip</name>
				<value>192.168.161.200</value>
			</item>
			<item>
				<name>gateway</name>
				<value>192.168.161.1</value>
			</item>
		</parameters>
	</command>


<!-- SETUP YOUR CONFIGURATION VALUES HERE -->

<!--  Network setup - vmName, guest network config -->
	<command>
		<name>updateConfiguration</name>
		<parameters>
			<item>
				<name>name</name>
				<value>instance.name</value>
			</item>
			<item>
				<name>value</name>
				<value>sanity</value>
			</item>
		</parameters>
	</command>

	<command>
		<name>updateConfiguration</name>
		<parameters>
			<item>
				<name>name</name>
				<value>expunge.delay</value>
			</item>
			<item>
				<name>value</name>
				<value>60</value>
			</item>
		</parameters>
	</command>

	<command>
		<name>updateConfiguration</name>
		<parameters>
			<item>
				<name>name</name>
				<value>expunge.interval</value>
			</item>
			<item>
				<name>value</name>
				<value>60</value>
			</item>
		</parameters>
	</command>

</deploy>
