setId(from.getId()); setName(from.getName()); setAccountId(from.getAccountId()); setKind(from.getKind()); setUuid(from.getUuid()); setDescription(from.getDescription()); setState(from.getState()); setCreated(from.getCreated()); setRemoved(from.getRemoved()); setRemoveTime(from.getRemoveTime()); setData(from.getData()); setUri(from.getUri()); setComputeFree(from.getComputeFree()); setComputeTotal(from.getComputeTotal()); setAgentId(from.getAgentId()); setZoneId(from.getZoneId()); setPhysicalHostId(from.getPhysicalHostId()); setIsPublic(from.getIsPublic()); setAgentState(from.getAgentState()); setLocalStorageMb(from.getLocalStorageMb()); setMemory(from.getMemory()); setMilliCpu(from.getMilliCpu()); setStackId(from.getStackId()); setRemoveAfter(from.getRemoveAfter()); setHostTemplateId(from.getHostTemplateId());
protected void reconcileHostEndpointsImpl(final Host host) { final List<PublicEndpoint> newData = instanceDao.getPublicEndpoints(host.getAccountId(), null, host.getId()); if (host != null && host.getRemoved() == null) { updateObjectEndPoints(host, host.getKind(), host.getId(), host.getAccountId(), newData); } }
@Override public Object perform(String name, Object obj, ApiRequest request) { if (obj instanceof Host) { Host host = (Host) obj; resourceDao.createAndSchedule(ExternalEvent.class, EXTERNAL_EVENT.KIND, ExternalEventConstants.KIND_EXTERNAL_HOST_EVENT, EXTERNAL_EVENT.EVENT_TYPE, ExternalEventConstants.TYPE_HOST_EVACUATE, ExternalEventConstants.FIELD_HOST_ID, host.getId(), EXTERNAL_EVENT.ACCOUNT_ID, host.getAccountId()); return host; } else { return null; } }
@Override public boolean evaluate(Host obj) { if (!host.getState().equals(HostConstants.STATE_PROVISIONING)) { throw new ResourceTimeoutException(host, "provisioning canceled"); } return obj.getAgentId() != null; }
@Override protected Long getId(Object obj) { if (obj instanceof Host) { return ((Host) obj).getId(); } return null; }
@SuppressWarnings("unchecked") public HostMetaData(String agent_ip, Host host, Account account) { super(); this.agent_ip = agent_ip; String hostname = DataAccessor.fieldString(host, "hostname"); this.name = StringUtils.isEmpty(host.getName()) ? hostname: host.getName(); this.hostname = hostname; this.state = host.getState(); this.agent_state = host.getAgentState(); this.labels = (Map<String, String>) DataAccessor.fields(host) .withKey(InstanceConstants.FIELD_LABELS) .withDefault(Collections.EMPTY_MAP).as(Map.class); this.uuid = host.getUuid(); this.hostId = host.getId(); this.local_storage_mb = host.getLocalStorageMb(); this.memory = host.getMemory(); this.milli_cpu = host.getMilliCpu(); this.environment_uuid = account.getUuid(); this.metadata_kind = "host"; }
return converted; PhysicalHost physicalHost = data.physicalHosts.get(host.getPhysicalHostId()); Map<String, Object> fields = converted.getFields(); fields.put(HostConstants.FIELD_INSTANCE_IDS, data.instancesPerHost.get(host.getId())); String agentState = host.getAgentState(); if (CommonStatesConstants.ACTIVE.equals(host.getState()) && StringUtils.isNotBlank(agentState)) { fields.put(ObjectMetaDataManager.STATE_FIELD, agentState);
if (physicalHostId.equals(host.getPhysicalHostId()) && host.getAgentId() == null) { PhysicalHost physicalHost = objectManager.loadResource(PhysicalHost.class, physicalHostId); if (!physicalHostId.equals(host.getPhysicalHostId())) { updates.put(HOST.PHYSICAL_HOST_ID, physicalHostId); if (host.getMemory() == null) { Long memory = DataAccessor.fromMap(data).withKey(HostConstants.FIELD_MEMORY).as(Long.class); if (memory != null) { if (host.getMilliCpu() == null) { Long cpu = DataAccessor.fromMap(data).withKey(HostConstants.FIELD_MILLI_CPU).as(Long.class); if (cpu != null) { if (host.getLocalStorageMb() == null) { Long storage = DataAccessor.fromMap(data).withKey(HostConstants.FIELD_LOCAL_STORAGE_MB).as(Long.class); if (storage != null) { host = objectManager.reload(host); Map<String, Object> updateFields = objectManager.convertToPropertiesFor(host, updates); if (orchestrate && !HostConstants.STATE_PROVISIONING.equals(host.getState())) { resourceDao.updateAndSchedule(host, updateFields); } else {
List<StatsAccess> serviceStatsQuery = new ArrayList<>(); for (Host host : hosts) { Agent agent = objectManager.loadResource(Agent.class, host.getAgentId()); if (agent == null || !CommonStatesConstants.ACTIVE.equals(agent.getState())) { continue; payload.put("resourceId", ApiContext.getContext().getIdFormatter().formatId(objectManager.getType(host), host.getId())); HostApiAccess apiAccess = hostApiService.getAccess(request, host.getId(), payload, new String[] { StatsConstants.HOST_STATS_PATH.get() }); if (apiAccess == null) { continue;
@Override protected HostMetaData map(List<Object> input) { Host host = (Host) input.get(0); IpAddress hostIp = (IpAddress) input.get(1); HostMetaData data = new HostMetaData(hostIp.getAddress(), host, accounts.get(host.getAccountId())); return data; } };
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { // event's account id is set to the agent that submitted. This will // change it to the actual user's account id. // Checks to make sure agent's resource account id and the host's // account id match ContainerEvent event = (ContainerEvent)state.getResource(); Agent agent = objectManager.findAny(Agent.class, AGENT.ACCOUNT_ID, event.getAccountId()); Long resourceAccId = null; Host host = objectManager.loadResource(Host.class, event.getHostId()); if ( agent != null ) { resourceAccId = DataAccessor.fromDataFieldOf(agent) .withKey(AgentConstants.DATA_AGENT_RESOURCES_ACCOUNT_ID).as(Long.class); } else if ( event.getAccountId().equals(host.getAccountId()) ){ resourceAccId = event.getAccountId(); } if ( host.getAccountId().equals(resourceAccId) ) { Map<Object, Object> newFields = new HashMap<Object, Object>(); newFields.put(CONTAINER_EVENT.ACCOUNT_ID, host.getAccountId()); DataAccessor.fromMap(state.getData()).withScope(ContainerEventCreate.class).withKey(AGENT_ID).set(host.getAgentId()); return new HandlerResult(newFields); } return null; }
@Override public PhysicalHost createMachineForHost(final Host host, String driver) { String uuid = UUID.randomUUID().toString(); final Map<Object, Object> data = new HashMap<Object, Object>(DataUtils.getFields(host)); data.put(PHYSICAL_HOST.KIND, MachineConstants.KIND_MACHINE); data.put(PHYSICAL_HOST.NAME, DataAccessor.fieldString(host, HostConstants.FIELD_HOSTNAME)); data.put(PHYSICAL_HOST.DESCRIPTION, host.getDescription()); data.put(PHYSICAL_HOST.ACCOUNT_ID, host.getAccountId()); data.put(PHYSICAL_HOST.EXTERNAL_ID, uuid); data.put(PHYSICAL_HOST.DRIVER, driver); PhysicalHost phyHost = DeferredUtils.nest(new Callable<PhysicalHost>() { @Override public PhysicalHost call() throws Exception { return genericResourceDao.createAndSchedule(PhysicalHost.class, objectManager.convertToPropertiesFor(PhysicalHost.class, data)); } }); objectManager.setFields(host, HOST.PHYSICAL_HOST_ID, phyHost.getId(), HostConstants.FIELD_REPORTED_UUID, uuid); return phyHost; }
private boolean isAgentDisconnected(Host host) { if (host == null) { return false; } Agent agent = context.objectManager.loadResource(Agent.class, host.getAgentId()); if (agent != null && (AgentConstants.STATE_RECONNECTING.equals(agent.getState()) || AgentConstants.STATE_DISCONNECTED.equals(agent.getState()) || AgentConstants.STATE_DISCONNECTING .equals(agent.getState()))) { return true; } return false; }
Long physicalHostId = ((Host) obj).getPhysicalHostId(); obj = objectManager.loadResource(PhysicalHost.class, physicalHostId);
if (host == null || host.getRemoved() != null || host.getState().equalsIgnoreCase(CommonStatesConstants.REMOVING)) { log.info("Host [{}] is unavailable. Not processing container event [{}].", event.getHostId(), event.getId()); return null;
private boolean isRemovedHost(Host host) { if (host == null) { return false; } return CommonStatesConstants.REMOVING.equals(host.getState()) || CommonStatesConstants.REMOVED.equals(host.getState()) || CommonStatesConstants.PURGING.equals(host.getState()) || CommonStatesConstants.PURGED.equals(host.getState()); }
public Map<String, Host> groupByReportedUUid(List<? extends Host> hostList) { Map<String,Host> hosts = new HashMap<>(); for ( Host host : hostList ) { String uuid = DataAccessor.fields(host).withKey(HostConstants.FIELD_REPORTED_UUID).as(String.class); if ( uuid == null ) { uuid = host.getUuid(); } hosts.put(uuid, host); } return hosts; }
public static Host getHostFromContainer(ObjectManager objectManager, Instance instance, String hostKind) { Host found = null; for (Host host : objectManager.mappedChildren(instance, Host.class)) { found = host; } if (found != null) { found = ApiUtils.getPolicy().authorizeObject(found); } if (found == null) { return null; } if (hostKind != null && !hostKind.equals(found.getKind())) { return null; } return found; }
@Override public StoragePool mapNewPool(Host host, Map<String, Object> properties) { return mapNewPool(host.getId(), properties); }
@Override public Collection<? extends Service> getServices(Object obj) { if (!(obj instanceof Host)) { return null; } Host host = (Host) obj; List<Service> services = new ArrayList<>(); // add all services on host services.addAll(svcDao.getServicesOnHost(host.getId())); // add all services with scale policy List<? extends Service> allServices = objMgr.find(Service.class, SERVICE.ACCOUNT_ID, host.getAccountId(), SERVICE.REMOVED, null); for (Service service : allServices) { if (sdService.isScalePolicyService(service)) { services.add(service); } } return services; }