Brooklyn

brooklyn.entity.proxy.nginx
[Java] Class NginxControllerImpl

java.lang.Object
  brooklyn.entity.basic.AbstractEntity
      brooklyn.entity.basic.SoftwareProcessImpl
          brooklyn.entity.proxy.AbstractControllerImpl
              brooklyn.entity.proxy.nginx.NginxControllerImpl
All Implemented Interfaces:
NginxController

public class NginxControllerImpl
extends AbstractControllerImpl

An entity that represents an Nginx proxy (e.g. for routing requests to servers in a cluster).

The default driver *builds* nginx from source (because binaries are not reliably available, esp not with sticky sessions). This requires gcc and other build tools installed. The code attempts to install them but inevitably this entity may be more finicky about the OS/image where it runs than others.

Paritcularly on OS X we require Xcode and command-line gcc installed and on the path.

See http for useful info/examples of configuring nginx.

https configuration is supported, with the certificates providable on a per-UrlMapping basis or a global basis. (not supported to define in both places.) per-Url is useful if different certificates are used for different server names, or different ports if that is supported. see more info on Ssl in ProxySslConfig.


Field Summary
 
Fields inherited from class AbstractControllerImpl
isActive, serverPoolAddresses, serverPoolMemberTrackerPolicy, serverPoolTargets, updateNeeded
 
Fields inherited from class SoftwareProcessImpl
connectedSensors
 
Fields inherited from class AbstractEntity
EFFECTOR_ADDED, EFFECTOR_CHANGED, EFFECTOR_REMOVED, LOG, POLICY_ADDED, POLICY_REMOVED, SENSOR_ADDED, SENSOR_REMOVED, _subscriptionTracker, managementSupport, tempWorkings
 
Constructor Summary
NginxControllerImpl()

NginxControllerImpl(Entity parent)

NginxControllerImpl(java.util.Map properties)

NginxControllerImpl(java.util.Map properties, Entity parent)

 
Method Summary
boolean appendSslConfig(java.lang.String id, java.lang.StringBuilder out, java.lang.String prefix, ProxySslConfig ssl, boolean sslBlock, boolean certificateBlock)

void connectSensors()

protected void disconnectSensors()

void doExtraConfigurationDuringStart()

protected void doStop()

protected java.lang.Iterable findUrlMappings()

protected java.lang.String getCodeFor404()

protected java.lang.String getCodeForServerConfig()

java.lang.String getConfigFile()

java.lang.String getCurrentConfiguration()

java.lang.Class getDriverInterface()

java.lang.String getShortName()

protected void installSslKeys(java.lang.String id, ProxySslConfig ssl)

boolean isSticky()

protected void reconfigureService()

void reload()

 
Methods inherited from class AbstractControllerImpl
addServerPoolMember, belongsInServerPool, bind, configure, connectSensors, getAddressOfEntity, getDomain, getHostnameSensor, getPort, getPortNumberSensor, getProtocol, getRebindSupport, getRequiredOpenPorts, getUrl, inferProtocol, inferUrl, inferUrl, init, isActive, onManagementNoLongerMaster, onServerPoolMemberChanged, postRebind, postStart, preStart, preStop, reconfigureService, reload, removeServerPoolMember, resetServerPoolMemberTrackerPolicy, update, updateAsync, updateNeeded
 
Methods inherited from class SoftwareProcessImpl
callRebindHooks, callStartHooks, checkModifiable, connectSensors, connectServiceUpIsRunning, disconnectSensors, disconnectServiceUpIsRunning, doInitDriver, doRestart, doStart, doStop, getDriver, getLocalHostname, getMachineOrNull, getProvisioningFlags, getProvisioningLocation, getRequiredOpenPorts, newDriver, obtainProvisioningFlags, onManagementStarted, onManagementStarting, postDriverStart, postRebind, postStart, preStart, preStop, rebind, restart, setProvisioningLocation, start, startInLocation, startInLocation, startInLocation, startInLocation, stop, waitForEntityStart, waitForServiceUp, waitForServiceUp, waitForServiceUp, waitForServiceUp
 
Methods inherited from class AbstractEntity
addChild, addChild, addEnricher, addGroup, addLocations, addPolicy, clearLocations, clearParent, configure, configure, configure, configure, configure, configure, destroy, emit, emitInternal, equals, finalize, firstLocation, getAllAttributes, getAllConfig, getApplication, getApplicationId, getAttribute, getAttributeByNameParts, getChildren, getConfig, getConfig, getConfig, getConfig, getConfigMap, getCreationTime, getDisplayName, getEffector, getEnrichers, getEntityManager, getEntityType, getEntityTypeName, getExecutionContext, getGroups, getIconUrl, getId, getLocations, getManagementContext, getManagementSupport, getMutableEntityType, getParent, getPolicies, getProxy, getProxyIfAvailable, getRebindSupport, getSubscriptionContext, getSubscriptionTracker, hashCode, init, invalidateReferences, invoke, invoke, invoke, isLegacyConstruction, onManagementBecomingMaster, onManagementNoLongerMaster, onManagementStarted, onManagementStarting, onManagementStopped, refreshInheritedConfig, removeAllEnrichers, removeAllPolicies, removeAttribute, removeChild, removeEnricher, removeLocations, removePolicy, setApplication, setAttribute, setAttribute, setAttributeWithoutPublishing, setConfig, setConfig, setConfig, setConfig, setConfig, setConfig, setConfigEvenIfOwned, setConfigEvenIfOwned, setConfigIfValNonNull, setConfigIfValNonNull, setDisplayName, setManagementContext, setParent, setProxy, subscribe, subscribeToChildren, subscribeToMembers, toMetadataRecord, toString, toStringHelper, unsubscribe, unsubscribe
 

Constructor Detail

NginxControllerImpl

public NginxControllerImpl()


NginxControllerImpl

public NginxControllerImpl(Entity parent)


NginxControllerImpl

public NginxControllerImpl(java.util.Map properties)


NginxControllerImpl

public NginxControllerImpl(java.util.Map properties, Entity parent)


 
Method Detail

appendSslConfig

public boolean appendSslConfig(java.lang.String id, java.lang.StringBuilder out, java.lang.String prefix, ProxySslConfig ssl, boolean sslBlock, boolean certificateBlock)


connectSensors

@Override
public void connectSensors()


disconnectSensors

return NginxDriver.class;
protected void disconnectSensors()


doExtraConfigurationDuringStart

public void doExtraConfigurationDuringStart()


doStop

protected void doStop()


findUrlMappings

protected java.lang.Iterable findUrlMappings()


getCodeFor404

protected java.lang.String getCodeFor404()


getCodeForServerConfig

protected java.lang.String getCodeForServerConfig()


getConfigFile

public java.lang.String getConfigFile()


getCurrentConfiguration

if (cfg==null) return;
public java.lang.String getCurrentConfiguration()


getDriverInterface

@Effector(description="Gets the current server configuration (by brooklyn recalculating what the config should be); does not affect the server")
public java.lang.Class getDriverInterface()


getShortName

public java.lang.String getShortName()


installSslKeys

protected void installSslKeys(java.lang.String id, ProxySslConfig ssl)


isSticky

public boolean isSticky()


reconfigureService

NginxSshDriver driver = (NginxSshDriver)getDriver();
protected void reconfigureService()


reload

@Override
public void reload()


 

Brooklyn Multi-Cloud Application Management Platform
brooklyncentral.github.com. Apache License. © 2012.