summaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/dns/CreateRecords.java
diff options
context:
space:
mode:
Diffstat (limited to 'controller-server/src/main/java/com/yahoo/vespa/hosted/controller/dns/CreateRecords.java')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/dns/CreateRecords.java27
1 files changed, 7 insertions, 20 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/dns/CreateRecords.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/dns/CreateRecords.java
index a668c408794..ef7b74a4d4b 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/dns/CreateRecords.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/dns/CreateRecords.java
@@ -20,17 +20,14 @@ import java.util.stream.Collectors;
*
* @author mpolden
*/
-public class CreateRecords implements NameServiceRequest {
+public class CreateRecords extends AbstractNameServiceRequest {
- private final Optional<TenantAndApplicationId> owner;
- private final RecordName name;
private final Record.Type type;
private final List<Record> records;
/** DO NOT USE. Public for serialization purposes */
public CreateRecords(Optional<TenantAndApplicationId> owner, List<Record> records) {
- this.owner = Objects.requireNonNull(owner, "owner must be non-null");
- this.name = requireOneOf(Record::name, records);
+ super(owner, requireOneOf(Record::name, records));
this.type = requireOneOf(Record::type, records);
this.records = List.copyOf(Objects.requireNonNull(records, "records must be non-null"));
if (type != Record.Type.ALIAS && type != Record.Type.TXT && type != Record.Type.DIRECT) {
@@ -43,29 +40,19 @@ public class CreateRecords implements NameServiceRequest {
}
@Override
- public Optional<RecordName> name() {
- return Optional.of(name);
- }
-
- @Override
- public Optional<TenantAndApplicationId> owner() {
- return owner;
- }
-
- @Override
public void dispatchTo(NameService nameService) {
switch (type) {
case ALIAS -> {
var targets = records.stream().map(Record::data).map(AliasTarget::unpack).collect(Collectors.toSet());
- nameService.createAlias(name, targets);
+ nameService.createAlias(name(), targets);
}
case DIRECT -> {
var targets = records.stream().map(Record::data).map(DirectTarget::unpack).collect(Collectors.toSet());
- nameService.createDirect(name, targets);
+ nameService.createDirect(name(), targets);
}
case TXT -> {
var dataFields = records.stream().map(Record::data).toList();
- nameService.createTxtRecords(name, dataFields);
+ nameService.createTxtRecords(name(), dataFields);
}
}
}
@@ -80,12 +67,12 @@ public class CreateRecords implements NameServiceRequest {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
CreateRecords that = (CreateRecords) o;
- return owner.equals(that.owner) && records.equals(that.records);
+ return owner().equals(that.owner()) && records.equals(that.records);
}
@Override
public int hashCode() {
- return Objects.hash(owner, records);
+ return Objects.hash(owner(), records);
}
/** Find exactly one distinct value of field in given list */