Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kwabena Antwi-Boasiako
slapos
Commits
b26c2a98
Commit
b26c2a98
authored
Jan 19, 2012
by
Antoine Catton
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding agent recipe suite.
parent
3d1dfe22
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
174 additions
and
0 deletions
+174
-0
setup.py
setup.py
+3
-0
slapos/recipe/agent/__init__.py
slapos/recipe/agent/__init__.py
+78
-0
slapos/recipe/agent/notifier.py
slapos/recipe/agent/notifier.py
+51
-0
slapos/recipe/agent/template/config.in
slapos/recipe/agent/template/config.in
+4
-0
slapos/recipe/agent/trigger.py
slapos/recipe/agent/trigger.py
+38
-0
No files found.
setup.py
View file @
b26c2a98
...
...
@@ -40,6 +40,9 @@ setup(name=name,
zip_safe
=
True
,
entry_points
=
{
'zc.buildout'
:
[
'agent = slapos.recipe.agent:Recipe'
,
'agent.trigger = slapos.recipe.agent.trigger:Recipe'
,
'agent.notifier = slapos.recipe.agent.notifier:Recipe'
,
'apachephp = slapos.recipe.apachephp:Recipe'
,
'apacheproxy = slapos.recipe.apacheproxy:Recipe'
,
'apache.zope.backend = slapos.recipe.apache_zope_backend:Recipe'
,
...
...
slapos/recipe/agent/__init__.py
0 → 100644
View file @
b26c2a98
##############################################################################
#
# Copyright (c) 2010 Vifib SARL and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import
multiprocessing
from
slapos.recipe.librecipe
import
GenericBaseRecipe
class
Recipe
(
GenericBaseRecipe
):
def
install
(
self
):
path_list
=
[]
# Get uniq peers
peers_list
=
[
p
for
p
in
self
.
options
[
'peers'
].
split
(
'
\
n
'
)
if
p
]
peers_list
=
list
(
set
(
peers_list
))
config_file
=
self
.
createFile
(
self
.
options
[
'config-file'
],
self
.
substituteTemplate
(
self
.
getTemplateFilename
(
'config.in'
),
{
'peers'
:
peers_list
,
'database'
:
self
.
options
[
'database'
],
'equeue_socket'
:
self
.
options
[
'equeue-socket'
],
'callbacks_directory'
:
self
.
options
[
'callbacks-directory'
],
'partition_id'
:
self
.
options
[
'partition-id'
],
'computer_id'
:
self
.
options
[
'computer-id'
],
}
),
)
path_list
.
append
(
config_file
)
bind_address
=
self
.
options
[
'host'
]
if
':'
in
bind_address
:
bind_address
=
'[%s]'
%
bind_address
bind_address
=
'%s:%s'
%
(
bind_address
,
self
.
options
[
'port'
])
wrapper
=
self
.
createPythonScript
(
self
.
options
[
'wrapper'
],
'slapos.recipe.librecipe.execute.executee'
,
[
# Command line
[
self
.
options
[
'gunicorn'
],
'-b'
,
bind_address
,
'-w'
,
'%d'
%
(
multiprocessing
.
cpu_count
()
*
2
+
1
),
'-k'
,
'gevent'
,
'slapos.wordpress.ia.http:app'
,
],
# Environment
dict
(
CONFIG
=
config_file
),
]
)
path_list
.
append
(
wrapper
)
return
path_list
slapos/recipe/agent/notifier.py
0 → 100644
View file @
b26c2a98
##############################################################################
#
# Copyright (c) 2010 Vifib SARL and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import
shlex
from
slapos.recipe.librecipe
import
GenericBaseRecipe
class
Recipe
(
GenericBaseRecipe
):
def
install
(
self
):
command_line
=
[
self
.
options
[
'notifier-binary'
],
'--write'
,
self
.
options
[
'write-url'
],
]
for
url
in
self
.
options
.
get
(
'notify-url'
,
''
).
split
():
if
url
:
# Ignore empty values
command_line
.
extend
([
'--notify'
,
url
])
command_line
.
extend
([
'-t'
,
self
.
options
.
get
(
'title'
,
'Untitled'
)])
command_line
.
append
(
'--'
)
command_line
.
extend
(
shlex
.
split
(
self
.
options
[
'command-line'
]))
return
[
self
.
createPythonScript
(
self
.
options
[
'wrapper'
],
'slapos.recipe.librecipe.execute.execute'
,
command_line
,
)]
slapos/recipe/agent/template/config.in
0 → 100644
View file @
b26c2a98
PEERS = %(peers)r
DATABASE_PATH = %(database)r
EQUEUE_SOCKET = %(equeue_socket)r
CALLBACKS_DIRECTORY = %(callbacks_directory)r
slapos/recipe/agent/trigger.py
0 → 100644
View file @
b26c2a98
##############################################################################
#
# Copyright (c) 2010 Vifib SARL and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from
hashlib
import
sha512
import
os
from
slapos.recipe.librecipe
import
GenericBaseRecipe
class
Recipe
(
GenericBaseRecipe
):
def
install
(
self
):
trigger_filename
=
os
.
path
.
join
(
self
.
options
[
'callbacks-directory'
],
sha512
(
self
.
options
[
'on-feed'
]).
hexdigest
())
with
open
(
trigger_filename
,
'w'
)
as
trigger_file
:
trigger_file
.
write
(
self
.
options
[
'executable'
])
return
[
trigger_filename
]
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment