You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mu...@apache.org on 2012/07/02 17:35:04 UTC

[3/4] moving out NetApp code to plugins/file-systems/netapp

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/api/commands/netapp/DissociateLunCmd.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/commands/netapp/DissociateLunCmd.java b/server/src/com/cloud/api/commands/netapp/DissociateLunCmd.java
deleted file mode 100644
index 77425cb..0000000
--- a/server/src/com/cloud/api/commands/netapp/DissociateLunCmd.java
+++ /dev/null
@@ -1,79 +0,0 @@
-// 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.
-package com.cloud.api.commands.netapp;
-
-import java.rmi.ServerException;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.api.ApiConstants;
-import com.cloud.api.BaseCmd;
-import com.cloud.api.Implementation;
-import com.cloud.api.Parameter;
-import com.cloud.api.ServerApiException;
-import com.cloud.exception.ConcurrentOperationException;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.netapp.NetappManager;
-import com.cloud.server.ManagementService;
-import com.cloud.server.api.response.netapp.DissociateLunCmdResponse;
-import com.cloud.utils.component.ComponentLocator;
-
-@Implementation(description="Dissociate a LUN", responseObject = DissociateLunCmdResponse.class)
-public class DissociateLunCmd extends BaseCmd {
-	public static final Logger s_logger = Logger.getLogger(DissociateLunCmd.class.getName());
-    private static final String s_name = "dissociatelunresponse";
-
-    @Parameter(name=ApiConstants.PATH, type=CommandType.STRING, required = true, description="LUN path.")
-	private String path;
-    
-    @Parameter(name=ApiConstants.IQN, type=CommandType.STRING, required = true, description="Guest IQN.")
-	private String guestIQN;
-    
-	@Override
-	public void execute() throws ResourceUnavailableException,
-			InsufficientCapacityException, ServerApiException,
-			ConcurrentOperationException, ResourceAllocationException {
-		ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
-    	NetappManager netappMgr = locator.getManager(NetappManager.class);
-    	try {
-    		netappMgr.disassociateLun(guestIQN, path);
-    		DissociateLunCmdResponse response = new DissociateLunCmdResponse();
-    		response.setResponseName(getCommandName());
-    		this.setResponseObject(response);
-    	} catch (InvalidParameterValueException e) {
-    		throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
-    	} catch (ServerException e) {
-    		throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
-		}
-	}
-
-	@Override
-	public String getCommandName() {
-		// TODO Auto-generated method stub
-		return s_name;
-	}
-
-	@Override
-	public long getEntityOwnerId() {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/api/commands/netapp/ListLunsCmd.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/commands/netapp/ListLunsCmd.java b/server/src/com/cloud/api/commands/netapp/ListLunsCmd.java
deleted file mode 100644
index 1101648..0000000
--- a/server/src/com/cloud/api/commands/netapp/ListLunsCmd.java
+++ /dev/null
@@ -1,88 +0,0 @@
-// 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.
-package com.cloud.api.commands.netapp;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.api.ApiConstants;
-import com.cloud.api.BaseCmd;
-import com.cloud.api.Implementation;
-import com.cloud.api.Parameter;
-import com.cloud.api.ServerApiException;
-import com.cloud.api.response.ListResponse;
-import com.cloud.exception.ConcurrentOperationException;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.netapp.LunVO;
-import com.cloud.netapp.NetappManager;
-import com.cloud.server.ManagementService;
-import com.cloud.server.api.response.netapp.ListLunsCmdResponse;
-import com.cloud.utils.component.ComponentLocator;
-
-@Implementation(description="List LUN", responseObject = ListLunsCmdResponse.class)
-public class ListLunsCmd extends BaseCmd 
-{
-	public static final Logger s_logger = Logger.getLogger(ListLunsCmd.class.getName());
-    private static final String s_name = "listlunresponse";
-
-    @Parameter(name=ApiConstants.POOL_NAME, type=CommandType.STRING, required = true, description="pool name.")
-	private String poolName;
-
-	@Override
-	public void execute() throws ResourceUnavailableException,
-			InsufficientCapacityException, ServerApiException,
-			ConcurrentOperationException, ResourceAllocationException {
-		ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
-    	NetappManager netappMgr = locator.getManager(NetappManager.class);
-    	try {
-    		List<LunVO> lunList = netappMgr.listLunsOnFiler(poolName);
-    		ListResponse<ListLunsCmdResponse> listResponse = new ListResponse<ListLunsCmdResponse>();
-    		List<ListLunsCmdResponse> responses = new ArrayList<ListLunsCmdResponse>();
-    		for (LunVO lun : lunList) {
-    			ListLunsCmdResponse response = new ListLunsCmdResponse();
-    			response.setId(lun.getId());
-    			response.setIqn(lun.getTargetIqn());
-    			response.setName(lun.getLunName());
-    			response.setVolumeId(lun.getVolumeId());
-    			response.setObjectName("lun");
-    			responses.add(response);
-    		}
-    		listResponse.setResponses(responses);
-    		listResponse.setResponseName(getCommandName());
-    		this.setResponseObject(listResponse);
-    	} catch (InvalidParameterValueException e) {
-    		throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
-    	}		
-	}
-
-	@Override
-	public String getCommandName() {
-		// TODO Auto-generated method stub
-		return s_name;
-	}
-
-	@Override
-	public long getEntityOwnerId() {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java b/server/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java
deleted file mode 100644
index e646739..0000000
--- a/server/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java
+++ /dev/null
@@ -1,84 +0,0 @@
-// 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.
-package com.cloud.api.commands.netapp;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.api.BaseCmd;
-import com.cloud.api.Implementation;
-import com.cloud.api.ServerApiException;
-import com.cloud.api.response.ListResponse;
-import com.cloud.exception.ConcurrentOperationException;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.netapp.NetappManager;
-import com.cloud.netapp.PoolVO;
-import com.cloud.server.ManagementService;
-import com.cloud.server.api.response.netapp.ListVolumePoolsCmdResponse;
-import com.cloud.utils.component.ComponentLocator;
-
-@Implementation(description="List Pool", responseObject = ListVolumePoolsCmdResponse.class)
-public class ListVolumePoolsCmd extends BaseCmd {
-	public static final Logger s_logger = Logger.getLogger(ListVolumePoolsCmd.class.getName());
-    private static final String s_name = "listpoolresponse";
-
-
-	@Override
-	public void execute() throws ResourceUnavailableException,
-			InsufficientCapacityException, ServerApiException,
-			ConcurrentOperationException, ResourceAllocationException {
-		ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
-    	NetappManager netappMgr = locator.getManager(NetappManager.class);
-    	try {
-    		List<PoolVO> poolList = netappMgr.listPools();
-    		ListResponse<ListVolumePoolsCmdResponse> listResponse = new ListResponse<ListVolumePoolsCmdResponse>();
-    		List<ListVolumePoolsCmdResponse> responses = new ArrayList<ListVolumePoolsCmdResponse>();
-    		for (PoolVO pool : poolList) {
-    			ListVolumePoolsCmdResponse response = new ListVolumePoolsCmdResponse();
-    			response.setId(pool.getId());
-    			response.setName(pool.getName());
-    			response.setAlgorithm(pool.getAlgorithm());
-    			response.setObjectName("pool");
-    			responses.add(response);
-    		}
-    		listResponse.setResponses(responses);
-    		listResponse.setResponseName(getCommandName());
-    		this.setResponseObject(listResponse);
-    	} catch (InvalidParameterValueException e) {
-    		throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
-    	}		
-		
-	}
-
-	@Override
-	public String getCommandName() {
-		// TODO Auto-generated method stub
-		return s_name;
-	}
-
-	@Override
-	public long getEntityOwnerId() {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java b/server/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java
deleted file mode 100644
index 389053a..0000000
--- a/server/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java
+++ /dev/null
@@ -1,94 +0,0 @@
-// 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.
-package com.cloud.api.commands.netapp;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.api.ApiConstants;
-import com.cloud.api.BaseCmd;
-import com.cloud.api.Implementation;
-import com.cloud.api.Parameter;
-import com.cloud.api.ServerApiException;
-import com.cloud.api.response.ListResponse;
-import com.cloud.exception.ConcurrentOperationException;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.netapp.NetappManager;
-import com.cloud.netapp.NetappVolumeVO;
-import com.cloud.server.ManagementService;
-import com.cloud.server.api.response.netapp.ListVolumesOnFilerCmdResponse;
-import com.cloud.utils.component.ComponentLocator;
-
-@Implementation(description="List Volumes", responseObject = ListVolumesOnFilerCmdResponse.class)
-public class ListVolumesOnFilerCmd extends BaseCmd {
-	public static final Logger s_logger = Logger.getLogger(ListVolumesOnFilerCmd.class.getName());
-    private static final String s_name = "listvolumesresponse";
-    
-    @Parameter(name=ApiConstants.POOL_NAME, type=CommandType.STRING, required = true, description="pool name.")
-	private String poolName;
-
-	@Override
-	public void execute() throws ResourceUnavailableException,
-			InsufficientCapacityException, ServerApiException,
-			ConcurrentOperationException, ResourceAllocationException {
-		ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
-    	NetappManager netappMgr = locator.getManager(NetappManager.class);
-    	
-    	try {
-    		List<NetappVolumeVO> volumes = netappMgr.listVolumesOnFiler(poolName);
-    		ListResponse<ListVolumesOnFilerCmdResponse> listResponse = new ListResponse<ListVolumesOnFilerCmdResponse>();
-    		List<ListVolumesOnFilerCmdResponse> responses = new ArrayList<ListVolumesOnFilerCmdResponse>();
-    		for (NetappVolumeVO volume : volumes) {
-    			ListVolumesOnFilerCmdResponse response = new ListVolumesOnFilerCmdResponse();
-    			response.setId(volume.getId());
-    			response.setIpAddress(volume.getIpAddress());
-    			response.setPoolName(volume.getPoolName());
-    			response.setAggrName(volume.getAggregateName());
-    			response.setVolumeName(volume.getVolumeName());
-    			response.setSnapshotPolicy(volume.getSnapshotPolicy());
-    			response.setSnapshotReservation(volume.getSnapshotReservation());
-    			response.setVolumeSize(volume.getVolumeSize());
-    			response.setObjectName("volume");
-    			responses.add(response);
-    		}
-    		listResponse.setResponses(responses);
-    		listResponse.setResponseName(getCommandName());
-    		this.setResponseObject(listResponse);
-    	} catch (InvalidParameterValueException e) {
-    		throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
-    	}
-		
-	}
-
-	@Override
-	public String getCommandName() {
-		// TODO Auto-generated method stub
-		return s_name;
-	}
-
-	@Override
-	public long getEntityOwnerId() {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/api/commands/netapp/ModifyVolumePoolCmd.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/commands/netapp/ModifyVolumePoolCmd.java b/server/src/com/cloud/api/commands/netapp/ModifyVolumePoolCmd.java
deleted file mode 100644
index 0bca290..0000000
--- a/server/src/com/cloud/api/commands/netapp/ModifyVolumePoolCmd.java
+++ /dev/null
@@ -1,73 +0,0 @@
-// 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.
-package com.cloud.api.commands.netapp;
-
-
-import org.apache.log4j.Logger;
-
-import com.cloud.api.ApiConstants;
-import com.cloud.api.BaseCmd;
-import com.cloud.api.Implementation;
-import com.cloud.api.Parameter;
-import com.cloud.api.ServerApiException;
-import com.cloud.exception.ConcurrentOperationException;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.netapp.NetappManager;
-import com.cloud.server.ManagementService;
-import com.cloud.server.api.response.netapp.ModifyVolumePoolCmdResponse;
-import com.cloud.utils.component.ComponentLocator;
-
-@Implementation(description="Modify pool", responseObject = ModifyVolumePoolCmdResponse.class)
-public class ModifyVolumePoolCmd extends BaseCmd {
-	public static final Logger s_logger = Logger.getLogger(ModifyVolumePoolCmd.class.getName());
-    private static final String s_name = "modifypoolresponse";
-
-    @Parameter(name=ApiConstants.POOL_NAME, type=CommandType.STRING, required = true, description="pool name.")
-	private String poolName;
-
-    @Parameter(name=ApiConstants.ALGORITHM, type=CommandType.STRING, required = true, description="algorithm.")
-	private String algorithm;
-
-    @Override
-    public void execute() throws ResourceUnavailableException,
-    InsufficientCapacityException, ServerApiException,
-    ConcurrentOperationException, ResourceAllocationException {
-    	ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
-    	NetappManager netappMgr = locator.getManager(NetappManager.class);
-
-    	netappMgr.modifyPool(poolName, algorithm);
-
-    	ModifyVolumePoolCmdResponse response = new ModifyVolumePoolCmdResponse();
-    	response.setResponseName(getCommandName());
-    	this.setResponseObject(response);
-    }
-
-    @Override
-	public String getCommandName() {
-		// TODO Auto-generated method stub
-		return s_name;
-	}
-
-	@Override
-	public long getEntityOwnerId() {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/configuration/PremiumComponentLibrary.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/PremiumComponentLibrary.java b/server/src/com/cloud/configuration/PremiumComponentLibrary.java
index ac82603..b25f462 100755
--- a/server/src/com/cloud/configuration/PremiumComponentLibrary.java
+++ b/server/src/com/cloud/configuration/PremiumComponentLibrary.java
@@ -27,10 +27,6 @@ import com.cloud.baremetal.PxeServerManager.PxeServerType;
 import com.cloud.baremetal.PxeServerManagerImpl;
 import com.cloud.baremetal.PxeServerService;
 import com.cloud.ha.HighAvailabilityManagerExtImpl;
-import com.cloud.netapp.NetappManagerImpl;
-import com.cloud.netapp.dao.LunDaoImpl;
-import com.cloud.netapp.dao.PoolDaoImpl;
-import com.cloud.netapp.dao.VolumeDaoImpl;
 import com.cloud.network.ExternalNetworkDeviceManagerImpl;
 import com.cloud.network.NetworkUsageManagerImpl;
 import com.cloud.secstorage.CommandExecLogDaoImpl;
@@ -51,9 +47,6 @@ public class PremiumComponentLibrary extends DefaultComponentLibrary {
         addDao("UsageDao", UsageDaoImpl.class);
         addDao("UsageIpAddressDao", UsageIPAddressDaoImpl.class);
         addDao("CommandExecLogDao", CommandExecLogDaoImpl.class);
-        addDao("NetappPool", PoolDaoImpl.class);
-        addDao("NetappVolume", VolumeDaoImpl.class);
-        addDao("NetappLun", LunDaoImpl.class);
     }
 
     @Override
@@ -68,7 +61,6 @@ public class PremiumComponentLibrary extends DefaultComponentLibrary {
         addManager("ExternalDhcpManager", ExternalDhcpManagerImpl.class);
         addManager("PxeServerManager", PxeServerManagerImpl.class);
         addManager("NetworkUsageManager", NetworkUsageManagerImpl.class);
-        addManager("NetappManager", NetappManagerImpl.class);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/LunVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/LunVO.java b/server/src/com/cloud/netapp/LunVO.java
deleted file mode 100644
index af2e575..0000000
--- a/server/src/com/cloud/netapp/LunVO.java
+++ /dev/null
@@ -1,121 +0,0 @@
-// 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.
-package com.cloud.netapp;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name="netapp_lun")
-public class LunVO {
-		
-	@Id
-    @GeneratedValue(strategy=GenerationType.IDENTITY)
-    @Column(name="id")
-    private Long id;
-	
-	@Column(name="lun_name")
-    private String lunName;
-
-	@Column(name="target_iqn")
-    private String targetIqn;
-	
-    @Column(name="path")
-	private String path;
-
-    @Column(name="volume_id")
-	private Long volumeId;
-
-    public Long getSize() {
-		return size;
-	}
-
-	public void setSize(Long size) {
-		this.size = size;
-	}
-
-
-	@Column(name="size")
-	private Long size;
-
-	public LunVO(){
-		
-	}
-	
-	public LunVO(String path, Long volumeId, Long size, String lunName, String targetIqn) {
-		this.path = path;
-		this.volumeId = volumeId;
-		this.size = size;
-		this.lunName = lunName;
-		this.targetIqn = targetIqn;
-	}
-	
-	public String getLunName() {
-		return lunName;
-	}
-
-	public void setLunName(String lunName) {
-		this.lunName = lunName;
-	}
-
-	public LunVO(Long id, String path, Long volumeId, Long size, String lunName, String targetIqn) {
-		this.id = id;
-		this.path = path;
-		this.volumeId = volumeId;
-		this.size = size;
-		this.lunName = lunName;
-		this.targetIqn = targetIqn;
-	}
-
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	public String getPath() {
-		return path;
-	}
-
-	public void setPath(String path) {
-		this.path = path;
-	}
-
-	public Long getVolumeId() {
-		return volumeId;
-	}
-
-	public void setVolumeId(Long volumeId) {
-		this.volumeId = volumeId;
-	}
-	
-	public void setTargetIqn(String iqn){
-		this.targetIqn = iqn;
-	}
-	
-	public String getTargetIqn(){
-		return targetIqn;
-	}
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/NetappAllocator.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/NetappAllocator.java b/server/src/com/cloud/netapp/NetappAllocator.java
deleted file mode 100644
index 0cc3629..0000000
--- a/server/src/com/cloud/netapp/NetappAllocator.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// 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.
-package com.cloud.netapp;
-
-
-public interface NetappAllocator{
-
-	public NetappVolumeVO chooseVolumeFromPool(String poolName, long lunSizeGb) ;
-
-	public NetappVolumeVO chooseLeastFullVolumeFromPool(String poolName,long lunSizeGb);
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/NetappDefaultAllocatorImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/NetappDefaultAllocatorImpl.java b/server/src/com/cloud/netapp/NetappDefaultAllocatorImpl.java
deleted file mode 100644
index 3692983..0000000
--- a/server/src/com/cloud/netapp/NetappDefaultAllocatorImpl.java
+++ /dev/null
@@ -1,142 +0,0 @@
-// 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.
-package com.cloud.netapp;
-
-import java.io.IOException;
-import java.rmi.ServerException;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
-import netapp.manage.NaException;
-
-public class NetappDefaultAllocatorImpl implements NetappAllocator
-{
-	private static HashMap<String, Integer> _poolNameToLastVolumeIdAllocated = new HashMap<String, Integer>();
-	private NetappManager _netappMgr;
-    public static final Logger s_logger = Logger.getLogger(NetappDefaultAllocatorImpl.class.getName());
-	
-	public NetappDefaultAllocatorImpl(NetappManager netappMgr) {
-		_netappMgr = netappMgr;
-	}
-	
-	public synchronized NetappVolumeVO chooseLeastFullVolumeFromPool(String poolName, long lunSizeGb) 
-	{
-		List<NetappVolumeVO> volumesOnPoolAscending = _netappMgr.listVolumesAscending(poolName);
-		
-		if(volumesOnPoolAscending==null)
-		{
-			//no pools exist in db
-			return null;
-		}
-		
-		long maxAvailable = 0;
-		NetappVolumeVO selectedVol = null;
-		for(NetappVolumeVO vol : volumesOnPoolAscending)
-		{
-			try {
-				long availableBytes = _netappMgr.returnAvailableVolumeSize(vol.getVolumeName(), vol.getUsername(), vol.getPassword(), vol.getIpAddress());
-
-				if(lunSizeGb <= bytesToGb(availableBytes) && availableBytes>maxAvailable)
-				{
-					maxAvailable = availableBytes; //new max
-					selectedVol = vol; //new least loaded vol
-				}
-			} catch (ServerException se) {
-				s_logger.debug("Ignoring failure to obtain volume size for volume " + vol.getVolumeName());
-				continue;	
-			}
-		}
-		
-		return selectedVol;
-	}
-	
-	/**
-	 * This method does the actual round robin allocation
-	 * @param poolName 
-	 * @param lunSizeGb
-	 * @return -- the selected volume to create the lun on
-	 * @throws IOException
-	 * @throws NaException
-	 */
-	public synchronized NetappVolumeVO chooseVolumeFromPool(String poolName, long lunSizeGb)
-	{
-		int pos = 0; //0 by default
-		List<NetappVolumeVO> volumesOnPoolAscending = _netappMgr.listVolumesAscending(poolName);
-		
-		if(volumesOnPoolAscending==null)
-		{
-			//no pools exist in db
-			return null;
-		}
-		
-		//get the index of the record from the map
-		if(_poolNameToLastVolumeIdAllocated.get(poolName)==null)
-		{
-			pos=0;
-		}
-		else
-		{
-			pos=_poolNameToLastVolumeIdAllocated.get(poolName);
-		}
-		
-		//update for RR effect
-		_poolNameToLastVolumeIdAllocated.put(poolName, (pos+1)%volumesOnPoolAscending.size());
-		
-		//now iterate over the records
-		Object[] volumesOnPoolAscendingArray = volumesOnPoolAscending.toArray();
-		int counter=0;
-		while (counter < volumesOnPoolAscendingArray.length)
-		{
-			NetappVolumeVO vol = (NetappVolumeVO)volumesOnPoolAscendingArray[pos];
-			
-			//check if the volume fits the bill
-			long availableBytes;
-			try {
-				availableBytes = _netappMgr.returnAvailableVolumeSize(vol.getVolumeName(), vol.getUsername(), vol.getPassword(), vol.getIpAddress());
-									
-				if(lunSizeGb <= bytesToGb(availableBytes))
-				{
-					//found one
-					return vol;
-				}
-				pos = (pos + 1) % volumesOnPoolAscendingArray.length;
-				counter++;
-			} catch (ServerException e) {
-				s_logger.debug("Ignoring failure to obtain volume size for volume " + vol.getVolumeName());
-				continue;
-			}
-		}
-		
-		return null;
-	}
-	
-	
-	/**
-	 * This method does the byte to gb conversion
-	 * @param bytes 
-	 * @return -- converted gb
-	 */
-	private long bytesToGb(long bytes){
-		long returnVal = (bytes/(1024*1024*1024));
-		return returnVal;
-	}
-
-}
-
-	 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/NetappManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/NetappManager.java b/server/src/com/cloud/netapp/NetappManager.java
deleted file mode 100644
index 7216c50..0000000
--- a/server/src/com/cloud/netapp/NetappManager.java
+++ /dev/null
@@ -1,66 +0,0 @@
-// 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.
-package com.cloud.netapp;
-
-import java.net.UnknownHostException;
-import java.rmi.ServerException;
-import java.util.List;
-
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.exception.ResourceInUseException;
-import com.cloud.utils.component.Manager;
-
-public interface NetappManager  extends Manager {
-	enum AlgorithmType {
-		RoundRobin,
-		LeastFull
-	}
-	void destroyVolumeOnFiler(String ipAddress, String aggrName, String volName) throws ServerException, InvalidParameterValueException, ResourceInUseException;
-
-	void createVolumeOnFiler(String ipAddress, String aggName, String poolName,
-			String volName, String volSize, String snapshotPolicy,
-			Integer snapshotReservation, String username, String password)
-			throws UnknownHostException, ServerException, InvalidParameterValueException;
-
-	public String[] associateLun(String guestIqn, String path) throws ServerException, InvalidParameterValueException;
-
-
-	void disassociateLun(String iGroup, String path) throws ServerException, InvalidParameterValueException;
-
-	List<LunVO> listLunsOnFiler(String poolName);
-
-	void destroyLunOnFiler(String path) throws ServerException, InvalidParameterValueException;
-
-	List<NetappVolumeVO> listVolumesOnFiler(String poolName);
-
-	List<NetappVolumeVO> listVolumesAscending(String poolName);
-
-	long returnAvailableVolumeSize(String volName, String userName,
-			String password, String serverIp) throws ServerException;
-
-	void createPool(String poolName, String algorithm) throws InvalidParameterValueException;
-
-	void modifyPool(String poolName, String algorithm) throws InvalidParameterValueException;
-
-	void deletePool(String poolName) throws InvalidParameterValueException, ResourceInUseException;
-
-	List<PoolVO> listPools();
-
-	public String[] createLunOnFiler(String poolName, Long lunSize) throws InvalidParameterValueException, ServerException, ResourceAllocationException;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/NetappManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/NetappManagerImpl.java b/server/src/com/cloud/netapp/NetappManagerImpl.java
deleted file mode 100644
index 7dcb9d3..0000000
--- a/server/src/com/cloud/netapp/NetappManagerImpl.java
+++ /dev/null
@@ -1,1040 +0,0 @@
-// 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.
-package com.cloud.netapp;
-
-import java.io.IOException;
-import java.net.UnknownHostException;
-import java.rmi.ServerException;
-import java.util.ArrayList;
-import java.util.ConcurrentModificationException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import javax.ejb.Local;
-import javax.naming.ConfigurationException;
-
-import netapp.manage.NaAPIFailedException;
-import netapp.manage.NaAuthenticationException;
-import netapp.manage.NaElement;
-import netapp.manage.NaException;
-import netapp.manage.NaProtocolException;
-import netapp.manage.NaServer;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.exception.ResourceInUseException;
-import com.cloud.netapp.dao.LunDao;
-import com.cloud.netapp.dao.PoolDao;
-import com.cloud.netapp.dao.VolumeDao;
-import com.cloud.utils.component.Inject;
-import com.cloud.utils.db.DB;
-import com.cloud.utils.db.Transaction;
-import com.cloud.utils.exception.CloudRuntimeException;
-
-@Local(value = { NetappManager.class })
-public class NetappManagerImpl implements NetappManager
-{   
-	public enum Algorithm { roundrobin,leastfull }
-
-    protected String _name;
-    
-    public static final Logger s_logger = Logger.getLogger(NetappManagerImpl.class.getName());
-    @Inject public VolumeDao _volumeDao;
-    @Inject public PoolDao _poolDao;
-    @Inject public LunDao _lunDao;
-    private NetappAllocator _netappAllocator = null;
-    
-    /**
-     * Default constructor
-     */
-    public NetappManagerImpl(){
-    }
-    
-    @Override
-    public  void createPool(String poolName, String algorithm) throws InvalidParameterValueException
-    {	
-		if(s_logger.isDebugEnabled())
-			s_logger.debug("Request --> createPool ");
-		
-    	PoolVO pool = null;
-    	validAlgorithm(algorithm);
-    	try {
-    		pool = new PoolVO(poolName, algorithm);
-    		_poolDao.persist(pool); 
-    		
-    		if(s_logger.isDebugEnabled())
-    			s_logger.debug("Response --> createPool:success");
-    		
-    	} catch (CloudRuntimeException cre){
-    		pool = _poolDao.findPool(poolName);
-        	if (pool != null) {
-        		throw new InvalidParameterValueException("Duplicate Pool Name");
-        	} else {
-        		throw cre;
-        	}
-    	}
-    }
-    
-    /**
-     * This method validates the algorithm used for allocation of the volume
-     * @param algorithm -- algorithm type
-     * @throws InvalidParameterValueException
-     */
-    private void validAlgorithm(String algorithm) throws InvalidParameterValueException {
-    	//TODO: use enum
-    	if(!algorithm.equalsIgnoreCase("roundrobin") && !algorithm.equalsIgnoreCase("leastfull")){
-    		throw new InvalidParameterValueException("Unknown algorithm " + algorithm);
-    	}
-    }
-    
-    /**
-     * Utility method to get the netapp server object
-     * @param serverIp -- ip address of netapp box
-     * @param userName -- username
-     * @param password -- password
-     * @return
-     * @throws UnknownHostException
-     */
-    private NaServer getServer(String serverIp, String userName, String password) throws UnknownHostException {
-    	//Initialize connection to server, and
-		//request version 1.3 of the API set
-    	NaServer s = new NaServer(serverIp, 1, 3); 
-		s.setStyle(NaServer.STYLE_LOGIN_PASSWORD);
-		s.setAdminUser(userName, password); 
-    	
-		return s;
-    }
-    
-    @Override
-    public void modifyPool(String poolName, String algorithm) throws InvalidParameterValueException
-    {	
-    	validAlgorithm(algorithm);
-    	PoolVO pool = _poolDao.findPool(poolName);
-    	
-    	if(pool == null){
-    		throw new InvalidParameterValueException("Cannot find pool " + poolName);
-    	}
-    	
-    	validAlgorithm(algorithm);
-    	
-    	pool.setAlgorithm(algorithm);
-    	pool.setName(poolName);
-    	
-    	_poolDao.update(pool.getId(), pool);
-    }
-    
-    @Override
-    public void deletePool(String poolName) throws InvalidParameterValueException, ResourceInUseException
-    {
-		if(s_logger.isDebugEnabled())
-			s_logger.debug("Request --> deletePool ");
-		
-    	PoolVO pool = _poolDao.findPool(poolName);
-    	if(pool == null){
-    		throw new InvalidParameterValueException("Cannot find pool " + poolName);
-    	}
-    	//check if pool is empty
-    	int volCount = _volumeDao.listVolumes(poolName).size();
-
-    	if(volCount==0){
-    		_poolDao.remove(pool.getId());
-		if(s_logger.isDebugEnabled())
-			s_logger.debug("Request --> deletePool: Success ");
-    		
-    	} else {
-    		throw new ResourceInUseException("Cannot delete non-empty pool");
-    	}
-    }
-    
-    @Override
-    public List<PoolVO> listPools(){
-    	return _poolDao.listAll();
-    }
-    
-    /**
-     * This method destroys the volume on netapp filer
-     * @param ipAddress -- ip address of filer
-     * @param aggrName -- name of containing aggregate
-     * @param volName -- name of volume to destroy
-     * @throws ResourceInUseException 
-     * @throws NaException
-     * @throws IOException
-     * @throws NaProtocolException 
-     * @throws NaAPIFailedException 
-     * @throws NaAuthenticationException 
-     */
-    @Override
-    @DB
-    public void destroyVolumeOnFiler(String ipAddress, String aggrName, String volName) throws ServerException, InvalidParameterValueException, ResourceInUseException{
-		NaElement xi0;
-    	NaElement xi1;
- 		NetappVolumeVO volume = null;
-		
- 		volume = _volumeDao.findVolume(ipAddress, aggrName, volName);
- 		
- 		if(volume==null)
- 		{
- 			s_logger.warn("The volume does not exist in our system");
- 			throw new InvalidParameterValueException("The given tuple:"+ipAddress+","+aggrName+","+volName+" doesn't exist in our system");
- 		}
-
- 		List<LunVO> lunsOnVol = _lunDao.listLunsByVolId(volume.getId());
- 		
- 		if(lunsOnVol!=null && lunsOnVol.size()>0)
- 		{
- 			s_logger.warn("There are luns on the volume");
- 			throw new ResourceInUseException("There are luns on the volume");
- 		}
- 		
- 		final Transaction txn = Transaction.currentTxn();
- 		txn.start();
- 		PoolVO pool = _poolDao.findById(volume.getPoolId());
- 		if (pool == null) {
- 			throw new InvalidParameterValueException("Failed to find pool for given volume");
- 			//FIXME: choose a better exception. this is a db integrity exception
- 		}
- 		pool = _poolDao.acquireInLockTable(pool.getId());
- 		if (pool == null) {
- 			throw new ConcurrentModificationException("Failed to acquire lock on pool " + volume.getPoolId());
- 		}
-		NaServer s = null;
-		try 
-		{
-			s = getServer(volume.getIpAddress(), volume.getUsername(), volume.getPassword());
-			//bring the volume down
-			xi0 = new NaElement("volume-offline");
-			xi0.addNewChild("name",volName);
-			s.invokeElem(xi0);
-
-			//now destroy it
-			xi1 = new NaElement("volume-destroy");
-			xi1.addNewChild("name",volName);
-			s.invokeElem(xi1);
-
-			//now delete from our records
-			_volumeDao.remove(volume.getId());
-			txn.commit();
-
-		} catch (UnknownHostException uhe) {
-			s_logger.warn("Unable to delete volume on filer " , uhe);
-			throw new ServerException("Unable to delete volume on filer", uhe);
-		}catch (NaAPIFailedException naf) {
-			s_logger.warn("Unable to delete volume on filer " , naf);
-			if( naf.getErrno() == 13040 ){
-				s_logger.info("Deleting the volume: " + volName);
-				_volumeDao.remove(volume.getId());
-				txn.commit();
-			}
-			
-			throw new ServerException("Unable to delete volume on filer", naf);
-		} 
-		catch (NaException nae) {
-			txn.rollback();
-			s_logger.warn("Unable to delete volume on filer " , nae);
-			throw new ServerException("Unable to delete volume on filer", nae);
-		} catch (IOException ioe) {
-			txn.rollback();
-			s_logger.warn("Unable to delete volume on filer " , ioe);
-			throw new ServerException("Unable to delete volume on filer", ioe);
-		}
-		finally
-		{
-			if (pool != null) {
-				_poolDao.releaseFromLockTable(pool.getId());
-			}
-			if (s != null)
-				s.close();
-		}
-
-
-			
-    }
-    
-    /**
-     * This method creates a volume on netapp filer
-     * @param ipAddress -- ip address of the filer
-     * @param aggName -- name of aggregate
-     * @param poolName -- name of pool
-     * @param volName -- name of volume
-     * @param volSize -- size of volume to be created
-     * @param snapshotPolicy -- associated snapshot policy for volume
-     * @param snapshotReservation -- associated reservation for snapshots
-     * @param username -- username
-     * @param password -- password
-     * @throws UnknownHostException
-     * @throws InvalidParameterValueException 
-     */
-    @Override
-    @DB
-	public void createVolumeOnFiler(String ipAddress, String aggName, String poolName, String volName, String volSize, String snapshotPolicy, Integer snapshotReservation, String username, String password) throws  UnknownHostException,  ServerException, InvalidParameterValueException 
-	{
-  
-		if(s_logger.isDebugEnabled())
-			s_logger.debug("Request --> createVolume "+"serverIp:"+ipAddress);
-		
-		boolean snapPolicy = false;
-		boolean snapshotRes = false;
-		boolean volumeCreated = false;
-		
-		NaServer s = getServer(ipAddress, username, password); 
-		
-		NaElement xi = new NaElement("volume-create");
-		xi.addNewChild("volume", volName);
-		xi.addNewChild("containing-aggr-name",aggName);
-		xi.addNewChild("size",volSize);
-		
-		NaElement xi1 = new NaElement("snapshot-set-reserve");
-		if(snapshotReservation!=null)
-		{
-			snapshotRes = true;
-			xi1.addNewChild("percentage",snapshotReservation.toString());
-			xi1.addNewChild("volume",volName);
-		}
-		
-		NaElement xi2 = new NaElement("snapshot-set-schedule");
-		
-		if(snapshotPolicy!=null)
-		{
-			snapPolicy = true;
-			
-			String weeks = null;
-			String days = null;
-			String hours = null;
-			String whichHours = null;
-			String minutes = null;
-			String whichMinutes = null;
-			
-			StringTokenizer s1 = new StringTokenizer(snapshotPolicy," ");
-			
-			//count=4: weeks days hours@csi mins@csi
-			//count=3: weeks days hours@csi
-			//count=2: weeks days
-			//count=1: weeks
-	
-			if(s1.hasMoreTokens())
-			{
-				weeks = s1.nextToken();
-			}
-			if(weeks!=null && s1.hasMoreTokens())
-			{
-				days = s1.nextToken();
-			}
-			if(days!=null && s1.hasMoreTokens())
-			{
-				String[] hoursArr = s1.nextToken().split("@");
-				hours = hoursArr[0];
-				whichHours = hoursArr[1];
-			}
-			if(hours!=null && s1.hasMoreTokens())
-			{
-				String[] minsArr = s1.nextToken().split("@");
-				minutes = minsArr[0];
-				whichMinutes = minsArr[1];
-			}
-			
-			if(weeks!=null)
-				xi2.addNewChild("weeks",weeks);
-			if(days!=null)
-				xi2.addNewChild("days",days);
-			if(hours!=null)
-				xi2.addNewChild("hours",hours);
-			if(minutes!=null)
-				xi2.addNewChild("minutes",minutes);
-			xi2.addNewChild("volume",volName);
-			
-			if(whichHours!=null)
-				xi2.addNewChild("which-hours",whichHours);
-			if(whichMinutes!=null)
-				xi2.addNewChild("which-minutes",whichMinutes);
-		}
-		Long volumeId = null;
-		
-		final Transaction txn = Transaction.currentTxn();
-		txn.start();
-		NetappVolumeVO volume = null;
-		volume = _volumeDao.findVolume(ipAddress, aggName, volName);
-		
-		if(volume != null) {
-			throw new InvalidParameterValueException("The volume for the given ipAddress/aggregateName/volumeName tuple already exists");
-		}
-		PoolVO pool = _poolDao.findPool(poolName);
-		if (pool == null) {
-			throw new InvalidParameterValueException("Cannot find pool " + poolName);
-		}
-		pool = _poolDao.acquireInLockTable(pool.getId());
-		if (pool == null) {
-			s_logger.warn("Failed to acquire lock on pool " + poolName);
-			throw new ConcurrentModificationException("Failed to acquire lock on pool " + poolName);
-		}
-		volume = new NetappVolumeVO(ipAddress, aggName, pool.getId(), volName, volSize, "", 0, username, password,0,pool.getName());
-		volume = _volumeDao.persist(volume);
-		
-		volumeId = volume.getId();
-		try {
-			s.invokeElem(xi);
-			volumeCreated = true;
-			
-			if(snapshotRes)
-			{
-				s.invokeElem(xi1);
-				volume.setSnapshotReservation(snapshotReservation);
-				_volumeDao.update(volumeId, volume);
-			}
-
-			if(snapPolicy)
-			{
-				s.invokeElem(xi2);
-				volume.setSnapshotPolicy(snapshotPolicy);
-				_volumeDao.update(volumeId, volume);
-			}	
-			txn.commit();
-		} catch (NaException nae) {
-			//zapi call failed, log and throw e
-			s_logger.warn("Failed to create volume on the netapp filer:", nae);
-			txn.rollback();
-			if(volumeCreated) {
-				try {
-					deleteRogueVolume(volName, s);//deletes created volume on filer
-				} catch (NaException e) {
-					s_logger.warn("Failed to cleanup created volume whilst rolling back on the netapp filer:", e);
-					throw new ServerException("Unable to create volume via cloudtools."+"Failed to cleanup created volume on netapp filer whilst rolling back on the cloud db:", e);
-				} catch (IOException e) {
-					s_logger.warn("Failed to cleanup created volume whilst rolling back on the netapp filer:", e);
-					throw new ServerException("Unable to create volume via cloudtools."+"Failed to cleanup created volume on netapp filer whilst rolling back on the cloud db:", e);
-				}
-			}
-			throw new ServerException("Unable to create volume", nae);
-		} catch (IOException ioe) {
-			s_logger.warn("Failed to create volume on the netapp filer:", ioe);
-			txn.rollback();
-			if(volumeCreated) {
-				try {
-					deleteRogueVolume(volName, s);//deletes created volume on filer
-				} catch (NaException e) {
-					s_logger.warn("Failed to cleanup created volume whilst rolling back on the netapp filer:", e);
-					throw new ServerException("Unable to create volume via cloudtools."+"Failed to cleanup created volume on netapp filer whilst rolling back on the cloud db:", e);
-				} catch (IOException e) {
-					s_logger.warn("Failed to cleanup created volume whilst rolling back on the netapp filer:", e);
-					throw new ServerException("Unable to create volume via cloudtools."+"Failed to cleanup created volume on netapp filer whilst rolling back on the cloud db:", e);
-				}
-			}
-			throw new ServerException("Unable to create volume", ioe);
-		}
-		finally{
-			if (s != null) 
-				s.close();
-			if (pool != null) 
-				_poolDao.releaseFromLockTable(pool.getId());
-			
-		}
-	}
-	
-    /**
-     * This method is primarily used to cleanup volume created on the netapp filer, when createVol api command fails at snapshot reservation. 
-     * We roll back the db record, but the record on the netapp box still exists. We clean up that record using this helper method.
-     * @param volName
-     * @param s -- server reference
-     * @throws NaException
-     * @throws IOException
-     */
-    private void deleteRogueVolume(String volName, NaServer s) throws NaException, IOException {
-		//bring the volume down
-		NaElement xi0 = new NaElement("volume-offline");
-		xi0.addNewChild("name",volName);
-		s.invokeElem(xi0);
-
-		//now destroy it
-		NaElement xi1 = new NaElement("volume-destroy");
-		xi1.addNewChild("name",volName);
-		s.invokeElem(xi1);
-    }
-    
-	/**
-	 * This method lists all the volumes by pool name
-	 * @param poolName
-	 * @return -- volumes in that pool
-	 */
-    @Override
-	public List<NetappVolumeVO> listVolumesOnFiler(String poolName){
-		
-    	List<NetappVolumeVO> vols = _volumeDao.listVolumesAscending(poolName);
-    	
-    	for(NetappVolumeVO vol : vols){
-    		try {
-				String snapScheduleOnFiler = returnSnapshotSchedule(vol);
-				vol.setSnapshotPolicy(snapScheduleOnFiler);
-				
-			} catch (ServerException e) {
-				s_logger.warn("Error trying to get snapshot schedule for volume"+vol.getVolumeName());
-			}
-    	}
-		return vols;
-	}
-
-    
-    /**
-     * Utility method to return snapshot schedule for a volume
-     * @param vol -- volume for the snapshot schedule creation
-     * @return -- the snapshot schedule
-     * @throws ServerException
-     */
-    private String returnSnapshotSchedule(NetappVolumeVO vol) throws ServerException{
-
-		NaElement xi = new NaElement("snapshot-get-schedule");
-		xi.addNewChild("volume", vol.getVolumeName());
-		NaServer s = null;
-		try {
-			s = getServer(vol.getIpAddress(), vol.getUsername(), vol.getPassword());
-			NaElement xo = s.invokeElem(xi);
-			String weeks = xo.getChildContent("weeks");
-			String days = xo.getChildContent("days");
-			String hours = xo.getChildContent("hours");
-			String minutes = xo.getChildContent("minutes");
-			String whichHours = xo.getChildContent("which-hours");
-			String whichMinutes = xo.getChildContent("which-minutes");
-			
-			StringBuilder sB = new StringBuilder();
-			sB.append(weeks).append(" ").append(days).append(" ").append(hours).append("@").append(whichHours).append(" ").append(minutes).append("@").append(whichMinutes);
-			return sB.toString();
-		} catch (NaException nae) {
-			s_logger.warn("Failed to get volume size ", nae);
-			throw new ServerException("Failed to get volume size", nae);
-		} catch (IOException ioe) {
-			s_logger.warn("Failed to get volume size ", ioe);
-			throw new ServerException("Failed to get volume size", ioe);
-		}
-		finally{
-			if (s != null)
-				s.close();
-		}
-    }
-	/**
-	 * This method returns the ascending order list of volumes based on their ids
-	 * @param poolName -- name of pool
-	 * @return -- ascending ordered list of volumes based on ids
-	 */
-    @Override
-	public List<NetappVolumeVO> listVolumesAscending(String poolName){
-		return _volumeDao.listVolumesAscending(poolName);
-	}
-	
-	/**
-	 * This method returns the available size on the volume in terms of bytes
-	 * @param volName -- name of volume
-	 * @param userName -- username
-	 * @param password -- password
-	 * @param serverIp -- ip address of filer
-	 * @throws UnknownHostException 
-	 * @return-- available size on the volume in terms of bytes; return -1 if volume is offline
-	 * @throws ServerException
-	 */
-    @Override
-	public long returnAvailableVolumeSize(String volName, String userName, String password, String serverIp) throws ServerException {	
-		long availableSize = 0;
-
-		NaElement xi = new NaElement("volume-list-info");
-		xi.addNewChild("volume", volName);
-		NaServer s = null;
-		String volumeState = null;
-		try {
-			s = getServer(serverIp, userName, password);
-			NaElement xo = s.invokeElem(xi);
-			List volList = xo.getChildByName("volumes").getChildren();
-			Iterator volIter = volList.iterator();
-			while(volIter.hasNext()){
-				NaElement volInfo=(NaElement)volIter.next();
-				availableSize = volInfo.getChildLongValue("size-available", -1);
-				volumeState = volInfo.getChildContent("state");
-			}
-			
-			if (volumeState != null) {
-				return volumeState.equalsIgnoreCase("online") ? availableSize : -1; //return -1 if volume is offline
-			}
-			else {
-				//catch all
-				//volume state unreported
-				return -1; // as good as volume offline
-			}
-				
-			
-		} catch (NaException nae) {
-			s_logger.warn("Failed to get volume size ", nae);
-			throw new ServerException("Failed to get volume size", nae);
-		} catch (IOException ioe) {
-			s_logger.warn("Failed to get volume size ", ioe);
-			throw new ServerException("Failed to get volume size", ioe);
-		}
-		finally{
-			if (s != null)
-				s.close();
-		}
-	}
-
-	/**
-	 * This method creates a lun on the netapp filer
-	 * @param poolName -- name of the pool
-	 * @param lunSize -- size of the lun to be created
-	 * @return -- lun path 
-	 * @throws IOException
-	 * @throws ResourceAllocationException 
-	 * @throws NaException
-	 */
-    @Override
-    @DB
-	public String[] createLunOnFiler(String poolName, Long lunSize) throws  ServerException, InvalidParameterValueException, ResourceAllocationException {
-    	String[] result = new String[3];
-		StringBuilder lunName = new StringBuilder("lun-");
-		LunVO lun = null;
-    	final Transaction txn = Transaction.currentTxn();
-		txn.start();
-    	PoolVO pool = _poolDao.findPool(poolName);
-    	
-    	if(pool == null){
-    		throw new InvalidParameterValueException("Cannot find pool " + poolName);
-    	}
-
-    	if (lunSize <= 0) {
-    		throw new InvalidParameterValueException("Please specify a valid lun size in Gb");
-    	}
-    	
-    	String algorithm = pool.getAlgorithm();
-    	NetappVolumeVO selectedVol = null;
-
-    	//sanity check
-    	int numVolsInPool = _volumeDao.listVolumes(poolName).size();
-
-    	if (numVolsInPool == 0)
-    	{
-    		throw new InvalidParameterValueException("No volumes exist in the given pool");
-    	}
-    	pool = _poolDao.acquireInLockTable(pool.getId());
-    	if (pool == null) {
-    		s_logger.warn("Failed to acquire lock on the pool " + poolName);
-    		return result;
-    	}
-    	NaServer s = null;
-
-    	try 
-    	{
-    		if(algorithm == null || algorithm.equals(Algorithm.roundrobin.toString()))
-    		{
-    			selectedVol = _netappAllocator.chooseVolumeFromPool(poolName, lunSize);
-    		}
-    		else if(algorithm.equals(Algorithm.leastfull.toString()))
-    		{
-
-    			selectedVol = _netappAllocator.chooseLeastFullVolumeFromPool(poolName, lunSize);
-    		}
-
-    		if(selectedVol == null)
-    		{
-    			throw new ServerException("Could not find a suitable volume to create lun on");
-    		}
-
-    		if(s_logger.isDebugEnabled())
-    			s_logger.debug("Request --> createLun "+"serverIp:"+selectedVol.getIpAddress());
-    		
-    		StringBuilder exportPath = new StringBuilder("/vol/");
-    		exportPath.append(selectedVol.getVolumeName());
-    		exportPath.append("/");
-
-    		lun = new LunVO(exportPath.toString(), selectedVol.getId(), lunSize, "","");
-    		lun = _lunDao.persist(lun);
-    		
-    		//Lun id created: 6 digits right justified eg. 000045
-    		String lunIdStr = lun.getId().toString();
-    		String zeroStr = "000000";
-    		int length = lunIdStr.length();
-    		int offset = 6-length;
-    		StringBuilder lunIdOnPath = new StringBuilder();
-    		lunIdOnPath.append(zeroStr.substring(0, offset));
-    		lunIdOnPath.append(lunIdStr);
-    		exportPath.append("lun-").append(lunIdOnPath.toString());
-    		
-    		lunName.append(lunIdOnPath.toString());
-    		
-    		//update lun name
-    		lun.setLunName(lunName.toString());
-    		_lunDao.update(lun.getId(), lun);
-    		
-    		NaElement xi;
-    		NaElement xi1;
-
-    		long lSizeBytes = 1L*lunSize*1024*1024*1024; //This prevents integer overflow
-    		Long lunSizeBytes = new Long(lSizeBytes);
-    		
-    		s = getServer(selectedVol.getIpAddress(), selectedVol.getUsername(),selectedVol.getPassword()); 
-
-    		//create lun
-    		xi = new NaElement("lun-create-by-size");
-    		xi.addNewChild("ostype","linux");
-    		xi.addNewChild("path",exportPath.toString());
-    		xi.addNewChild("size", (lunSizeBytes.toString()));
-    		
-    		s.invokeElem(xi);	
-
-    		try
-    		{
-	    		//now create an igroup
-				xi1 = new NaElement("igroup-create");
-				xi1.addNewChild("initiator-group-name", lunName .toString());
-				xi1.addNewChild("initiator-group-type", "iscsi");
-				xi1.addNewChild("os-type", "linux");
-				s.invokeElem(xi1);
-    		}catch(NaAPIFailedException e)
-    		{
-    			if(e.getErrno() == 9004)
-    			{
-    				//igroup already exists hence no error
-    				s_logger.warn("Igroup already exists");
-    			}
-    		}
-
-    		//get target iqn
-			NaElement xi4 = new NaElement("iscsi-node-get-name");
-			NaElement xo = s.invokeElem(xi4);
-			String iqn = xo.getChildContent("node-name");
-			
-			lun.setTargetIqn(iqn);
-			_lunDao.update(lun.getId(), lun);
-			
-			//create lun mapping
-			//now map the lun to the igroup
-			NaElement xi3 = new NaElement("lun-map");
-			xi3.addNewChild("force", "true");
-			xi3.addNewChild("initiator-group", lunName.toString());
-			xi3.addNewChild("path", lun.getPath() + lun.getLunName());
-			
-			xi3.addNewChild("lun-id", lunIdStr);
-			s.invokeElem(xi3);
-    		
-    		txn.commit();
-    		//set the result
-    		result[0] = lunName.toString();//lunname
-    		result[1] = iqn;//iqn
-    		result[2] =  selectedVol.getIpAddress();
-    		
-    		return result;
-    		
-    	}
-    	catch (NaAPIFailedException naf)
-    	{
-			if(naf.getErrno() == 9023){ //lun is already mapped to this group
-				result[0] = lunName.toString();//lunname;
-				result[1] = lun.getTargetIqn();//iqn
-				result[2] = selectedVol.getIpAddress();
-				return result;
-			}			
-			if(naf.getErrno() == 9024){ //another lun mapped at this group
-				result[0] = lunName.toString();//lunname;
-				result[1] = lun.getTargetIqn();//iqn
-				result[2] = selectedVol.getIpAddress();
-				return result;
-			}	
-    	}
-    	catch (NaException nae) 
-    	{
-    		txn.rollback();
-    		throw new ServerException("Unable to create LUN", nae);
-    	} 
-    	catch (IOException ioe) 
-    	{
-    		txn.rollback();
-    		throw new ServerException("Unable to create LUN", ioe);
-    	}
-    	finally
-    	{
-    		if (pool != null) {
-    			_poolDao.releaseFromLockTable(pool.getId());
-    		}
-    		if (s != null) {
-    			s.close();
-    		}
-    	}
-
-    	return result;
-	}
-	
-	/**
-	 * This method destroys a lun on the netapp filer
-	 * @param lunName -- name of the lun to be destroyed
-	 */
-    @Override
-    @DB
-	public void destroyLunOnFiler(String lunName) throws InvalidParameterValueException, ServerException{
-		
-		final Transaction txn = Transaction.currentTxn();
-		txn.start();
-		
-		LunVO lun = _lunDao.findByName(lunName);
-		
-		if(lun == null)
-			throw new InvalidParameterValueException("Cannot find lun");
-		
-		NetappVolumeVO vol = _volumeDao.acquireInLockTable(lun.getVolumeId());
-		if (vol == null) {
-			s_logger.warn("Failed to lock volume id= " + lun.getVolumeId());
-			return;
-		}
-		NaServer s = null;
-		try {
-			s = getServer(vol.getIpAddress(), vol.getUsername(), vol.getPassword()); 
-			
-			if(s_logger.isDebugEnabled())
-				s_logger.debug("Request --> destroyLun "+":serverIp:"+vol.getIpAddress());
-			
-			try {
-				//Unmap lun
-				NaElement xi2 = new NaElement("lun-unmap");
-				xi2.addNewChild("initiator-group", lunName);
-				xi2.addNewChild("path", lun.getPath()+lun.getLunName());
-				s.invokeElem(xi2);
-			} catch (NaAPIFailedException naf) {
-				if(naf.getErrno()==9016)
-					s_logger.warn("no map exists excpn 9016 caught in deletelun, continuing with delete");
-			}
-
-			//destroy lun
-			NaElement xi = new NaElement("lun-destroy");
-			xi.addNewChild("force","true");
-			xi.addNewChild("path", lun.getPath()+lun.getLunName());
-			s.invokeElem(xi);
-			
-			//destroy igroup
-			NaElement xi1 = new NaElement("igroup-destroy");
-			//xi1.addNewChild("force","true");
-			xi1.addNewChild("initiator-group-name",lunName);
-			s.invokeElem(xi1);
-			
-			_lunDao.remove(lun.getId());
-			txn.commit();
-		} catch(UnknownHostException uhe) {
-			txn.rollback();
-			s_logger.warn("Failed to delete lun", uhe);
-			throw new ServerException("Failed to delete lun", uhe);
-		} catch ( IOException ioe) {
-			txn.rollback();
-			s_logger.warn("Failed to delete lun", ioe);
-			throw new ServerException("Failed to delete lun", ioe);
-		}catch (NaAPIFailedException naf) {
-			if(naf.getErrno() == 9017){//no such group exists excpn
-				s_logger.warn("no such group exists excpn 9017 caught in deletelun, continuing with delete");
-				_lunDao.remove(lun.getId());
-				txn.commit();
-			}else if(naf.getErrno() == 9029){//LUN maps for this initiator group exist
-				s_logger.warn("LUN maps for this initiator group exist errno 9029 caught in deletelun, continuing with delete");
-				_lunDao.remove(lun.getId());
-				txn.commit();
-			}else{
-				txn.rollback();
-				s_logger.warn("Failed to delete lun", naf);
-				throw new ServerException("Failed to delete lun", naf);
-			}
-
-		} 
-		catch (NaException nae) {
-			txn.rollback();
-			s_logger.warn("Failed to delete lun", nae);
-			throw new ServerException("Failed to delete lun", nae);
-		}
-		finally{
-			if (vol != null) {
-				_volumeDao.releaseFromLockTable(vol.getId());
-			}
-			if (s != null)
-				s.close();
-		}
-
-	}
-	
-	/**
-	 * This method lists the luns on the netapp filer
-	 * @param volId -- id of the containing volume
-	 * @return -- list of netapp luns
-	 * @throws NaException
-	 * @throws IOException
-	 */
-    @Override
-    public List<LunVO> listLunsOnFiler(String poolName)
-	{
-		if(s_logger.isDebugEnabled())
-			s_logger.debug("Request --> listLunsOnFiler ");
-		
-    	List<LunVO> luns = new ArrayList<LunVO>();
-    	
-    	List<NetappVolumeVO> vols = _volumeDao.listVolumes(poolName);
-    	
-    	for(NetappVolumeVO vol : vols)
-    	{
-    		luns.addAll(_lunDao.listLunsByVolId(vol.getId()));
-    	}
-    
-		if(s_logger.isDebugEnabled())
-			s_logger.debug("Response --> listLunsOnFiler:success");
-    	
-    	return luns;
-	}
-	
-
-	/**
-	 * This method disassociates a lun from the igroup on the filer
-	 * @param iGroup -- igroup name
-	 * @param lunName -- lun name
-	 */
-    @Override
-	public void disassociateLun(String iGroup, String lunName) throws ServerException, InvalidParameterValueException
-	{
-		NaElement xi;
-		LunVO lun = _lunDao.findByName(lunName);
-		
-		if(lun == null)
-			throw new InvalidParameterValueException("Cannot find LUN " + lunName);
-		
-		NetappVolumeVO vol = _volumeDao.findById(lun.getVolumeId());
-		NaServer s = null;
-		try {
-			s = getServer(vol.getIpAddress(), vol.getUsername(), vol.getPassword());
-			
-			if(s_logger.isDebugEnabled())
-				s_logger.debug("Request --> disassociateLun "+":serverIp:"+vol.getIpAddress());
-			
-			xi = new NaElement("igroup-remove");
-			xi.addNewChild("force", "true");
-			xi.addNewChild("initiator", iGroup);
-			xi.addNewChild("initiator-group-name", lunName);		
-			s.invokeElem(xi);
-			
-		} catch(UnknownHostException uhe) {
-			throw new ServerException("Failed to disassociate lun", uhe);
-		} catch ( IOException ioe) {
-			throw new ServerException("Failed to disassociate lun", ioe);
-		} catch (NaException nae) {
-			throw new ServerException("Failed to disassociate lun", nae);
-		} finally{
-			if (s != null)
-				s.close();
-		}
-		
-	}
-	
-	/**
-	 * This method associates a lun to a particular igroup
-	 * @param iqn
-	 * @param iGroup
-	 * @param lunName
-	 */
-    @Override
-	public String[] associateLun(String guestIqn, String lunName) throws ServerException, InvalidParameterValueException
-
-	{
-		NaElement xi2;
-
-		//get lun id from path
-		String[] splitLunName = lunName.split("-");
-		String[] returnVal = new String[3];
-		if(splitLunName.length != 2)
-			throw new InvalidParameterValueException("The lun id is malformed");
-		
-		String lunIdStr = splitLunName[1]; 
-
-		Long lId = new Long(lunIdStr);
-		
-		LunVO lun = _lunDao.findById(lId);
-		
-		if(lun == null)
-			throw new InvalidParameterValueException("Cannot find LUN " + lunName);
-		
-		NetappVolumeVO vol = _volumeDao.findById(lun.getVolumeId());
-
-		//assert(vol != null);
-		
-		returnVal[0] = lunIdStr;
-		returnVal[1] = lun.getTargetIqn();
-		returnVal[2] = vol.getIpAddress();
-		
-		NaServer s = null;
-		
-		try
-		{
-			s = getServer(vol.getIpAddress(), vol.getUsername(), vol.getPassword()); 
-			
-			if(s_logger.isDebugEnabled())
-				s_logger.debug("Request --> associateLun "+":serverIp:"+vol.getIpAddress());
-			
-			//add iqn to the group
-			xi2 = new NaElement("igroup-add");
-			xi2.addNewChild("force", "true");
-			xi2.addNewChild("initiator", guestIqn);
-			xi2.addNewChild("initiator-group-name", lunName);		
-			s.invokeElem(xi2);
-						
-			return returnVal;
-		}  catch (UnknownHostException uhe) {
-			s_logger.warn("Unable to associate LUN " , uhe);
-			throw new ServerException("Unable to associate LUN", uhe);
-		}catch (NaAPIFailedException naf){
-			if(naf.getErrno() == 9008){ //initiator group already contains node				
-				return returnVal;
-			}			
-			s_logger.warn("Unable to associate LUN " , naf);
-			throw new ServerException("Unable to associate LUN", naf);
-		}
-		catch (NaException nae) {
-			s_logger.warn("Unable to associate LUN " , nae);
-			throw new ServerException("Unable to associate LUN", nae);
-		} catch (IOException ioe) {
-			s_logger.warn("Unable to associate LUN " , ioe);
-			throw new ServerException("Unable to associate LUN", ioe);
-		}
-		finally{
-			if (s != null)
-				s.close();
-		}
-		
-	}
-
-	@Override
-	public boolean configure(String name, Map<String, Object> params)
-			throws ConfigurationException {
-
-       _name = name;
-       
-       _netappAllocator = new NetappDefaultAllocatorImpl( this );
-
-		return true;
-	}
-
-	@Override
-	public String getName() {
-		return _name;
-	}
-
-	@Override
-	public boolean start() {
-		return true;
-	}
-
-	@Override
-	public boolean stop() {
-		return true;
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/NetappVolumeVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/NetappVolumeVO.java b/server/src/com/cloud/netapp/NetappVolumeVO.java
deleted file mode 100644
index 04318d0..0000000
--- a/server/src/com/cloud/netapp/NetappVolumeVO.java
+++ /dev/null
@@ -1,183 +0,0 @@
-// 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.
-package com.cloud.netapp;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name="netapp_volume")
-public class NetappVolumeVO {
-	
-	@Id
-    @GeneratedValue(strategy=GenerationType.IDENTITY)
-    @Column(name="id")
-    private Long id;
-	
-	@Column(name="ip_address")
-    private String ipAddress;
-
-    @Column(name="aggregate_name")
-	private String aggregateName;
-
-    @Column(name="pool_id")
-    private Long poolId;
-
-	@Column(name="pool_name")
-    private String poolName;
-	
-	@Column(name="volume_name")
-    private String volumeName;
-
-	@Column(name="username")
-    private String username;
-    
-    @Column(name="password")
-    private String password;
-
-    @Column(name="snapshot_policy")
-    private String snapshotPolicy;
-    
-    @Column(name="snapshot_reservation")
-    private Integer snapshotReservation;
-    
-    @Column(name="volume_size")
-    private String volumeSize;
-    
-    @Column(name="round_robin_marker")
-    private int roundRobinMarker;
-
-	public NetappVolumeVO(){
-		
-	}
-	
-	public NetappVolumeVO(String ipAddress, String aggName, Long poolId, String volName, String volSize, String snapshotPolicy, int snapshotReservation, String username, String password, int roundRobinMarker, String poolName) {
-		this.ipAddress = ipAddress;
-		this.aggregateName = aggName;
-		this.poolId = poolId;
-		this.username = username;
-		this.password = password;
-		this.volumeName = volName;
-		this.volumeSize = volSize;
-		this.snapshotPolicy = snapshotPolicy;
-		this.snapshotReservation = snapshotReservation;
-		this.roundRobinMarker = roundRobinMarker;
-		this.poolName = poolName;
-	}
-	
-	
-    public String getPoolName() {
-		return poolName;
-	}
-
-	public void setPoolName(String poolName) {
-		this.poolName = poolName;
-	}
-
-	public int getRoundRobinMarker() {
-		return roundRobinMarker;
-	}
-
-	public void setRoundRobinMarker(int roundRobinMarker) {
-		this.roundRobinMarker = roundRobinMarker;
-	}
-
-    public String getVolumeName() {
-		return volumeName;
-	}
-
-	public void setVolumeName(String volumeName) {
-		this.volumeName = volumeName;
-	}
-
-	public String getSnapshotPolicy() {
-		return snapshotPolicy;
-	}
-
-	public void setSnapshotPolicy(String snapshotPolicy) {
-		this.snapshotPolicy = snapshotPolicy;
-	}
-
-	public Integer getSnapshotReservation() {
-		return snapshotReservation;
-	}
-
-	public void setSnapshotReservation(Integer snapshotReservation) {
-		this.snapshotReservation = snapshotReservation;
-	}
-
-	public String getVolumeSize() {
-		return volumeSize;
-	}
-
-	public void setVolumeSize(String volumeSize) {
-		this.volumeSize = volumeSize;
-	}
-	
-    public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	public String getIpAddress() {
-		return ipAddress;
-	}
-
-	public void setIpAddress(String ipAddress) {
-		this.ipAddress = ipAddress;
-	}
-
-	public String getAggregateName() {
-		return aggregateName;
-	}
-
-	public void setAggregateName(String aggregateName) {
-		this.aggregateName = aggregateName;
-	}
-
-	public Long getPoolId() {
-		return poolId;
-	}
-
-	public void setPoolId(Long poolId) {
-		this.poolId = poolId;
-	}
-
-    public String getUsername() {
-		return username;
-	}
-
-	public void setUsername(String username) {
-		this.username = username;
-	}
-
-	public String getPassword() {
-		return password;
-	}
-
-	public void setPassword(String password) {
-		this.password = password;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/PoolVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/PoolVO.java b/server/src/com/cloud/netapp/PoolVO.java
deleted file mode 100644
index 713db46..0000000
--- a/server/src/com/cloud/netapp/PoolVO.java
+++ /dev/null
@@ -1,74 +0,0 @@
-// 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.
-package com.cloud.netapp;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name="netapp_pool")
-public class PoolVO {
-	
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public String getAlgorithm() {
-		return algorithm;
-	}
-
-	public void setAlgorithm(String algorithm) {
-		this.algorithm = algorithm;
-	}
-
-	@Id
-    @GeneratedValue(strategy=GenerationType.IDENTITY)
-    @Column(name="id")
-    private Long id;
-	
-	@Column(name="name")
-    private String name;
-
-    @Column(name="algorithm")
-	private String algorithm;
-
-	public PoolVO(){
-		
-	}
-	
-	public PoolVO(String name, String algorithm) {
-		this.name = name;
-		this.algorithm = algorithm;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/dao/LunDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/dao/LunDao.java b/server/src/com/cloud/netapp/dao/LunDao.java
deleted file mode 100644
index 24086ef..0000000
--- a/server/src/com/cloud/netapp/dao/LunDao.java
+++ /dev/null
@@ -1,31 +0,0 @@
-// 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.
-package com.cloud.netapp.dao;
-
-import java.util.List;
-
-import com.cloud.netapp.LunVO;
-import com.cloud.netapp.NetappVolumeVO;
-import com.cloud.netapp.PoolVO;
-import com.cloud.utils.db.GenericDao;
-
-public interface LunDao extends GenericDao<LunVO, Long> {
-
-	List<LunVO> listLunsByVolId(Long volId);
-
-	LunVO findByName(String name);
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/dao/LunDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/dao/LunDaoImpl.java b/server/src/com/cloud/netapp/dao/LunDaoImpl.java
deleted file mode 100644
index 9cc67b7..0000000
--- a/server/src/com/cloud/netapp/dao/LunDaoImpl.java
+++ /dev/null
@@ -1,70 +0,0 @@
-// 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.
-package com.cloud.netapp.dao;
-
-import java.util.List;
-
-import javax.ejb.Local;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.netapp.LunVO;
-import com.cloud.netapp.NetappVolumeVO;
-import com.cloud.netapp.PoolVO;
-import com.cloud.utils.db.Filter;
-import com.cloud.utils.db.GenericDaoBase;
-import com.cloud.utils.db.SearchBuilder;
-import com.cloud.utils.db.SearchCriteria;
-
-@Local(value={LunDao.class})
-public class LunDaoImpl extends GenericDaoBase<LunVO, Long> implements LunDao {
-    private static final Logger s_logger = Logger.getLogger(PoolDaoImpl.class);
-		
-    protected final SearchBuilder<LunVO> LunSearch;    
-    protected final SearchBuilder<LunVO> LunNameSearch;    
-    	    
-	protected LunDaoImpl() {
-        
-        LunSearch = createSearchBuilder();
-        LunSearch.and("volumeId", LunSearch.entity().getVolumeId(), SearchCriteria.Op.EQ);
-        LunSearch.done();
-
-        LunNameSearch = createSearchBuilder();
-        LunNameSearch.and("name", LunNameSearch.entity().getLunName(), SearchCriteria.Op.EQ);
-        LunNameSearch.done();
-        
-	}
-
-	@Override
-    public List<LunVO> listLunsByVolId(Long volId) {
-		Filter searchFilter = new Filter(LunVO.class, "id", Boolean.TRUE, Long.valueOf(0), Long.valueOf(10000));
-		
-        SearchCriteria sc = LunSearch.create();
-        sc.setParameters("volumeId", volId);
-        List<LunVO> lunList = listBy(sc,searchFilter);
-        
-        return lunList;
-    }
-
-
-	@Override
-    public LunVO findByName(String name) {
-        SearchCriteria sc = LunNameSearch.create();
-        sc.setParameters("name", name);
-        return findOneBy(sc);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/dao/PoolDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/dao/PoolDao.java b/server/src/com/cloud/netapp/dao/PoolDao.java
deleted file mode 100644
index 18cebe9..0000000
--- a/server/src/com/cloud/netapp/dao/PoolDao.java
+++ /dev/null
@@ -1,28 +0,0 @@
-// 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.
-package com.cloud.netapp.dao;
-
-import java.util.List;
-
-import com.cloud.netapp.PoolVO;
-import com.cloud.utils.db.GenericDao;
-
-public interface PoolDao extends GenericDao<PoolVO, Long> {
-
-	PoolVO findPool(String poolName);
-	List<PoolVO> listPools();
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/dao/PoolDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/dao/PoolDaoImpl.java b/server/src/com/cloud/netapp/dao/PoolDaoImpl.java
deleted file mode 100644
index 3e23644..0000000
--- a/server/src/com/cloud/netapp/dao/PoolDaoImpl.java
+++ /dev/null
@@ -1,67 +0,0 @@
-// 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.
-package com.cloud.netapp.dao;
-
-import java.util.List;
-
-import javax.ejb.Local;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.netapp.PoolVO;
-import com.cloud.utils.db.GenericDaoBase;
-import com.cloud.utils.db.SearchBuilder;
-import com.cloud.utils.db.SearchCriteria;
-
-@Local(value={PoolDao.class})
-public class PoolDaoImpl extends GenericDaoBase<PoolVO, Long> implements PoolDao {
-    private static final Logger s_logger = Logger.getLogger(PoolDaoImpl.class);
-		
-    protected final SearchBuilder<PoolVO> PoolSearch;
-    	    
-	protected PoolDaoImpl() {
-        
-        PoolSearch = createSearchBuilder();
-        PoolSearch.and("name", PoolSearch.entity().getName(), SearchCriteria.Op.EQ);
-        PoolSearch.done();
-        
-	}
-
-	@Override
-    public PoolVO findPool(String poolName) {
-        SearchCriteria sc = PoolSearch.create();
-        sc.setParameters("name", poolName);
-        List<PoolVO> poolList = listBy(sc);
-        
-        return(poolList.size()>0?poolList.get(0):null);
-    }
-
-	@Override
-	public List<PoolVO> listPools() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-    
-//    @Override
-//    public List<NetappStoragePoolVO> listVolumes(String poolName) {
-//        SearchCriteria sc = NetappListVolumeSearch.create();
-//        sc.setParameters("poolName", poolName);
-//        return listBy(sc);
-//    }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/8aa2b55d/server/src/com/cloud/netapp/dao/VolumeDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/netapp/dao/VolumeDao.java b/server/src/com/cloud/netapp/dao/VolumeDao.java
deleted file mode 100644
index 7f92c3c..0000000
--- a/server/src/com/cloud/netapp/dao/VolumeDao.java
+++ /dev/null
@@ -1,30 +0,0 @@
-// 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.
-package com.cloud.netapp.dao;
-
-import java.util.List;
-
-import com.cloud.netapp.NetappVolumeVO;
-import com.cloud.utils.db.GenericDao;
-
-public interface VolumeDao extends GenericDao<NetappVolumeVO, Long> {
-
-	NetappVolumeVO findVolume(String ipAddress, String aggregateName, String volumeName);
-	List<NetappVolumeVO> listVolumes(String poolName);
-	NetappVolumeVO returnRoundRobinMarkerInPool(String poolName,int roundRobinMarker);
-	List<NetappVolumeVO> listVolumesAscending(String poolName);
-}