You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ah...@apache.org on 2013/01/09 14:26:48 UTC

[15/50] [abbrv] Merge branch 'api_refactoring' into javelin

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/docs/en-US/upload-template.xml
----------------------------------------------------------------------
diff --cc docs/en-US/upload-template.xml
index 9f0ae01,40b64bb..f270c89
--- a/docs/en-US/upload-template.xml
+++ b/docs/en-US/upload-template.xml
@@@ -5,63 -5,49 +5,63 @@@
  ]>
  
  <!-- 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.
 +	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.
  -->
 -
  <section id="upload-template">
 -    <title>Uploading Templates</title>
 +	<title>Uploading Templates</title>
- 	<note><para>If you are uploading a template that was created using vSphere Client, be sure the OVA file does not contain an ISO. If it does, the deployment of VMs from the template will fail.</para></note>
+     <warning><title>vSphere Templates and ISOs</title><para>If you are uploading a template that was created using vSphere Client, be sure the OVA file does not contain an ISO. If it does, the deployment of VMs from the template will fail.</para></warning>
 -    <para>Templates are uploaded based on a URL. HTTP is the supported access protocol. Templates are frequently large files. You can optionally gzip them to decrease upload times.</para>
 -    <para>To upload a template:</para>
 -    <orderedlist>
 -        <listitem><para>In the left navigation bar, click Templates.</para></listitem>
 -        <listitem><para>Click Create Template.</para></listitem>
 -        <listitem><para>Provide the following:</para>
 -        <itemizedlist>
 -            <listitem><para><emphasis role="bold">Name and Display Text</emphasis>. These will be shown in the UI, so choose something descriptive.</para></listitem>
 -            <listitem><para>URL. The Management Server will download the file from the specified URL, such as http://my.web.server/filename.vhd.gz.</para></listitem>
 -            <listitem><para>Zone. Choose the zone where you want the template to be available, or All Zones to make it available throughout &PRODUCT;.</para></listitem>
 -            <listitem><para>OS Type: This helps &PRODUCT; and the hypervisor perform certain operations and make assumptions that improve the performance of the guest. Select one of the following:</para>
 -        <itemizedlist>
 -            <listitem><para>If the operating system of the stopped VM is listed, choose it.</para></listitem>
 -            <listitem><para>If the OS type of the stopped VM is not listed, choose Other.</para>
 +	<para>Templates are uploaded based on a URL. HTTP is the supported access protocol. Templates are frequently large files. You can optionally gzip them to decrease upload times.</para>
 +	<para>To upload a template:</para>
 +	<orderedlist>
 +		<listitem><para>In the left navigation bar, click Templates.</para></listitem>
 +		<listitem><para>Click Register Template.</para></listitem>
 +		<listitem><para>Provide the following:</para>
 +		<itemizedlist>
 +			<listitem><para><emphasis role="bold">Name and Description</emphasis>. These will be shown in the UI, so
 +						choose something descriptive.</para></listitem>
 +			<listitem><para><emphasis role="bold">URL</emphasis>. The Management Server will download the file from the
 +						specified URL, such as http://my.web.server/filename.vhd.gz.</para></listitem>
 +			<listitem><para><emphasis role="bold">Zone</emphasis>. Choose the zone where you want the template to be
 +						available, or All Zones to make it available throughout
 +						&PRODUCT;.</para></listitem>
 +			<listitem><para><emphasis role="bold">OS Type</emphasis>: This helps &PRODUCT; and the hypervisor perform
 +						certain operations and make assumptions that improve the performance of the
 +						guest. Select one of the following:</para>
 +				<itemizedlist>
 +					<listitem><para>If the operating system of the stopped VM is listed, choose it.</para></listitem>
 +					<listitem><para>If the OS type of the stopped VM is not listed, choose Other.</para>
- 					<note><para>Generally you should not choose an older version of the OS than the version in the image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will in general not work. In those cases you should choose Other.</para></note></listitem>
+             <note><para>You should not choose an older version of the OS than the version in the image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will in general not work. In those cases you should choose Other.</para></note></listitem>
 -        </itemizedlist>
 -        </listitem>
 -        <listitem><para><emphasis role="bold">Hypervisor</emphasis></para></listitem>
 -        <listitem><para><emphasis role="bold">Format</emphasis>. The format of the template upload file, such as VHD or OVA.</para></listitem>
 -        <listitem><para><emphasis role="bold">Password Enabled</emphasis>. Choose Yes if your template has the &PRODUCT; password change script installed. See Adding Password Management to Your Templates</para></listitem>
 -        <listitem><para><emphasis role="bold">Extractable</emphasis>. Choose Yes if the template is available for extraction. If this option is selected, end users can download a full image of a template.</para></listitem>
 -        <listitem><para><emphasis role="bold">Public</emphasis>. Choose Yes to make this template accessible to all users of this &PRODUCT; installation. The template will appear in the Community Templates list. See <xref linkend="private-public-template"/></para></listitem>
 -        <listitem><para><emphasis role="bold">Featured</emphasis>. Choose Yes if you would like this template to be more prominent for users to select. The template will appear in the Featured Templates list. Only an administrator can make a template Featured.</para></listitem>
 -        </itemizedlist></listitem>
 -    </orderedlist>
 +				</itemizedlist>			
 +			</listitem>	
 +			<listitem><para><emphasis role="bold">Hypervisor</emphasis>: The supported hypervisors are listed. Select the desired one.</para></listitem>
 +			<listitem><para><emphasis role="bold">Format</emphasis>. The format of the template upload file, such as VHD
 +						or OVA.</para></listitem>
 +			<listitem><para><emphasis role="bold">Password Enabled</emphasis>. Choose Yes if your template has the
 +						&PRODUCT; password change script installed. See Adding Password
 +						Management to Your Templates</para></listitem>
 +			<listitem><para><emphasis role="bold">Extractable</emphasis>. Choose Yes if the template is available for extraction. If this option is selected, end users can 
 +				 download a full image of a template.</para></listitem>
 +			<listitem><para><emphasis role="bold">Public</emphasis>. Choose Yes to make this template accessible to all
 +						users of this &PRODUCT; installation. The template will appear in the
 +						Community Templates list. See <xref linkend="private-public-template"/>.</para></listitem>
 +			<listitem><para><emphasis role="bold">Featured</emphasis>. Choose Yes if you would like this template to be
 +						more prominent for users to select. The template will appear in the Featured
 +						Templates list. Only an administrator can make a template Featured.</para></listitem>
 +			</itemizedlist></listitem>
 +		
 +	</orderedlist>
  </section>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/docs/en-US/using-multiple-guest-networks.xml
