mirror of
https://github.com/amark/gun.git
synced 2025-06-06 14:16:44 +00:00
Merge remote-tracking branch 'openshift/master'
make openshift work
This commit is contained in:
commit
dd127f48f6
3
.openshift/action_hooks/README.md
Normal file
3
.openshift/action_hooks/README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
For information about action hooks supported by OpenShift, consult the documentation:
|
||||||
|
|
||||||
|
http://openshift.github.io/documentation/oo_user_guide.html#the-openshift-directory
|
23
.openshift/cron/README.cron
Normal file
23
.openshift/cron/README.cron
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
Run scripts or jobs on a periodic basis
|
||||||
|
=======================================
|
||||||
|
Any scripts or jobs added to the minutely, hourly, daily, weekly or monthly
|
||||||
|
directories will be run on a scheduled basis (frequency is as indicated by the
|
||||||
|
name of the directory) using run-parts.
|
||||||
|
|
||||||
|
run-parts ignores any files that are hidden or dotfiles (.*) or backup
|
||||||
|
files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved}
|
||||||
|
|
||||||
|
The presence of two specially named files jobs.deny and jobs.allow controls
|
||||||
|
how run-parts executes your scripts/jobs.
|
||||||
|
jobs.deny ===> Prevents specific scripts or jobs from being executed.
|
||||||
|
jobs.allow ===> Only execute the named scripts or jobs (all other/non-named
|
||||||
|
scripts that exist in this directory are ignored).
|
||||||
|
|
||||||
|
The principles of jobs.deny and jobs.allow are the same as those of cron.deny
|
||||||
|
and cron.allow and are described in detail at:
|
||||||
|
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-Automating_System_Tasks.html#s2-autotasks-cron-access
|
||||||
|
|
||||||
|
See: man crontab or above link for more details and see the the weekly/
|
||||||
|
directory for an example.
|
||||||
|
|
||||||
|
PLEASE NOTE: The Cron cartridge must be installed in order to run the configured jobs.
|
0
.openshift/cron/daily/.gitignore
vendored
Normal file
0
.openshift/cron/daily/.gitignore
vendored
Normal file
0
.openshift/cron/hourly/.gitignore
vendored
Normal file
0
.openshift/cron/hourly/.gitignore
vendored
Normal file
0
.openshift/cron/minutely/.gitignore
vendored
Normal file
0
.openshift/cron/minutely/.gitignore
vendored
Normal file
0
.openshift/cron/monthly/.gitignore
vendored
Normal file
0
.openshift/cron/monthly/.gitignore
vendored
Normal file
16
.openshift/cron/weekly/README
Normal file
16
.openshift/cron/weekly/README
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
Run scripts or jobs on a weekly basis
|
||||||
|
=====================================
|
||||||
|
Any scripts or jobs added to this directory will be run on a scheduled basis
|
||||||
|
(weekly) using run-parts.
|
||||||
|
|
||||||
|
run-parts ignores any files that are hidden or dotfiles (.*) or backup
|
||||||
|
files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved} and handles
|
||||||
|
the files named jobs.deny and jobs.allow specially.
|
||||||
|
|
||||||
|
In this specific example, the chronograph script is the only script or job file
|
||||||
|
executed on a weekly basis (due to white-listing it in jobs.allow). And the
|
||||||
|
README and chrono.dat file are ignored either as a result of being black-listed
|
||||||
|
in jobs.deny or because they are NOT white-listed in the jobs.allow file.
|
||||||
|
|
||||||
|
For more details, please see ../README.cron file.
|
||||||
|
|
1
.openshift/cron/weekly/chrono.dat
Normal file
1
.openshift/cron/weekly/chrono.dat
Normal file
@ -0,0 +1 @@
|
|||||||
|
Time And Relative D...n In Execution (Open)Shift!
|
3
.openshift/cron/weekly/chronograph
Executable file
3
.openshift/cron/weekly/chronograph
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "`date`: `cat $(dirname \"$0\")/chrono.dat`"
|
12
.openshift/cron/weekly/jobs.allow
Normal file
12
.openshift/cron/weekly/jobs.allow
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#
|
||||||
|
# Script or job files listed in here (one entry per line) will be
|
||||||
|
# executed on a weekly-basis.
|
||||||
|
#
|
||||||
|
# Example: The chronograph script will be executed weekly but the README
|
||||||
|
# and chrono.dat files in this directory will be ignored.
|
||||||
|
#
|
||||||
|
# The README file is actually ignored due to the entry in the
|
||||||
|
# jobs.deny which is checked before jobs.allow (this file).
|
||||||
|
#
|
||||||
|
chronograph
|
||||||
|
|
7
.openshift/cron/weekly/jobs.deny
Normal file
7
.openshift/cron/weekly/jobs.deny
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#
|
||||||
|
# Any script or job files listed in here (one entry per line) will NOT be
|
||||||
|
# executed (read as ignored by run-parts).
|
||||||
|
#
|
||||||
|
|
||||||
|
README
|
||||||
|
|
0
.openshift/markers/.gitkeep
Normal file
0
.openshift/markers/.gitkeep
Normal file
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
The OpenShift `nodejs` cartridge documentation can be found at:
|
||||||
|
|
||||||
|
https://github.com/openshift/origin-server/tree/master/cartridges/openshift-origin-cartridge-nodejs/README.md
|
13
deplist.txt
Normal file
13
deplist.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#
|
||||||
|
# ***************************************************************************
|
||||||
|
#
|
||||||
|
# Note: This file has been deprecated and exists for backward compatibility.
|
||||||
|
# Please use package.json to add dependencies to the Node modules
|
||||||
|
# your application requires.
|
||||||
|
#
|
||||||
|
# ***************************************************************************
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# For a list of globally installed modules - see file: npm_global_module_list.
|
||||||
|
#
|
270
index.html
Normal file
270
index.html
Normal file
File diff suppressed because one or more lines are too long
0
node_modules/.gitkeep
generated
vendored
Normal file
0
node_modules/.gitkeep
generated
vendored
Normal file
159
server.js
Executable file
159
server.js
Executable file
@ -0,0 +1,159 @@
|
|||||||
|
#!/bin/env node
|
||||||
|
// OpenShift sample Node application
|
||||||
|
var express = require('express');
|
||||||
|
var fs = require('fs');
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define the sample application.
|
||||||
|
*/
|
||||||
|
var SampleApp = function() {
|
||||||
|
|
||||||
|
// Scope.
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
|
||||||
|
/* ================================================================ */
|
||||||
|
/* Helper functions. */
|
||||||
|
/* ================================================================ */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set up server IP address and port # using env variables/defaults.
|
||||||
|
*/
|
||||||
|
self.setupVariables = function() {
|
||||||
|
// Set the environment variables we need.
|
||||||
|
self.ipaddress = process.env.OPENSHIFT_NODEJS_IP;
|
||||||
|
self.port = process.env.OPENSHIFT_NODEJS_PORT || 8080;
|
||||||
|
|
||||||
|
if (typeof self.ipaddress === "undefined") {
|
||||||
|
// Log errors on OpenShift but continue w/ 127.0.0.1 - this
|
||||||
|
// allows us to run/test the app locally.
|
||||||
|
console.warn('No OPENSHIFT_NODEJS_IP var, using 127.0.0.1');
|
||||||
|
self.ipaddress = "127.0.0.1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Populate the cache.
|
||||||
|
*/
|
||||||
|
self.populateCache = function() {
|
||||||
|
if (typeof self.zcache === "undefined") {
|
||||||
|
self.zcache = { 'index.html': '' };
|
||||||
|
}
|
||||||
|
|
||||||
|
// Local cache for static content.
|
||||||
|
self.zcache['index.html'] = fs.readFileSync('./index.html');
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve entry (content) from cache.
|
||||||
|
* @param {string} key Key identifying content to retrieve from cache.
|
||||||
|
*/
|
||||||
|
self.cache_get = function(key) { return self.zcache[key]; };
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* terminator === the termination handler
|
||||||
|
* Terminate server on receipt of the specified signal.
|
||||||
|
* @param {string} sig Signal to terminate on.
|
||||||
|
*/
|
||||||
|
self.terminator = function(sig){
|
||||||
|
if (typeof sig === "string") {
|
||||||
|
console.log('%s: Received %s - terminating sample app ...',
|
||||||
|
Date(Date.now()), sig);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
console.log('%s: Node server stopped.', Date(Date.now()) );
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setup termination handlers (for exit and a list of signals).
|
||||||
|
*/
|
||||||
|
self.setupTerminationHandlers = function(){
|
||||||
|
// Process on exit and signals.
|
||||||
|
process.on('exit', function() { self.terminator(); });
|
||||||
|
|
||||||
|
// Removed 'SIGPIPE' from the list - bugz 852598.
|
||||||
|
['SIGHUP', 'SIGINT', 'SIGQUIT', 'SIGILL', 'SIGTRAP', 'SIGABRT',
|
||||||
|
'SIGBUS', 'SIGFPE', 'SIGUSR1', 'SIGSEGV', 'SIGUSR2', 'SIGTERM'
|
||||||
|
].forEach(function(element, index, array) {
|
||||||
|
process.on(element, function() { self.terminator(element); });
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* ================================================================ */
|
||||||
|
/* App server functions (main app logic here). */
|
||||||
|
/* ================================================================ */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the routing table entries + handlers for the application.
|
||||||
|
*/
|
||||||
|
self.createRoutes = function() {
|
||||||
|
self.routes = { };
|
||||||
|
|
||||||
|
self.routes['/asciimo'] = function(req, res) {
|
||||||
|
var link = "http://i.imgur.com/kmbjB.png";
|
||||||
|
res.send("<html><body><img src='" + link + "'></body></html>");
|
||||||
|
};
|
||||||
|
|
||||||
|
self.routes['/'] = function(req, res) {
|
||||||
|
res.setHeader('Content-Type', 'text/html');
|
||||||
|
res.send(self.cache_get('index.html') );
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize the server (express) and create the routes and register
|
||||||
|
* the handlers.
|
||||||
|
*/
|
||||||
|
self.initializeServer = function() {
|
||||||
|
self.createRoutes();
|
||||||
|
self.app = express.createServer();
|
||||||
|
|
||||||
|
// Add handlers for the app (from the routes).
|
||||||
|
for (var r in self.routes) {
|
||||||
|
self.app.get(r, self.routes[r]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes the sample application.
|
||||||
|
*/
|
||||||
|
self.initialize = function() {
|
||||||
|
self.setupVariables();
|
||||||
|
self.populateCache();
|
||||||
|
self.setupTerminationHandlers();
|
||||||
|
|
||||||
|
// Create the express server and routes.
|
||||||
|
self.initializeServer();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Start the server (starts up the sample application).
|
||||||
|
*/
|
||||||
|
self.start = function() {
|
||||||
|
// Start the app on the specific interface (and port).
|
||||||
|
self.app.listen(self.port, self.ipaddress, function() {
|
||||||
|
console.log('%s: Node server started on %s:%d ...',
|
||||||
|
Date(Date.now() ), self.ipaddress, self.port);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
}; /* Sample Application. */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* main(): Main code.
|
||||||
|
*/
|
||||||
|
var zapp = new SampleApp();
|
||||||
|
zapp.initialize();
|
||||||
|
zapp.start();
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user