public static void createFakeData(InternalServicesContext ctx) { // JunitResource ChangesContext changes = new ChangesContext(); JunitResource junitResource = new JunitResource("www.example.com", JunitResourceEnum.A, 1); changes.getResourcesToAdd().add(junitResource); changes.getTagsToAdd().addAll(Arrays.asList( // new Tuple2<>(junitResource, "tag1"), // new Tuple2<>(junitResource, "asite"))); junitResource = new JunitResource("www.example.com", JunitResourceEnum.A, 2); changes.getResourcesToAdd().add(junitResource); changes.getTagsToAdd().addAll(Arrays.asList( // new Tuple2<>(junitResource, "asite"))); changes.getResourcesToAdd().add(new JunitResource("example.com", JunitResourceEnum.B, 3)); changes.getResourcesToAdd().add(new JunitResource("t1_aaa", JunitResourceEnum.A, DateTools.parseFull("2000-01-01 00:00:00"), 1, 1L, 1.0, 1.0f, true, "one", "two")); changes.getResourcesToAdd().add(new JunitResource("t2_aaa", JunitResourceEnum.C, DateTools.parseFull("2000-06-01 00:00:00"), 5, 8L, 1.5, 7.3f, false, "one", "three")); changes.getResourcesToAdd().add(new JunitResource("zz", JunitResourceEnum.B, DateTools.parseFull("2000-04-01 00:00:00"), 80, 4L, 77.6, 3.1f, true)); ctx.getInternalChangeService().changesExecute(changes); }
protected IPResource retrieveOrCreateResource(IPResourceService resourceService, ChangesContext changes, IPResource resource) { // Search in current changes Optional<IPResource> foundOptional = changes.getResourcesToAdd().stream() // .filter(it -> resourceService.resourceEqualsPk(resource, it)) // .findAny(); if (foundOptional.isPresent()) { return foundOptional.get(); } foundOptional = changes.getResourcesToUpdate().stream() // .filter(it -> resourceService.resourceEqualsPk(resource, it.getB())) // .map(it -> it.getB()) // .findAny(); if (foundOptional.isPresent()) { return foundOptional.get(); } // Search in repository foundOptional = resourceService.resourceFindByPk(resource); if (foundOptional.isPresent()) { return foundOptional.get(); } // Create new changes.resourceAdd(resource); return resource; }
@SuppressWarnings({ "unchecked" }) protected <T extends IPResource> T retrieveOrCreateResource(IPResourceService resourceService, ChangesContext changes, T resource, Class<T> resourceClass) { // Search in current changes Optional<T> foundOptional = changes.getResourcesToAdd().stream() // .filter(it -> resourceService.resourceEqualsPk(resource, it)) // .map(it -> (T) it) // .findAny(); if (foundOptional.isPresent()) { return foundOptional.get(); } foundOptional = changes.getResourcesToUpdate().stream() // .filter(it -> resourceService.resourceEqualsPk(resource, it.getB())) // .map(it -> (T) it.getB()) // .findAny(); if (foundOptional.isPresent()) { return foundOptional.get(); } // Search in repository foundOptional = resourceService.resourceFindByPk(resource); if (foundOptional.isPresent()) { return foundOptional.get(); } // Create new changes.resourceAdd(resource); return resource; }
changes.getResourcesToAdd().add(createWithSets( // "sets_0.0", // changes.getResourcesToAdd().add(createWithSets( // "sets_1.1", // Sets.newHashSet(DateTools.parseDateOnly("2000-01-01")), // Sets.newHashSet("1") // )); changes.getResourcesToAdd().add(createWithSets( // "sets_1.2", // Sets.newHashSet(DateTools.parseDateOnly("2000-01-02")), // Sets.newHashSet("2") // )); changes.getResourcesToAdd().add(createWithSets( // "sets_2.1", // Sets.newHashSet(DateTools.parseDateOnly("2000-01-01"), DateTools.parseDateOnly("2000-02-01")), // Sets.newHashSet("1", "2") // )); changes.getResourcesToAdd().add(createWithSets( // "sets_2.2", // Sets.newHashSet(DateTools.parseDateOnly("2000-01-02"), DateTools.parseDateOnly("2000-02-02")), //
protected IPResource retrieveAndUpdateOrCreateResource(IPResourceService resourceService, ChangesContext changes, IPResource resource) { // Search in current changes Optional<IPResource> foundOptional = changes.getResourcesToAdd().stream() // .filter(it -> resourceService.resourceEqualsPk(resource, it)) // .findAny(); if (foundOptional.isPresent()) { updateResourceIfDifferent(resource, foundOptional.get()); return foundOptional.get(); } foundOptional = changes.getResourcesToUpdate().stream() // .filter(it -> resourceService.resourceEqualsPk(resource, it.getB())) // .map(it -> it.getB()) // .findAny(); if (foundOptional.isPresent()) { updateResourceIfDifferent(resource, foundOptional.get()); return foundOptional.get(); } // Search in repository foundOptional = resourceService.resourceFindByPk(resource); if (foundOptional.isPresent()) { IPResource foundResource = foundOptional.get(); if (updateResourceIfDifferent(resource, foundResource)) { changes.resourceUpdate(foundResource, foundResource); } return foundResource; } // Create new changes.resourceAdd(resource); return resource; }
@Test public void testChanges_reduntantLinksAndTags() { ChangesContext changes = new ChangesContext(); JunitResource r1 = new JunitResource("reduntant_1"); JunitResource r2 = new JunitResource("reduntant_2"); changes.getResourcesToAdd().add(r1); changes.getResourcesToAdd().add(r2); changes.getLinksToAdd().add(new Tuple3<>(r1, "link1", r2)); changes.getLinksToAdd().add(new Tuple3<>(r1, "link1", r2)); changes.getLinksToAdd().add(new Tuple3<>(r1, "link2", r2)); changes.getTagsToAdd().add(new Tuple2<>(r1, "tag1")); changes.getTagsToAdd().add(new Tuple2<>(r1, "tag1")); changes.getTagsToAdd().add(new Tuple2<>(r1, "tag2")); getInternalServicesContext().getInternalChangeService().changesExecute(changes); // Check IPResourceService resourceService = getCommonServicesContext().getResourceService(); r1 = resourceService.resourceFindByPk(r1).get(); r2 = resourceService.resourceFindByPk(r2).get(); Assert.assertEquals(Arrays.asList("link1", "link2"), resourceService.linkFindAllByFromResource(r1).stream().map(it -> it.getA()).sorted().collect(Collectors.toList())); Assert.assertEquals(Arrays.asList("tag1", "tag2"), resourceService.tagFindAllByResource(r1).stream().sorted().collect(Collectors.toList())); }
@Test public void testDuplicatePkSameResource_create() { // Common JunitResource resource; ChangesContext changes = new ChangesContext(); InternalChangeService internalChangeService = getInternalServicesContext().getInternalChangeService(); // Create 1 item resource = new JunitResource("t1", JunitResourceEnum.A, 1); resource.setLongNumber(10L); changes.getResourcesToAdd().add(resource); internalChangeService.changesExecute(changes); // Create same. Not fine thrown.expect(ResourcePrimaryKeyCollisionException.class); resource = new JunitResource("t1", JunitResourceEnum.A, 1); resource.setLongNumber(30L); changes.getResourcesToAdd().add(resource); internalChangeService.changesExecute(changes); }
@Test public void testChanges_linksAndTagsAreNotKeptWhenDeleted() { // Create ChangesContext changes = new ChangesContext(); JunitResource r1 = new JunitResource("1"); JunitResource r2 = new JunitResource("2"); changes.getResourcesToAdd().add(r1); changes.getResourcesToAdd().add(r2); changes.getLinksToAdd().add(new Tuple3<>(r1, "link1", r2)); changes.getTagsToAdd().add(new Tuple2<>(r1, "tag1")); getInternalServicesContext().getInternalChangeService().changesExecute(changes); IPResourceService resourceService = getCommonServicesContext().getResourceService(); r1 = resourceService.resourceFindByPk(r1).get(); r2 = resourceService.resourceFindByPk(r2).get(); Assert.assertEquals(Arrays.asList("link1"), resourceService.linkFindAllByFromResource(r1).stream().map(it -> it.getA()).sorted().collect(Collectors.toList())); Assert.assertEquals(Arrays.asList("tag1"), resourceService.tagFindAllByResource(r1).stream().sorted().collect(Collectors.toList())); // Delete it changes.getResourcesToDelete().add(resourceService.resourceFindByPk(r1).get().getInternalId()); getInternalServicesContext().getInternalChangeService().changesExecute(changes); Assert.assertEquals(0, resourceService.linkFindAllByFromResource(r1).size()); Assert.assertEquals(0, resourceService.tagFindAllByResource(r1).size()); // Recreate it changes.getResourcesToAdd().add(r1); getInternalServicesContext().getInternalChangeService().changesExecute(changes); // Check no links and tags Assert.assertEquals(0, resourceService.linkFindAllByFromResource(r1).size()); Assert.assertEquals(0, resourceService.tagFindAllByResource(r1).size()); }
@Test public void testDuplicatePkSameResource_update() { // Common JunitResource resource; ChangesContext changes = new ChangesContext(); InternalChangeService internalChangeService = getInternalServicesContext().getInternalChangeService(); IPResourceService resourceService = getCommonServicesContext().getResourceService(); // Create 2 items resource = new JunitResource("t1", JunitResourceEnum.A, 1); resource.setLongNumber(10L); changes.getResourcesToAdd().add(resource); resource = new JunitResource("t2", JunitResourceEnum.A, 2); resource.setLongNumber(10L); changes.getResourcesToAdd().add(resource); internalChangeService.changesExecute(changes); // Rename second item to same pk as first thrown.expect(ResourcePrimaryKeyCollisionException.class); resource = new JunitResource("t1", JunitResourceEnum.A, 1); resource.setLongNumber(20L); changes.getResourcesToUpdate().add(new Tuple2<>(resourceService.resourceFindByPk(new JunitResource("t2", JunitResourceEnum.A, 2)).get().getInternalId(), resource)); internalChangeService.changesExecute(changes); }
changes.getResourcesToAdd().add(masterResource); changes.getResourcesToAdd().add(slaveResource); changes.getLinksToAdd().add(new Tuple3<>(masterResource, "COMMANDS", slaveResource)); changes.getResourcesToAdd().add(slaveResource); changes.getLinksToAdd().add(new Tuple3<>(masterResource, "COMMANDS", slaveResource));
@Test public void testResourceUrlRedirection() { deleteAllResources(); IPResourceService resourceService = getCommonServicesContext().getResourceService(); // Create initial data Machine m1 = new Machine("m1.example.com", "199.141.1.101"); Machine m2 = new Machine("m2.example.com", "199.141.1.201"); ChangesContext changes = new ChangesContext(); changes.getResourcesToAdd().add(m1); changes.getResourcesToAdd().add(m2); getInternalServicesContext().getInternalChangeService().changesExecute(changes); assertState("UrlRedirectionTest-state-0.json"); // Create a redirection UrlRedirection urlRedirection = new UrlRedirection(); urlRedirection.setDomainName("redir.example.com"); urlRedirection.setHttpRedirectToUrl("https://google.com"); changes.getResourcesToAdd().add(urlRedirection); changes.getLinksToAdd().add(new Tuple3<>(urlRedirection, LinkTypeConstants.INSTALLED_ON, m1)); getInternalServicesContext().getInternalChangeService().changesExecute(changes); urlRedirection = resourceService.resourceFindByPk(urlRedirection).get(); assertState("UrlRedirectionTest-state-1.json"); // Change the list of machines changes.getLinksToAdd().add(new Tuple3<>(urlRedirection, LinkTypeConstants.INSTALLED_ON, m2)); getInternalServicesContext().getInternalChangeService().changesExecute(changes); assertState("UrlRedirectionTest-state-2.json"); // Delete changes.getResourcesToDelete().add(urlRedirection.getInternalId()); getInternalServicesContext().getInternalChangeService().changesExecute(changes); assertState("UrlRedirectionTest-state-3.json"); }
changes.getResourcesToUpdate().size(), changes.getResourcesToDelete().size(), changes.getResourcesToAdd().size(), changes.getResourcesToRefresh().size(), // for (IPResource resource : changes.getResourcesToAdd()) { logger.debug("[APPLY] Add resource {}", resource);
UnixUser uu2 = new UnixUser(UnixUserAvailableIdHelper.getNextAvailableId(), "user2", "/home/user2", null, null); ChangesContext changes = new ChangesContext(); changes.getResourcesToAdd().add(m1); changes.getResourcesToAdd().add(m2); changes.getResourcesToAdd().add(m3); changes.getResourcesToAdd().add(uu1); changes.getResourcesToAdd().add(uu2); getInternalServicesContext().getInternalChangeService().changesExecute(changes); a2.getDomainNames().add("d2.example.com"); a2.getApplicationDefinition().getPortsExposed().put(34, 12); changes.getResourcesToAdd().add(a1); changes.getResourcesToAdd().add(a2); changes.getLinksToAdd().add(new Tuple3<>(a2, LinkTypeConstants.RUN_AS, uu2)); changes.getLinksToAdd().add(new Tuple3<>(a2, LinkTypeConstants.INSTALLED_ON, m2));
changes.getResourcesToAdd().add(resource); changes.getResourcesToAdd().add(resource); changes.getTagsToAdd().add(new Tuple2<>(resource, "asite")); internalChangeService.changesExecute(changes); changes.getResourcesToAdd().add(new JunitResource("example2.com", JunitResourceEnum.A, 2)); internalChangeService.changesExecute(changes); Assert.fail("Didn't get an exception");
wc2.setResourceEditorName("manual"); ChangesContext changes = new ChangesContext(); changes.getResourcesToAdd().add(m1); changes.getResourcesToAdd().add(m2); changes.getResourcesToAdd().add(wc1); changes.getResourcesToAdd().add(wc2); getInternalServicesContext().getInternalChangeService().changesExecute(changes); changes.getResourcesToAdd().add(website); getInternalServicesContext().getInternalChangeService().changesExecute(changes); website = resourceService.resourceFindByPk(website).get(); changes.getResourcesToAdd().add(application); changes.getLinksToAdd().add(new Tuple3<>(website, LinkTypeConstants.POINTS_TO, application)); getInternalServicesContext().getInternalChangeService().changesExecute(changes);
changes.getResourcesToAdd().add(new Machine(machineName1, m1Ip1)); changes.getResourcesToAdd().add(new Machine(machineName2, m2Ip1)); getInternalServicesContext().getInternalChangeService().changesExecute(changes);
Machine m2 = new Machine("m2.example.com", "199.141.1.201"); ChangesContext changes = new ChangesContext(); changes.getResourcesToAdd().add(m1); changes.getResourcesToAdd().add(m2); getInternalServicesContext().getInternalChangeService().changesExecute(changes); changes.getResourcesToAdd().add(dp); getInternalServicesContext().getInternalChangeService().changesExecute(changes);
changes.getResourcesToAdd().add(machine); getInternalServicesContext().getInternalChangeService().changesExecute(changes);
c1.setThumbprint("my_thumb"); ChangesContext changes = new ChangesContext(); changes.getResourcesToAdd().add(c1); getInternalServicesContext().getInternalChangeService().changesExecute(changes); c1 = resourceService.resourceFindByPk(c1).get();
changes.getResourcesToAdd().add(new Machine(machineName1)); changes.getResourcesToAdd().add(new Machine(machineName2, m2Ip1)); getInternalServicesContext().getInternalChangeService().changesExecute(changes);