http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/ListNiciraNvpDevicesCmd.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/ListNiciraNvpDevicesCmd.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/ListNiciraNvpDevicesCmd.java
deleted file mode 100644
index 6cc8f5d..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/api/commands/ListNiciraNvpDevicesCmd.java
+++ /dev/null
@@ -1,108 +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;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiConstants;
-import org.apache.cloudstack.api.ApiErrorCode;
-import org.apache.cloudstack.api.BaseListCmd;
-import org.apache.cloudstack.api.Parameter;
-import org.apache.cloudstack.api.ServerApiException;
-import org.apache.cloudstack.api.response.ListResponse;
-import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
-
-import com.cloud.api.response.NiciraNvpDeviceResponse;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.network.NiciraNvpDeviceVO;
-import com.cloud.network.element.NiciraNvpElementService;
-import com.cloud.utils.exception.CloudRuntimeException;
-
-@APICommand(name = "listNiciraNvpDevices", responseObject = 
NiciraNvpDeviceResponse.class, description = "Lists Nicira NVP devices",
-        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
-public class ListNiciraNvpDevicesCmd extends BaseListCmd {
-    private static final String s_name = "listniciranvpdeviceresponse";
-
-    @Inject
-    protected NiciraNvpElementService niciraNvpElementService;
-
-    /////////////////////////////////////////////////////
-    //////////////// API parameters /////////////////////
-    /////////////////////////////////////////////////////
-
-    @Parameter(name = ApiConstants.PHYSICAL_NETWORK_ID, type = 
CommandType.UUID, entityType = PhysicalNetworkResponse.class, description = 
"the Physical Network ID")
-    private Long physicalNetworkId;
-
-    @Parameter(name = ApiConstants.NICIRA_NVP_DEVICE_ID, type = 
CommandType.UUID, entityType = NiciraNvpDeviceResponse.class, description = 
"nicira nvp device ID")
-    private Long niciraNvpDeviceId;
-
-    /////////////////////////////////////////////////////
-    /////////////////// Accessors ///////////////////////
-    /////////////////////////////////////////////////////
-
-    public Long getNiciraNvpDeviceId() {
-        return niciraNvpDeviceId;
-    }
-
-    public Long getPhysicalNetworkId() {
-        return physicalNetworkId;
-    }
-
-    /////////////////////////////////////////////////////
-    /////////////// API Implementation///////////////////
-    /////////////////////////////////////////////////////
-
-    @Override
-    public void execute() throws ResourceUnavailableException, 
InsufficientCapacityException, ResourceAllocationException {
-        try {
-            List<NiciraNvpDeviceVO> niciraDevices = 
niciraNvpElementService.listNiciraNvpDevices(this);
-            ListResponse<NiciraNvpDeviceResponse> response = new 
ListResponse<NiciraNvpDeviceResponse>();
-            List<NiciraNvpDeviceResponse> niciraDevicesResponse = new 
ArrayList<NiciraNvpDeviceResponse>();
-
-            if (niciraDevices != null && !niciraDevices.isEmpty()) {
-                for (NiciraNvpDeviceVO niciraDeviceVO : niciraDevices) {
-                    NiciraNvpDeviceResponse niciraDeviceResponse = 
niciraNvpElementService.createNiciraNvpDeviceResponse(niciraDeviceVO);
-                    niciraDevicesResponse.add(niciraDeviceResponse);
-                }
-            }
-
-            response.setResponses(niciraDevicesResponse);
-            response.setResponseName(getCommandName());
-            setResponseObject(response);
-        } catch (InvalidParameterValueException invalidParamExcp) {
-            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, 
invalidParamExcp.getMessage());
-        } catch (CloudRuntimeException runtimeExcp) {
-            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, 
runtimeExcp.getMessage());
-        }
-    }
-
-    @Override
-    public String getCommandName() {
-        return s_name;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/api/response/NiciraNvpDeviceResponse.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/api/response/NiciraNvpDeviceResponse.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/api/response/NiciraNvpDeviceResponse.java
deleted file mode 100644
index 46287aa..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/api/response/NiciraNvpDeviceResponse.java
+++ /dev/null
@@ -1,89 +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.response;
-
-import com.google.gson.annotations.SerializedName;
-
-import org.apache.cloudstack.api.ApiConstants;
-import org.apache.cloudstack.api.BaseResponse;
-import org.apache.cloudstack.api.EntityReference;
-
-import com.cloud.network.NiciraNvpDeviceVO;
-import com.cloud.serializer.Param;
-
-@EntityReference(value = NiciraNvpDeviceVO.class)
-public class NiciraNvpDeviceResponse extends BaseResponse {
-    @SerializedName(ApiConstants.NICIRA_NVP_DEVICE_ID)
-    @Param(description = "device id of the Nicire Nvp")
-    private String id;
-
-    @SerializedName(ApiConstants.PHYSICAL_NETWORK_ID)
-    @Param(description = "the physical network to which this Nirica Nvp 
belongs to")
-    private String physicalNetworkId;
-
-    @SerializedName(ApiConstants.PROVIDER)
-    @Param(description = "name of the provider")
-    private String providerName;
-
-    @SerializedName(ApiConstants.NICIRA_NVP_DEVICE_NAME)
-    @Param(description = "device name")
-    private String deviceName;
-
-    @SerializedName(ApiConstants.HOST_NAME)
-    @Param(description = "the controller Ip address")
-    private String hostName;
-
-    @SerializedName(ApiConstants.NICIRA_NVP_TRANSPORT_ZONE_UUID)
-    @Param(description = "the transport zone Uuid")
-    private String transportZoneUuid;
-
-    @SerializedName(ApiConstants.NICIRA_NVP_GATEWAYSERVICE_UUID)
-    @Param(description = "this L3 gateway service Uuid")
-    private String l3GatewayServiceUuid;
-
-    public void setId(String nvpDeviceId) {
-        this.id = nvpDeviceId;
-    }
-
-    public void setPhysicalNetworkId(final String physicalNetworkId) {
-        this.physicalNetworkId = physicalNetworkId;
-    }
-
-    public void setProviderName(final String providerName) {
-        this.providerName = providerName;
-    }
-
-    public void setDeviceName(final String deviceName) {
-        this.deviceName = deviceName;
-    }
-
-    public void setHostName(final String hostName) {
-        this.hostName = hostName;
-    }
-
-    public void setTransportZoneUuid(final String transportZoneUuid) {
-        this.transportZoneUuid = transportZoneUuid;
-    }
-
-    public void setL3GatewayServiceUuid(final String l3GatewayServiceUuid) {
-        this.l3GatewayServiceUuid = l3GatewayServiceUuid;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpDeviceVO.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpDeviceVO.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpDeviceVO.java
deleted file mode 100644
index 431e855..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpDeviceVO.java
+++ /dev/null
@@ -1,99 +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.network;
-
-import java.util.UUID;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-import org.apache.cloudstack.api.InternalIdentity;
-
-@Entity
-@Table(name = "external_nicira_nvp_devices")
-public class NiciraNvpDeviceVO implements InternalIdentity {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id")
-    private long id;
-
-    @Column(name = "uuid")
-    private String uuid;
-
-    @Column(name = "host_id")
-    private long hostId;
-
-    @Column(name = "physical_network_id")
-    private long physicalNetworkId;
-
-    @Column(name = "provider_name")
-    private String providerName;
-
-    @Column(name = "device_name")
-    private String deviceName;
-
-    public NiciraNvpDeviceVO() {
-        uuid = UUID.randomUUID().toString();
-    }
-
-    public NiciraNvpDeviceVO(final long hostId, final long physicalNetworkId, 
final String providerName, final String deviceName) {
-        super();
-        this.hostId = hostId;
-        this.physicalNetworkId = physicalNetworkId;
-        this.providerName = providerName;
-        this.deviceName = deviceName;
-        uuid = UUID.randomUUID().toString();
-    }
-
-    @Override
-    public long getId() {
-        return id;
-    }
-
-    public String getUuid() {
-        return uuid;
-    }
-
-    public void setUuid(String uuid) {
-        this.uuid = uuid;
-    }
-
-    public long getPhysicalNetworkId() {
-        return physicalNetworkId;
-    }
-
-    public long getHostId() {
-        return hostId;
-    }
-
-    public String getProviderName() {
-        return providerName;
-    }
-
-    public String getDeviceName() {
-        return deviceName;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpNicMappingVO.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpNicMappingVO.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpNicMappingVO.java
deleted file mode 100644
index 9b13780..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpNicMappingVO.java
+++ /dev/null
@@ -1,87 +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.network;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-import org.apache.cloudstack.api.InternalIdentity;
-
-@Entity
-@Table(name = "nicira_nvp_nic_map")
-public class NiciraNvpNicMappingVO implements InternalIdentity {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id")
-    private long id;
-
-    @Column(name = "logicalswitch")
-    private String logicalSwitchUuid;
-
-    @Column(name = "logicalswitchport")
-    private String logicalSwitchPortUuid;
-
-    @Column(name = "nic")
-    private String nicUuid;
-
-    public NiciraNvpNicMappingVO() {
-    }
-
-    public NiciraNvpNicMappingVO(final String logicalSwitchUuid, final String 
logicalSwitchPortUuid, final String nicUuid) {
-        this.logicalSwitchUuid = logicalSwitchUuid;
-        this.logicalSwitchPortUuid = logicalSwitchPortUuid;
-        this.nicUuid = nicUuid;
-    }
-
-    public String getLogicalSwitchUuid() {
-        return logicalSwitchUuid;
-    }
-
-    public void setLogicalSwitchUuid(final String logicalSwitchUuid) {
-        this.logicalSwitchUuid = logicalSwitchUuid;
-    }
-
-    public String getLogicalSwitchPortUuid() {
-        return logicalSwitchPortUuid;
-    }
-
-    public void setLogicalSwitchPortUuid(final String logicalSwitchPortUuid) {
-        this.logicalSwitchPortUuid = logicalSwitchPortUuid;
-    }
-
-    public String getNicUuid() {
-        return nicUuid;
-    }
-
-    public void setNicUuid(String nicUuid) {
-        this.nicUuid = nicUuid;
-    }
-
-    @Override
-    public long getId() {
-        return id;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpRouterMappingVO.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpRouterMappingVO.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpRouterMappingVO.java
deleted file mode 100644
index 9fae3cd..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/NiciraNvpRouterMappingVO.java
+++ /dev/null
@@ -1,85 +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.network;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-import org.apache.cloudstack.api.InternalIdentity;
-
-@Entity
-@Table(name = "nicira_nvp_router_map")
-public class NiciraNvpRouterMappingVO implements InternalIdentity {
-    //FIXME the ddl for this table should be in one of the upgrade scripts
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id")
-    private long id;
-
-    @Column(name = "logicalrouter_uuid")
-    private String logicalRouterUuid;
-
-    @Column(name = "network_id")
-    private long networkId;
-
-    public NiciraNvpRouterMappingVO() {
-    }
-
-    public NiciraNvpRouterMappingVO(final String logicalRouterUuid, final long 
networkId) {
-        this.logicalRouterUuid = logicalRouterUuid;
-        this.networkId = networkId;
-    }
-
-    public NiciraNvpRouterMappingVO(final long id, final String 
logicalRouterUuid, final long networkId) {
-        this.id = id;
-        this.logicalRouterUuid = logicalRouterUuid;
-        this.networkId = networkId;
-    }
-
-    @Override
-    public long getId() {
-        return id;
-    }
-
-    public void setId(final long id) {
-        this.id = id;
-    }
-
-    public String getLogicalRouterUuid() {
-        return logicalRouterUuid;
-    }
-
-    public void setLogicalRouterUuid(final String logicalRouterUuid) {
-        this.logicalRouterUuid = logicalRouterUuid;
-    }
-
-    public long getNetworkId() {
-        return networkId;
-    }
-
-    public void setNetworkId(final long networkId) {
-        this.networkId = networkId;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpDao.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpDao.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpDao.java
deleted file mode 100644
index f2a9754..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpDao.java
+++ /dev/null
@@ -1,35 +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.network.dao;
-
-import java.util.List;
-
-import com.cloud.network.NiciraNvpDeviceVO;
-import com.cloud.utils.db.GenericDao;
-
-public interface NiciraNvpDao extends GenericDao<NiciraNvpDeviceVO, Long> {
-    /**
-     * list all the nicira nvp devices added in to this physical network
-     * @param physicalNetworkId physical Network Id
-     * @return list of NiciraNvpDeviceVO for this physical network.
-     */
-    List<NiciraNvpDeviceVO> listByPhysicalNetwork(long physicalNetworkId);
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpDaoImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpDaoImpl.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpDaoImpl.java
deleted file mode 100644
index 3144c81..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpDaoImpl.java
+++ /dev/null
@@ -1,53 +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.network.dao;
-
-import java.util.List;
-
-import javax.ejb.Local;
-
-import org.springframework.stereotype.Component;
-
-import com.cloud.network.NiciraNvpDeviceVO;
-import com.cloud.utils.db.GenericDaoBase;
-import com.cloud.utils.db.SearchBuilder;
-import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.SearchCriteria.Op;
-
-@Component
-@Local(value = NiciraNvpDao.class)
-public class NiciraNvpDaoImpl extends GenericDaoBase<NiciraNvpDeviceVO, Long> 
implements NiciraNvpDao {
-
-    protected final SearchBuilder<NiciraNvpDeviceVO> physicalNetworkIdSearch;
-
-    public NiciraNvpDaoImpl() {
-        physicalNetworkIdSearch = createSearchBuilder();
-        physicalNetworkIdSearch.and("physicalNetworkId", 
physicalNetworkIdSearch.entity().getPhysicalNetworkId(), Op.EQ);
-        physicalNetworkIdSearch.done();
-    }
-
-    @Override
-    public List<NiciraNvpDeviceVO> listByPhysicalNetwork(final long 
physicalNetworkId) {
-        SearchCriteria<NiciraNvpDeviceVO> sc = 
physicalNetworkIdSearch.create();
-        sc.setParameters("physicalNetworkId", physicalNetworkId);
-        return search(sc, null);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpNicMappingDao.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpNicMappingDao.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpNicMappingDao.java
deleted file mode 100644
index ff81b759..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpNicMappingDao.java
+++ /dev/null
@@ -1,32 +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.network.dao;
-
-import com.cloud.network.NiciraNvpNicMappingVO;
-import com.cloud.utils.db.GenericDao;
-
-public interface NiciraNvpNicMappingDao extends 
GenericDao<NiciraNvpNicMappingVO, Long> {
-
-    /** find the mapping for a nic
-     * @param nicUuid the Uuid of a nic attached to a logical switch port
-     * @return NiciraNvpNicMapping for this nic uuid or null if it does not 
exist
-     */
-    public NiciraNvpNicMappingVO findByNicUuid(String nicUuid);
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpNicMappingDaoImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpNicMappingDaoImpl.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpNicMappingDaoImpl.java
deleted file mode 100644
index 603855c..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpNicMappingDaoImpl.java
+++ /dev/null
@@ -1,51 +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.network.dao;
-
-import javax.ejb.Local;
-
-import org.springframework.stereotype.Component;
-
-import com.cloud.network.NiciraNvpNicMappingVO;
-import com.cloud.utils.db.GenericDaoBase;
-import com.cloud.utils.db.SearchBuilder;
-import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.SearchCriteria.Op;
-
-@Component
-@Local(value = NiciraNvpNicMappingDao.class)
-public class NiciraNvpNicMappingDaoImpl extends 
GenericDaoBase<NiciraNvpNicMappingVO, Long> implements NiciraNvpNicMappingDao {
-
-    protected final SearchBuilder<NiciraNvpNicMappingVO> nicSearch;
-
-    public NiciraNvpNicMappingDaoImpl() {
-        nicSearch = createSearchBuilder();
-        nicSearch.and("nicUuid", nicSearch.entity().getNicUuid(), Op.EQ);
-        nicSearch.done();
-    }
-
-    @Override
-    public NiciraNvpNicMappingVO findByNicUuid(final String nicUuid) {
-        SearchCriteria<NiciraNvpNicMappingVO> sc = nicSearch.create();
-        sc.setParameters("nicUuid", nicUuid);
-        return findOneBy(sc);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpRouterMappingDao.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpRouterMappingDao.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpRouterMappingDao.java
deleted file mode 100644
index b64fb90..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpRouterMappingDao.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.network.dao;
-
-import com.cloud.network.NiciraNvpRouterMappingVO;
-import com.cloud.utils.db.GenericDao;
-
-public interface NiciraNvpRouterMappingDao extends 
GenericDao<NiciraNvpRouterMappingVO, Long> {
-
-    public NiciraNvpRouterMappingVO findByNetworkId(long id);
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpRouterMappingDaoImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpRouterMappingDaoImpl.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpRouterMappingDaoImpl.java
deleted file mode 100644
index 67d3658..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/dao/NiciraNvpRouterMappingDaoImpl.java
+++ /dev/null
@@ -1,51 +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.network.dao;
-
-import javax.ejb.Local;
-
-import org.springframework.stereotype.Component;
-
-import com.cloud.network.NiciraNvpRouterMappingVO;
-import com.cloud.utils.db.GenericDaoBase;
-import com.cloud.utils.db.SearchBuilder;
-import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.SearchCriteria.Op;
-
-@Component
-@Local(value = NiciraNvpRouterMappingDao.class)
-public class NiciraNvpRouterMappingDaoImpl extends 
GenericDaoBase<NiciraNvpRouterMappingVO, Long> implements 
NiciraNvpRouterMappingDao {
-
-    protected final SearchBuilder<NiciraNvpRouterMappingVO> networkSearch;
-
-    public NiciraNvpRouterMappingDaoImpl() {
-        networkSearch = createSearchBuilder();
-        networkSearch.and("network_id", networkSearch.entity().getNetworkId(), 
Op.EQ);
-        networkSearch.done();
-    }
-
-    @Override
-    public NiciraNvpRouterMappingVO findByNetworkId(final long id) {
-        SearchCriteria<NiciraNvpRouterMappingVO> sc = networkSearch.create();
-        sc.setParameters("network_id", id);
-        return findOneBy(sc);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
deleted file mode 100644
index 0243e2d..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
+++ /dev/null
@@ -1,849 +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.network.element;
-
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import javax.ejb.Local;
-import javax.inject.Inject;
-import javax.naming.ConfigurationException;
-
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
-import 
org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
-import 
org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
-
-import com.cloud.agent.AgentManager;
-import com.cloud.agent.api.ConfigurePortForwardingRulesOnLogicalRouterAnswer;
-import com.cloud.agent.api.ConfigurePortForwardingRulesOnLogicalRouterCommand;
-import com.cloud.agent.api.ConfigurePublicIpsOnLogicalRouterAnswer;
-import com.cloud.agent.api.ConfigurePublicIpsOnLogicalRouterCommand;
-import com.cloud.agent.api.ConfigureStaticNatRulesOnLogicalRouterAnswer;
-import com.cloud.agent.api.ConfigureStaticNatRulesOnLogicalRouterCommand;
-import com.cloud.agent.api.CreateLogicalRouterAnswer;
-import com.cloud.agent.api.CreateLogicalRouterCommand;
-import com.cloud.agent.api.CreateLogicalSwitchPortAnswer;
-import com.cloud.agent.api.CreateLogicalSwitchPortCommand;
-import com.cloud.agent.api.DeleteLogicalRouterAnswer;
-import com.cloud.agent.api.DeleteLogicalRouterCommand;
-import com.cloud.agent.api.DeleteLogicalSwitchPortAnswer;
-import com.cloud.agent.api.DeleteLogicalSwitchPortCommand;
-import com.cloud.agent.api.FindLogicalSwitchPortAnswer;
-import com.cloud.agent.api.FindLogicalSwitchPortCommand;
-import com.cloud.agent.api.StartupCommand;
-import com.cloud.agent.api.StartupNiciraNvpCommand;
-import com.cloud.agent.api.UpdateLogicalSwitchPortCommand;
-import com.cloud.agent.api.to.PortForwardingRuleTO;
-import com.cloud.agent.api.to.StaticNatRuleTO;
-import com.cloud.api.ApiDBUtils;
-import com.cloud.api.commands.AddNiciraNvpDeviceCmd;
-import com.cloud.api.commands.DeleteNiciraNvpDeviceCmd;
-import com.cloud.api.commands.ListNiciraNvpDeviceNetworksCmd;
-import com.cloud.api.commands.ListNiciraNvpDevicesCmd;
-import com.cloud.api.response.NiciraNvpDeviceResponse;
-import com.cloud.configuration.ConfigurationManager;
-import com.cloud.dc.Vlan;
-import com.cloud.dc.dao.VlanDao;
-import com.cloud.deploy.DeployDestination;
-import com.cloud.exception.ConcurrentOperationException;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.host.DetailVO;
-import com.cloud.host.Host;
-import com.cloud.host.HostVO;
-import com.cloud.host.dao.HostDao;
-import com.cloud.host.dao.HostDetailsDao;
-import com.cloud.network.IpAddress;
-import com.cloud.network.IpAddressManager;
-import com.cloud.network.Network;
-import com.cloud.network.Network.Capability;
-import com.cloud.network.Network.Provider;
-import com.cloud.network.Network.Service;
-import com.cloud.network.NetworkModel;
-import com.cloud.network.Networks;
-import com.cloud.network.Networks.BroadcastDomainType;
-import com.cloud.network.NiciraNvpDeviceVO;
-import com.cloud.network.NiciraNvpNicMappingVO;
-import com.cloud.network.NiciraNvpRouterMappingVO;
-import com.cloud.network.PhysicalNetwork;
-import com.cloud.network.PhysicalNetworkServiceProvider;
-import com.cloud.network.PublicIpAddress;
-import com.cloud.network.addr.PublicIp;
-import com.cloud.network.dao.NetworkDao;
-import com.cloud.network.dao.NetworkServiceMapDao;
-import com.cloud.network.dao.NetworkVO;
-import com.cloud.network.dao.NiciraNvpDao;
-import com.cloud.network.dao.NiciraNvpNicMappingDao;
-import com.cloud.network.dao.NiciraNvpRouterMappingDao;
-import com.cloud.network.dao.PhysicalNetworkDao;
-import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
-import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
-import com.cloud.network.dao.PhysicalNetworkVO;
-import com.cloud.network.resource.NiciraNvpResource;
-import com.cloud.network.rules.PortForwardingRule;
-import com.cloud.network.rules.StaticNat;
-import com.cloud.offering.NetworkOffering;
-import com.cloud.resource.ResourceManager;
-import com.cloud.resource.ResourceState;
-import com.cloud.resource.ResourceStateAdapter;
-import com.cloud.resource.ServerResource;
-import com.cloud.resource.UnableDeleteHostException;
-import com.cloud.user.Account;
-import com.cloud.utils.component.AdapterBase;
-import com.cloud.utils.db.DB;
-import com.cloud.utils.db.Transaction;
-import com.cloud.utils.db.TransactionCallback;
-import com.cloud.utils.db.TransactionStatus;
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.utils.net.NetUtils;
-import com.cloud.vm.NicProfile;
-import com.cloud.vm.NicVO;
-import com.cloud.vm.ReservationContext;
-import com.cloud.vm.VirtualMachineProfile;
-import com.cloud.vm.dao.NicDao;
-
-@Component
-@Local(value = {NetworkElement.class, ConnectivityProvider.class, 
SourceNatServiceProvider.class, StaticNatServiceProvider.class, 
PortForwardingServiceProvider.class,
-        IpDeployer.class})
-public class NiciraNvpElement extends AdapterBase implements 
ConnectivityProvider, SourceNatServiceProvider, PortForwardingServiceProvider, 
StaticNatServiceProvider,
-NiciraNvpElementService, ResourceStateAdapter, IpDeployer {
-
-    private static final int MAX_PORT = 65535;
-    private static final int MIN_PORT = 0;
-
-    private static final Logger s_logger = 
Logger.getLogger(NiciraNvpElement.class);
-
-    private static final Map<Service, Map<Capability, String>> capabilities = 
setCapabilities();
-
-    @Inject
-    protected NicDao nicDao;
-    @Inject
-    protected ResourceManager resourceMgr;
-    @Inject
-    protected PhysicalNetworkDao physicalNetworkDao;
-    @Inject
-    protected PhysicalNetworkServiceProviderDao 
physicalNetworkServiceProviderDao;
-    @Inject
-    protected NiciraNvpDao niciraNvpDao;
-    @Inject
-    protected HostDetailsDao hostDetailsDao;
-    @Inject
-    protected HostDao hostDao;
-    @Inject
-    protected AgentManager agentMgr;
-    @Inject
-    protected NiciraNvpNicMappingDao niciraNvpNicMappingDao;
-    @Inject
-    protected NiciraNvpRouterMappingDao niciraNvpRouterMappingDao;
-    @Inject
-    protected NetworkDao networkDao;
-    @Inject
-    protected NetworkOrchestrationService networkManager;
-    @Inject
-    protected NetworkModel networkModel;
-    @Inject
-    protected ConfigurationManager configMgr;
-    @Inject
-    protected NetworkServiceMapDao ntwkSrvcDao;
-    @Inject
-    protected VlanDao vlanDao;
-    @Inject
-    protected IpAddressManager ipAddrMgr;
-
-    @Override
-    public Map<Service, Map<Capability, String>> getCapabilities() {
-        return capabilities;
-    }
-
-    @Override
-    public Provider getProvider() {
-        return Provider.NiciraNvp;
-    }
-
-    protected boolean canHandle(Network network, Service service) {
-        s_logger.debug("Checking if NiciraNvpElement can handle service " + 
service.getName() + " on network " + network.getDisplayText());
-        if (network.getBroadcastDomainType() != BroadcastDomainType.Lswitch) {
-            return false;
-        }
-
-        if (!networkModel.isProviderForNetwork(getProvider(), 
network.getId())) {
-            s_logger.debug("NiciraNvpElement is not a provider for network " + 
network.getDisplayText());
-            return false;
-        }
-
-        if (!ntwkSrvcDao.canProviderSupportServiceInNetwork(network.getId(), 
service, Network.Provider.NiciraNvp)) {
-            s_logger.debug("NiciraNvpElement can't provide the " + 
service.getName() + " service on network " + network.getDisplayText());
-            return false;
-        }
-
-        return true;
-    }
-
-    @Override
-    public boolean configure(String name, Map<String, Object> params) throws 
ConfigurationException {
-        super.configure(name, params);
-        resourceMgr.registerResourceStateAdapter(name, this);
-        return true;
-    }
-
-    @Override
-    public boolean implement(Network network, NetworkOffering offering, 
DeployDestination dest, ReservationContext context) throws 
ConcurrentOperationException,
-    ResourceUnavailableException, InsufficientCapacityException {
-        s_logger.debug("entering NiciraNvpElement implement function for 
network " + network.getDisplayText() + " (state " + network.getState() + ")");
-
-        if (!canHandle(network, Service.Connectivity)) {
-            return false;
-        }
-
-        if (network.getBroadcastUri() == null) {
-            s_logger.error("Nic has no broadcast Uri with the LSwitch Uuid");
-            return false;
-        }
-
-        List<NiciraNvpDeviceVO> devices = 
niciraNvpDao.listByPhysicalNetwork(network.getPhysicalNetworkId());
-        if (devices.isEmpty()) {
-            s_logger.error("No NiciraNvp Controller on physical network " + 
network.getPhysicalNetworkId());
-            return false;
-        }
-        NiciraNvpDeviceVO niciraNvpDevice = devices.get(0);
-        HostVO niciraNvpHost = hostDao.findById(niciraNvpDevice.getHostId());
-        hostDao.loadDetails(niciraNvpHost);
-
-        Account owner = context.getAccount();
-
-        /*
-         * TODO Shouldn't we lock the network as we might need to do
-         * multiple operations that should be done only once.
-         */
-
-        // Implement SourceNat immediately as we have al the info already
-        if (networkModel.isProviderSupportServiceInNetwork(network.getId(), 
Service.SourceNat, Provider.NiciraNvp)) {
-            s_logger.debug("Apparently we are supposed to provide SourceNat on 
this network");
-
-            PublicIp sourceNatIp = 
ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(owner, network);
-            String publicCidr = sourceNatIp.getAddress().addr() + "/" + 
NetUtils.getCidrSize(sourceNatIp.getVlanNetmask());
-            String internalCidr = network.getGateway() + "/" + 
network.getCidr().split("/")[1];
-            // assuming a vlan:
-            String vtag = sourceNatIp.getVlanTag();
-            BroadcastDomainType tiep = null;
-            try {
-                tiep = BroadcastDomainType.getTypeOf(vtag);
-            } catch (URISyntaxException use) {
-                throw new CloudRuntimeException("vlantag for sourceNatIp is 
not valid: " + vtag, use);
-            }
-            if (tiep == BroadcastDomainType.Vlan) {
-                vtag = 
BroadcastDomainType.Vlan.getValueFrom(BroadcastDomainType.fromString(vtag));
-            } else if (!(tiep == BroadcastDomainType.UnDecided || tiep == 
BroadcastDomainType.Native)) {
-                throw new CloudRuntimeException("only vlans are supported for 
sourceNatIp, at this moment: " + vtag);
-            }
-            long vlanid = (Vlan.UNTAGGED.equals(vtag)) ? 0 : 
Long.parseLong(vtag);
-
-            CreateLogicalRouterCommand cmd =
-                    new 
CreateLogicalRouterCommand(niciraNvpHost.getDetail("l3gatewayserviceuuid"), 
vlanid, BroadcastDomainType.getValue(network.getBroadcastUri()),
-                            "router-" + network.getDisplayText(), publicCidr, 
sourceNatIp.getGateway(), internalCidr, context.getDomain().getName() + "-" +
-                                    context.getAccount().getAccountName());
-            CreateLogicalRouterAnswer answer = 
(CreateLogicalRouterAnswer)agentMgr.easySend(niciraNvpHost.getId(), cmd);
-            if (answer.getResult() == false) {
-                s_logger.error("Failed to create Logical Router for network " 
+ network.getDisplayText());
-                return false;
-            }
-
-            // Store the uuid so we can easily find it during cleanup
-            NiciraNvpRouterMappingVO routermapping = new 
NiciraNvpRouterMappingVO(answer.getLogicalRouterUuid(), network.getId());
-            niciraNvpRouterMappingDao.persist(routermapping);
-        }
-
-        return true;
-    }
-
-    @Override
-    public boolean prepare(Network network, NicProfile nic, 
VirtualMachineProfile vm, DeployDestination dest, ReservationContext context)
-            throws ConcurrentOperationException, ResourceUnavailableException, 
InsufficientCapacityException {
-
-        if (!canHandle(network, Service.Connectivity)) {
-            return false;
-        }
-
-        if (network.getBroadcastUri() == null) {
-            s_logger.error("Nic has no broadcast Uri with the LSwitch Uuid");
-            return false;
-        }
-
-        NicVO nicVO = nicDao.findById(nic.getId());
-
-        List<NiciraNvpDeviceVO> devices = 
niciraNvpDao.listByPhysicalNetwork(network.getPhysicalNetworkId());
-        if (devices.isEmpty()) {
-            s_logger.error("No NiciraNvp Controller on physical network " + 
network.getPhysicalNetworkId());
-            return false;
-        }
-        NiciraNvpDeviceVO niciraNvpDevice = devices.get(0);
-        HostVO niciraNvpHost = hostDao.findById(niciraNvpDevice.getHostId());
-
-        NiciraNvpNicMappingVO existingNicMap = 
niciraNvpNicMappingDao.findByNicUuid(nicVO.getUuid());
-        if (existingNicMap != null) {
-            FindLogicalSwitchPortCommand findCmd = new 
FindLogicalSwitchPortCommand(existingNicMap.getLogicalSwitchUuid(), 
existingNicMap.getLogicalSwitchPortUuid());
-            FindLogicalSwitchPortAnswer answer = 
(FindLogicalSwitchPortAnswer)agentMgr.easySend(niciraNvpHost.getId(), findCmd);
-
-            if (answer.getResult()) {
-                s_logger.warn("Existing Logical Switchport found for nic " + 
nic.getName() + " with uuid " + existingNicMap.getLogicalSwitchPortUuid());
-                UpdateLogicalSwitchPortCommand cmd =
-                        new 
UpdateLogicalSwitchPortCommand(existingNicMap.getLogicalSwitchPortUuid(), 
BroadcastDomainType.getValue(network.getBroadcastUri()),
-                                nicVO.getUuid(), context.getDomain().getName() 
+ "-" + context.getAccount().getAccountName(), nic.getName());
-                agentMgr.easySend(niciraNvpHost.getId(), cmd);
-                return true;
-            } else {
-                s_logger.error("Stale entry found for nic " + nic.getName() + 
" with logical switchport uuid " + existingNicMap.getLogicalSwitchPortUuid());
-                niciraNvpNicMappingDao.remove(existingNicMap.getId());
-            }
-        }
-
-        CreateLogicalSwitchPortCommand cmd =
-                new 
CreateLogicalSwitchPortCommand(BroadcastDomainType.getValue(network.getBroadcastUri()),
 nicVO.getUuid(), context.getDomain().getName() + "-" +
-                        context.getAccount().getAccountName(), nic.getName());
-        CreateLogicalSwitchPortAnswer answer = 
(CreateLogicalSwitchPortAnswer)agentMgr.easySend(niciraNvpHost.getId(), cmd);
-
-        if (answer == null || !answer.getResult()) {
-            s_logger.error("CreateLogicalSwitchPortCommand failed");
-            return false;
-        }
-
-        NiciraNvpNicMappingVO nicMap =
-                new 
NiciraNvpNicMappingVO(BroadcastDomainType.getValue(network.getBroadcastUri()), 
answer.getLogicalSwitchPortUuid(), nicVO.getUuid());
-        niciraNvpNicMappingDao.persist(nicMap);
-
-        return true;
-    }
-
-    @Override
-    public boolean release(Network network, NicProfile nic, 
VirtualMachineProfile vm, ReservationContext context) throws 
ConcurrentOperationException,
-    ResourceUnavailableException {
-
-        if (!canHandle(network, Service.Connectivity)) {
-            return false;
-        }
-
-        if (network.getBroadcastUri() == null) {
-            s_logger.error("Nic has no broadcast Uri with the LSwitch Uuid");
-            return false;
-        }
-
-        NicVO nicVO = nicDao.findById(nic.getId());
-
-        List<NiciraNvpDeviceVO> devices = 
niciraNvpDao.listByPhysicalNetwork(network.getPhysicalNetworkId());
-        if (devices.isEmpty()) {
-            s_logger.error("No NiciraNvp Controller on physical network " + 
network.getPhysicalNetworkId());
-            return false;
-        }
-        NiciraNvpDeviceVO niciraNvpDevice = devices.get(0);
-        HostVO niciraNvpHost = hostDao.findById(niciraNvpDevice.getHostId());
-
-        NiciraNvpNicMappingVO nicMap = 
niciraNvpNicMappingDao.findByNicUuid(nicVO.getUuid());
-        if (nicMap == null) {
-            s_logger.error("No mapping for nic " + nic.getName());
-            return false;
-        }
-
-        DeleteLogicalSwitchPortCommand cmd = new 
DeleteLogicalSwitchPortCommand(nicMap.getLogicalSwitchUuid(), 
nicMap.getLogicalSwitchPortUuid());
-        DeleteLogicalSwitchPortAnswer answer = 
(DeleteLogicalSwitchPortAnswer)agentMgr.easySend(niciraNvpHost.getId(), cmd);
-
-        if (answer == null || !answer.getResult()) {
-            s_logger.error("DeleteLogicalSwitchPortCommand failed");
-            return false;
-        }
-
-        niciraNvpNicMappingDao.remove(nicMap.getId());
-
-        return true;
-    }
-
-    @Override
-    public boolean shutdown(Network network, ReservationContext context, 
boolean cleanup) throws ConcurrentOperationException, 
ResourceUnavailableException {
-        if (!canHandle(network, Service.Connectivity)) {
-            return false;
-        }
-
-        List<NiciraNvpDeviceVO> devices = 
niciraNvpDao.listByPhysicalNetwork(network.getPhysicalNetworkId());
-        if (devices.isEmpty()) {
-            s_logger.error("No NiciraNvp Controller on physical network " + 
network.getPhysicalNetworkId());
-            return false;
-        }
-        NiciraNvpDeviceVO niciraNvpDevice = devices.get(0);
-        HostVO niciraNvpHost = hostDao.findById(niciraNvpDevice.getHostId());
-
-        if (networkModel.isProviderSupportServiceInNetwork(network.getId(), 
Service.SourceNat, Provider.NiciraNvp)) {
-            s_logger.debug("Apparently we were providing SourceNat on this 
network");
-
-            // Deleting the LogicalRouter will also take care of all 
provisioned
-            // nat rules.
-            NiciraNvpRouterMappingVO routermapping = 
niciraNvpRouterMappingDao.findByNetworkId(network.getId());
-            if (routermapping == null) {
-                s_logger.warn("No logical router uuid found for network " + 
network.getDisplayText());
-                // This might be cause by a failed deployment, so don't make 
shutdown fail as well.
-                return true;
-            }
-
-            DeleteLogicalRouterCommand cmd = new 
DeleteLogicalRouterCommand(routermapping.getLogicalRouterUuid());
-            DeleteLogicalRouterAnswer answer = 
(DeleteLogicalRouterAnswer)agentMgr.easySend(niciraNvpHost.getId(), cmd);
-            if (answer.getResult() == false) {
-                s_logger.error("Failed to delete LogicalRouter for network " + 
network.getDisplayText());
-                return false;
-            }
-
-            niciraNvpRouterMappingDao.remove(routermapping.getId());
-        }
-
-        return true;
-    }
-
-    @Override
-    public boolean destroy(Network network, ReservationContext context) throws 
ConcurrentOperationException, ResourceUnavailableException {
-        if (!canHandle(network, Service.Connectivity)) {
-            return false;
-        }
-
-        return true;
-    }
-
-    @Override
-    public boolean isReady(PhysicalNetworkServiceProvider provider) {
-        return true;
-    }
-
-    @Override
-    public boolean shutdownProviderInstances(PhysicalNetworkServiceProvider 
provider, ReservationContext context) throws ConcurrentOperationException,
-    ResourceUnavailableException {
-        // Nothing to do here.
-        return true;
-    }
-
-    @Override
-    public boolean canEnableIndividualServices() {
-        return true;
-    }
-
-    @Override
-    public boolean verifyServicesCombination(Set<Service> services) {
-        // This element can only function in a Nicra Nvp based
-        // SDN network, so Connectivity needs to be present here
-        if (!services.contains(Service.Connectivity)) {
-            s_logger.warn("Unable to provide services without Connectivity 
service enabled for this element");
-            return false;
-        }
-        if ((services.contains(Service.PortForwarding) || 
services.contains(Service.StaticNat)) && !services.contains(Service.SourceNat)) 
{
-            s_logger.warn("Unable to provide StaticNat and/or PortForwarding 
without the SourceNat service");
-            return false;
-        }
-        return true;
-    }
-
-    private static Map<Service, Map<Capability, String>> setCapabilities() {
-        Map<Service, Map<Capability, String>> capabilities = new 
HashMap<Service, Map<Capability, String>>();
-
-        // L2 Support : SDN provisioning
-        capabilities.put(Service.Connectivity, null);
-
-        // L3 Support : Generic?
-        capabilities.put(Service.Gateway, null);
-
-        // L3 Support : SourceNat
-        Map<Capability, String> sourceNatCapabilities = new 
HashMap<Capability, String>();
-        sourceNatCapabilities.put(Capability.SupportedSourceNatTypes, 
"peraccount");
-        sourceNatCapabilities.put(Capability.RedundantRouter, "false");
-        capabilities.put(Service.SourceNat, sourceNatCapabilities);
-
-        // L3 Support : Port Forwarding
-        capabilities.put(Service.PortForwarding, null);
-
-        // L3 support : StaticNat
-        capabilities.put(Service.StaticNat, null);
-
-        return capabilities;
-    }
-
-    @Override
-    public List<Class<?>> getCommands() {
-        List<Class<?>> cmdList = new ArrayList<Class<?>>();
-        cmdList.add(AddNiciraNvpDeviceCmd.class);
-        cmdList.add(DeleteNiciraNvpDeviceCmd.class);
-        cmdList.add(ListNiciraNvpDeviceNetworksCmd.class);
-        cmdList.add(ListNiciraNvpDevicesCmd.class);
-        return cmdList;
-    }
-
-    @Override
-    @DB
-    public NiciraNvpDeviceVO addNiciraNvpDevice(AddNiciraNvpDeviceCmd cmd) {
-        ServerResource resource = new NiciraNvpResource();
-        final String deviceName = Network.Provider.NiciraNvp.getName();
-        NetworkDevice networkDevice = 
NetworkDevice.getNetworkDevice(deviceName);
-        if (networkDevice == null) {
-            throw new CloudRuntimeException("No network device found for " + 
deviceName);
-        }
-        final Long physicalNetworkId = cmd.getPhysicalNetworkId();
-        PhysicalNetworkVO physicalNetwork = 
physicalNetworkDao.findById(physicalNetworkId);
-        if (physicalNetwork == null) {
-            throw new InvalidParameterValueException("Could not find phyical 
network with ID: " + physicalNetworkId);
-        }
-        long zoneId = physicalNetwork.getDataCenterId();
-
-        final PhysicalNetworkServiceProviderVO ntwkSvcProvider =
-                
physicalNetworkServiceProviderDao.findByServiceProvider(physicalNetwork.getId(),
 networkDevice.getNetworkServiceProvder());
-        if (ntwkSvcProvider == null) {
-            throw new CloudRuntimeException("Network Service Provider: " + 
networkDevice.getNetworkServiceProvder() + " is not enabled in the physical 
network: " +
-                    physicalNetworkId + "to add this device");
-        } else if (ntwkSvcProvider.getState() == 
PhysicalNetworkServiceProvider.State.Shutdown) {
-            throw new CloudRuntimeException("Network Service Provider: " + 
ntwkSvcProvider.getProviderName() + " is in shutdown state in the physical 
network: " +
-                    physicalNetworkId + "to add this device");
-        }
-
-        if (niciraNvpDao.listByPhysicalNetwork(physicalNetworkId).size() != 0) 
{
-            throw new CloudRuntimeException("A NiciraNvp device is already 
configured on this physical network");
-        }
-
-        Map<String, String> params = new HashMap<String, String>();
-        params.put("guid", UUID.randomUUID().toString());
-        params.put("zoneId", 
String.valueOf(physicalNetwork.getDataCenterId()));
-        params.put("physicalNetworkId", 
String.valueOf(physicalNetwork.getId()));
-        params.put("name", "Nicira Controller - " + cmd.getHost());
-        params.put("ip", cmd.getHost());
-        params.put("adminuser", cmd.getUsername());
-        params.put("adminpass", cmd.getPassword());
-        params.put("transportzoneuuid", cmd.getTransportzoneUuid());
-        // FIXME What to do with multiple isolation types
-        params.put("transportzoneisotype", 
physicalNetwork.getIsolationMethods().get(0).toLowerCase());
-        if (cmd.getL3GatewayServiceUuid() != null) {
-            params.put("l3gatewayserviceuuid", cmd.getL3GatewayServiceUuid());
-        }
-
-        Map<String, Object> hostdetails = new HashMap<String, Object>();
-        hostdetails.putAll(params);
-
-        try {
-            resource.configure(cmd.getHost(), hostdetails);
-
-            final Host host = resourceMgr.addHost(zoneId, resource, 
Host.Type.L2Networking, params);
-            if (host != null) {
-                return Transaction.execute(new 
TransactionCallback<NiciraNvpDeviceVO>() {
-                    @Override
-                    public NiciraNvpDeviceVO doInTransaction(TransactionStatus 
status) {
-                        NiciraNvpDeviceVO niciraNvpDevice = new 
NiciraNvpDeviceVO(host.getId(), physicalNetworkId, 
ntwkSvcProvider.getProviderName(), deviceName);
-                        niciraNvpDao.persist(niciraNvpDevice);
-
-                        DetailVO detail = new DetailVO(host.getId(), 
"niciranvpdeviceid", String.valueOf(niciraNvpDevice.getId()));
-                        hostDetailsDao.persist(detail);
-
-                        return niciraNvpDevice;
-                    }
-                });
-            } else {
-                throw new CloudRuntimeException("Failed to add Nicira Nvp 
Device due to internal error.");
-            }
-        } catch (ConfigurationException e) {
-            throw new CloudRuntimeException(e.getMessage());
-        }
-    }
-
-    @Override
-    public NiciraNvpDeviceResponse 
createNiciraNvpDeviceResponse(NiciraNvpDeviceVO niciraNvpDeviceVO) {
-        HostVO niciraNvpHost = hostDao.findById(niciraNvpDeviceVO.getHostId());
-        hostDao.loadDetails(niciraNvpHost);
-
-        NiciraNvpDeviceResponse response = new NiciraNvpDeviceResponse();
-        response.setDeviceName(niciraNvpDeviceVO.getDeviceName());
-        PhysicalNetwork pnw = 
ApiDBUtils.findPhysicalNetworkById(niciraNvpDeviceVO.getPhysicalNetworkId());
-        if (pnw != null) {
-            response.setPhysicalNetworkId(pnw.getUuid());
-        }
-        response.setId(niciraNvpDeviceVO.getUuid());
-        response.setProviderName(niciraNvpDeviceVO.getProviderName());
-        response.setHostName(niciraNvpHost.getDetail("ip"));
-        
response.setTransportZoneUuid(niciraNvpHost.getDetail("transportzoneuuid"));
-        
response.setL3GatewayServiceUuid(niciraNvpHost.getDetail("l3gatewayserviceuuid"));
-        response.setObjectName("niciranvpdevice");
-        return response;
-    }
-
-    @Override
-    public boolean deleteNiciraNvpDevice(DeleteNiciraNvpDeviceCmd cmd) {
-        Long niciraDeviceId = cmd.getNiciraNvpDeviceId();
-        NiciraNvpDeviceVO niciraNvpDevice = 
niciraNvpDao.findById(niciraDeviceId);
-        if (niciraNvpDevice == null) {
-            throw new InvalidParameterValueException("Could not find a nicira 
device with id " + niciraDeviceId);
-        }
-
-        // Find the physical network we work for
-        Long physicalNetworkId = niciraNvpDevice.getPhysicalNetworkId();
-        PhysicalNetworkVO physicalNetwork = 
physicalNetworkDao.findById(physicalNetworkId);
-        if (physicalNetwork != null) {
-            // Lets see if there are networks that use us
-            // Find the nicira networks on this physical network
-            List<NetworkVO> networkList = 
networkDao.listByPhysicalNetwork(physicalNetworkId);
-            if (networkList != null) {
-                // Networks with broadcast type lswitch are ours
-                for (NetworkVO network : networkList) {
-                    if (network.getBroadcastDomainType() == 
Networks.BroadcastDomainType.Lswitch) {
-                        if ((network.getState() != Network.State.Shutdown) && 
(network.getState() != Network.State.Destroy)) {
-                            throw new CloudRuntimeException("This Nicira Nvp 
device can not be deleted as there are one or more logical networks provisioned 
by cloudstack.");
-                        }
-                    }
-                }
-            }
-        }
-
-        HostVO niciraHost = hostDao.findById(niciraNvpDevice.getHostId());
-        Long hostId = niciraHost.getId();
-
-        niciraHost.setResourceState(ResourceState.Maintenance);
-        hostDao.update(hostId, niciraHost);
-        resourceMgr.deleteHost(hostId, false, false);
-
-        niciraNvpDao.remove(niciraDeviceId);
-        return true;
-    }
-
-    @Override
-    public List<NiciraNvpDeviceVO> 
listNiciraNvpDevices(ListNiciraNvpDevicesCmd cmd) {
-        Long physicalNetworkId = cmd.getPhysicalNetworkId();
-        Long niciraNvpDeviceId = cmd.getNiciraNvpDeviceId();
-        List<NiciraNvpDeviceVO> responseList = new 
ArrayList<NiciraNvpDeviceVO>();
-
-        if (physicalNetworkId == null && niciraNvpDeviceId == null) {
-            throw new InvalidParameterValueException("Either physical network 
Id or nicira device Id must be specified");
-        }
-
-        if (niciraNvpDeviceId != null) {
-            NiciraNvpDeviceVO niciraNvpDevice = 
niciraNvpDao.findById(niciraNvpDeviceId);
-            if (niciraNvpDevice == null) {
-                throw new InvalidParameterValueException("Could not find 
Nicira Nvp device with id: " + niciraNvpDevice);
-            }
-            responseList.add(niciraNvpDevice);
-        } else {
-            PhysicalNetworkVO physicalNetwork = 
physicalNetworkDao.findById(physicalNetworkId);
-            if (physicalNetwork == null) {
-                throw new InvalidParameterValueException("Could not find a 
physical network with id: " + physicalNetworkId);
-            }
-            responseList = 
niciraNvpDao.listByPhysicalNetwork(physicalNetworkId);
-        }
-
-        return responseList;
-    }
-
-    @Override
-    public List<? extends Network> 
listNiciraNvpDeviceNetworks(ListNiciraNvpDeviceNetworksCmd cmd) {
-        Long niciraDeviceId = cmd.getNiciraNvpDeviceId();
-        NiciraNvpDeviceVO niciraNvpDevice = 
niciraNvpDao.findById(niciraDeviceId);
-        if (niciraNvpDevice == null) {
-            throw new InvalidParameterValueException("Could not find a nicira 
device with id " + niciraDeviceId);
-        }
-
-        // Find the physical network we work for
-        Long physicalNetworkId = niciraNvpDevice.getPhysicalNetworkId();
-        PhysicalNetworkVO physicalNetwork = 
physicalNetworkDao.findById(physicalNetworkId);
-        if (physicalNetwork == null) {
-            // No such physical network, so no provisioned networks
-            return Collections.emptyList();
-        }
-
-        // Find the nicira networks on this physical network
-        List<NetworkVO> networkList = 
networkDao.listByPhysicalNetwork(physicalNetworkId);
-        if (networkList == null) {
-            return Collections.emptyList();
-        }
-
-        // Networks with broadcast type lswitch are ours
-        List<NetworkVO> responseList = new ArrayList<NetworkVO>();
-        for (NetworkVO network : networkList) {
-            if (network.getBroadcastDomainType() == 
Networks.BroadcastDomainType.Lswitch) {
-                responseList.add(network);
-            }
-        }
-
-        return responseList;
-    }
-
-    @Override
-    public HostVO createHostVOForConnectedAgent(HostVO host, StartupCommand[] 
cmd) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public HostVO createHostVOForDirectConnectAgent(HostVO host, 
StartupCommand[] startup, ServerResource resource, Map<String, String> details, 
List<String> hostTags) {
-        if (!(startup[0] instanceof StartupNiciraNvpCommand)) {
-            return null;
-        }
-        host.setType(Host.Type.L2Networking);
-        return host;
-    }
-
-    @Override
-    public DeleteHostAnswer deleteHost(HostVO host, boolean isForced, boolean 
isForceDeleteStorage) throws UnableDeleteHostException {
-        if (!(host.getType() == Host.Type.L2Networking)) {
-            return null;
-        }
-        return new DeleteHostAnswer(true);
-    }
-
-    /**
-     * From interface SourceNatServiceProvider
-     */
-    @Override
-    public IpDeployer getIpDeployer(Network network) {
-        return this;
-    }
-
-    /**
-     * From interface IpDeployer
-     *
-     * @param network
-     * @param ipAddress
-     * @param services
-     * @return
-     * @throws ResourceUnavailableException
-     */
-    @Override
-    public boolean applyIps(Network network, List<? extends PublicIpAddress> 
ipAddress, Set<Service> services) throws ResourceUnavailableException {
-        if (services.contains(Service.SourceNat)) {
-            // Only if we need to provide SourceNat we need to configure the 
logical router
-            // SourceNat is required for StaticNat and PortForwarding
-            List<NiciraNvpDeviceVO> devices = 
niciraNvpDao.listByPhysicalNetwork(network.getPhysicalNetworkId());
-            if (devices.isEmpty()) {
-                s_logger.error("No NiciraNvp Controller on physical network " 
+ network.getPhysicalNetworkId());
-                return false;
-            }
-            NiciraNvpDeviceVO niciraNvpDevice = devices.get(0);
-            HostVO niciraNvpHost = 
hostDao.findById(niciraNvpDevice.getHostId());
-            hostDao.loadDetails(niciraNvpHost);
-
-            NiciraNvpRouterMappingVO routermapping = 
niciraNvpRouterMappingDao.findByNetworkId(network.getId());
-            if (routermapping == null) {
-                s_logger.error("No logical router uuid found for network " + 
network.getDisplayText());
-                return false;
-            }
-
-            List<String> cidrs = new ArrayList<String>();
-            for (PublicIpAddress ip : ipAddress) {
-                if (ip.getState() == IpAddress.State.Releasing) {
-                    // If we are releasing we don't need to push this ip to
-                    // the Logical Router
-                    continue;
-                }
-                cidrs.add(ip.getAddress().addr() + "/" + 
NetUtils.getCidrSize(ip.getNetmask()));
-            }
-            ConfigurePublicIpsOnLogicalRouterCommand cmd =
-                    new 
ConfigurePublicIpsOnLogicalRouterCommand(routermapping.getLogicalRouterUuid(), 
niciraNvpHost.getDetail("l3gatewayserviceuuid"), cidrs);
-            ConfigurePublicIpsOnLogicalRouterAnswer answer = 
(ConfigurePublicIpsOnLogicalRouterAnswer)agentMgr.easySend(niciraNvpHost.getId(),
 cmd);
-            //FIXME answer can be null if the host is down
-            return answer.getResult();
-        } else {
-            s_logger.debug("No need to provision ip addresses as we are not 
providing L3 services.");
-        }
-
-        return true;
-    }
-
-    /**
-     * From interface StaticNatServiceProvider
-     */
-    @Override
-    public boolean applyStaticNats(Network network, List<? extends StaticNat> 
rules) throws ResourceUnavailableException {
-        if (!canHandle(network, Service.StaticNat)) {
-            return false;
-        }
-
-        List<NiciraNvpDeviceVO> devices = 
niciraNvpDao.listByPhysicalNetwork(network.getPhysicalNetworkId());
-        if (devices.isEmpty()) {
-            s_logger.error("No NiciraNvp Controller on physical network " + 
network.getPhysicalNetworkId());
-            return false;
-        }
-        NiciraNvpDeviceVO niciraNvpDevice = devices.get(0);
-        HostVO niciraNvpHost = hostDao.findById(niciraNvpDevice.getHostId());
-
-        NiciraNvpRouterMappingVO routermapping = 
niciraNvpRouterMappingDao.findByNetworkId(network.getId());
-        if (routermapping == null) {
-            s_logger.error("No logical router uuid found for network " + 
network.getDisplayText());
-            return false;
-        }
-
-        List<StaticNatRuleTO> staticNatRules = new 
ArrayList<StaticNatRuleTO>();
-        for (StaticNat rule : rules) {
-            IpAddress sourceIp = 
networkModel.getIp(rule.getSourceIpAddressId());
-            // Force the nat rule into the StaticNatRuleTO, no use making a 
new TO object
-            // we only need the source and destination ip. Unfortunately no 
mention if a rule
-            // is new.
-            StaticNatRuleTO ruleTO =
-                    new StaticNatRuleTO(1, sourceIp.getAddress().addr(), 
MIN_PORT, MAX_PORT, rule.getDestIpAddress(), MIN_PORT, MAX_PORT, "any", 
rule.isForRevoke(), false);
-            staticNatRules.add(ruleTO);
-        }
-
-        ConfigureStaticNatRulesOnLogicalRouterCommand cmd = new 
ConfigureStaticNatRulesOnLogicalRouterCommand(routermapping.getLogicalRouterUuid(),
 staticNatRules);
-        ConfigureStaticNatRulesOnLogicalRouterAnswer answer = 
(ConfigureStaticNatRulesOnLogicalRouterAnswer)agentMgr.easySend(niciraNvpHost.getId(),
 cmd);
-
-        return answer.getResult();
-    }
-
-    /**
-     * From interface PortForwardingServiceProvider
-     */
-    @Override
-    public boolean applyPFRules(Network network, List<PortForwardingRule> 
rules) throws ResourceUnavailableException {
-        if (!canHandle(network, Service.PortForwarding)) {
-            return false;
-        }
-
-        List<NiciraNvpDeviceVO> devices = 
niciraNvpDao.listByPhysicalNetwork(network.getPhysicalNetworkId());
-        if (devices.isEmpty()) {
-            s_logger.error("No NiciraNvp Controller on physical network " + 
network.getPhysicalNetworkId());
-            return false;
-        }
-        NiciraNvpDeviceVO niciraNvpDevice = devices.get(0);
-        HostVO niciraNvpHost = hostDao.findById(niciraNvpDevice.getHostId());
-
-        NiciraNvpRouterMappingVO routermapping = 
niciraNvpRouterMappingDao.findByNetworkId(network.getId());
-        if (routermapping == null) {
-            s_logger.error("No logical router uuid found for network " + 
network.getDisplayText());
-            return false;
-        }
-
-        List<PortForwardingRuleTO> portForwardingRules = new 
ArrayList<PortForwardingRuleTO>();
-        for (PortForwardingRule rule : rules) {
-            IpAddress sourceIp = 
networkModel.getIp(rule.getSourceIpAddressId());
-            Vlan vlan = vlanDao.findById(sourceIp.getVlanId());
-            PortForwardingRuleTO ruleTO = new PortForwardingRuleTO(rule, 
vlan.getVlanTag(), sourceIp.getAddress().addr());
-            portForwardingRules.add(ruleTO);
-        }
-
-        ConfigurePortForwardingRulesOnLogicalRouterCommand cmd =
-                new 
ConfigurePortForwardingRulesOnLogicalRouterCommand(routermapping.getLogicalRouterUuid(),
 portForwardingRules);
-        ConfigurePortForwardingRulesOnLogicalRouterAnswer answer = 
(ConfigurePortForwardingRulesOnLogicalRouterAnswer)agentMgr.easySend(niciraNvpHost.getId(),
 cmd);
-
-        return answer.getResult();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElementService.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElementService.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElementService.java
deleted file mode 100644
index dae1a0f..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElementService.java
+++ /dev/null
@@ -1,45 +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.network.element;
-
-import java.util.List;
-
-import com.cloud.api.commands.AddNiciraNvpDeviceCmd;
-import com.cloud.api.commands.DeleteNiciraNvpDeviceCmd;
-import com.cloud.api.commands.ListNiciraNvpDeviceNetworksCmd;
-import com.cloud.api.commands.ListNiciraNvpDevicesCmd;
-import com.cloud.api.response.NiciraNvpDeviceResponse;
-import com.cloud.network.Network;
-import com.cloud.network.NiciraNvpDeviceVO;
-import com.cloud.utils.component.PluggableService;
-
-public interface NiciraNvpElementService extends PluggableService {
-
-    public NiciraNvpDeviceVO addNiciraNvpDevice(AddNiciraNvpDeviceCmd cmd);
-
-    public NiciraNvpDeviceResponse 
createNiciraNvpDeviceResponse(NiciraNvpDeviceVO niciraDeviceVO);
-
-    boolean deleteNiciraNvpDevice(DeleteNiciraNvpDeviceCmd cmd);
-
-    List<? extends Network> 
listNiciraNvpDeviceNetworks(ListNiciraNvpDeviceNetworksCmd cmd);
-
-    List<NiciraNvpDeviceVO> listNiciraNvpDevices(ListNiciraNvpDevicesCmd cmd);
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java
deleted file mode 100644
index 640d8a5..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java
+++ /dev/null
@@ -1,256 +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.network.guru;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.List;
-
-import javax.ejb.Local;
-import javax.inject.Inject;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.agent.AgentManager;
-import com.cloud.agent.api.CreateLogicalSwitchAnswer;
-import com.cloud.agent.api.CreateLogicalSwitchCommand;
-import com.cloud.agent.api.DeleteLogicalSwitchAnswer;
-import com.cloud.agent.api.DeleteLogicalSwitchCommand;
-import com.cloud.dc.DataCenter;
-import com.cloud.dc.DataCenter.NetworkType;
-import com.cloud.dc.dao.DataCenterDao;
-import com.cloud.deploy.DeployDestination;
-import com.cloud.deploy.DeploymentPlan;
-import com.cloud.exception.InsufficientAddressCapacityException;
-import com.cloud.exception.InsufficientVirtualNetworkCapacityException;
-import com.cloud.host.HostVO;
-import com.cloud.host.dao.HostDao;
-import com.cloud.host.dao.HostDetailsDao;
-import com.cloud.network.Network;
-import com.cloud.network.Network.GuestType;
-import com.cloud.network.Network.Service;
-import com.cloud.network.Network.State;
-import com.cloud.network.NetworkModel;
-import com.cloud.network.NetworkProfile;
-import com.cloud.network.Networks.BroadcastDomainType;
-import com.cloud.network.NiciraNvpDeviceVO;
-import com.cloud.network.PhysicalNetwork;
-import com.cloud.network.PhysicalNetwork.IsolationMethod;
-import com.cloud.network.dao.NetworkDao;
-import com.cloud.network.dao.NetworkVO;
-import com.cloud.network.dao.NiciraNvpDao;
-import com.cloud.network.dao.PhysicalNetworkDao;
-import com.cloud.network.dao.PhysicalNetworkVO;
-import com.cloud.offering.NetworkOffering;
-import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
-import com.cloud.resource.ResourceManager;
-import com.cloud.user.Account;
-import com.cloud.user.dao.AccountDao;
-import com.cloud.vm.NicProfile;
-import com.cloud.vm.ReservationContext;
-import com.cloud.vm.VirtualMachineProfile;
-
-@Local(value = NetworkGuru.class)
-public class NiciraNvpGuestNetworkGuru extends GuestNetworkGuru {
-    private static final int MAX_NAME_LENGTH = 40;
-
-    private static final Logger s_logger = 
Logger.getLogger(NiciraNvpGuestNetworkGuru.class);
-
-    @Inject
-    protected NetworkModel networkModel;
-    @Inject
-    protected NetworkDao networkDao;
-    @Inject
-    protected DataCenterDao zoneDao;
-    @Inject
-    protected PhysicalNetworkDao physicalNetworkDao;
-    @Inject
-    protected AccountDao accountDao;
-    @Inject
-    protected NiciraNvpDao niciraNvpDao;
-    @Inject
-    protected HostDao hostDao;
-    @Inject
-    protected ResourceManager resourceMgr;
-    @Inject
-    protected AgentManager agentMgr;
-    @Inject
-    protected HostDetailsDao hostDetailsDao;
-    @Inject
-    protected NetworkOfferingServiceMapDao ntwkOfferingSrvcDao;
-
-    public NiciraNvpGuestNetworkGuru() {
-        super();
-        _isolationMethods = new IsolationMethod[] {IsolationMethod.STT, 
IsolationMethod.VXLAN};
-    }
-
-    @Override
-    protected boolean canHandle(final NetworkOffering offering, final 
NetworkType networkType, final PhysicalNetwork physicalNetwork) {
-        // This guru handles only Guest Isolated network that supports Source 
nat service
-        if (networkType == NetworkType.Advanced && 
isMyTrafficType(offering.getTrafficType()) && offering.getGuestType() == 
Network.GuestType.Isolated &&
-            isMyIsolationMethod(physicalNetwork) && 
ntwkOfferingSrvcDao.areServicesSupportedByNetworkOffering(offering.getId(), 
Service.Connectivity)) {
-            return true;
-        } else {
-            s_logger.trace("We only take care of Guest networks of type   " + 
GuestType.Isolated + " in zone of type " + NetworkType.Advanced);
-            return false;
-        }
-    }
-
-    @Override
-    public Network design(final NetworkOffering offering, final DeploymentPlan 
plan, final Network userSpecified, final Account owner) {
-        // Check of the isolation type of the related physical network is 
supported
-        PhysicalNetworkVO physnet = 
physicalNetworkDao.findById(plan.getPhysicalNetworkId());
-        DataCenter dc = _dcDao.findById(plan.getDataCenterId());
-        if (!canHandle(offering, dc.getNetworkType(), physnet)) {
-            s_logger.debug("Refusing to design this network");
-            return null;
-        }
-
-        List<NiciraNvpDeviceVO> devices = 
niciraNvpDao.listByPhysicalNetwork(physnet.getId());
-        if (devices.isEmpty()) {
-            s_logger.error("No NiciraNvp Controller on physical network " + 
physnet.getName());
-            return null;
-        }
-        s_logger.debug("Nicira Nvp " + devices.get(0).getUuid() + " found on 
physical network " + physnet.getId());
-
-        s_logger.debug("Physical isolation type is supported, asking 
GuestNetworkGuru to design this network");
-        NetworkVO networkObject = (NetworkVO)super.design(offering, plan, 
userSpecified, owner);
-        if (networkObject == null) {
-            return null;
-        }
-        // Override the broadcast domain type
-        networkObject.setBroadcastDomainType(BroadcastDomainType.Lswitch);
-
-        return networkObject;
-    }
-
-    @Override
-    public Network implement(final Network network, final NetworkOffering 
offering, final DeployDestination dest, final ReservationContext context)
-        throws InsufficientVirtualNetworkCapacityException {
-        assert (network.getState() == State.Implementing) : "Why are we 
implementing " + network;
-
-        long dcId = dest.getDataCenter().getId();
-
-        //get physical network id
-        Long physicalNetworkId = network.getPhysicalNetworkId();
-
-        // physical network id can be null in Guest Network in Basic zone, so 
locate the physical network
-        if (physicalNetworkId == null) {
-            physicalNetworkId = networkModel.findPhysicalNetworkId(dcId, 
offering.getTags(), offering.getTrafficType());
-        }
-
-        NetworkVO implemented =
-            new NetworkVO(network.getTrafficType(), network.getMode(), 
network.getBroadcastDomainType(), network.getNetworkOfferingId(), 
State.Allocated,
-                network.getDataCenterId(), physicalNetworkId, 
offering.getRedundantRouter());
-
-        if (network.getGateway() != null) {
-            implemented.setGateway(network.getGateway());
-        }
-
-        if (network.getCidr() != null) {
-            implemented.setCidr(network.getCidr());
-        }
-
-        // Name is either the given name or the uuid
-        String name = network.getName();
-        if (name == null || name.isEmpty()) {
-            name = ((NetworkVO)network).getUuid();
-        }
-        if (name.length() > MAX_NAME_LENGTH) {
-            name = name.substring(0, MAX_NAME_LENGTH - 1); // max length 40
-        }
-
-        List<NiciraNvpDeviceVO> devices = 
niciraNvpDao.listByPhysicalNetwork(physicalNetworkId);
-        if (devices.isEmpty()) {
-            s_logger.error("No NiciraNvp Controller on physical network " + 
physicalNetworkId);
-            return null;
-        }
-        NiciraNvpDeviceVO niciraNvpDevice = devices.get(0);
-        HostVO niciraNvpHost = hostDao.findById(niciraNvpDevice.getHostId());
-        hostDao.loadDetails(niciraNvpHost);
-        String transportzoneuuid = 
niciraNvpHost.getDetail("transportzoneuuid");
-        String transportzoneisotype = 
niciraNvpHost.getDetail("transportzoneisotype");
-
-        CreateLogicalSwitchCommand cmd =
-            new CreateLogicalSwitchCommand(transportzoneuuid, 
transportzoneisotype, name, context.getDomain().getName() + "-" + 
context.getAccount().getAccountName());
-        CreateLogicalSwitchAnswer answer = 
(CreateLogicalSwitchAnswer)agentMgr.easySend(niciraNvpHost.getId(), cmd);
-
-        if (answer == null || !answer.getResult()) {
-            s_logger.error("CreateLogicalSwitchCommand failed");
-            return null;
-        }
-
-        try {
-            implemented.setBroadcastUri(new URI("lswitch", 
answer.getLogicalSwitchUuid(), null));
-            implemented.setBroadcastDomainType(BroadcastDomainType.Lswitch);
-            s_logger.info("Implemented OK, network linked to  = " + 
implemented.getBroadcastUri().toString());
-        } catch (URISyntaxException e) {
-            s_logger.error("Unable to store logical switch id in broadcast 
uri, uuid = " + implemented.getUuid(), e);
-            return null;
-        }
-
-        return implemented;
-    }
-
-    @Override
-    public void reserve(final NicProfile nic, final Network network, final 
VirtualMachineProfile vm, final DeployDestination dest, final 
ReservationContext context)
-        throws InsufficientVirtualNetworkCapacityException, 
InsufficientAddressCapacityException {
-        // TODO Auto-generated method stub
-        super.reserve(nic, network, vm, dest, context);
-    }
-
-    @Override
-    public boolean release(final NicProfile nic, final VirtualMachineProfile 
vm, final String reservationId) {
-        // TODO Auto-generated method stub
-        return super.release(nic, vm, reservationId);
-    }
-
-    @Override
-    public void shutdown(final NetworkProfile profile, final NetworkOffering 
offering) {
-        NetworkVO networkObject = networkDao.findById(profile.getId());
-        if (networkObject.getBroadcastDomainType() != 
BroadcastDomainType.Lswitch || networkObject.getBroadcastUri() == null) {
-            s_logger.warn("BroadcastUri is empty or incorrect for guestnetwork 
" + networkObject.getDisplayText());
-            return;
-        }
-
-        List<NiciraNvpDeviceVO> devices = 
niciraNvpDao.listByPhysicalNetwork(networkObject.getPhysicalNetworkId());
-        if (devices.isEmpty()) {
-            s_logger.error("No NiciraNvp Controller on physical network " + 
networkObject.getPhysicalNetworkId());
-            return;
-        }
-        NiciraNvpDeviceVO niciraNvpDevice = devices.get(0);
-        HostVO niciraNvpHost = hostDao.findById(niciraNvpDevice.getHostId());
-
-        DeleteLogicalSwitchCommand cmd = new 
DeleteLogicalSwitchCommand(BroadcastDomainType.getValue(networkObject.getBroadcastUri()));
-        DeleteLogicalSwitchAnswer answer = 
(DeleteLogicalSwitchAnswer)agentMgr.easySend(niciraNvpHost.getId(), cmd);
-
-        if (answer == null || !answer.getResult()) {
-            s_logger.error("DeleteLogicalSwitchCommand failed");
-        }
-
-        super.shutdown(profile, offering);
-    }
-
-    @Override
-    public boolean trash(final Network network, final NetworkOffering 
offering) {
-        return super.trash(network, offering);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/93b0989d/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/AccessConfiguration.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/AccessConfiguration.java
 
b/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/AccessConfiguration.java
deleted file mode 100644
index b5291dc..0000000
--- 
a/plugins/network-elements/nicira-nvp/src/com/cloud/network/nicira/AccessConfiguration.java
+++ /dev/null
@@ -1,44 +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.network.nicira;
-
-import java.util.List;
-
-public abstract class AccessConfiguration<T extends AccessRule> extends 
BaseNiciraNamedEntity {
-
-    protected List<T> logicalPortEgressRules;
-    protected List<T> logicalPortIngressRules;
-
-    public List<T> getLogicalPortEgressRules() {
-        return logicalPortEgressRules;
-    }
-
-    public void setLogicalPortEgressRules(final List<T> 
logicalPortEgressRules) {
-        this.logicalPortEgressRules = logicalPortEgressRules;
-    }
-
-    public List<T> getLogicalPortIngressRules() {
-        return logicalPortIngressRules;
-    }
-
-    public void setLogicalPortIngressRules(final List<T> 
logicalPortIngressRules) {
-        this.logicalPortIngressRules = logicalPortIngressRules;
-    }
-}

Reply via email to