mirror of
https://github.com/apache/cloudstack
synced 2026-08-02 05:26:35 +00:00
CloudStack uses Guest CIDR for dhcp-range for the Guest VMs. The entire CIDR is used by CloudStack for assigning IPs to Guest VMs. IP Address Reservation will allow part of address space to be used fornon CloudStack hosts/physical servers also, by restricting the address space of CloudStack Guest VMs. Reservation can be configured using update Network API by specifying guestvmCidr as an additional parameter. Reservation will be applicable for Isolated Guest Networks including VPC. reservediprange in the response will return the IP range that can be used for non Cloudstack hosts. Tested manually the following scenarios: Applying reservation when there are running VMs inside the guest_vm_cidr. Applying reservation when there are running VMs outside the guest_vm_cidr.(not allowed) Applying reservation when external device like Netscaler is configured in the guest_cidr. Applying reservation in VPC tiers. Applying reservation outside the range of guest_cidr.(not allowed)
254 lines
6.1 KiB
Java
254 lines
6.1 KiB
Java
// Licensed to the Apache Software Foundation (ASF) under one
|
|
// or more contributor license agreements. See the NOTICE file
|
|
// distributed with this work for additional information
|
|
// regarding copyright ownership. The ASF licenses this file
|
|
// to you under the Apache License, Version 2.0 (the
|
|
// "License"); you may not use this file except in compliance
|
|
// with the License. You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing,
|
|
// software distributed under the License is distributed on an
|
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
// KIND, either express or implied. See the License for the
|
|
// specific language governing permissions and limitations
|
|
// under the License.
|
|
package com.cloud.network;
|
|
|
|
import java.net.URI;
|
|
|
|
import com.cloud.network.Networks.BroadcastDomainType;
|
|
import com.cloud.network.Networks.Mode;
|
|
import com.cloud.network.Networks.TrafficType;
|
|
|
|
public class NetworkProfile implements Network {
|
|
private long id;
|
|
private String uuid;
|
|
private long dataCenterId;
|
|
private long ownerId;
|
|
private long domainId;
|
|
private String dns1;
|
|
private String dns2;
|
|
private URI broadcastUri;
|
|
private State state;
|
|
private String name;
|
|
private Mode mode;
|
|
private BroadcastDomainType broadcastDomainType;
|
|
private TrafficType trafficType;
|
|
private String gateway;
|
|
private String cidr;
|
|
private String networkCidr;
|
|
private String ip6Gateway;
|
|
private String ip6Cidr;
|
|
private long networkOfferingId;
|
|
private long related;
|
|
private String displayText;
|
|
private String reservationId;
|
|
private String networkDomain;
|
|
private Network.GuestType guestType;
|
|
private Long physicalNetworkId;
|
|
private ACLType aclType;
|
|
private boolean restartRequired;
|
|
private boolean specifyIpRanges;
|
|
private Long vpcId;
|
|
|
|
public NetworkProfile(Network network) {
|
|
this.id = network.getId();
|
|
this.uuid = network.getUuid();
|
|
this.broadcastUri = network.getBroadcastUri();
|
|
this.dataCenterId = network.getDataCenterId();
|
|
this.ownerId = network.getAccountId();
|
|
this.state = network.getState();
|
|
this.name = network.getName();
|
|
this.mode = network.getMode();
|
|
this.broadcastDomainType = network.getBroadcastDomainType();
|
|
this.trafficType = network.getTrafficType();
|
|
this.gateway = network.getGateway();
|
|
this.cidr = network.getCidr();
|
|
this.networkCidr = network.getNetworkCidr();
|
|
this.ip6Gateway = network.getIp6Gateway();
|
|
this.ip6Cidr = network.getIp6Cidr();
|
|
this.networkOfferingId = network.getNetworkOfferingId();
|
|
this.related = network.getRelated();
|
|
this.displayText = network.getDisplayText();
|
|
this.reservationId = network.getReservationId();
|
|
this.networkDomain = network.getNetworkDomain();
|
|
this.domainId = network.getDomainId();
|
|
this.guestType = network.getGuestType();
|
|
this.physicalNetworkId = network.getPhysicalNetworkId();
|
|
this.aclType = network.getAclType();
|
|
this.restartRequired = network.isRestartRequired();
|
|
this.specifyIpRanges = network.getSpecifyIpRanges();
|
|
this.vpcId = network.getVpcId();
|
|
}
|
|
|
|
public String getDns1() {
|
|
return dns1;
|
|
}
|
|
|
|
public String getDns2() {
|
|
return dns2;
|
|
}
|
|
|
|
public void setDns1(String dns1) {
|
|
this.dns1 = dns1;
|
|
}
|
|
|
|
public void setDns2(String dns2) {
|
|
this.dns2 = dns2;
|
|
}
|
|
|
|
public void setBroadcastUri(URI broadcastUri) {
|
|
this.broadcastUri = broadcastUri;
|
|
}
|
|
|
|
@Override
|
|
public URI getBroadcastUri() {
|
|
return broadcastUri;
|
|
}
|
|
|
|
@Override
|
|
public long getId() {
|
|
return id;
|
|
}
|
|
|
|
|
|
@Override
|
|
public String getUuid() {
|
|
return uuid;
|
|
}
|
|
|
|
@Override
|
|
public long getDataCenterId() {
|
|
return dataCenterId;
|
|
}
|
|
|
|
@Override
|
|
public long getAccountId() {
|
|
return ownerId;
|
|
}
|
|
|
|
@Override
|
|
public State getState() {
|
|
return state;
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
@Override
|
|
public Mode getMode() {
|
|
return mode;
|
|
}
|
|
|
|
@Override
|
|
public BroadcastDomainType getBroadcastDomainType() {
|
|
return broadcastDomainType;
|
|
}
|
|
|
|
@Override
|
|
public TrafficType getTrafficType() {
|
|
return trafficType;
|
|
}
|
|
|
|
@Override
|
|
public String getGateway() {
|
|
return gateway;
|
|
}
|
|
|
|
@Override
|
|
public String getCidr() {
|
|
return cidr;
|
|
}
|
|
|
|
@Override
|
|
public String getNetworkCidr() {
|
|
return networkCidr;
|
|
}
|
|
|
|
@Override
|
|
public long getNetworkOfferingId() {
|
|
return networkOfferingId;
|
|
}
|
|
|
|
@Override
|
|
public long getRelated() {
|
|
return related;
|
|
}
|
|
|
|
@Override
|
|
public String getDisplayText() {
|
|
return displayText;
|
|
}
|
|
|
|
@Override
|
|
public String getReservationId() {
|
|
return reservationId;
|
|
}
|
|
|
|
@Override
|
|
public String getNetworkDomain() {
|
|
return networkDomain;
|
|
}
|
|
|
|
@Override
|
|
public long getDomainId() {
|
|
return domainId;
|
|
}
|
|
|
|
@Override
|
|
public Network.GuestType getGuestType() {
|
|
return guestType;
|
|
}
|
|
|
|
@Override
|
|
public Long getPhysicalNetworkId() {
|
|
return physicalNetworkId;
|
|
}
|
|
|
|
@Override
|
|
public void setPhysicalNetworkId(Long physicalNetworkId) {
|
|
this.physicalNetworkId = physicalNetworkId;
|
|
}
|
|
|
|
@Override
|
|
public ACLType getAclType() {
|
|
return aclType;
|
|
}
|
|
|
|
@Override
|
|
public boolean isRestartRequired() {
|
|
// TODO Auto-generated method stub
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean getSpecifyIpRanges() {
|
|
// TODO Auto-generated method stub
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public Long getVpcId() {
|
|
return vpcId;
|
|
}
|
|
|
|
@Override
|
|
public void setTrafficType(TrafficType type) {
|
|
this.trafficType = type;
|
|
}
|
|
|
|
@Override
|
|
public String getIp6Gateway() {
|
|
return ip6Gateway;
|
|
}
|
|
|
|
@Override
|
|
public String getIp6Cidr() {
|
|
return ip6Cidr;
|
|
}
|
|
}
|