@Override
 public void setFloodingProxyWeight(UUID hostId, int weight) {
   try {
     Host h = Await.result(backend.store().get(Host.class, toProto(hostId)), TIMEOUT);
     h = h.toBuilder().setFloodingProxyWeight(weight).build();
     backend.store().update(h);
   } catch (Exception e) {
     throw new RuntimeException("Can't retrieve flooding proxy weight");
   }
 }
 @Override
 public List<UUID> getHostIds() {
   try {
     scala.collection.Seq<Host> hosts = Await.result(backend.store().getAll(Host.class), TIMEOUT);
     List<UUID> ids = new ArrayList<>();
     for (Host h : asJavaIterable(hosts)) {
       ids.add(fromProto(h.getId()));
     }
     return ids;
   } catch (Exception e) {
     throw new RuntimeException("Cannot get host ids", e);
   }
 }
 @Override
 public void createHost(UUID hostId, String name, InetAddress[] addresses) {
   Host h = Host.newBuilder().setId(toProto(hostId)).setName(name).build();
   backend.store().create(h);
   try {
     Await.result(backend.store().get(h.getClass(), hostId), TIMEOUT);
     backend
         .stateStore()
         .addValue(Host.class, hostId, HostKey(), State.HostState.getDefaultInstance().toString())
         .toBlocking()
         .first();
   } catch (Exception e) {
     throw new RuntimeException("Could not create host", e);
   }
 }