----------------------------------------------------------------------
diff --cc docs/en-US/using-multiple-guest-networks.xml
index 7a8ea48,9076a81..4e7da1e
--- a/docs/en-US/using-multiple-guest-networks.xml
+++ b/docs/en-US/using-multiple-guest-networks.xml
@@@ -5,28 -5,29 +5,28 @@@
  ]>
  
  <!-- 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.
 +    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.
  -->
 -
  <section id="using-multiple-guest-networks">
 -    <title>Using Multiple Guest Networks</title>
 -    <para>In zones that use advanced networking, additional networks for guest traffic may be added at any time after the initial installation. You can also customize the domain name associated with the network by specifying a DNS suffix for each network.</para>
 -    <para>A VM's networks are defined at VM creation time.  A VM cannot add or remove networks after it has been created, although the user can go into the guest and remove the IP address from the NIC on a particular network.</para>
 -    <para>Each VM has just one default network.  The virtual router's DHCP reply will set the guest's default gateway as that for the default network.  Multiple non-default networks may be added to a guest in addition to the single, required default network. The administrator can control which networks are available as the default network.</para>
 +	<title>Using Multiple Guest Networks</title>
 +	<para>In zones that use advanced networking, additional networks for guest traffic may be added at any time after the initial installation. You can also customize the domain name associated with the network by specifying a DNS suffix for each network.</para>
 +	<para>A VM's networks are defined at VM creation time.  A VM cannot add or remove networks after it has been created, although the user can go into the guest and remove the IP address from the NIC on a particular network.</para>
 +	<para>Each VM has just one default network.  The virtual router's DHCP reply will set the guest's default gateway as that for the default network.  Multiple non-default networks may be added to a guest in addition to the single, required default network. The administrator can control which networks are available as the default network.</para>
- 	<para>Additional networks can either be available to all accounts or be assigned to a specific account.  Networks that are available to all accounts are zone-wide.  Any user with access to the zone can create a VM with access to that network.  These zone-wide networks provide little or no isolation between guests. Networks that are assigned to a specific account provide strong isolation.</para>
+     <para>Additional networks can either be available to all accounts or be assigned to a specific account. Networks that are available to all accounts are zone-wide. Any user with access to the zone can create a VM with access to that network.  These zone-wide networks provide little or no isolation between guests.Networks that are assigned to a specific account provide strong isolation.</para>
      <xi:include href="add-additional-guest-network.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
      <xi:include href="change-network-offering-on-guest-network.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
  </section>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/docs/en-US/vcenter-maintenance-mode.xml
----------------------------------------------------------------------
diff --cc docs/en-US/vcenter-maintenance-mode.xml
index 2ed7162,fb896b2..d36dd7c
--- a/docs/en-US/vcenter-maintenance-mode.xml
+++ b/docs/en-US/vcenter-maintenance-mode.xml
@@@ -33,9 -34,8 +33,9 @@@
          <orderedlist numeration="loweralpha">
              <listitem><para>First use vCenter to exit the vCenter maintenance mode.</para>
              <para>This makes the host ready for &PRODUCT; to reactivate it.</para></listitem>
-             <listitem><para>Then use &PRODUCT;'s administrator UI to cancel the &PRODUCT; maintenance mode.</para>
-            <para>When the host comes back online, the VMs that were migrated off of it are migrated back to it and new VMs can be added.</para></listitem>
+             <listitem><para>Then use &PRODUCT;'s administrator UI to cancel the &PRODUCT; maintenance mode</para>
+            <para>When the host comes back online, the VMs that were migrated off of it may be migrated back to it manually and new VMs can be added.</para></listitem>
 -          </orderedlist></listitem>
 +          </orderedlist></listitem>        
         </orderedlist>
 +    
  </section>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/docs/en-US/vm-lifecycle.xml
