/** * FIXME this method should be part of refresh action. Remove it when moved!!! * * @param resource * @throws ResourceException */ private void initVirtualResources(IResource resource) throws ResourceException { if (resource.getModel() != null) { List<String> nameLogicalRouters = resource.getModel().getChildren(); if (!nameLogicalRouters.isEmpty()) { log.debug("Loading child logical routers"); /* resource type for all child logical devices is the same as the parent (physical) one */ String typeResource = resource.getResourceIdentifier().getType(); IResourceManager resourceManager; try { resourceManager = Activator.getResourceManagerService(); } catch (Exception e1) { throw new ResourceException("Could not get Resource Manager Service."); } /* initialize each resource */ int createdResources = 0; for (String nameResource : nameLogicalRouters) { try { resourceManager.getIdentifierFromResourceName(typeResource, nameResource); log.info("A resource with this name already exists, omitting creation"); } catch (ResourceNotFoundException e) { // TODO If the resource exists what it is our decision? log.error(e.getMessage()); log.info("This resource is new, it have to be created"); ResourceDescriptor newResourceDescriptor = newResourceDescriptor(resource.getResourceDescriptor(), nameResource); /* create new resources */ resourceManager.createResource(newResourceDescriptor); createdResources++; } } log.debug("Loaded " + createdResources + " new logical routers"); // FIXME If a resource is created, we have to delete the don't used resources } } }
@Test public void showGRETunnelConfigurationTest() throws CapabilityException, ProtocolException { log.info("Test showGRETunnelConfiguration method"); IGRETunnelCapability greCapability = (IGRETunnelCapability) routerResource.getCapability( InitializerTestHelper.getCapabilityInformation(TestsConstants.GRE_CAPABILITY_TYPE)); ComputerSystem routerModel = (ComputerSystem) routerResource.getModel(); routerModel.addHostedService( ParamCreationHelper.getGRETunnelService(TUNNEL_NAME, IPv4_ADDRESS, IP_SOURCE, IP_DESTINY)); routerModel.addHostedService( ParamCreationHelper.getGRETunnelService(TUNNEL_NAME, IPv6_ADDRESS, IP_SOURCE, IP_DESTINY)); List<GRETunnelService> greServices = greCapability.showGRETunnelConfiguration(); Assert.assertEquals(greServices.size(), 2); GRETunnelService greService = greServices.get(0); Assert.assertEquals(TUNNEL_NAME, greService.getName()); Assert.assertNotNull(greService.getGRETunnelConfiguration()); GRETunnelConfiguration greConfig = greService.getGRETunnelConfiguration(); Assert.assertEquals(IP_SOURCE, greConfig.getSourceAddress()); Assert.assertEquals(IP_DESTINY, greConfig.getDestinationAddress()); Assert.assertEquals(greService.getProtocolEndpoint().size(), 1); ProtocolEndpoint pE = greService.getProtocolEndpoint().get(0); Assert.assertTrue(pE instanceof GRETunnelEndpoint); GRETunnelEndpoint gE = (GRETunnelEndpoint) pE; Assert.assertEquals(IPUtilsHelper.getAddressFromIP(IPv4_ADDRESS), gE.getIPv4Address()); Assert.assertEquals( IPUtilsHelper.getPrefixFromIp(IPv4_ADDRESS), IPUtilsHelper.parseLongToShortIpv4NetMask(gE.getSubnetMask())); Assert.assertEquals(ProtocolIFType.IPV4, gE.getProtocolIFType()); greService = greServices.get(1); Assert.assertEquals(TUNNEL_NAME, greService.getName()); Assert.assertNotNull(greService.getGRETunnelConfiguration()); greConfig = greService.getGRETunnelConfiguration(); Assert.assertEquals(IP_SOURCE, greConfig.getSourceAddress()); Assert.assertEquals(IP_DESTINY, greConfig.getDestinationAddress()); Assert.assertEquals(greService.getProtocolEndpoint().size(), 1); pE = greService.getProtocolEndpoint().get(0); Assert.assertTrue(pE instanceof GRETunnelEndpoint); gE = (GRETunnelEndpoint) pE; Assert.assertEquals(IPUtilsHelper.getAddressFromIP(IPv6_ADDRESS), gE.getIPv6Address()); Assert.assertEquals( IPUtilsHelper.getPrefixFromIp(IPv6_ADDRESS), String.valueOf(gE.getPrefixLength())); Assert.assertEquals(ProtocolIFType.IPV6, gE.getProtocolIFType()); }
@Test public void testGREDeleteTunnelAction() throws CapabilityException, ProtocolException { log.info("TEST GRE TUNNEL ACTION"); IGRETunnelCapability greCapability = (IGRETunnelCapability) routerResource.getCapability( InitializerTestHelper.getCapabilityInformation(TestsConstants.GRE_CAPABILITY_TYPE)); // add gre tunnel service to the router model. GRETunnelService greTunnelService = new GRETunnelService(); greTunnelService.setName(TUNNEL_NAME); ComputerSystem model = (ComputerSystem) routerResource.getModel(); model.addHostedService(greTunnelService); routerResource.setModel(model); greCapability.deleteGRETunnel( ParamCreationHelper.getGRETunnelService(TUNNEL_NAME, null, null, null, null)); IQueueManagerCapability queueCapability = (IQueueManagerCapability) routerResource.getCapability( InitializerTestHelper.getCapabilityInformation( TestsConstants.QUEUE_CAPABILIY_TYPE)); List<IAction> queue = (List<IAction>) queueCapability.getActions(); Assert.assertEquals(queue.size(), 1); QueueResponse queueResponse = (QueueResponse) queueCapability.execute(); Assert.assertEquals(queueResponse.getResponses().size(), 1); Assert.assertEquals(queueResponse.getPrepareResponse().getStatus(), ActionResponse.STATUS.OK); Assert.assertEquals(queueResponse.getConfirmResponse().getStatus(), ActionResponse.STATUS.OK); Assert.assertEquals(queueResponse.getRefreshResponse().getStatus(), ActionResponse.STATUS.OK); Assert.assertEquals( queueResponse.getRestoreResponse().getStatus(), ActionResponse.STATUS.PENDING); Assert.assertTrue(queueResponse.isOk()); queue = (List<IAction>) queueCapability.getActions(); Assert.assertEquals(queue.size(), 0); }