/** * Find a node for an AA role and request an instance on that (or a location-less * instance) * @param role role status * @return a request ready to go, or null if no location can be found. */ public synchronized OutstandingRequest requestContainerForAARole(RoleStatus role) { List<NodeInstance> nodes = findNodeForNewAAInstance(role); if (!nodes.isEmpty()) { OutstandingRequest outstanding = outstandingRequests.newAARequest( role.getKey(), nodes, role.getLabelExpression()); Resource resource = recordFactory.newResource(); role.copyResourceRequirements(resource); outstanding.buildContainerRequest(resource, role, now()); return outstanding; } else { log.warn("No suitable location for {}", role.getName()); return null; } } /**
/** * Find a node for a role and request an instance on that (or a location-less * instance) * @param role role status * @return a request ready to go, or null if this is an AA request and no * location can be found. */ public synchronized OutstandingRequest requestContainerForRole(RoleStatus role) { if (role.isAntiAffinePlacement()) { return requestContainerForAARole(role); } else { Resource resource = recordFactory.newResource(); role.copyResourceRequirements(resource); NodeInstance node = findRecentNodeForNewInstance(role); return requestInstanceOnNode(node, role, resource); } }
/** * Find a node for an AA role and request an instance on that (or a location-less * instance) * @param role role status * @return a request ready to go, or null if no location can be found. */ public synchronized OutstandingRequest requestContainerForAARole(RoleStatus role) { List<NodeInstance> nodes = findNodeForNewAAInstance(role); if (!nodes.isEmpty()) { OutstandingRequest outstanding = outstandingRequests.newAARequest( role.getKey(), nodes, role.getLabelExpression()); Resource resource = recordFactory.newResource(); role.copyResourceRequirements(resource); outstanding.buildContainerRequest(resource, role, now()); return outstanding; } else { log.warn("No suitable location for {}", role.getName()); return null; } } /**
/** * Find a node for a role and request an instance on that (or a location-less * instance) * @param role role status * @return a request ready to go, or null if this is an AA request and no * location can be found. */ public synchronized OutstandingRequest requestContainerForRole(RoleStatus role) { if (role.isAntiAffinePlacement()) { return requestContainerForAARole(role); } else { Resource resource = recordFactory.newResource(); role.copyResourceRequirements(resource); NodeInstance node = findRecentNodeForNewInstance(role); return requestInstanceOnNode(node, role, resource); } }