@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Nic nic = (Nic) state.getResource(); Instance instance = objectManager.loadResource(Instance.class, nic.getInstanceId()); if (instance == null) { return null; } Map<String, Object> labels = new HashMap<>(DataAccessor.fieldMap(instance, InstanceConstants.FIELD_LABELS)); if (!"true".equals(labels.get(SystemLabels.LABEL_VM))) { return null; } Map<String, Object> metadata = metadataService.getMetadataForInstance(instance, idFormatter); Map<String, Object> osMetadata = metadataService.getOsMetadata(instance, metadata); try { labels.put(SystemLabels.LABEL_VM_METADATA, jsonMapper.writeValueAsString(metadata)); } catch (IOException e) { log.error("Failed to marshall metadata", e); } try { labels.put(SystemLabels.LABEL_VM_OS_METADATA, jsonMapper.writeValueAsString(osMetadata)); } catch (IOException e) { log.error("Failed to marshall metadata", e); } objectManager.setFields(instance, InstanceConstants.FIELD_LABELS, labels); return null; }
protected void populateNic(IdFormatter idFormatter, Map<String, Object> instanceData, Nic nic, Network network) { Integer deviceNumber = nic.getDeviceNumber(); String mac = nic.getMacAddress(); if (mac == null) { return; } @SuppressWarnings("unchecked") Map<String, Object> data = (Map<String, Object>) CollectionUtils.getNestedValue(instanceData, "network", "interfaces", "macs", mac); if (data == null) { data = new HashMap<String, Object>(); setNestedValue(instanceData, data, "network", "interfaces", "macs", mac); } else { return; } data.put("device-number", deviceNumber); data.put("mac", nic.getMacAddress()); data.put("owner-id", formatId(idFormatter, Instance.class, nic.getInstanceId())); // TODO don't have a security group concept yet data.put("security-group-ids", ""); data.put("security-groups", ""); data.put("vpc-id", formatId(idFormatter, Network.class, network.getId())); data.put("vpc-ipv4-cidr-block", DataAccessor.fieldString(network, NetworkConstants.FIELD_CIDR)); if (deviceNumber != null && deviceNumber.intValue() == 0) { instanceData.put("mac", nic.getMacAddress()); setNestedValue(instanceData, HostnameGenerator.getServicesDomain(network), "services", "domain"); } }
protected Instance getInstanceForPrimaryIp(IpAddress ipAddress) { if (IpAddressConstants.ROLE_PRIMARY.equals(ipAddress.getRole())) { for (Nic nic : getObjectManager().mappedChildren(ipAddress, Nic.class)) { if (nic.getDeviceNumber() != null && nic.getDeviceNumber() == 0) { Instance instance = getObjectManager().loadResource(Instance.class, nic.getInstanceId()); if (instance != null) { return instance; } } } } return null; }
/** * {@inheritDoc} */ @Override public void from(io.cattle.platform.core.model.Nic from) { 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()); setInstanceId(from.getInstanceId()); setNetworkId(from.getNetworkId()); setDeviceNumber(from.getDeviceNumber()); setMacAddress(from.getMacAddress()); }