public Observable<InstanceInfo> connect() { return new InstanceInfoFromConfig(config) .get() .map(new Func1<InstanceInfo.Builder, InstanceInfo>() { @Override
public Observable<InstanceInfo.Builder> get() { return resolveDataCenterInfo() .take(1) .map(new Func1<DataCenterInfo, InstanceInfo.Builder>() { @Override public InstanceInfo.Builder call(DataCenterInfo dataCenterInfo) { final String instanceId = config.getAppName() + '#' + UUID.randomUUID().toString(); String address = AddressSelector.selectBy().publicIp(true).or().any().returnNameOrIp(dataCenterInfo.getAddresses()); HashSet<String> healthCheckUrls = new HashSet<String>(); healthCheckUrls.add("http://" + address + ':' + config.getWebAdminPort() + "/healthcheck"); return new InstanceInfo.Builder() .withId(instanceId) .withApp(config.getAppName()) .withVipAddress(config.getVipAddress()) .withHealthCheckUrls(healthCheckUrls) .withDataCenterInfo(dataCenterInfo) .withStatus(InstanceInfo.Status.UP); // for now just register with UP } }); }
public Observable<InstanceInfo> connect() { return new InstanceInfoFromConfig(config) .get() .map(new Func1<InstanceInfo.Builder, InstanceInfo>() { @Override public InstanceInfo call(InstanceInfo.Builder builder) { HashSet<ServicePort> ports = new HashSet<>(); ports.add(new ServicePort(Names.DISCOVERY, config.getDiscoveryPort(), false)); return builder.withPorts(ports).build(); } }) .doOnEach(new Action1<Notification<? super InstanceInfo>>() { @Override public void call(Notification<? super InstanceInfo> notification) { switch (notification.getKind()) { case OnNext: replaySubject.onNext((InstanceInfo) notification.getValue()); replaySubject.onCompleted(); logger.info("Own instance info resolved to {}", notification.getValue()); break; case OnError: replaySubject.onError(notification.getThrowable()); logger.error("Could not resolve own instance info", notification.getThrowable()); break; } } }); } }
public Observable<InstanceInfo> connect() { return new InstanceInfoFromConfig(config) .get() .map(new Func1<InstanceInfo.Builder, InstanceInfo>() { @Override