public static APIAddIpRangeByNetworkCidrMsg __example__() { APIAddIpRangeByNetworkCidrMsg msg = new APIAddIpRangeByNetworkCidrMsg(); msg.setName("Test-IPRange"); msg.setL3NetworkUuid(uuid()); msg.setNetworkCidr("192.168.10.0/24"); return msg; }
public static IpRangeInventory fromMessage(APIAddIpRangeByNetworkCidrMsg msg) { SubnetUtils utils = new SubnetUtils(msg.getNetworkCidr()); SubnetInfo subnet = utils.getInfo(); IpRangeInventory ipr = new IpRangeInventory(); ipr.setNetworkCidr(msg.getNetworkCidr()); ipr.setName(msg.getName()); ipr.setDescription(msg.getDescription()); String gateway = subnet.getLowAddress(); String startIp = NetworkUtils.longToIpv4String(NetworkUtils.ipv4StringToLong(subnet.getLowAddress()) + 1); String endIp = subnet.getHighAddress(); ipr.setGateway(gateway); ipr.setStartIp(startIp); ipr.setEndIp(endIp); ipr.setNetmask(subnet.getNetmask()); ipr.setPrefixLen(NetworkUtils.getPrefixLengthFromNetwork(subnet.getNetmask())); ipr.setL3NetworkUuid(msg.getL3NetworkUuid()); ipr.setUuid(msg.getResourceUuid()); ipr.setIpVersion(IPv6Constants.IPv4); return ipr; }
private void validate(APIAddIpRangeByNetworkCidrMsg msg) { try { SubnetUtils utils = new SubnetUtils(msg.getNetworkCidr()); utils.setInclusiveHostCount(false); SubnetInfo subnet = utils.getInfo(); if (subnet.getAddressCount() == 0) { throw new ApiMessageInterceptionException(argerr("%s is not an allowed network cidr, because it doesn't have usable ip range", msg.getNetworkCidr())); } } catch (IllegalArgumentException e) { throw new ApiMessageInterceptionException(argerr("%s is not a valid network cidr", msg.getNetworkCidr())); } IpRangeInventory ipr = IpRangeInventory.fromMessage(msg); validate(ipr); }
private void handle(APIAddIpRangeByNetworkCidrMsg msg) { IpRangeInventory ipr = IpRangeInventory.fromMessage(msg); ipr = createIpRange(msg, ipr); APIAddIpRangeByNetworkCidrEvent evt = new APIAddIpRangeByNetworkCidrEvent(msg.getId()); evt.setInventory(ipr); bus.publish(evt); }