Package com.cloud.dc

Examples of com.cloud.dc.StorageNetworkIpRangeVO


        if (_sNwIpDao.countInUseIpByRangeId(rangeId) > 0) {
            throw new CloudRuntimeException("Cannot update the range," + getInUseIpAddress(rangeId));
        }

        StorageNetworkIpRangeVO range = _sNwIpRangeDao.findById(rangeId);
        if (range == null) {
            throw new CloudRuntimeException("Cannot find storage ip range " + rangeId);
        }

        if (startIp != null || endIp != null) {
            long podId = range.getPodId();
            startIp = startIp == null ? range.getStartIp() : startIp;
            endIp = endIp == null ? range.getEndIp() : endIp;
            checkOverlapPrivateIpRange(podId, startIp, endIp);
            checkOverlapStorageIpRange(podId, startIp, endIp);
        }

        Transaction txn = Transaction.currentTxn();
        txn.start();
        try {
            range = _sNwIpRangeDao.acquireInLockTable(range.getId());
            if (range == null) {
                throw new CloudRuntimeException("Cannot acquire lock on storage ip range " + rangeId);
            }
            StorageNetworkIpRangeVO vo = _sNwIpRangeDao.createForUpdate();
            if (vlan != null) {
                vo.setVlan(vlan);
            }
            if (startIp != null) {
                vo.setStartIp(startIp);
            }
            if (endIp != null) {
                vo.setEndIp(endIp);
            }
            if (netmask != null) {
                vo.setNetmask(netmask);
            }
            _sNwIpRangeDao.update(rangeId, vo);
        } finally {
            if (range != null) {
                _sNwIpRangeDao.releaseFromLockTable(range.getId());
View Full Code Here


        checkOverlapPrivateIpRange(podId, startIp, endIp);
        checkOverlapStorageIpRange(podId, startIp, endIp);

        Transaction txn = Transaction.currentTxn();
        StorageNetworkIpRangeVO range = null;

        txn.start();
        range = new StorageNetworkIpRangeVO(zoneId, podId, nw.getId(), startIp, endIp, vlan, netmask, cmd.getGateWay());
        _sNwIpRangeDao.persist(range);
        try {
            createStorageIpEntires(txn, range.getId(), startIp, endIp, zoneId);
        } catch (SQLException e) {
            txn.rollback();
            StringBuilder err = new StringBuilder();
            err.append("Create storage network range failed.");
            err.append("startIp=" + startIp);
View Full Code Here

    @Override
    @DB
    public void deleteIpRange(DeleteStorageNetworkIpRangeCmd cmd) {
        long rangeId = cmd.getId();
        StorageNetworkIpRangeVO range = _sNwIpRangeDao.findById(rangeId);
        if (range == null) {
            throw new CloudRuntimeException("Can not find storage network ip range " + rangeId);
        }

        if (_sNwIpDao.countInUseIpByRangeId(rangeId) > 0) {
View Full Code Here

        if (_sNwIpDao.countInUseIpByRangeId(rangeId) > 0) {
            throw new CloudRuntimeException("Cannot update the range," + getInUseIpAddress(rangeId));
        }

        StorageNetworkIpRangeVO range = _sNwIpRangeDao.findById(rangeId);
        if (range == null) {
            throw new CloudRuntimeException("Cannot find storage ip range " + rangeId);
        }

        if (startIp != null || endIp != null) {
            long podId = range.getPodId();
            startIp = startIp == null ? range.getStartIp() : startIp;
            endIp = endIp == null ? range.getEndIp() : endIp;
            checkOverlapPrivateIpRange(podId, startIp, endIp);
            checkOverlapStorageIpRange(podId, startIp, endIp);
        }

        final String startIpFinal = startIp;
        final String endIpFinal = endIp;
        Transaction.execute(new TransactionCallbackNoReturn() {
            @Override
            public void doInTransactionWithoutResult(TransactionStatus status) {
                StorageNetworkIpRangeVO range = null;
                try {
                    range = _sNwIpRangeDao.acquireInLockTable(rangeId);
                    if (range == null) {
                        throw new CloudRuntimeException("Cannot acquire lock on storage ip range " + rangeId);
                    }
                    StorageNetworkIpRangeVO vo = _sNwIpRangeDao.createForUpdate();
                    if (vlan != null) {
                        vo.setVlan(vlan);
                    }
                    if (startIpFinal != null) {
                        vo.setStartIp(startIpFinal);
                    }
                    if (endIpFinal != null) {
                        vo.setEndIp(endIpFinal);
                    }
                    if (netmask != null) {
                        vo.setNetmask(netmask);
                    }
                    _sNwIpRangeDao.update(rangeId, vo);
                } finally {
                    if (range != null) {
                        _sNwIpRangeDao.releaseFromLockTable(range.getId());
View Full Code Here

        final NetworkVO nw = nws.get(0);

        checkOverlapPrivateIpRange(podId, startIp, endIp);
        checkOverlapStorageIpRange(podId, startIp, endIp);

        StorageNetworkIpRangeVO range = null;

        final String endIpFinal = endIp;
        return Transaction.execute(new TransactionCallbackWithException<StorageNetworkIpRangeVO, SQLException>() {
            @Override
            public StorageNetworkIpRangeVO doInTransaction(TransactionStatus status) throws SQLException {
                StorageNetworkIpRangeVO range = new StorageNetworkIpRangeVO(zoneId, podId, nw.getId(), startIp, endIpFinal, vlan, netmask, cmd.getGateWay());
                _sNwIpRangeDao.persist(range);
                try {
                    createStorageIpEntires(TransactionLegacy.currentTxn(), range.getId(), startIp, endIpFinal, zoneId);
                } catch (SQLException e) {
                    StringBuilder err = new StringBuilder();
                    err.append("Create storage network range failed.");
                    err.append("startIp=" + startIp);
                    err.append("endIp=" + endIpFinal);
View Full Code Here

    @Override
    @DB
    public void deleteIpRange(DeleteStorageNetworkIpRangeCmd cmd) {
        final long rangeId = cmd.getId();
        StorageNetworkIpRangeVO range = _sNwIpRangeDao.findById(rangeId);
        if (range == null) {
            throw new CloudRuntimeException("Can not find storage network ip range " + rangeId);
        }

        if (_sNwIpDao.countInUseIpByRangeId(rangeId) > 0) {
            throw new CloudRuntimeException(getInUseIpAddress(rangeId));
        }

        Transaction.execute(new TransactionCallbackNoReturn() {
            @Override
            public void doInTransactionWithoutResult(TransactionStatus status) {
                StorageNetworkIpRangeVO range = null;
                try {
                    range = _sNwIpRangeDao.acquireInLockTable(rangeId);
                    if (range == null) {
                        String msg = "Unable to acquire lock on storage network ip range id=" + rangeId + ", delete failed";
                        s_logger.warn(msg);
View Full Code Here

   
    if (_sNwIpDao.countInUseIpByRangeId(rangeId) > 0) {
      throw new CloudRuntimeException("Cannot update the range," + getInUseIpAddress(rangeId));
    }
   
    StorageNetworkIpRangeVO range = _sNwIpRangeDao.findById(rangeId);
    if (range == null) {
      throw new CloudRuntimeException("Cannot find storage ip range " + rangeId);
    }
   
    if (startIp != null || endIp != null) {
      long podId = range.getPodId();
      startIp = startIp == null ? range.getStartIp() : startIp;
      endIp = endIp == null ? range.getEndIp() : endIp;
      checkOverlapPrivateIpRange(podId, startIp, endIp);
      checkOverlapStorageIpRange(podId, startIp, endIp);
    }
   
    Transaction txn = Transaction.currentTxn();
    txn.start();
    try {
      range = _sNwIpRangeDao.acquireInLockTable(range.getId());
      if (range == null) {
        throw new CloudRuntimeException("Cannot acquire lock on storage ip range " + rangeId);
      }
      StorageNetworkIpRangeVO vo = _sNwIpRangeDao.createForUpdate();
      if (vlan != null) {
        vo.setVlan(vlan);
      }
      if (startIp != null) {
        vo.setStartIp(startIp);
      }
      if (endIp != null) {
        vo.setEndIp(endIp);
      }
      if (netmask != null) {
        vo.setNetmask(netmask);
      }
      _sNwIpRangeDao.update(rangeId, vo);
    } finally {
      if (range != null) {
        _sNwIpRangeDao.releaseFromLockTable(range.getId());
View Full Code Here

   
    checkOverlapPrivateIpRange(podId, startIp, endIp);
    checkOverlapStorageIpRange(podId, startIp, endIp);

    Transaction txn = Transaction.currentTxn();
    StorageNetworkIpRangeVO range = null;

    txn.start();
    range = new StorageNetworkIpRangeVO(zoneId, podId, nw.getId(), startIp, endIp, vlan, netmask, cmd.getGateWay());
    _sNwIpRangeDao.persist(range);
    try {
      createStorageIpEntires(txn, range.getId(), startIp, endIp, zoneId);
    } catch (SQLException e) {
      txn.rollback();
      StringBuilder err = new StringBuilder();
      err.append("Create storage network range failed.");
      err.append("startIp=" + startIp);
View Full Code Here

 
  @Override
  @DB
    public void deleteIpRange(DeleteStorageNetworkIpRangeCmd cmd) {
    long rangeId = cmd.getId();
    StorageNetworkIpRangeVO range = _sNwIpRangeDao.findById(rangeId);
    if (range == null) {
      throw new CloudRuntimeException("Can not find storage network ip range " + rangeId);
    }
   
    if (_sNwIpDao.countInUseIpByRangeId(rangeId) > 0) {
View Full Code Here

        if (_sNwIpDao.countInUseIpByRangeId(rangeId) > 0) {
            throw new CloudRuntimeException("Cannot update the range," + getInUseIpAddress(rangeId));
        }

        StorageNetworkIpRangeVO range = _sNwIpRangeDao.findById(rangeId);
        if (range == null) {
            throw new CloudRuntimeException("Cannot find storage ip range " + rangeId);
        }

        if (startIp != null || endIp != null) {
            long podId = range.getPodId();
            startIp = startIp == null ? range.getStartIp() : startIp;
            endIp = endIp == null ? range.getEndIp() : endIp;
            checkOverlapPrivateIpRange(podId, startIp, endIp);
            checkOverlapStorageIpRange(podId, startIp, endIp);
        }

        final String startIpFinal = startIp;
        final String endIpFinal = endIp;
        Transaction.execute(new TransactionCallbackNoReturn() {
            @Override
            public void doInTransactionWithoutResult(TransactionStatus status) {
                StorageNetworkIpRangeVO range = null;
                try {
                    range = _sNwIpRangeDao.acquireInLockTable(rangeId);
                    if (range == null) {
                        throw new CloudRuntimeException("Cannot acquire lock on storage ip range " + rangeId);
                    }
                    StorageNetworkIpRangeVO vo = _sNwIpRangeDao.createForUpdate();
                    if (vlan != null) {
                        vo.setVlan(vlan);
                    }
                    if (startIpFinal != null) {
                        vo.setStartIp(startIpFinal);
                    }
                    if (endIpFinal != null) {
                        vo.setEndIp(endIpFinal);
                    }
                    if (netmask != null) {
                        vo.setNetmask(netmask);
                    }
                    _sNwIpRangeDao.update(rangeId, vo);
                } finally {
                    if (range != null) {
                        _sNwIpRangeDao.releaseFromLockTable(range.getId());
View Full Code Here

TOP

Related Classes of com.cloud.dc.StorageNetworkIpRangeVO

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.