----------------------------------------------------------------------
diff --cc docs/en-US/vm-lifecycle.xml
index da526a5,ce09b0d..15d9f7d
--- a/docs/en-US/vm-lifecycle.xml
+++ b/docs/en-US/vm-lifecycle.xml
@@@ -23,21 -23,20 +23,21 @@@
  -->
  
  <section id="vm-lifecycle">
 -    <title>VM Lifecycle</title>
 -    <para>Virtual machines can be in the following states:</para>
 -    <mediaobject>
 -        <imageobject>
 -            <imagedata fileref="./images/basic-deployment.png" />
 -        </imageobject>
 +	<title>VM Lifecycle</title>
 +	<para>Virtual machines can be in the following states:</para>
 +	<mediaobject>
 +		<imageobject>
 +			<imagedata fileref="./images/vm-lifecycle.png" />
 +		</imageobject>
- 		<textobject><phrase>basic_deployment.png: Basic two-machine CloudStack deployment</phrase></textobject>
+         <textobject><phrase>basic-deployment.png: Basic two-machine &PRODUCT; deployment</phrase></textobject>
 -    </mediaobject>
 -    <para>Once a virtual machine is destroyed, it cannot be recovered. All the resources used by the virtual machine will be reclaimed by the system. This includes the virtual machine’s IP address.</para>
 -    <para>A stop will attempt to gracefully shut down the operating system, which typically involves terminating all the running applications. If the operation system cannot be stopped, it will be forcefully terminated. This has the same effect as pulling the power cord to a physical machine.</para>
 -    <para>A reboot is a stop followed by a start.</para>
 -    <para>&PRODUCT; preserves the state of the virtual machine hard disk until the machine is destroyed.</para>
 -    <para>A running virtual machine may fail because of hardware or network issues. A failed virtual machine is in the down state.</para>
 -    <para>The system places the virtual machine into the down state if it does not receive the heartbeat from the hypervisor for three minutes.</para>
 -    <para>The user can manually restart the virtual machine from the down state.</para>
 -    <para>The system will start the virtual machine from the down state automatically if the virtual machine is marked as HA-enabled.</para>
 +	</mediaobject>
 +	<para>Once a virtual machine is destroyed, it cannot be recovered. All the resources used by the virtual machine will be reclaimed by the system. This includes the virtual machine’s IP address.</para>
 +	<para>A stop will attempt to gracefully shut down the operating system, which typically involves terminating all the running applications. If the operation system cannot be stopped, it will be forcefully terminated. This has the same effect as pulling the power cord to a physical machine.</para>
 +	<para>A reboot is a stop followed by a start.</para>
 +	<para>&PRODUCT; preserves the state of the virtual machine hard disk until the machine is destroyed.</para>
 +	<para>A running virtual machine may fail because of hardware or network issues. A failed virtual machine is in the down state.</para>
 +	<para>The system places the virtual machine into the down state if it does not receive the heartbeat from the hypervisor for three minutes.</para>
 +	<para>The user can manually restart the virtual machine from the down state.</para>
 +	<para>The system will start the virtual machine from the down state automatically if the virtual machine is marked as HA-enabled.</para>
  </section>
 +

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/docs/en-US/windows-installation.xml
----------------------------------------------------------------------
diff --cc docs/en-US/windows-installation.xml
index 27f90f3,541f8dd..bcecc80
--- a/docs/en-US/windows-installation.xml
+++ b/docs/en-US/windows-installation.xml
@@@ -5,25 -5,27 +5,26 @@@
  ]>
  
  <!-- 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.
 +    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.
  -->
 -
  <section id="windows-installation">
 -  <title>Windows OS Installation</title>
 +	<title>Windows OS Installation</title>
- 	<para>Download the installer, CloudInstanceManager.msi, from the <ulink
-             url="http://cloudstack.org/download.html">Download page</ulink> and run the installer in
-         the newly created Windows VM.</para>
+   <para>Download the installer, CloudInstanceManager.msi, from 
+     <ulink url="http://cloudstack.org/download.html">Download page</ulink> 
+     and run the installer in the newly created Windows VM.
+   </para>
  </section>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/docs/en-US/work-with-usage.xml
----------------------------------------------------------------------
diff --cc docs/en-US/work-with-usage.xml
index 40130c8,939ba63..00a7fb5
--- a/docs/en-US/work-with-usage.xml
+++ b/docs/en-US/work-with-usage.xml
@@@ -5,31 -5,32 +5,32 @@@
  ]>
  
  <!-- 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.
 +    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.
  -->
