// 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.vm; import java.io.Serializable; import java.net.URI; import org.apache.cloudstack.api.InternalIdentity; import com.cloud.network.Network; import com.cloud.network.Networks.AddressFormat; import com.cloud.network.Networks.BroadcastDomainType; import com.cloud.network.Networks.Mode; import com.cloud.network.Networks.TrafficType; import com.cloud.vm.Nic.ReservationStrategy; public class NicProfile implements InternalIdentity, Serializable { private static final long serialVersionUID = 4997005771736090304L; long id; long networkId; long vmId; String reservationId; Integer deviceId; String name; String uuid; String macAddress; BroadcastDomainType broadcastType; Mode mode; AddressFormat format; TrafficType trafficType; URI isolationUri; URI broadcastUri; ReservationStrategy strategy; boolean defaultNic; Integer networkRate; boolean isSecurityGroupEnabled; // IPv4 String iPv4Address; String iPv4Netmask; String iPv4Gateway; String iPv4Dns1; String iPv4Dns2; String requestedIPv4; // IPv6 String iPv6Address; String iPv6Gateway; String iPv6Cidr; String iPv6Dns1; String iPv6Dns2; String requestedIPv6; // // CONSTRUCTORS // public NicProfile() { } public NicProfile(Nic nic, Network network, URI broadcastUri, URI isolationUri, Integer networkRate, boolean isSecurityGroupEnabled, String name) { id = nic.getId(); networkId = network.getId(); mode = network.getMode(); broadcastType = network.getBroadcastDomainType(); trafficType = network.getTrafficType(); format = nic.getAddressFormat(); iPv4Address = nic.getIPv4Address(); iPv4Netmask = nic.getIPv4Netmask(); iPv4Gateway = nic.getIPv4Gateway(); iPv6Address = nic.getIPv6Address(); iPv6Gateway = nic.getIPv6Gateway(); iPv6Cidr = nic.getIPv6Cidr(); macAddress = nic.getMacAddress(); reservationId = nic.getReservationId(); strategy = nic.getReservationStrategy(); deviceId = nic.getDeviceId(); defaultNic = nic.isDefaultNic(); this.broadcastUri = broadcastUri; this.isolationUri = isolationUri; this.isSecurityGroupEnabled = isSecurityGroupEnabled; vmId = nic.getInstanceId(); this.name = name; uuid = nic.getUuid(); if (networkRate != null) { this.networkRate = networkRate; } } public NicProfile(String requestedIPv4, String requestedIPv6) { this.requestedIPv4 = requestedIPv4; this.requestedIPv6 = requestedIPv6; } public NicProfile(ReservationStrategy strategy, String iPv4Address, String macAddress, String iPv4gateway, String iPv4netmask) { format = AddressFormat.Ip4; this.iPv4Address = iPv4Address; this.iPv4Gateway = iPv4gateway; this.iPv4Netmask = iPv4netmask; this.macAddress = macAddress; this.strategy = strategy; } // // GET & SET GENERAL // @Override public long getId() { return id; } public void setId(long id) { this.id = id; } public long getNetworkId() { return networkId; } public void setNetworId(long networkId){ this.networkId = networkId; } public long getVirtualMachineId() { return vmId; } public void setVirtualMachineId(long virtualMachineId) { this.vmId = virtualMachineId; } public String getReservationId() { return reservationId; } public void setReservationId(String reservationId) { this.reservationId = reservationId; } public Integer getDeviceId() { return deviceId; } public void setDeviceId(int deviceId) { this.deviceId = deviceId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getUuid() { return uuid; } public void setUuid(String uuid) { this.uuid = uuid; } public String getMacAddress() { return macAddress; } public void setMacAddress(String macAddress) { this.macAddress = macAddress; } public BroadcastDomainType getBroadcastType() { return broadcastType; } public void setBroadcastType(BroadcastDomainType broadcastType) { this.broadcastType = broadcastType; } public Mode getMode() { return mode; } public void setMode(Mode mode) { this.mode = mode; } public AddressFormat getFormat() { return format; } public void setFormat(AddressFormat format) { this.format = format; } public TrafficType getTrafficType() { return trafficType; } public void setTrafficType(TrafficType trafficType) { this.trafficType = trafficType; } public URI getIsolationUri() { return isolationUri; } public void setIsolationUri(URI isolationUri) { this.isolationUri = isolationUri; } public URI getBroadCastUri() { return broadcastUri; } public void setBroadcastUri(URI broadcastUri) { this.broadcastUri = broadcastUri; } public ReservationStrategy getReservationStrategy() { return strategy; } public void setReservationStrategy(ReservationStrategy strategy) { this.strategy = strategy; } public boolean isDefaultNic() { return defaultNic; } public void setDefaultNic(boolean defaultNic) { this.defaultNic = defaultNic; } public Integer getNetworkRate() { return networkRate; } public void setNetworkRate(Integer networkRate) { this.networkRate = networkRate; } public boolean isSecurityGroupEnabled() { return isSecurityGroupEnabled; } public void setSecurityGroupEnabled(boolean enabled) { isSecurityGroupEnabled = enabled; } // // GET & SET IPv4 // public String getIPv4Address() { return iPv4Address; } public void setIPv4Address(String ipv4Address) { this.iPv4Address = ipv4Address; } public String getIPv4Netmask() { return iPv4Netmask; } public void setIPv4Netmask(String ipv4Netmask) { this.iPv4Netmask = ipv4Netmask; } public String getIPv4Gateway() { return iPv4Gateway; } public void setIPv4Gateway(String ipv4Gateway) { this.iPv4Gateway = ipv4Gateway; } public String getIPv4Dns1() { return iPv4Dns1; } public void setIPv4Dns1(String ipv4Dns1) { this.iPv4Dns1 = ipv4Dns1; } public String getIPv4Dns2() { return iPv4Dns2; } public void setIPv4Dns2(String ipv4Dns2) { this.iPv4Dns2 = ipv4Dns2; } public String getRequestedIPv4() { return requestedIPv4; } public void setRequestedIPv4(String requestedIPv4) { this.requestedIPv4 = requestedIPv4; } // // GET & SET IPv6 // public String getIPv6Address() { return iPv6Address; } public void setIPv6Address(String ipv6Address) { this.iPv6Address = ipv6Address; } public String getIPv6Gateway() { return iPv6Gateway; } public void setIPv6Gateway(String ipv6Gateway) { this.iPv6Gateway = ipv6Gateway; } public String getIPv6Cidr() { return iPv6Cidr; } public void setIPv6Cidr(String ipv6Cidr) { this.iPv6Cidr = ipv6Cidr; } public String getIPv6Dns1() { return iPv6Dns1; } public void setIPv6Dns1(String ipv6Dns1) { this.iPv6Dns1 = ipv6Dns1; } public String getIPv6Dns2() { return iPv6Dns2; } public void setIPv6Dns2(String ipv6Dns2) { this.iPv6Dns2 = ipv6Dns2; } public String getRequestedIPv6() { return requestedIPv6; } public void setRequestedIPv6(String requestedIPv6) { this.requestedIPv6 = requestedIPv6; } // // OTHER METHODS // public void deallocate() { mode = null; format = null; broadcastType = null; trafficType = null; iPv4Address = null; iPv4Netmask = null; iPv4Gateway = null; iPv4Dns1 = null; iPv4Dns2 = null; iPv6Address = null; iPv6Gateway = null; iPv6Cidr = null; iPv6Dns1 = null; iPv6Dns2 = null; macAddress = null; reservationId = null; strategy = null; deviceId = null; broadcastUri = null; isolationUri = null; } @Override public String toString() { return new StringBuilder("NicProfile[").append(id) .append("-") .append(vmId) .append("-") .append(reservationId) .append("-") .append(iPv4Address) .append("-") .append(broadcastUri) .toString(); } }