@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 public IPPluginDefinitionV1 getIPPluginDefinition() { IPPluginDefinitionV1 pluginDefinitionV1 = new IPPluginDefinitionV1("Foilen", "Website", "To manage websites", "1.0.0"); pluginDefinitionV1.addCustomResource(Website.class, Website.RESOURCE_TYPE, // Arrays.asList( // Website.PROPERTY_NAME // ), // Arrays.asList( // Website.PROPERTY_NAME, // Website.PROPERTY_DOMAIN_NAMES // )); pluginDefinitionV1.addTranslations("/com/foilen/infra/resource/website/messages"); pluginDefinitionV1.addResourceEditor(new WebsiteEditor(), WebsiteEditor.EDITOR_NAME); pluginDefinitionV1.addUpdateHandler(new MachineHaProxyUpdateHandler()); pluginDefinitionV1.addUpdateHandler(new WebsiteUpdateHandler()); return pluginDefinitionV1; }
@Override public IPPluginDefinitionV1 getIPPluginDefinition() { String version = "N/A"; try { version = ResourceTools.getResourceAsString("/foilen-infra-plugins-core.txt"); } catch (Exception e) { } IPPluginDefinitionV1 pluginDefinitionV1 = new IPPluginDefinitionV1("Foilen", "Website", "To manage websites", version); pluginDefinitionV1.addCustomResource(Website.class, Website.RESOURCE_TYPE, // Arrays.asList( // Website.PROPERTY_NAME // ), // Arrays.asList( // Website.PROPERTY_NAME, // Website.PROPERTY_DOMAIN_NAMES // )); pluginDefinitionV1.addTranslations("/com/foilen/infra/resource/website/messages"); pluginDefinitionV1.addResourceEditor(new WebsiteEditor(), WebsiteEditor.EDITOR_NAME); pluginDefinitionV1.addUpdateHandler(new MachineHaProxyUpdateHandler()); pluginDefinitionV1.addUpdateHandler(new WebsiteUpdateHandler()); return pluginDefinitionV1; }
@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); } }