/* * Copyright (c) 2013, 2015 IBM Corporation and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.neutron.spi; import java.io.Serializable; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "network") @XmlAccessorType(XmlAccessType.NONE) public final class NeutronNetwork extends NeutronAdminAttributes implements Serializable { // See OpenStack Network API v2.0 Reference for description of // annotated attributes private static final long serialVersionUID = 1L; @XmlElement(defaultValue = "false", name = "shared") Boolean shared; // @XmlElement (defaultValue = "false", name = "router:external") @XmlElement(defaultValue = "false", namespace = "router", name = "external") Boolean routerExternal; // @XmlElement (defaultValue = "flat", name = "provider:network_type") @XmlElement(namespace = "provider", name = "network_type") String providerNetworkType; // @XmlElement (name = "provider:physical_network") @XmlElement(namespace = "provider", name = "physical_network") String providerPhysicalNetwork; // @XmlElement (name = "provider:segmentation_id") @XmlElement(namespace = "provider", name = "segmentation_id") String providerSegmentationID; @XmlElement(name = "segments") List segments; @XmlElement(name = "vlan_transparent") Boolean vlanTransparent; @XmlElement(name = "mtu") Integer mtu; @XmlElement(name = "qos_policy_id") String qosPolicyId; /* This attribute lists the ports associated with an instance * which is needed for determining if that instance can be deleted */ public NeutronNetwork() { } @Override public void initDefaults() { if (status == null) { status = "ACTIVE"; } if (adminStateUp == null) { adminStateUp = true; } if (shared == null) { shared = false; } if (routerExternal == null) { routerExternal = false; } if (providerNetworkType == null) { providerNetworkType = "flat"; } } public boolean isAdminStateUp() { return adminStateUp; } public boolean isShared() { return shared; } public Boolean getShared() { return shared; } public void setShared(boolean newValue) { shared = newValue; } public boolean isRouterExternal() { return routerExternal; } public Boolean getRouterExternal() { return routerExternal; } public void setRouterExternal(boolean newValue) { routerExternal = newValue; } public String getProviderNetworkType() { return providerNetworkType; } public void setProviderNetworkType(String providerNetworkType) { this.providerNetworkType = providerNetworkType; } public String getProviderPhysicalNetwork() { return providerPhysicalNetwork; } public void setProviderPhysicalNetwork(String providerPhysicalNetwork) { this.providerPhysicalNetwork = providerPhysicalNetwork; } public String getProviderSegmentationID() { return providerSegmentationID; } public void setProviderSegmentationID(String providerSegmentationID) { this.providerSegmentationID = providerSegmentationID; } public void setSegments(List segments) { this.segments = segments; } public List getSegments() { return segments; } public Boolean getVlanTransparent() { return vlanTransparent; } public void setVlanTransparent(Boolean input) { this.vlanTransparent = input; } public Integer getMtu() { return mtu; } public void setMtu(Integer input) { mtu = input; } public String getQosPolicyId() { return qosPolicyId; } public void setQosPolicyId(String qosPolicyId) { this.qosPolicyId = qosPolicyId; } /** * This method copies selected fields from the object and returns them * as a new object, suitable for marshaling. * * @param fields * List of attributes to be extracted * @return an OpenStackNetworks object with only the selected fields * populated */ public NeutronNetwork extractFields(List fields) { NeutronNetwork ans = new NeutronNetwork(); for (String s : fields) { extractField(s, ans); if (s.equals("shared")) { ans.setShared(shared); } if (s.equals("external")) { ans.setRouterExternal(this.getRouterExternal()); } if (s.equals("segmentation_id")) { ans.setProviderSegmentationID(this.getProviderSegmentationID()); } if (s.equals("physical_network")) { ans.setProviderPhysicalNetwork(this.getProviderPhysicalNetwork()); } if (s.equals("network_type")) { ans.setProviderNetworkType(this.getProviderNetworkType()); } if (s.equals("qos_policy_id")) { ans.setQosPolicyId(this.getQosPolicyId()); } } return ans; } @Override public String toString() { return "NeutronNetwork [networkUUID=" + uuid + ", networkName=" + name + ", adminStateUp=" + adminStateUp + ", shared=" + shared + ", tenantID=" + tenantID + ", routerExternal=" + routerExternal + ", providerNetworkType=" + providerNetworkType + ", providerPhysicalNetwork=" + providerPhysicalNetwork + ", providerSegmentationID=" + providerSegmentationID + ", status=" + status + ", qosPolicyId =" + qosPolicyId + ", segments = " + segments + "]"; } }