/** * Notify RM to create a new node. * * @param parentID The ID of the machine the node belongs to * @param name the name of the node * @param number the number of the node (rank) * @return the id of the new node */ public String createNode(String parentID, String name, int number) { String id = generateID(); ElementAttributeManager mgr = new ElementAttributeManager(); AttributeManager attrMgr = new AttributeManager(); attrMgr.addAttribute( NodeAttributes.getStateAttributeDefinition().create(NodeAttributes.State.UP)); try { attrMgr.addAttribute( NodeAttributes.getNumberAttributeDefinition().create(new Integer(number))); } catch (IllegalValueException e) { /* * This exception is not possible, since number is always valid. */ RMCorePlugin.log(e); assert false; } attrMgr.addAttribute(ElementAttributes.getNameAttributeDefinition().create(name)); mgr.setAttributeManager(new RangeSet(id), attrMgr); fireRuntimeNewNodeEvent(eventFactory.newRuntimeNewNodeEvent(parentID, mgr)); DebugUtil.trace( DebugUtil.RTS_TRACING, "RTS {0}: new node #{1}", getResourceManager().getConfiguration().getName(), id); //$NON-NLS-1$ return id; }