public Address deleteAddress(String namespace, String addressSpaceId, String name) throws Exception { AddressSpace addressSpace = getAddressSpace(namespace, addressSpaceId); AddressApi addressApi = addressSpaceApi.withAddressSpace(addressSpace); Optional<Address> addressOptional = addressApi.getAddressWithName(namespace, name); return addressOptional.filter(addressApi::deleteAddress).orElse(null); }
protected AddressList queryAddresses(Collection<AddressSpace> addressSpaces, BiFunction<String, AddressApi, Collection<Address>> lister) throws Exception { final List<Address> list = new ArrayList<>(); for (final AddressSpace addressSpace : addressSpaces) { list.addAll(lister.apply(addressSpace.getMetadata().getNamespace(), addressSpaceApi.withAddressSpace(addressSpace))); } return new AddressList(list); }
public void deleteAddresses(String namespace) { for (AddressSpace addressSpace : addressSpaceApi.listAddressSpaces(namespace)) { AddressApi addressApi = addressSpaceApi.withAddressSpace(addressSpace); addressApi.deleteAddresses(namespace); } } }
public Optional<Address> getAddress(String namespace, String addressSpaceId, String address) throws Exception { AddressSpace addressSpace = getAddressSpace(namespace, addressSpaceId); return addressSpaceApi.withAddressSpace(addressSpace).getAddressWithName(namespace, address); }
public Address createAddress(String addressSpaceId, Address address) throws Exception { AddressSpace addressSpace = getAddressSpace(address.getMetadata().getNamespace(), addressSpaceId); validateAddress(addressSpace, address); AddressApi addressApi = addressSpaceApi.withAddressSpace(addressSpace); addressApi.createAddress(address); return address; }
if (addressSpace == null || !Objects.equals(addressSpace.getMetadata().getNamespace(), a.getMetadata().getNamespace())) { addressSpace = getAddressSpace(a.getMetadata().getNamespace(), addressSpaceId); addressApi = addressSpaceApi.withAddressSpace(addressSpace); addressResolver = getAddressResolver(addressSpace); existingAddresses = addressApi.listAddresses(a.getMetadata().getNamespace());
private boolean checkExceedsQuota(AddressSpaceType addressSpaceType, AddressSpacePlan plan, AddressSpace addressSpace) { AddressApi addressApi = addressSpaceApi.withAddressSpace(addressSpace); Set<Address> addresses = addressApi.listAddresses(addressSpace.getMetadata().getNamespace()).stream() .filter(address -> addressSpace.getMetadata().getName().equals(Address.extractAddressSpace(address)))
public Address replaceAddress(String addressSpaceId, Address address) throws Exception { AddressSpace addressSpace = getAddressSpace(address.getMetadata().getNamespace(), addressSpaceId); validateAddress(addressSpace, address); AddressApi addressApi = addressSpaceApi.withAddressSpace(addressSpace); if (!addressApi.replaceAddress(address)) { throw new NotFoundException("Address " + address.getMetadata().getName() + " not found"); } return address; }
private void validateAddress(AddressSpace addressSpace, Address address) { AddressResolver addressResolver = getAddressResolver(addressSpace); Set<Address> existingAddresses = addressSpaceApi.withAddressSpace(addressSpace).listAddresses(address.getMetadata().getNamespace()); addressResolver.validate(address); for (Address existing : existingAddresses) { if (address.getSpec().getAddress().equals(existing.getSpec().getAddress()) && !address.getMetadata().getName().equals(existing.getMetadata().getName())) { throw new BadRequestException("Address '" + address.getSpec().getAddress() + "' already exists with resource name '" + existing.getMetadata().getName() + "'"); } } }