+ 
  <chapter id="work-with-usage">
 -  <title>Working with Usage</title>
 -  <para>The Usage Server is an optional, separately-installed part of &PRODUCT; that provides aggregated usage records which you can use to create billing integration for &PRODUCT;. The Usage Server works by taking data from the events log and creating summary usage records that you can access using the listUsageRecords API call. </para>
 -  <para>The usage records show the amount of resources, such as VM run time or template storage
 -    space, consumed by guest instances.</para>
 -  <para>The Usage Server runs at least once per day. It can be configured to run multiple times per day.</para>
 -  <xi:include href="configure-usage-server.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 -  <xi:include href="set-usage-limit.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 -  <xi:include href="globally-configured-limits.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 -  <xi:include href="default-account-resource-limit.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />    
 -  <xi:include href="per-domain-limits.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />    
 -</chapter>
 +    <title>Working with Usage</title>
 +    <para>The Usage Server is an optional, separately-installed part of &PRODUCT; that provides aggregated usage records which you can use to create billing integration for &PRODUCT;. The Usage Server works by taking data from the events log and creating summary usage records that you can access using the listUsageRecords API call. </para>
 +    <para>The usage records show the amount of resources, such as VM run time or template storage
 +        space, consumed by guest instances.</para>
 +    <para>The Usage Server runs at least once per day. It can be configured to run multiple times per day.</para>
 +    <xi:include href="configure-usage-server.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +    <xi:include href="set-usage-limit.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +    <xi:include href="globally-configured-limits.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +    <xi:include href="default-account-resource-limit.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />    
 +    <xi:include href="per-domain-limits.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />    
 +</chapter>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/docs/en-US/working-with-hosts.xml
----------------------------------------------------------------------
diff --cc docs/en-US/working-with-hosts.xml
index 9bb524d,4dcb852..83cd8b2
--- a/docs/en-US/working-with-hosts.xml
+++ b/docs/en-US/working-with-hosts.xml
@@@ -23,17 -23,17 +23,17 @@@
  -->
  
  <chapter id="working-with-hosts">
 -  <title>Working With Hosts</title>
 -  <section id="adding-hosts">
 -    <title>Adding Hosts</title>
 +    <title>Working With Hosts</title>
 +    <section id="adding-hosts">
 +        <title>Adding Hosts</title>
-         <para>Additional hosts can be added at any time to provide more capacity for guest VMs. For requirements and instructions, see the Installation Guide.</para>
+     <para>Additional hosts can be added at any time to provide more capacity for guest VMs. For requirements and instructions, see <xref linkend="host-add"/>.</para>
 -  </section>
 -  <xi:include href="scheduled-maintenance-maintenance-mode-hosts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 -  <xi:include href="disable-enable-zones-pods-clusters.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 -  <xi:include href="removing-hosts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 -  <xi:include href="re-install-hosts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 -  <xi:include href="maintain-hypervisors-on-hosts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 -  <xi:include href="change-host-password.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 -  <xi:include href="host-allocation.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 -  <xi:include href="vlan-provisioning.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 -</chapter>
 +    </section>
 +    <xi:include href="scheduled-maintenance-maintenance-mode-hosts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +    <xi:include href="disable-enable-zones-pods-clusters.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +    <xi:include href="removing-hosts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +    <xi:include href="re-install-hosts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +    <xi:include href="maintain-hypervisors-on-hosts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +    <xi:include href="change-host-password.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +    <xi:include href="host-allocation.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +    <xi:include href="vlan-provisioning.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +</chapter>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/docs/en-US/working-with-snapshots.xml
----------------------------------------------------------------------
diff --cc docs/en-US/working-with-snapshots.xml
index 1d8dbd9,d6b1458..82456dd
--- a/docs/en-US/working-with-snapshots.xml
+++ b/docs/en-US/working-with-snapshots.xml
@@@ -5,33 -5,28 +5,31 @@@
  ]>
  
  <!-- 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.
 +	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.
  -->
 -
  <section id="working-with-snapshots">
 -    <title>Working with Snapshots</title>
 +	<title>Working with Snapshots</title>
- 	<para>(Supported for the following hypervisors: <emphasis role="bold">XenServer</emphasis>,
- 			<emphasis role="bold">VMware vSphere</emphasis>, and <emphasis role="bold"
- 			>KVM</emphasis>)</para>
- 	<para>&PRODUCT; supports snapshots of disk volumes. Snapshots are a point-in-time capture of virtual machine disks. Memory and CPU states are not captured. If you are using the Oracle VM hypervisor, you can not take snapshots, since OVM does not support them.</para>
- 	<para>Snapshots may be taken for volumes, including both root and data disks (except when the Oracle VM hypervisor is used, which does not support snapshots). The administrator places a limit on the number of stored snapshots per user. Users can create new volumes from the snapshot for recovery of particular files and they can create templates from snapshots to boot from a restored disk.</para>
+     <para>(Supported for the following hypervisors: <emphasis role="bold">XenServer</emphasis>, <emphasis role="bold">VMware vSphere</emphasis>, and <emphasis role="bold">KVM</emphasis>)</para>
+     <para>&PRODUCT; supports snapshots of disk volumes. Snapshots are a point-in-time capture of virtual machine disks. Memory and CPU states are not captured. <!-- If you are using the Oracle VM hypervisor, you can not take snapshots, since OVM does not support them. --></para>
+     <para>Snapshots may be taken for volumes, including both root and data disks. The administrator places a limit on the number of stored snapshots per user. Users can create new volumes from the snapshot for recovery of particular files and they can create templates from snapshots to boot from a restored disk.</para>
 -    <para>Users can create snapshots manually or by setting up automatic recurring snapshot policies. Users can also create disk volumes from snapshots, which may be attached to a VM like any other disk volume. Snapshots of both root disks and data disks are supported. However, &PRODUCT; does not currently support booting a VM from a recovered root disk. A disk recovered from snapshot of a root disk is treated as a regular data disk; the data on recovered disk can be accessed by attaching the disk to a VM.</para>
 -    <para>A completed snapshot is copied from primary storage to secondary storage, where it is stored until deleted or purged by newer snapshot.</para>
 +	<para>Users can create snapshots manually or by setting up automatic recurring snapshot policies. Users can also create disk volumes from snapshots, which may be attached to a VM like any other disk volume. Snapshots of both root disks and data disks are supported. However, &PRODUCT; does not currently support booting a VM from a recovered root disk. A disk recovered from snapshot of a root disk is treated as a regular data disk; the data on recovered disk can be accessed by attaching the disk to a VM.</para>
 +	<para>A completed snapshot is copied from primary storage to secondary storage, where it is stored until deleted or purged by newer snapshot.</para>
 +	<xi:include href="automatic-snapshot-creation-retention.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +	<xi:include href="incremental-snapshots-backup.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +	<xi:include href="volume-status.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 +	<xi:include href="snapshot-restore.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
  </section>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/docs/en-US/working-with-volumes.xml
