[ https://issues.apache.org/jira/browse/CLOUDSTACK-8956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14969054#comment-14969054 ]
ASF GitHub Bot commented on CLOUDSTACK-8956: -------------------------------------------- Github user wilderrodrigues commented on a diff in the pull request: https://github.com/apache/cloudstack/pull/935#discussion_r42740897 --- Diff: utils/src/main/java/com/cloud/utils/nicira/nvp/plugin/NiciraNvpApiVersion.java --- @@ -0,0 +1,60 @@ +// +// 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.utils.nicira.nvp.plugin; + +import org.apache.log4j.Logger; + +import com.cloud.maint.Version; + +public class NiciraNvpApiVersion { + private static final Logger s_logger = Logger.getLogger(NiciraNvpApiVersion.class); + + private static String niciraApiVersion = null; + + public static void pingNiciraApiVersion(String apiVersion){ --- End diff -- What is the whole point of this method? You already have a static method to set the version that accepts null. You also have another static method that checks if the a given API version is lower than the existing one. > NSX/Nicira Plugin does not support NSX v4.2.1 > --------------------------------------------- > > Key: CLOUDSTACK-8956 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8956 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Components: VMware > Affects Versions: 4.4.0, 4.5.0, 4.4.1, 4.4.2, 4.4.3, 4.5.1, 4.4.4 > Environment: OS: RHEL 6.6 > Reporter: Nicolas Vazquez > Fix For: 4.5.1, 4.6.0 > > > h3. Description of the problem: > Prior to version 4.2. Nicira/VmWare NSX used a variation of Open vSwitch as > means of integrating SDN into hypervisor layer. Cloudstack NiciraNVP plugin > was written to support OVS as a bridge to NSX. > In version 4.2 VMware introduced NSX vSwitch as a replacement for OVS in ESX > hypervisors. It is a fork of distributed vSwitch leveraging one of the recent > features of ESX called opaque networks. Because of that change the current > version of NiciraNVP plugin doesn’t support versions of NSX-MH above 4.2 > specifically in Vsphere environment. Proposed fix will analyze a version of > NVP/NSX API and use proper support for ESX hypervisors. > vSphere hypervisor mode operations when NV is deployed onto NSX managed > network changes: > * Current mode. A portgroup = UUID of CS VM NIC is created on a local > standard switch of the Hypervisor where VM is starting. VM nic is attached to > that port group. > * New mode. No additional port group is created on a HW. No port group > cleanup is needed after VM/NIC is destroyed. VM is attached to 1st port group > having the following attributes: > ** opaqueNetworkId string "br-int” > ** opaqueNetworkType string "nsx.network" > If portgroup with such attributes is not found a deployment should fail with > exception. > h3. VMware vSphere API version from 5.1 to 5.5: > Since vSphere API version 5.5, > [OpaqueNetworks|https://www.vmware.com/support/developer/converter-sdk/conv55_apireference/vim.OpaqueNetwork.html] > are introduced. > Its description says: > bq. This interface defines an opaque network, in the sense that the detail > and configuration of the network is unknown to vShpere and is managed by a > management plane outside of vSphere. However, the identifier and name of > these networks is made available to vSphere so that host and virtual machine > virtual ethernet device can connect to them. > In order to connect a vm's virtual ethernet device to the proper opaque > network when deploying a vm into a NSX managed network, we first need to look > for a particular opaque network on hosts. This opaque network's id has to be > *"br-int"* and its type *"nsx.network"*. > Since vSphere API version 5.5 > [HostNetworkInfo|https://www.vmware.com/support/developer/converter-sdk/conv55_apireference/vim.host.NetworkInfo.html#opaqueNetwork] > introduces a list of available opaque networks for each host. > If NSX API version >= 4.2 we look for a > [OpaqueNetworkInfo|https://www.vmware.com/support/developer/converter-sdk/conv55_apireference/vim.host.OpaqueNetworkInfo.html] > which satisfies: > * opaqueNetworkId = "br-int" > * opaqueNetworkType = "nsx.netork" > If that opaque network is found, then we need to attach vm's NIC to a virtual > ethernet device which support this, so we use > [VirtualEthernetCardOpaqueNetworkBackingInfo|https://www.vmware.com/support/developer/converter-sdk/conv55_apireference/vim.vm.device.VirtualEthernetCard.OpaqueNetworkBackingInfo.html] > setting: > * opaqueNetworkId = "br-int" > * opaqueNetworkType = "nsx.netork" -- This message was sent by Atlassian JIRA (v6.3.4#6332)