Skip to content

Commit

Permalink
Send project-id information as part of AddPort Message. Code changes …
Browse files Browse the repository at this point in the history
…to log all exceptions to vcenter-plugin log file

Closes-bug: #1547646

Change-Id: Ife2853475d5b692c80710c431bd3e689efc523ee
  • Loading branch information
vaidyasd authored and Andra Cismaru committed Mar 30, 2016
1 parent dd492cd commit 36add0b
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 18 deletions.
4 changes: 3 additions & 1 deletion src/net/juniper/contrail/vcenter/MainDB.java
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,9 @@ void sync(SortedMap<K, V> oldMap, SortedMap<K, V> newMap) {
oldEntry = oldIter.hasNext()? oldIter.next() : null;
newEntry = newIter.hasNext()? newIter.next() : null;
} else if (cmp < 0) {
newEntry.getValue().create(vncDB);
if (mode != Mode.VCENTER_AS_COMPUTE) {
newEntry.getValue().create(vncDB);
}
newEntry = newIter.hasNext()? newIter.next() : null;
} else {
if (mode != Mode.VCENTER_AS_COMPUTE) {
Expand Down
6 changes: 5 additions & 1 deletion src/net/juniper/contrail/vcenter/VRouterNotifier.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

package net.juniper.contrail.vcenter;

import com.google.common.base.Throwables;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.HashMap;
Expand Down Expand Up @@ -78,7 +79,8 @@ public static void created(VirtualMachineInterfaceInfo vmiInfo) {
Utils.parseMacAddress(vmiInfo.getMacAddress()),
UUID.fromString(vnInfo.getUuid()),
vnInfo.getIsolatedVlanId(),
vnInfo.getPrimaryVlanId(), vmInfo.getName());
vnInfo.getPrimaryVlanId(), vmInfo.getName(),
UUID.fromString(vnInfo.getProjectUuid()));
if (ret) {
s_logger.info("vRouter " + vrouterIpAddress + " AddPort success for " + vmiInfo);
} else {
Expand All @@ -89,6 +91,8 @@ public static void created(VirtualMachineInterfaceInfo vmiInfo) {
} catch(Throwable e) {
s_logger.error("vRouter " + vrouterIpAddress + " Exception in AddPort for "
+ vmiInfo + ": " + e.getMessage());
String stackTrace = Throwables.getStackTraceAsString(e);
s_logger.error(stackTrace);
e.printStackTrace();
}
}
Expand Down
5 changes: 5 additions & 0 deletions src/net/juniper/contrail/vcenter/VirtualNetworkInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,11 @@ public void setPrimaryVlanId(short vlanId) {
this.primaryVlanId = vlanId;
}

// "virtual-network"s parent is "project"
public String getProjectUuid() {
return apiVn.getParentUuid();
}

public boolean getIpPoolEnabled() {
return ipPoolEnabled;
}
Expand Down
30 changes: 25 additions & 5 deletions src/net/juniper/contrail/vcenter/VncDB.java
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,8 @@ public boolean TestInitialize() {
}
} catch (IOException e) {
s_logger.error("Exception : " + e);
String stackTrace = Throwables.getStackTraceAsString(e);
s_logger.error(stackTrace);
e.printStackTrace();
return false;
}
Expand Down Expand Up @@ -446,18 +448,20 @@ protected static boolean doIgnoreVirtualNetwork(String name) {

public void createVirtualNetwork(VirtualNetworkInfo vnInfo)
throws IOException {
if (mode == Mode.VCENTER_AS_COMPUTE) {
return;
}

if (vnInfo == null) {
s_logger.error("Null pointer argument");
throw new IllegalArgumentException();
}

if (mode == Mode.VCENTER_AS_COMPUTE) {
VirtualNetwork vn = new VirtualNetwork();
vn.setUuid(vnInfo.getUuid());
apiConnector.read(vn);
vnInfo.apiVn = vn;
return;
}

VirtualNetwork vn = new VirtualNetwork();
vnInfo.apiVn = vn;

vn.setUuid(vnInfo.getUuid());
vn.setName(vnInfo.getName());
Expand All @@ -472,6 +476,8 @@ public void createVirtualNetwork(VirtualNetworkInfo vnInfo)
}

apiConnector.create(vn);
apiConnector.read(vn);
vnInfo.apiVn = vn;
s_logger.info("Created " + vnInfo);
}

