private <R extends IPResource> void assertLinkFromAllNames(Class<R> resourceClass, String linkType, IPResource resourceTo, String... expectedNames) { IPResourceService resourceService = getCommonServicesContext().getResourceService(); List<String> actualNames = resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(resourceClass, linkType, resourceTo).stream() // .map(it -> it.getResourceName()) // .sorted() // .collect(Collectors.toList()); List<String> eNames = Arrays.asList(expectedNames).stream() // .sorted() // .collect(Collectors.toList()); Assert.assertEquals(eNames, actualNames); }
private void refreshInfraConfig(CommonServicesContext services, ChangesContext changes, InfraConfigPlugin plugin, List<Tuple3<IPResource, String, IPResource>> links) { // Get the list of InfraConfig to update Set<Long> knownInfraConfigs = new HashSet<>(); List<InfraConfig> infraConfigs = new ArrayList<>(); if (links == null) { services.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(InfraConfig.class, "UI_USES", plugin).stream() // .forEach(ic -> { if (knownInfraConfigs.add(ic.getInternalId())) { infraConfigs.add(ic); } }); } else { links.stream() // .filter(link -> link.getA() instanceof InfraConfig) // .map(link -> (InfraConfig) link.getA()) // .forEach(ic -> { if (knownInfraConfigs.add(ic.getInternalId())) { infraConfigs.add(ic); } }); } // Ask for refresh infraConfigs.forEach(ic -> { logger.info("Mark {} for refresh", ic.getResourceName()); changes.resourceRefresh(ic); }); }
List<UrlRedirection> urlRedirections = resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(UrlRedirection.class, LinkTypeConstants.INSTALLED_ON, machine); logger.info("Machine {} has {} Url Redirections", machineName, urlRedirections.size()); if (urlRedirections.isEmpty()) {
currentFromResources = Collections.emptyList(); } else { currentFromResources = resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(resourceFromType, linkType, toResource);
@Override protected void commonHandlerExecute(CommonServicesContext services, ChangesContext changes, CommonMethodUpdateEventHandlerContext<EmailDomain> context) { EmailDomain emailDomain = context.getResource(); // Ensure all account names are unique per account and per redirection (can be shared) Set<String> accountNames = new HashSet<>(); services.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(EmailAccount.class, LinkTypeConstants.INSTALLED_ON, emailDomain).forEach(account -> { if (!accountNames.add(account.getAccountName())) { throw new IllegalUpdateException("The email account [" + account.getAccountName() + "@" + emailDomain.getDomainName() + "] exists multiple times"); } }); accountNames.clear(); services.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(EmailRedirection.class, LinkTypeConstants.INSTALLED_ON, emailDomain).forEach(redirection -> { if (!accountNames.add(redirection.getAccountName())) { throw new IllegalUpdateException("The email redirection [" + redirection.getAccountName() + "@" + emailDomain.getDomainName() + "] exists multiple times"); } }); // Ensure only linked to one EmailServer if (services.getResourceService().linkFindAllByFromResourceAndLinkTypeAndToResourceClass(emailDomain, LinkTypeConstants.INSTALLED_ON, EmailServer.class).size() > 1) { throw new IllegalUpdateException("The email domain [" + emailDomain.getDomainName() + "] is installed on more than one Email server"); } }
List<L> currentLinks = servicesCtx.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(fromResourceType, linkType, editedResource); currentLinks = new ArrayList<>(); } else { currentLinks = servicesCtx.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(fromResourceType, linkType, editedResource);
List<L> currentLinks = servicesCtx.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(fromResourceType, linkType, editedResource); currentLinks = new ArrayList<>(); } else { currentLinks = servicesCtx.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(fromResourceType, linkType, editedResource);
}); fieldConfig.setPopulatePageItem(ctx -> { List<R> resources = servicesCtx.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(fromResourceType, linkType, editedResource); if (!resources.isEmpty()) { ((ResourcesFieldPageItem<R>) ctx.getPageItem()).setValues(resources); List<R> currentLinks = servicesCtx.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(fromResourceType, linkType, editedResource); currentLinks = new ArrayList<>(); } else { currentLinks = servicesCtx.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(fromResourceType, linkType, editedResource);
List<Website> websites = resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(Website.class, LinkTypeConstants.INSTALLED_ON, machine); websites.addAll(resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(Website.class, Website.LINK_TYPE_INSTALLED_ON_NO_DNS, machine));
List<Application> applicationsOnMachine = resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(Application.class, LinkTypeConstants.INSTALLED_ON, installedOnMachine); Set<Integer> endpointPorts = new HashSet<>(); for (Application application : applicationsOnMachine) {
List<Application> applicationsOnMachine = resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(Application.class, LinkTypeConstants.INSTALLED_ON, installedOnMachine); Set<Integer> endpointPorts = new HashSet<>(); for (Application application : applicationsOnMachine) {
List<Website> websites = resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(Website.class, LinkTypeConstants.INSTALLED_ON, machine); websites.addAll(resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(Website.class, Website.LINK_TYPE_INSTALLED_ON_NO_DNS, machine));
List<L> resources = servicesCtx.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(resourceType, linkType, editedResource); if (!resources.isEmpty()) { if (resources.size() > 1) {
services.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(MariaDBDatabase.class, LinkTypeConstants.INSTALLED_ON, mariaDBServer).forEach(mariaDBDatabase -> { String databaseName = mariaDBDatabase.getName(); logger.debug("[{}] Has database {}", serverName, databaseName); services.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(MariaDBUser.class, MariaDBUser.LINK_TYPE_ADMIN, mariaDBDatabase).forEach(mariaDBUser -> { logger.debug("[{}] Database {} has user {} as ADMIN", serverName, databaseName, mariaDBUser.getName()); List<String> grants = getGrantsByUserAndDatabase(userConfigByName, mariaDBUser, databaseName); services.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(MariaDBUser.class, MariaDBUser.LINK_TYPE_READ, mariaDBDatabase).forEach(mariaDBUser -> { logger.debug("[{}] Database {} has user {} as READ", serverName, databaseName, mariaDBUser.getName()); List<String> grants = getGrantsByUserAndDatabase(userConfigByName, mariaDBUser, databaseName); services.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(MariaDBUser.class, MariaDBUser.LINK_TYPE_WRITE, mariaDBDatabase).forEach(mariaDBUser -> { logger.debug("[{}] Database {} has user {} as WRITE", serverName, databaseName, mariaDBUser.getName()); List<String> grants = getGrantsByUserAndDatabase(userConfigByName, mariaDBUser, databaseName);
services.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(MariaDBDatabase.class, LinkTypeConstants.INSTALLED_ON, mariaDBServer).forEach(mariaDBDatabase -> { String databaseName = mariaDBDatabase.getName(); logger.debug("[{}] Has database {}", serverName, databaseName); services.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(MariaDBUser.class, MariaDBUser.LINK_TYPE_ADMIN, mariaDBDatabase).forEach(mariaDBUser -> { logger.debug("[{}] Database {} has user {} as ADMIN", serverName, databaseName, mariaDBUser.getName()); List<String> grants = getGrantsByUserAndDatabase(userConfigByName, mariaDBUser, databaseName); services.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(MariaDBUser.class, MariaDBUser.LINK_TYPE_READ, mariaDBDatabase).forEach(mariaDBUser -> { logger.debug("[{}] Database {} has user {} as READ", serverName, databaseName, mariaDBUser.getName()); List<String> grants = getGrantsByUserAndDatabase(userConfigByName, mariaDBUser, databaseName); services.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(MariaDBUser.class, MariaDBUser.LINK_TYPE_WRITE, mariaDBDatabase).forEach(mariaDBUser -> { logger.debug("[{}] Database {} has user {} as WRITE", serverName, databaseName, mariaDBUser.getName()); List<String> grants = getGrantsByUserAndDatabase(userConfigByName, mariaDBUser, databaseName);
List<Website> websitesFrom = resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(Website.class, LinkTypeConstants.POINTS_TO, apachePhp); applicationFinalState.addManagedLinksFromType(LinkTypeConstants.POINTS_TO); websitesFrom.forEach(it -> applicationFinalState.addLinkFrom(it, LinkTypeConstants.POINTS_TO));
}); fieldConfig.setPopulatePageItem(ctx -> { List<R> resources = servicesCtx.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(fromResourceType, linkType, editedResource); if (!resources.isEmpty()) { if (resources.size() > 1) {
emailManagerConfigDatabase.setPassword(mariadbUser.getPassword()); emailManagerConfig.setDatabase(emailManagerConfigDatabase); List<EmailDomain> emailDomains = resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(EmailDomain.class, LinkTypeConstants.INSTALLED_ON, jamesEmailServer); List<Tuple2<String, EmailRelay>> domainAndRelais = new ArrayList<>(); emailDomains.forEach(emailDomain -> { emailManagerConfig.getDomains().add(emailDomain.getDomainName()); resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(EmailAccount.class, LinkTypeConstants.INSTALLED_ON, emailDomain).forEach(emailAccount -> { EmailManagerConfigAccount configAccount = new EmailManagerConfigAccount(); configAccount.setEmail(emailAccount.getAccountName() + "@" + emailDomain.getDomainName()); }); resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(EmailRedirection.class, LinkTypeConstants.INSTALLED_ON, emailDomain).forEach(emailRedirection -> { EmailManagerConfigRedirection configRedirection = new EmailManagerConfigRedirection(); String accountName = emailRedirection.getAccountName();
List<L> resources = servicesCtx.getResourceService().linkFindAllByFromResourceClassAndLinkTypeAndToResource(resourceType, linkType, editedResource); if (!resources.isEmpty()) { pageItem.setValues(resources);
List<Website> websitesFrom = resourceService.linkFindAllByFromResourceClassAndLinkTypeAndToResource(Website.class, LinkTypeConstants.POINTS_TO, composableApplication); CommonResourceLink.syncFromLinks(services, changes, Website.class, LinkTypeConstants.POINTS_TO, application, websitesFrom);