@Override public void run() { try { ping(); updateState(); } catch (Throwable e) { // ignore to avoid getting unscheduled log.warn(e, "Error pinging service %s (%s)", service.getId(), uri); } } }, heartbeat.toMillis(), heartbeat.toMillis(), TimeUnit.MILLISECONDS);
.filter(task -> !onlineIds.contains(task.getService().getId())) .forEach(MonitoringTask::disable); .filter(service -> !tasks.keySet().contains(service.getId())) .collect(toImmutableSet()); tasks.put(service.getId(), new MonitoringTask(service, uri)); .filter(task -> onlineIds.contains(task.getService().getId())) .forEach(MonitoringTask::enable);
public ServiceDescriptor addDiscoveredService(ServiceDescriptor serviceDescriptor) { requireNonNull(serviceDescriptor, "serviceDescriptor is null"); return discovered.put(serviceDescriptor.getId(), serviceDescriptor); }
public ServiceDescriptor addDiscoveredService(ServiceDescriptor serviceDescriptor) { Preconditions.checkNotNull(serviceDescriptor, "serviceDescriptor is null"); return discovered.put(serviceDescriptor.getId(), serviceDescriptor); }
public ServiceDescriptor addDiscoveredService(ServiceDescriptor serviceDescriptor) { Preconditions.checkNotNull(serviceDescriptor, "serviceDescriptor is null"); return discovered.put(serviceDescriptor.getId(), serviceDescriptor); }
@Override public void run() { try { ping(); updateState(); } catch (Throwable e) { // ignore to avoid getting unscheduled log.warn(e, "Error pinging service %s (%s)", service.getId(), uri); } } }, heartbeat.toMillis(), heartbeat.toMillis(), TimeUnit.MILLISECONDS);
@Override public void run() { try { ping(); updateState(); } catch (Throwable e) { // ignore to avoid getting unscheduled log.warn(e, "Error pinging service %s (%s)", service.getId(), uri); } } }, heartbeat.toMillis(), heartbeat.toMillis(), TimeUnit.MILLISECONDS);
@Override public void run() { try { ping(); updateState(); } catch (Throwable e) { // ignore to avoid getting unscheduled log.warn(e, "Error pinging service %s (%s)", service.getId(), uri); } } }, heartbeat.toMillis(), heartbeat.toMillis(), TimeUnit.MILLISECONDS);
.filter(task -> !onlineIds.contains(task.getService().getId())) .forEach(MonitoringTask::disable); .filter(service -> !tasks.keySet().contains(service.getId())) .collect(toImmutableSet()); tasks.put(service.getId(), new MonitoringTask(service, uri)); .filter(task -> onlineIds.contains(task.getService().getId())) .forEach(MonitoringTask::enable);
private static void assertDescriptorEquals(ServiceDescriptor expected, ServiceDescriptor actual) { assertEquals(actual, expected); assertEquals(actual.getId(), expected.getId()); assertEquals(actual.getNodeId(), expected.getNodeId()); assertEquals(actual.getType(), expected.getType()); assertEquals(actual.getPool(), expected.getPool()); assertEquals(actual.getLocation(), expected.getLocation()); assertEquals(actual.getProperties(), expected.getProperties()); } }
private static void assertDescriptorEquals(ServiceDescriptor expected, ServiceDescriptor actual) { assertEquals(actual, expected); assertEquals(actual.getId(), expected.getId()); assertEquals(actual.getNodeId(), expected.getNodeId()); assertEquals(actual.getType(), expected.getType()); assertEquals(actual.getPool(), expected.getPool()); assertEquals(actual.getLocation(), expected.getLocation()); assertEquals(actual.getProperties(), expected.getProperties()); } }
@Test public void testJsonDecode() throws Exception { ServiceDescriptor expected = new ServiceDescriptor(UUID.fromString("12345678-1234-1234-1234-123456789012"), "node", "type", "pool", "location", ServiceState.RUNNING, ImmutableMap.of("a", "apple", "b", "banana")); String json = Resources.toString(Resources.getResource("service-descriptor.json"), Charsets.UTF_8); ServiceDescriptor actual = serviceDescriptorCodec.fromJson(json); assertEquals(actual, expected); assertEquals(actual.getId(), expected.getId()); assertEquals(actual.getNodeId(), expected.getNodeId()); assertEquals(actual.getType(), expected.getType()); assertEquals(actual.getPool(), expected.getPool()); assertEquals(actual.getLocation(), expected.getLocation()); assertEquals(actual.getProperties(), expected.getProperties()); }
private void assertAnnounced(ServiceAnnouncement... serviceAnnouncements) { Future<ServiceDescriptors> future = discoveryClient.getServices(serviceType.value(), "pool"); ServiceDescriptors serviceDescriptors = getFutureValue(future, DiscoveryException.class); assertEquals(serviceDescriptors.getType(), serviceType.value()); assertEquals(serviceDescriptors.getPool(), "pool"); assertNotNull(serviceDescriptors.getETag()); assertEquals(serviceDescriptors.getMaxAge(), MAX_AGE); List<ServiceDescriptor> descriptors = serviceDescriptors.getServiceDescriptors(); assertEquals(descriptors.size(), serviceAnnouncements.length); ImmutableMap.Builder<UUID, ServiceDescriptor> builder = ImmutableMap.builder(); for (ServiceDescriptor descriptor : descriptors) { builder.put(descriptor.getId(), descriptor); } Map<UUID, ServiceDescriptor> descriptorMap = builder.build(); for (ServiceAnnouncement serviceAnnouncement : serviceAnnouncements) { ServiceDescriptor serviceDescriptor = descriptorMap.get(serviceAnnouncement.getId()); assertNotNull(serviceDescriptor, "No descriptor for announcement " + serviceAnnouncement.getId()); assertEquals(serviceDescriptor.getType(), serviceType.value()); assertEquals(serviceDescriptor.getPool(), "pool"); assertEquals(serviceDescriptor.getId(), serviceAnnouncement.getId()); assertEquals(serviceDescriptor.getProperties(), serviceAnnouncement.getProperties()); assertEquals(serviceDescriptor.getNodeId(), nodeInfo.getNodeId()); } } }
private void assertAnnounced(ServiceAnnouncement... serviceAnnouncements) { ServiceDescriptors serviceDescriptors = discoveryClient.getServices(serviceType.value(), "pool").checkedGet(); assertEquals(serviceDescriptors.getType(), serviceType.value()); assertEquals(serviceDescriptors.getPool(), "pool"); assertNotNull(serviceDescriptors.getETag()); assertEquals(serviceDescriptors.getMaxAge(), MAX_AGE); List<ServiceDescriptor> descriptors = serviceDescriptors.getServiceDescriptors(); assertEquals(descriptors.size(), serviceAnnouncements.length); ImmutableMap.Builder<UUID, ServiceDescriptor> builder = ImmutableMap.builder(); for (ServiceDescriptor descriptor : descriptors) { builder.put(descriptor.getId(), descriptor); } Map<UUID, ServiceDescriptor> descriptorMap = builder.build(); for (ServiceAnnouncement serviceAnnouncement : serviceAnnouncements) { ServiceDescriptor serviceDescriptor = descriptorMap.get(serviceAnnouncement.getId()); assertNotNull(serviceDescriptor, "No descriptor for announcement " + serviceAnnouncement.getId()); assertEquals(serviceDescriptor.getType(), serviceType.value()); assertEquals(serviceDescriptor.getPool(), "pool"); assertEquals(serviceDescriptor.getId(), serviceAnnouncement.getId()); assertEquals(serviceDescriptor.getProperties(), serviceAnnouncement.getProperties()); assertEquals(serviceDescriptor.getNodeId(), nodeInfo.getNodeId()); } } }
private void assertAnnounced(ServiceAnnouncement... serviceAnnouncements) { Future<ServiceDescriptors> future = discoveryClient.getServices(serviceType.value(), "pool"); ServiceDescriptors serviceDescriptors = getFutureValue(future, DiscoveryException.class); assertEquals(serviceDescriptors.getType(), serviceType.value()); assertEquals(serviceDescriptors.getPool(), "pool"); assertNotNull(serviceDescriptors.getETag()); assertEquals(serviceDescriptors.getMaxAge(), MAX_AGE); List<ServiceDescriptor> descriptors = serviceDescriptors.getServiceDescriptors(); assertEquals(descriptors.size(), serviceAnnouncements.length); ImmutableMap.Builder<UUID, ServiceDescriptor> builder = ImmutableMap.builder(); for (ServiceDescriptor descriptor : descriptors) { builder.put(descriptor.getId(), descriptor); } Map<UUID, ServiceDescriptor> descriptorMap = builder.build(); for (ServiceAnnouncement serviceAnnouncement : serviceAnnouncements) { ServiceDescriptor serviceDescriptor = descriptorMap.get(serviceAnnouncement.getId()); assertNotNull(serviceDescriptor, "No descriptor for announcement " + serviceAnnouncement.getId()); assertEquals(serviceDescriptor.getType(), serviceType.value()); assertEquals(serviceDescriptor.getPool(), "pool"); assertEquals(serviceDescriptor.getId(), serviceAnnouncement.getId()); assertEquals(serviceDescriptor.getProperties(), serviceAnnouncement.getProperties()); assertEquals(serviceDescriptor.getNodeId(), nodeInfo.getNodeId()); } } }
assertEquals(service.getId().toString(), id); assertNull(service.getNodeId()); assertEquals(service.getLocation(), announcement.get("location"));
@Test public void testBuilderNodeId() { ServiceDescriptor expected = new ServiceDescriptor( UUID.fromString("12345678-1234-1234-1234-123456789012"), "node", "type", "pool", "location", ServiceState.RUNNING, ImmutableMap.of("a", "apple", "b", "banana")); ServiceDescriptorBuilder builder = serviceDescriptor(expected.getType()) .setId(expected.getId()) .setLocation(expected.getLocation()) .setNodeId(expected.getNodeId()) .setPool(expected.getPool()) .setState(expected.getState()); for (Map.Entry<String, String> entry : expected.getProperties().entrySet()) { builder.addProperty(entry.getKey(), entry.getValue()); } assertDescriptorEquals(expected, builder.build()); }
@Test public void testBuilderNodeId() { ServiceDescriptor expected = new ServiceDescriptor( UUID.fromString("12345678-1234-1234-1234-123456789012"), "node", "type", "pool", "location", ServiceState.RUNNING, ImmutableMap.of("a", "apple", "b", "banana")); ServiceDescriptorBuilder builder = serviceDescriptor(expected.getType()) .setId(expected.getId()) .setLocation(expected.getLocation()) .setNodeId(expected.getNodeId()) .setPool(expected.getPool()) .setState(expected.getState()); for (Map.Entry<String, String> entry : expected.getProperties().entrySet()) { builder.addProperty(entry.getKey(), entry.getValue()); } assertDescriptorEquals(expected, builder.build()); }
@Test public void testBuilderNodeInfo() { NodeInfo nodeInfo = new NodeInfo(new NodeConfig().setEnvironment("test").setPool("pool")); ServiceDescriptor expected = new ServiceDescriptor( UUID.fromString("12345678-1234-1234-1234-123456789012"), nodeInfo.getNodeId(), "type", nodeInfo.getPool(), "location", ServiceState.STOPPED, ImmutableMap.of("a", "apple", "b", "banana")); ServiceDescriptor actual = serviceDescriptor(expected.getType()) .setId(expected.getId()) .setLocation(expected.getLocation()) .setNodeInfo(nodeInfo) .setState(expected.getState()) .addProperties(expected.getProperties()) .build(); assertDescriptorEquals(expected, actual); }
@Test public void testBuilderNodeInfo() { NodeInfo nodeInfo = new NodeInfo(new NodeConfig().setEnvironment("test").setPool("pool")); ServiceDescriptor expected = new ServiceDescriptor( UUID.fromString("12345678-1234-1234-1234-123456789012"), nodeInfo.getNodeId(), "type", nodeInfo.getPool(), "location", ServiceState.STOPPED, ImmutableMap.of("a", "apple", "b", "banana")); ServiceDescriptor actual = serviceDescriptor(expected.getType()) .setId(expected.getId()) .setLocation(expected.getLocation()) .setNodeInfo(nodeInfo) .setState(expected.getState()) .addProperties(expected.getProperties()) .build(); assertDescriptorEquals(expected, actual); }