Search in sources :

Example 1 with PlatformLayerFirewallEntry

use of org.platformlayer.service.network.ops.PlatformLayerFirewallEntry in project platformlayer by platformlayer.

the class WordpressServiceController method addChildren.

@Override
protected void addChildren() throws OpsException {
    WordpressService model = OpsContext.get().getInstance(WordpressService.class);
    InstanceBuilder instance = InstanceBuilder.build(model.dnsName, this, model.getTags());
    // instance.minimumMemoryMb = 2048;
    addChild(instance);
    instance.addChild(PackageDependency.build("wordpress"));
    instance.addChild(ApacheBootstrap.build());
    {
        PlatformLayerFirewallEntry net = injected(PlatformLayerFirewallEntry.class);
        net.destItem = model.databaseItem;
        net.port = 3306;
        net.uniqueId = getFirewallUniqueId();
        PlatformLayerKey sourceKey = model.getKey();
        net.sourceItemKey = sourceKey;
        instance.addChild(net);
    }
    WordpressTemplateData templateData = Injection.getInstance(WordpressTemplateData.class);
    MysqlConnection mysql = instance.addChild(MysqlConnection.build(model.databaseItem));
    mysql.password = model.databasePassword;
    {
        MysqlDatabase db = injected(MysqlDatabase.class);
        db.databaseName = templateData.getDatabaseName();
        mysql.addChild(db);
    }
    {
        MysqlUser db = injected(MysqlUser.class);
        db.databaseName = templateData.getDatabaseName();
        db.databaseUser = templateData.getDatabaseUser();
        db.databasePassword = templateData.getDatabasePassword();
        mysql.addChild(db);
    }
    instance.addChild(WordpressBootstrap.build());
    instance.addChild(WordpressAdminUser.build());
    instance.addChild(WordpressApacheSite.build());
    // instance.addChild(CollectdCollector.build());
    // TODO: How do we bring up wordpress securely??
    // We don't have the tables until we run install.php
    // Maybe we could POST to the install.php form
    {
        PublicEndpoint endpoint = injected(PublicEndpoint.class);
        // endpoint.network = null;
        endpoint.publicPort = 80;
        endpoint.backendPort = 80;
        // We expect nginx to front-end us, so we don't put the dnsName
        // endpoint.dnsName = model.dnsName;
        endpoint.tagItem = model.getKey();
        endpoint.parentItem = model.getKey();
        instance.addChild(endpoint);
    }
    instance.addChild(ManagedService.build("apache2"));
}
Also used : PlatformLayerFirewallEntry(org.platformlayer.service.network.ops.PlatformLayerFirewallEntry) PlatformLayerKey(org.platformlayer.core.model.PlatformLayerKey) PublicEndpoint(org.platformlayer.ops.networks.PublicEndpoint) WordpressService(org.platformlayer.service.wordpress.model.WordpressService) InstanceBuilder(org.platformlayer.ops.instances.InstanceBuilder)

Aggregations

PlatformLayerKey (org.platformlayer.core.model.PlatformLayerKey)1 InstanceBuilder (org.platformlayer.ops.instances.InstanceBuilder)1 PublicEndpoint (org.platformlayer.ops.networks.PublicEndpoint)1 PlatformLayerFirewallEntry (org.platformlayer.service.network.ops.PlatformLayerFirewallEntry)1 WordpressService (org.platformlayer.service.wordpress.model.WordpressService)1