for (MWMTrigger copyTrigger : src.getTriggers()) { Set<MWMPool> p2t = triggersToPools.get(copyTrigger.getName()); if (p2t == null) {
private WMFullResourcePlan fullFromMResourcePlan(MWMResourcePlan mplan) { if (mplan == null) { return null; } WMFullResourcePlan rp = new WMFullResourcePlan(); rp.setPlan(fromMResourcePlan(mplan)); for (MWMPool mPool : mplan.getPools()) { rp.addToPools(fromMPool(mPool, mplan.getName())); for (MWMTrigger mTrigger : mPool.getTriggers()) { rp.addToPoolTriggers(new WMPoolTrigger(mPool.getPath(), mTrigger.getName())); } } for (MWMTrigger mTrigger : mplan.getTriggers()) { rp.addToTriggers(fromMWMTrigger(mTrigger, mplan.getName())); } for (MWMMapping mMapping : mplan.getMappings()) { rp.addToMappings(fromMMapping(mMapping, mplan.getName())); } return rp; }
@Override public void dropResourcePlan(String name, String ns) throws NoSuchObjectException, MetaException { name = normalizeIdentifier(name); boolean commited = false; Query query = null; try { query = createGetResourcePlanQuery(); MWMResourcePlan resourcePlan = (MWMResourcePlan) query.execute(name, getNsOrDefault(ns)); pm.retrieve(resourcePlan); // TODO: why do some codepaths call retrieve and some don't? if (resourcePlan == null) { throw new NoSuchObjectException("There is no resource plan named: " + name + " in " + ns); } if (resourcePlan.getStatus() == Status.ACTIVE) { throw new MetaException("Cannot drop an active resource plan"); } // First, drop all the dependencies. resourcePlan.setDefaultPool(null); pm.deletePersistentAll(resourcePlan.getTriggers()); pm.deletePersistentAll(resourcePlan.getMappings()); pm.deletePersistentAll(resourcePlan.getPools()); pm.deletePersistent(resourcePlan); commited = commitTransaction(); } finally { rollbackAndCleanup(commited, query); } }
for (MWMTrigger copyTrigger : src.getTriggers()) { Set<MWMPool> p2t = triggersToPools.get(copyTrigger.getName()); if (p2t == null) {
private WMFullResourcePlan fullFromMResourcePlan(MWMResourcePlan mplan) { if (mplan == null) { return null; } WMFullResourcePlan rp = new WMFullResourcePlan(); rp.setPlan(fromMResourcePlan(mplan)); for (MWMPool mPool : mplan.getPools()) { rp.addToPools(fromMPool(mPool, mplan.getName())); for (MWMTrigger mTrigger : mPool.getTriggers()) { rp.addToPoolTriggers(new WMPoolTrigger(mPool.getPath(), mTrigger.getName())); } } for (MWMTrigger mTrigger : mplan.getTriggers()) { rp.addToTriggers(fromMWMTrigger(mTrigger, mplan.getName())); } for (MWMMapping mMapping : mplan.getMappings()) { rp.addToMappings(fromMMapping(mMapping, mplan.getName())); } return rp; }
@Override public void dropResourcePlan(String name) throws NoSuchObjectException, MetaException { name = normalizeIdentifier(name); boolean commited = false; Query query = null; try { openTransaction(); query = pm.newQuery(MWMResourcePlan.class, "name == rpname"); query.declareParameters("java.lang.String rpname"); query.setUnique(true); MWMResourcePlan resourcePlan = (MWMResourcePlan) query.execute(name); pm.retrieve(resourcePlan); if (resourcePlan == null) { throw new NoSuchObjectException("There is no resource plan named: " + name); } if (resourcePlan.getStatus() == Status.ACTIVE) { throw new MetaException("Cannot drop an active resource plan"); } // First, drop all the dependencies. resourcePlan.setDefaultPool(null); pm.deletePersistentAll(resourcePlan.getTriggers()); pm.deletePersistentAll(resourcePlan.getMappings()); pm.deletePersistentAll(resourcePlan.getPools()); pm.deletePersistent(resourcePlan); commited = commitTransaction(); } finally { rollbackAndCleanup(commited, query); } }