Search in sources :

Example 1 with RegisterNetscalerControlCenterCmd

use of com.cloud.api.commands.RegisterNetscalerControlCenterCmd in project cloudstack by apache.

the class NetscalerElement method registerNetscalerControlCenter.

@Override
@DB
public NetScalerControlCenterVO registerNetscalerControlCenter(RegisterNetscalerControlCenterCmd cmd) {
    if (_netscalerControlCenterDao.listAll() != null && _netscalerControlCenterDao.listAll().size() != 0) {
        throw new CloudRuntimeException("One Netscaler Control Center already exist in the DataBase. At a time only one Netscaler Control Center is allowed");
    }
    final RegisterNetscalerControlCenterCmd cmdinfo = cmd;
    String ipAddress = cmd.getIpaddress();
    Map hostDetails = new HashMap<String, String>();
    String hostName = "NetscalerControlCenter";
    hostDetails.put("name", hostName);
    hostDetails.put("guid", UUID.randomUUID().toString());
    List<DataCenterVO> dcVO = _dcDao.listEnabledZones();
    if (dcVO.size() == 0) {
        throw new CloudRuntimeException("There is no single enabled zone. Please add a zone, enable it and then add Netscaler ControlCenter");
    }
    hostDetails.put("zoneId", "1");
    hostDetails.put("ip", ipAddress);
    hostDetails.put("username", cmd.getUsername());
    hostDetails.put("password", cmd.getPassword());
    hostDetails.put("deviceName", "Netscaler ControlCenter");
    ServerResource resource = new NetScalerControlCenterResource();
    try {
        resource.configure(hostName, hostDetails);
        return Transaction.execute(new TransactionCallback<NetScalerControlCenterVO>() {

            @Override
            public NetScalerControlCenterVO doInTransaction(TransactionStatus status) {
                NetScalerControlCenterVO nccVO = new NetScalerControlCenterVO(cmdinfo.getUsername(), DBEncryptionUtil.encrypt(cmdinfo.getPassword()), cmdinfo.getIpaddress(), cmdinfo.getNumretries());
                _netscalerControlCenterDao.persist(nccVO);
                return nccVO;
            }
        });
    } catch (ConfigurationException e) {
        resource = null;
        throw new CloudRuntimeException(e.getMessage());
    }
}
Also used : RegisterNetscalerControlCenterCmd(com.cloud.api.commands.RegisterNetscalerControlCenterCmd) DataCenterVO(com.cloud.dc.DataCenterVO) HashMap(java.util.HashMap) NetScalerControlCenterVO(com.cloud.network.NetScalerControlCenterVO) ServerResource(com.cloud.resource.ServerResource) TransactionStatus(com.cloud.utils.db.TransactionStatus) ConfigurationException(javax.naming.ConfigurationException) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) Map(java.util.Map) HashMap(java.util.HashMap) NetScalerControlCenterResource(com.cloud.network.resource.NetScalerControlCenterResource) DB(com.cloud.utils.db.DB)

Aggregations

RegisterNetscalerControlCenterCmd (com.cloud.api.commands.RegisterNetscalerControlCenterCmd)1 DataCenterVO (com.cloud.dc.DataCenterVO)1 NetScalerControlCenterVO (com.cloud.network.NetScalerControlCenterVO)1 NetScalerControlCenterResource (com.cloud.network.resource.NetScalerControlCenterResource)1 ServerResource (com.cloud.resource.ServerResource)1 DB (com.cloud.utils.db.DB)1 TransactionStatus (com.cloud.utils.db.TransactionStatus)1 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 ConfigurationException (javax.naming.ConfigurationException)1