CS-9919 Support for Nexus Swiches (Cisco Vswitches)

Description:

	1. Removed CiscoNexusVSM.java.

	2. Put in invocation of Netconfhelper's
	   connect method to a VSM, in
	   CiscoNexusVSMDeviceManagerImpl.java.
This commit is contained in:
Vijayendra Bhamidipati 2012-05-09 19:39:26 -07:00
parent 8ba1d62b50
commit 7e845cfa62
2 changed files with 10 additions and 103 deletions

View File

@ -1,96 +0,0 @@
// Copyright 2012 Citrix Systems, Inc. Licensed under the
// Apache License, Version 2.0 (the "License"); you may not use this
// file except in compliance with the License. Citrix Systems, Inc.
// reserves all rights not expressly granted by 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.resource;
import com.cloud.utils.cisco.n1kv.vsm.NetconfHelper;
import com.cloud.utils.ssh.*;
import com.cloud.utils.cisco.n1kv.vsm.CiscoNexusVSMService;
import org.apache.log4j.Logger;
class VSMError {
static final int VSM_RESOURCE_EXISTS = 89901;
static final int VSM_RESOURCE_NOT_EXISTS= 89902;
static final int VSM_NO_SERIVCE = 89903;
static final int VSM_OPERATION_NOT_PERMITTED = 89904;
}
public class CiscoNexusVSM {
// deployment configuration
private String vsmIpaddr;
private String vsmUsername;
private String vsmPassword;
private String vsmSubsystem;
com.trilead.ssh2.Connection sshConnection;
private static final Logger s_logger = Logger.getLogger(CiscoNexusVSM.class);
// interface to interact with Cisco Nexus VSM devices
CiscoNexusVSMService _vsmService;
Long _timeout = new Long(100000);
// We need to store the result of the XML-RPC command sent to
// the VSM. For now it's a string. We should make this the appropriate XSD object.
String xml_rpc_response;
public void setVsmIpaddr(String ipaddr) {
this.vsmIpaddr = ipaddr;
}
public void setVsmUsername(String username) {
this.vsmUsername = username;
}
public void setVsmPassword(String password) {
this.vsmPassword = password;
}
public void setVsmSubsystem(String subsystem) {
this.vsmSubsystem = subsystem;
}
public CiscoNexusVSM() {
this.vsmSubsystem = "xmlagent";
}
public String getVsmIpaddr() {
return vsmIpaddr;
}
public String getVsmUsername() {
return vsmUsername;
}
public String getVsmPassword() {
return vsmPassword;
}
public String getVsmSubsystem() {
return vsmSubsystem;
}
public CiscoNexusVSM(String username, String ipaddr, String password) {
}
public boolean connectToVSM() {
sshConnection = SSHCmdHelper.acquireAuthorizedConnection(this.vsmIpaddr, this.vsmUsername, this.vsmPassword);
if (sshConnection == null) {
return false;
}
return true;
}
}

View File

@ -13,6 +13,7 @@
package com.cloud.network;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -38,13 +39,10 @@ import com.cloud.utils.component.Inject;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.network.PortProfileVO.BindingType;
import com.cloud.network.PortProfileVO.PortType;
import com.cloud.network.dao.CiscoNexusVSMDeviceDao;
import com.cloud.network.dao.PortProfileDao;
import com.cloud.network.resource.CiscoNexusVSM;
import com.cloud.exception.ResourceInUseException;
import com.cloud.network.PortProfileManagerImpl;
import com.cloud.utils.cisco.n1kv.vsm.NetconfHelper;
public abstract class CiscoNexusVSMDeviceManagerImpl extends AdapterBase {
@ -102,11 +100,16 @@ public abstract class CiscoNexusVSMDeviceManagerImpl extends AdapterBase {
// the VSM.
//NetconfHelper (String ip, String username, String password)
CiscoNexusVSM vsmObj = new CiscoNexusVSM(ipaddress, username, password);
if (!vsmObj.connectToVSM()) {
throw new CloudRuntimeException("Couldn't login to the specified VSM");
NetconfHelper netconfClient;
try {
netconfClient = new NetconfHelper(ipaddress, username, password);
} catch(CloudRuntimeException e) {
String msg = "Failed to connect to Nexus VSM " + ipaddress + " with credentials of user " + username;
s_logger.error(msg);
throw new CloudRuntimeException(msg);
}
// Now, go ahead and associate the cluster with this VSM.
// First, check if VSM already exists in the table "virtual_supervisor_module".
// If it's not there already, create it.