----------------------------------------------------------------------
diff --cc docs/en-US/working-with-volumes.xml
index 1a9d297,1179120..ab567d2
--- a/docs/en-US/working-with-volumes.xml
+++ b/docs/en-US/working-with-volumes.xml
@@@ -23,16 -23,26 +23,27 @@@
  -->
  
  <section id="working-with-volumes">
- 	<title>Working With Volumes</title>
- 	<para>A volume provides storage to a guest VM.  The volume can provide for a root disk or an additional data disk.  &PRODUCT; supports additional volumes for guest VMs.</para>
- 	<para>Volumes are created for a specific hypervisor type.   A volume that has been attached to guest using one hypervisor type (e.g, XenServer) may not be attached to a guest that is using another hypervisor type (e.g. vSphere, Oracle VM, KVM).  This is because the different hypervisors use different disk image formats.</para>
- 	<para>&PRODUCT; defines a volume as a unit of storage available to a guest VM. Volumes are either root disks or data disks. The root disk has “/” in the file system and is usually the boot device. Data disks provide for additional storage (e.g. As “/opt” or “D:”). Every guest VM has a root disk, and VMs can also optionally have a data disk. End users can mount multiple data disks to guest VMs. Users choose data disks from the disk offerings created by administrators. The user can create a template from a volume as well; this is the standard procedure for private template creation.  Volumes are hypervisor-specific: a volume from one hypervisor type may not be used on a guest of another hypervisor type.</para>	
- 	<xi:include href="creating-new-volumes.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- 	<xi:include href="upload-existing-volume-to-vm.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- 	<xi:include href="attaching-volume.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- 	<xi:include href="detach-move-volumes.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- 	<xi:include href="vm-storage-migration.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- 	<xi:include href="resizing-volumes.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- 	<xi:include href="volume-deletion-garbage-collection.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+     <title>Using Swift for Secondary Storage</title>
+     <para>A volume provides storage to a guest VM.  The volume can provide for
+       a root disk or an additional data disk.  &PRODUCT; supports additional
+       volumes for guest VMs.
+     </para>
+     <para>Volumes are created for a specific hypervisor type. A volume that has
+       been attached to guest using one hypervisor type (e.g, XenServer) may not
+       be attached to a guest that is using another hypervisor type (e.g. 
+       vSphere, KVM).  This is because the different hypervisors use
+       different disk image formats.
+     </para>
+     <para>&PRODUCT; defines a volume as a unit of storage available to a guest
+       VM. Volumes are either root disks or data disks. The root disk has "/"
+       in the file system and is usually the boot device. Data disks provide
+       for additional storage (e.g. As "/opt" or "D:"). Every guest VM has a root
+       disk, and VMs can also optionally have a data disk. End users can mount
+       multiple data disks to guest VMs. Users choose data disks from the disk
+       offerings created by administrators. The user can create a template from
+       a volume as well; this is the standard procedure for private template
+       creation. Volumes are hypervisor-specific: a volume from one hypervisor
+       type may not be used on a guest of another hypervisor type.
+     </para>    
  </section>
 +

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/plugins/hypervisors/vmware/src/com/cloud/network/CiscoNexusVSMDeviceManagerImpl.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/vmware/src/com/cloud/network/CiscoNexusVSMDeviceManagerImpl.java
index e5da562,d3dcb77..c28f259
--- a/plugins/hypervisors/vmware/src/com/cloud/network/CiscoNexusVSMDeviceManagerImpl.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/network/CiscoNexusVSMDeviceManagerImpl.java
@@@ -16,13 -16,8 +16,10 @@@
  // under the License.
  package com.cloud.network;
  
- import java.util.HashMap;
- 
  import java.util.List;
- import java.util.Map;
  
 +import javax.inject.Inject;
 +
  import org.apache.log4j.Logger;
  
  import com.cloud.agent.api.StartupCommand;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/plugins/hypervisors/vmware/src/com/cloud/network/element/CiscoNexusVSMElement.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/vmware/src/com/cloud/network/element/CiscoNexusVSMElement.java
