package io.fathom.cloud.dns.command;
import io.fathom.cloud.commands.AuthenticatedCmdlet;
import io.fathom.cloud.dns.model.DnsRecordset;
import io.fathom.cloud.dns.model.DnsZone;
import io.fathom.cloud.dns.services.DnsServiceImpl;
import io.fathom.cloud.protobuf.DnsModel.DnsRecordsetData;
import io.fathom.cloud.server.auth.Auth;
import io.fathom.cloud.server.model.Project;
import java.util.List;
import javax.inject.Inject;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response.Status;
import org.kohsuke.args4j.Option;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class DnsRecordListCommand extends AuthenticatedCmdlet {
private static final Logger log = LoggerFactory.getLogger(DnsRecordListCommand.class);
@Option(name = "-zone", usage = "zone", required = true)
public String zoneName;
@Inject
DnsServiceImpl dns;
public DnsRecordListCommand() {
super("dns-record-list");
}
@Override
protected List<DnsRecordsetData> run0() throws Exception {
Auth auth = getAuth();
Project project = auth.getProject();
DnsZone zone = dns.findZoneByName(project, zoneName);
if (zone == null) {
throw new WebApplicationException(Status.NOT_FOUND);
}
List<DnsRecordset> records = dns.listRecordsets(project, zone);
return DnsRecordset.toData(records);
}
}