package io.fathom.auto; import io.fathom.auto.haproxy.ConfigSync; import io.fathom.cloud.openstack.client.loadbalance.model.LbaasMapping; import io.fathom.cloud.openstack.client.loadbalance.model.LoadBalanceMappingList; import java.io.File; import java.io.IOException; import com.google.common.base.Charsets; import com.google.common.collect.Lists; import com.google.common.io.Files; public class StaticConfiguration implements ConfigSync { boolean dirty = true; final File mirrorPath; public StaticConfiguration(File mirrorPath) { this.mirrorPath = mirrorPath; } @Override public int firstSync() throws IOException { String key = "default"; LbaasMapping target = new LbaasMapping(); target.forwardUrl = null; target.host = null; target.ip = "127.0.0.1"; target.key = key; target.port = 8080; LoadBalanceMappingList chunk = new LoadBalanceMappingList(); chunk.mappings = Lists.newArrayList(); chunk.mappings.add(target); String json = JsonCodec.gson.toJson(chunk); File file = new File(mirrorPath, key); Files.write(json, file, Charsets.UTF_8); return 0; } @Override public int refresh() throws IOException { return 0; } @Override public boolean isDirty() { return dirty; } @Override public void markClean() { dirty = false; } }