index ab3eb34,b9567dc..98ed3f8
--- a/plugins/hypervisors/vmware/src/com/cloud/network/element/CiscoNexusVSMElement.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/network/element/CiscoNexusVSMElement.java
@@@ -219,12 -216,12 +218,12 @@@ public class CiscoNexusVSMElement exten
              response.setMgmtIpAddress(vsmDeviceVO.getipaddr());
              return response;
          }
 -
 +    
      public CiscoNexusVSMResponse createCiscoNexusVSMDetailedResponse(CiscoNexusVSMDevice vsmDeviceVO) {
      	CiscoNexusVSMResponse response = new CiscoNexusVSMResponse();
-     	response.setId(vsmDeviceVO.getId());
+     	response.setId(vsmDeviceVO.getUuid());
      	response.setDeviceName(vsmDeviceVO.getvsmName());
 -    	response.setDeviceState(vsmDeviceVO.getvsmDeviceState().toString());
 +    	response.setDeviceState(vsmDeviceVO.getvsmDeviceState().toString());    	
      	response.setMgmtIpAddress(vsmDeviceVO.getipaddr());
      	// The following values can be null, so check for that.
      	if(vsmDeviceVO.getvsmConfigMode() != null)

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
index f43e76f,48f9681..46eaa72
--- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
+++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
@@@ -438,9 -437,9 +439,9 @@@ public class XcpServerDiscoverer extend
  
      	if (prodBrand.equals("XenServer") && prodVersion.equals("6.0.2"))
      		return new XenServer602Resource();
 -
 +    	
-         if (prodBrand.equals("XenServer") && prodVersion.startsWith("6.0.9"))
-            return new XenServer602Resource();
+         if (prodBrand.equals("XenServer") && prodVersion.equals("6.1.0"))
+             return new XenServer610Resource();
  
      	if(prodBrand.equals("XenServer") && prodVersion.equals("5.6.100"))  {
      		String prodVersionTextShort = record.softwareVersion.get("product_version_text_short").trim();
@@@ -454,14 -453,14 +455,14 @@@
      	if (prodBrand.equals("XCP_Kronos")) {
      		return new XcpOssResource();
      	}
 -
 +    	
-     	String msg = "Only support XCP 1.0.0, 1.1.0, 1.5 beta; XenServer 5.6,  XenServer 5.6 FP1, XenServer 5.6 SP2, Xenserver 6.0, 6.0.2, 6.0.9 but this one is " + prodBrand + " " + prodVersion;
+         String msg = "Only support XCP 1.0.0, 1.1.0, 1.5 beta; XenServer 5.6,  XenServer 5.6 FP1, XenServer 5.6 SP2, Xenserver 6.0, 6.0.2, 6.1.0 but this one is " + prodBrand + " " + prodVersion;
 -        _alertMgr.sendAlert(AlertManager.ALERT_TYPE_HOST, dcId, podId, msg, msg);
 -        s_logger.debug(msg);
 -        throw new RuntimeException(msg);
 +    			_alertMgr.sendAlert(AlertManager.ALERT_TYPE_HOST, dcId, podId, msg, msg);
 +    	s_logger.debug(msg);
 +    	throw new RuntimeException(msg);
  
      }
 -
 +    
      protected void serverConfig() {      
          String value = _params.get(Config.XenSetupMultipath.key());
          _setupMultipath = Boolean.parseBoolean(value);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
index 9a04903,36a12b1..b30ef23
--- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
+++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
@@@ -4336,8 -4333,13 +4341,13 @@@ public abstract class CitrixResourceBas
              }
              XsLocalNetwork storageNic1 = null;
              storageNic1 = getNetworkByName(conn, _storageNetworkName1);
+             if (storageNic1 == null) {
+                 s_logger.warn("Unable to find storage network " + _storageNetworkName1 + " for host " + _host.ip);
+                 throw new IllegalArgumentException("Unable to find storage network " + _storageNetworkName1 + " for host " + _host.ip);
+             } else {
 -                _host.storageNetwork1 = storageNic1.getNetworkRecord(conn).uuid;
 -                _host.storagePif1 = storageNic1.getPifRecord(conn).uuid;
 +            _host.storageNetwork1 = storageNic1.getNetworkRecord(conn).uuid;
 +            _host.storagePif1 = storageNic1.getPifRecord(conn).uuid;
+             }
  
              XsLocalNetwork storageNic2 = null;
              if (_storageNetworkName2 != null) {
@@@ -6525,7 -6521,14 +6535,14 @@@
                          } finally {
                              deleteSnapshotBackup(conn, dcId, accountId, volumeId, secondaryStorageMountPath, snapshotBackupUuid);
                          }
+                     } else if (cmd.getS3() != null) {
+                         try {
+                             backupSnapshotToS3(conn, cmd.getS3(), snapshotSr.getUuid(conn), snapshotBackupUuid, isISCSI, wait);
+                             snapshotBackupUuid = snapshotBackupUuid + ".vhd";
+                         } finally {
+                             deleteSnapshotBackup(conn, dcId, accountId, volumeId, secondaryStorageMountPath, snapshotBackupUuid);
+                         }
 -                    }
 +                    }                    
                      success = true;
                  } finally {
                      if( snapshotSr != null) {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/element/ElasticLoadBalancerElement.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
----------------------------------------------------------------------
diff --cc plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
index f1eb791,736307b..e6dc1e8
--- a/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
+++ b/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
@@@ -30,11 -30,10 +30,12 @@@ import java.util.concurrent.ScheduledEx
  import java.util.concurrent.TimeUnit;
  
  import javax.ejb.Local;
 +import javax.inject.Inject;
  import javax.naming.ConfigurationException;
  
+ import org.apache.cloudstack.api.command.user.loadbalancer.CreateLoadBalancerRuleCmd;
  import org.apache.log4j.Logger;
 +import org.springframework.stereotype.Component;
  
  import com.cloud.agent.AgentManager;
  import com.cloud.agent.AgentManager.OnError;
@@@ -137,13 -136,12 +137,13 @@@ import com.cloud.vm.VirtualMachineProfi
  import com.cloud.vm.dao.DomainRouterDao;
  import com.cloud.vm.dao.NicDao;
  
 +@Component
  @Local(value = { ElasticLoadBalancerManager.class })
  public class ElasticLoadBalancerManagerImpl implements
-         ElasticLoadBalancerManager, Manager,  VirtualMachineGuru<DomainRouterVO> {
+ ElasticLoadBalancerManager, Manager,  VirtualMachineGuru<DomainRouterVO> {
      private static final Logger s_logger = Logger
              .getLogger(ElasticLoadBalancerManagerImpl.class);
 -
 +    
      @Inject
      IPAddressDao _ipAddressDao;
      @Inject
@@@ -338,9 -334,10 +336,10 @@@
          return elbVm;
      }
  
+     @Override
      public boolean applyLoadBalancerRules(Network network,
              List<? extends FirewallRule> rules)
 -                    throws ResourceUnavailableException {
 +            throws ResourceUnavailableException {
          if (rules == null || rules.isEmpty()) {
              return true;
          }
@@@ -408,9 -405,7 +407,7 @@@
                  true, null, true, VirtualMachine.Type.ElasticLoadBalancerVm, true);
          _elasticLbVmOffering.setUniqueName(ServiceOffering.elbVmDefaultOffUniqueName);
          _elasticLbVmOffering = _serviceOfferingDao.persistSystemServiceOffering(_elasticLbVmOffering);
 -
 +        
-         
-         
          String enabled = _configDao.getValue(Config.ElasticLoadBalancerEnabled.key());
          _enabled = (enabled == null) ? false: Boolean.parseBoolean(enabled);
          s_logger.info("Elastic Load balancer enabled: " + _enabled);
@@@ -431,8 -426,7 +428,7 @@@
              _gcThreadPool.scheduleAtFixedRate(new CleanupThread(), gcIntervalMinutes, gcIntervalMinutes, TimeUnit.MINUTES);
              _itMgr.registerGuru(VirtualMachine.Type.ElasticLoadBalancerVm, this);
          }
 -
 +        
- 
          return true;
      }
  
@@@ -486,9 -480,8 +482,8 @@@
                  s_logger.debug("Starting a ELB vm for network configurations: " + guestNetwork + " in " + dest);
              }
              assert guestNetwork.getState() == Network.State.Implemented 
 -                    || guestNetwork.getState() == Network.State.Setup 
 +                || guestNetwork.getState() == Network.State.Setup 
-                 || guestNetwork.getState() == Network.State.Implementing 
-                 : "Network is not yet fully implemented: "+ guestNetwork;
+                     || guestNetwork.getState() == Network.State.Implementing : "Network is not yet fully implemented: " + guestNetwork;
  
              DataCenterDeployment plan = null;
              DomainRouterVO elbVm = null;
@@@ -555,8 -546,7 +548,7 @@@
              return null;
          }
      }
 -
 +    
