@Override protected void commonHandlerExecute(CommonServicesContext services, ChangesContext changes, CommonMethodUpdateEventHandlerContext<Website> context) { context.getManagedResourceTypes().add(DnsPointer.class); context.getManagedResourceTypes().add(WebsiteCertificate.class); IPResourceService resourceService = services.getResourceService(); Website resource = context.getResource(); // Create and manage : DnsPointer (attach Machines from the Application) List<Machine> installOnMachines = resourceService.linkFindAllByFromResourceAndLinkTypeAndToResourceClass(resource, LinkTypeConstants.INSTALLED_ON, Machine.class); for (String domainName : resource.getDomainNames()) { DnsPointer dnsPointer = new DnsPointer(domainName); dnsPointer = retrieveOrCreateResource(resourceService, changes, dnsPointer, DnsPointer.class); updateLinksOnResource(services, changes, dnsPointer, LinkTypeConstants.POINTS_TO, Machine.class, installOnMachines.stream().collect(Collectors.toList())); context.getManagedResources().add(dnsPointer); } }
@Override protected void commonHandlerExecute(CommonServicesContext services, ChangesContext changes, CommonMethodUpdateEventHandlerContext<Website> context) { context.getManagedResourceTypes().add(DnsPointer.class); context.getManagedResourceTypes().add(WebsiteCertificate.class); IPResourceService resourceService = services.getResourceService(); Website resource = context.getResource(); // Create and manage : DnsPointer (attach Machines from the Application) List<Machine> installOnMachines = resourceService.linkFindAllByFromResourceAndLinkTypeAndToResourceClass(resource, LinkTypeConstants.INSTALLED_ON, Machine.class); for (String domainName : resource.getDomainNames()) { DnsPointer dnsPointer = new DnsPointer(domainName); dnsPointer = retrieveOrCreateResource(resourceService, changes, dnsPointer, DnsPointer.class); updateLinksOnResource(services, changes, dnsPointer, LinkTypeConstants.POINTS_TO, Machine.class, installOnMachines.stream().collect(Collectors.toList())); context.getManagedResources().add(dnsPointer); } }
website.getDomainNames().forEach(hostname -> { HaProxyConfigPortHttpService config = new HaProxyConfigPortHttpService(); for (Tuple2<String, Integer> endpointHostPort : endpointHostPorts) { applicationDefinition.addPortRedirect(localPort, IPApplicationDefinitionPortRedirect.LOCAL_MACHINE, installedLocallyApplicationName, website.getApplicationEndpoint()); configHttp.addService(website.getDomainNames(), endpointHostPorts.toArray(new Tuple2[endpointHostPorts.size()]));
private FinalStateManagedResource createWebsite(String protocol, FinalStateManagedResourcesUpdateEventHandlerContext<UrlRedirection> context, IPResourceService resourceService, String domainName, List<Machine> machines) { Website website = new Website(protocol + " Redirection of " + domainName); FinalStateManagedResource websiteFinalResource = new FinalStateManagedResource(); websiteFinalResource.setManagedResource(website); context.addManagedResources(websiteFinalResource); website.getDomainNames().add(domainName); website.setHttps("HTTPS".equals(protocol)); websiteFinalResource.addManagedLinksToType(LinkTypeConstants.POINTS_TO, LinkTypeConstants.INSTALLED_ON, LinkTypeConstants.USES); machines.forEach(machine -> { // Machine websiteFinalResource.addLinkTo(LinkTypeConstants.INSTALLED_ON, machine); // Applications String applicationName = "infra_url_redirection_" + protocol.toLowerCase() + "-" + machine.getName().replaceAll("\\.", "_"); logger.info("Getting application {}", applicationName); Optional<Application> application = resourceService.resourceFind(resourceService.createResourceQuery(Application.class) // .propertyEquals(Application.PROPERTY_NAME, applicationName) // ); if (!application.isPresent()) { logger.info("Application {} does not exist for now. Skipping", applicationName); return; } websiteFinalResource.addLinkTo(LinkTypeConstants.POINTS_TO, application.get()); }); return websiteFinalResource; }
website.getDomainNames().forEach(hostname -> { HaProxyConfigPortHttpService config = new HaProxyConfigPortHttpService(); for (HaProxyConfigEndpoint endpoint : endpoints) { applicationDefinition.addPortRedirect(localPort, IPApplicationDefinitionPortRedirect.LOCAL_MACHINE, installedLocallyApplicationName, website.getApplicationEndpoint()); configHttp.addService(website.getDomainNames(), endpoints.toArray(new HaProxyConfigEndpoint[endpoints.size()]));
certContent.append("\n"); for (String domainName : website.getDomainNames()) { logger.debug("[{}] Installing certificate for {}", machineName, domainName); assetsBundle.addAssetContent("/certs/" + domainName + ".pem", certContent.toString());
certContent.append("\n"); for (String domainName : website.getDomainNames()) { logger.debug("[{}] Installing certificate for {}", machineName, domainName); assetsBundle.addAssetContent("/certs/" + domainName + ".pem", certContent.toString());
loginWebsite.getDomainNames().add(infraConfig.getLoginDomainName()); loginWebsite.setHttps(loginIsHttps); uiWebsite.getDomainNames().add(infraConfig.getUiDomainName()); uiWebsite.setHttps(uiIsHttps);
loginWebsite.getDomainNames().add(infraConfig.getLoginDomainName()); loginWebsite.setHttps(loginIsHttps); uiWebsite.getDomainNames().add(infraConfig.getUiDomainName()); uiWebsite.setHttps(uiIsHttps);
website.getDomainNames().add("d1.example.com"); changes.resourceAdd(website); getInternalServicesContext().getInternalChangeService().changesExecute(changes); website.getDomainNames().clear(); website.setName("d2.example.com"); website.getDomainNames().add("d2.example.com"); changes.resourceUpdate(website); getInternalServicesContext().getInternalChangeService().changesExecute(changes); website.getDomainNames().clear(); website.setName("d3.example.com"); website.getDomainNames().add("d3.example.com"); changes.resourceUpdate(website.getInternalId(), website); getInternalServicesContext().getInternalChangeService().changesExecute(changes);