Expand Down Expand Up @@ -842,6 +848,8 @@ SortedMap<String, VirtualNetworkInfo> readVirtualNetworks() {
apiConnector.list(VirtualNetwork.class, null);
} catch (Exception ex) {
s_logger.error("Exception in api.list(VirtualNetworks): " + ex);
String stackTrace = Throwables.getStackTraceAsString(ex);
s_logger.error(stackTrace);
ex.printStackTrace();
return map;
}
Expand Down Expand Up @@ -885,6 +893,8 @@ SortedMap<String, VirtualMachineInfo> readVirtualMachines() {
apiConnector.list(VirtualMachine.class, null);
} catch (Exception e) {
s_logger.error("Exception in api.list(VirtualMachine): " + e);
String stackTrace = Throwables.getStackTraceAsString(e);
s_logger.error(stackTrace);
e.printStackTrace();
return map;
}
Expand Down Expand Up @@ -1067,6 +1077,8 @@ public void deleteInstanceIps()
apiConnector.list(InstanceIp.class, null);
} catch (Exception ex) {
s_logger.error("Exception in api.list: " + ex);
String stackTrace = Throwables.getStackTraceAsString(ex);
s_logger.error(stackTrace);
ex.printStackTrace();
return ;
}
Expand Down Expand Up @@ -1155,6 +1167,8 @@ public void deleteVirtualMachineInterfaces()
apiConnector.list(VirtualMachineInterface.class, null);
} catch (Exception ex) {
s_logger.error("Exception in api.list: " + ex);
String stackTrace = Throwables.getStackTraceAsString(ex);
s_logger.error(stackTrace);
ex.printStackTrace();
return ;
}
Expand Down Expand Up @@ -1231,6 +1245,8 @@ public void deleteVirtualMachines()
apiConnector.list(VirtualMachine.class, null);
} catch (Exception ex) {
s_logger.error("Exception in api.list: " + ex);
String stackTrace = Throwables.getStackTraceAsString(ex);
s_logger.error(stackTrace);
ex.printStackTrace();
return ;
}
Expand All @@ -1250,6 +1266,8 @@ public void deleteVirtualNetworks()
apiConnector.list(VirtualNetwork.class, null);
} catch (Exception ex) {
s_logger.error("Exception in api.list: " + ex);
String stackTrace = Throwables.getStackTraceAsString(ex);
s_logger.error(stackTrace);
ex.printStackTrace();
return ;
}
Expand All @@ -1266,6 +1284,8 @@ public void deleteAll() {
deleteVirtualMachines();
deleteVirtualNetworks();
} catch (Exception e) {
String stackTrace = Throwables.getStackTraceAsString(e);
s_logger.error(stackTrace);
e.printStackTrace();
}
}
Expand Down
6 changes: 3 additions & 3 deletions test/net/juniper/contrail/vcenter/VirtualMachineInfoTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ public void globalSetUp() throws IOException {
vrouterApi = mock(ContrailVRouterApi.class);
when(vrouterApi.AddPort(any(UUID.class), any(UUID.class), anyString(), any(InetAddress.class),
any(byte[].class), any(UUID.class), anyShort(), anyShort(),
anyString())).thenReturn(true);
anyString(), any(UUID.class))).thenReturn(true);
when(vrouterApi.DeletePort(any(UUID.class))).thenReturn(true);
vrouterApiMap.put("10.84.24.45", vrouterApi);

Expand Down Expand Up @@ -176,7 +176,7 @@ public void testVirtualMachineCreateDelete() throws IOException {
InstanceIp instanceIp = VirtualMachineInterfaceInfoTest.verifyInstanceIpPresent(vmiInfo);
verify(vrouterApi).AddPort(any(UUID.class), any(UUID.class), anyString(), any(InetAddress.class),
any(byte[].class), any(UUID.class), anyShort(), anyShort(),
anyString());
anyString(), any(UUID.class));