-     
      private DomainRouterVO stop(DomainRouterVO elbVm, boolean forced, User user, Account caller) throws ConcurrentOperationException, ResourceUnavailableException {
          s_logger.debug("Stopping ELB vm " + elbVm);
          try {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
----------------------------------------------------------------------
diff --cc plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
index bcb7c8b,735814c..33fae86
--- a/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
+++ b/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
@@@ -23,11 -23,10 +23,12 @@@ import java.util.Map
  import java.util.Set;
  
  import javax.ejb.Local;
 +import javax.inject.Inject;
  
  import org.apache.log4j.Logger;
 +import org.springframework.stereotype.Component;
  
+ import com.cloud.api.ApiDBUtils;
  import com.cloud.api.commands.AddExternalLoadBalancerCmd;
  import com.cloud.api.commands.AddF5LoadBalancerCmd;
  import com.cloud.api.commands.ConfigureF5LoadBalancerCmd;
@@@ -80,8 -80,9 +82,8 @@@ import com.cloud.network.rules.LbSticki
  import com.cloud.network.rules.LbStickinessMethod.StickinessMethodType;
  import com.cloud.offering.NetworkOffering;
  import com.cloud.resource.ServerResource;
- import com.cloud.server.api.response.ExternalLoadBalancerResponse;
+ import org.apache.cloudstack.api.response.ExternalLoadBalancerResponse;
  import com.cloud.utils.NumbersUtil;
 -import com.cloud.utils.component.Inject;
  import com.cloud.utils.exception.CloudRuntimeException;
  import com.cloud.vm.NicProfile;
  import com.cloud.vm.ReservationContext;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
----------------------------------------------------------------------
diff --cc plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
index 6ff46c5,0479648..ba0d7a8
--- a/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
+++ b/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
@@@ -23,11 -23,10 +23,12 @@@ import java.util.Map
  import java.util.Set;
  
  import javax.ejb.Local;
 +import javax.inject.Inject;
  
  import org.apache.log4j.Logger;
 +import org.springframework.stereotype.Component;
  
+ import com.cloud.api.ApiDBUtils;
  import com.cloud.api.commands.AddExternalFirewallCmd;
  import com.cloud.api.commands.AddSrxFirewallCmd;
  import com.cloud.api.commands.ConfigureSrxFirewallCmd;
@@@ -81,18 -82,18 +84,18 @@@ import com.cloud.network.rules.StaticNa
  import com.cloud.offering.NetworkOffering;
  import com.cloud.offerings.dao.NetworkOfferingDao;
  import com.cloud.resource.ServerResource;
- import com.cloud.server.api.response.ExternalFirewallResponse;
+ import org.apache.cloudstack.api.response.ExternalFirewallResponse;
  import com.cloud.utils.NumbersUtil;
 -import com.cloud.utils.component.Inject;
  import com.cloud.utils.exception.CloudRuntimeException;
  import com.cloud.vm.NicProfile;
  import com.cloud.vm.ReservationContext;
  import com.cloud.vm.VirtualMachine;
  import com.cloud.vm.VirtualMachineProfile;
  
 +@Component
  @Local(value = NetworkElement.class)
  public class JuniperSRXExternalFirewallElement extends ExternalFirewallDeviceManagerImpl implements SourceNatServiceProvider, FirewallServiceProvider,
-         PortForwardingServiceProvider, RemoteAccessVPNServiceProvider, IpDeployer, JuniperSRXFirewallElementService {
+         PortForwardingServiceProvider, RemoteAccessVPNServiceProvider, IpDeployer, JuniperSRXFirewallElementService, StaticNatServiceProvider {
  
      private static final Logger s_logger = Logger.getLogger(JuniperSRXExternalFirewallElement.class);
  

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/30f2565d/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
----------------------------------------------------------------------
diff --cc plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
index 5f1b8f2,be9fc6f..30c51ee
--- a/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
+++ b/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
@@@ -96,8 -99,8 +101,7 @@@ import com.cloud.network.rules.LbSticki
  import com.cloud.network.rules.LbStickinessMethod.StickinessMethodType;
  import com.cloud.network.rules.StaticNat;
  import com.cloud.offering.NetworkOffering;
- import com.cloud.resource.ServerResource;
  import com.cloud.utils.NumbersUtil;
 -import com.cloud.utils.component.Inject;
  import com.cloud.utils.db.DB;
  import com.cloud.utils.db.Transaction;
  import com.cloud.utils.exception.CloudRuntimeException;
@@@ -108,12 -111,13 +112,14 @@@ import com.cloud.vm.VirtualMachine
  import com.cloud.vm.VirtualMachineProfile;
  import com.google.gson.Gson;
  
 +@Component
  @Local(value = NetworkElement.class)
  public class NetscalerElement extends ExternalLoadBalancerDeviceManagerImpl implements LoadBalancingServiceProvider, NetscalerLoadBalancerElementService, ExternalLoadBalancerDeviceManager, IpDeployer,
-         StaticNatServiceProvider {
+ StaticNatServiceProvider {
  
      private static final Logger s_logger = Logger.getLogger(NetscalerElement.class);
+     public static final AutoScaleCounterType AutoScaleCounterSnmp = new AutoScaleCounterType("snmp");
+     public static final AutoScaleCounterType AutoScaleCounterNetscaler = new AutoScaleCounterType("netscaler");
  
      @Inject
      NetworkManager _networkManager;
@@@ -145,10 -149,11 +151,11 @@@
      NetScalerPodDao _netscalerPodDao;
      @Inject
      DataCenterIpAddressDao _privateIpAddressDao;
 -
 +   
      private boolean canHandle(Network config, Service service) {
          DataCenter zone = _dcDao.findById(config.getDataCenterId());
-         boolean handleInAdvanceZone = (zone.getNetworkType() == NetworkType.Advanced && config.getGuestType() == Network.GuestType.Isolated && config.getTrafficType() == TrafficType.Guest);
+         boolean handleInAdvanceZone = (zone.getNetworkType() == NetworkType.Advanced &&
+                 (config.getGuestType() == Network.GuestType.Isolated || config.getGuestType() == Network.GuestType.Shared) && config.getTrafficType() == TrafficType.Guest);
          boolean handleInBasicZone = (zone.getNetworkType() == NetworkType.Basic && config.getGuestType() == Network.GuestType.Shared && config.getTrafficType() == TrafficType.Guest);
  
          if (!(handleInAdvanceZone || handleInBasicZone)) {
@@@ -608,8 -615,10 +617,10 @@@
              for (Service service : services) {
                  servicesList += service.getName() + " ";
              }
 -            s_logger.warn("NetScaler network element can only support LB and Static NAT services and service combination "
 +            s_logger.warn("NetScaler network element can only support LB and Static NAT services and service combination " 
                  + servicesList + " is not supported.");
+             s_logger.warn("NetScaler network element can only support LB and Static NAT services and service combination "
+                     + services + " is not supported.");
              return false;
          }