// delete the VM
try {
Expand Down Expand Up @@ -221,7 +221,7 @@ public void testSyncVirtualMachine() throws IOException {
assertTrue(vnInfo.contains(newVmiInfo));
verify(vrouterApi).AddPort(any(UUID.class), any(UUID.class), anyString(), any(InetAddress.class),
any(byte[].class), any(UUID.class), anyShort(), anyShort(),
anyString());
anyString(), any(UUID.class));

s_logger.info("Sync again should not produce any change");
MainDB.sync(oldVMs, newVMs);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ public void globalSetUp() throws IOException {
vrouterApi = mock(ContrailVRouterApi.class);
when(vrouterApi.AddPort(any(UUID.class), any(UUID.class), anyString(), any(InetAddress.class),
any(byte[].class), any(UUID.class), anyShort(), anyShort(),
anyString())).thenReturn(true);
anyString(), any(UUID.class))).thenReturn(true);
when(vrouterApi.DeletePort(any(UUID.class))).thenReturn(true);
Map<String, ContrailVRouterApi> vrouterApiMap = VRouterNotifier.getVrouterApiMap();
vrouterApiMap.put("10.84.24.45", vrouterApi);
Expand Down Expand Up @@ -250,7 +250,7 @@ public void globalSetUp() throws IOException {
firstInstanceIp = verifyInstanceIpPresent(firstVmiInfo);
verify(vrouterApi).AddPort(any(UUID.class), any(UUID.class), anyString(), any(InetAddress.class),
any(byte[].class), any(UUID.class), anyShort(), anyShort(),
anyString());
anyString(), any(UUID.class));
}

@Test
Expand Down Expand Up @@ -279,7 +279,7 @@ public void testVirtualMachineInterfaceCreateDelete() throws IOException {
InstanceIp secondInstanceIp = verifyInstanceIpPresent(secondVmiInfo);
verify(vrouterApi, times(2)).AddPort(any(UUID.class), any(UUID.class), anyString(), any(InetAddress.class),
any(byte[].class), any(UUID.class), anyShort(), anyShort(),
anyString());
anyString(), any(UUID.class));

// update should have no effect
try {
Expand Down Expand Up @@ -363,7 +363,7 @@ public void testVirtualMachineInterfaceStaticIpAddressing() throws IOException {

verify(vrouterApi, times(2)).AddPort(any(UUID.class), any(UUID.class), anyString(), any(InetAddress.class),
any(byte[].class), any(UUID.class), anyShort(), anyShort(),
anyString());
anyString(), any(UUID.class));
}

@Test
Expand Down Expand Up @@ -396,7 +396,7 @@ public void testNetworkChange() throws IOException {

verify(vrouterApi, times(2)).AddPort(any(UUID.class), any(UUID.class), anyString(), any(InetAddress.class),
any(byte[].class), any(UUID.class), anyShort(), anyShort(),
anyString());
anyString(), any(UUID.class));

verify(vrouterApi).DeletePort(any(UUID.class));
verifyInstanceIpAbsent(firstInstanceIp);
Expand Down Expand Up @@ -429,7 +429,7 @@ public void testNetworkChange() throws IOException {

verify(vrouterApi, times(3)).AddPort(any(UUID.class), any(UUID.class), anyString(), any(InetAddress.class),
any(byte[].class), any(UUID.class), anyShort(), anyShort(),
anyString());
anyString(), any(UUID.class));

verify(vrouterApi, times(2)).DeletePort(any(UUID.class));
verifyInstanceIpAbsent(redIp);
Expand Down Expand Up @@ -461,7 +461,7 @@ public void testNetworkChange() throws IOException {
assertEquals("192.168.4.2", staticIp2.getAddress());
verify(vrouterApi, times(4)).AddPort(any(UUID.class), any(UUID.class), anyString(), any(InetAddress.class),
any(byte[].class), any(UUID.class), anyShort(), anyShort(),
anyString());
anyString(), any(UUID.class));

verify(vrouterApi, times(3)).DeletePort(any(UUID.class));
verifyInstanceIpAbsent(staticIp);
Expand All @@ -484,7 +484,7 @@ public void testNetworkChange() throws IOException {
assertNotSame(null, blueIp.getAddress());
verify(vrouterApi, times(5)).AddPort(any(UUID.class), any(UUID.class), anyString(), any(InetAddress.class),
any(byte[].class), any(UUID.class), anyShort(), anyShort(),
anyString());
anyString(), any(UUID.class));

verify(vrouterApi, times(4)).DeletePort(any(UUID.class));
verifyInstanceIpAbsent(staticIp2);
Expand Down
3 changes: 3 additions & 0 deletions test/net/juniper/contrail/vcenter/VirtualNetworkInfoTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,9 @@ public static VirtualNetwork verifyVirtualNetworkPresent(VirtualNetworkInfo vnIn
assertNotNull(vn);
assertEquals(vn.getUuid(), vnInfo.getUuid());
assertEquals(vn.getName(), vnInfo.getName());
assertNotNull(vn.getParentUuid());

assertNotNull(vnInfo.getProjectUuid());

return vn;
}
Expand Down

0 comments on commit 36add0b

Please sign in to comment.