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
0bb405fc
Commit
0bb405fc
authored
Nov 09, 2017
by
Julien Muchembled
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove unused lockfile recipe
parent
6b3dae5f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1 addition
and
92 deletions
+1
-92
setup.py
setup.py
+1
-2
slapos/recipe/lockfile.py
slapos/recipe/lockfile.py
+0
-90
No files found.
setup.py
View file @
0bb405fc
...
...
@@ -59,7 +59,7 @@ setup(name=name,
'hexagonit.recipe.download'
,
'netaddr'
,
# to manipulate on IP addresses
'setuptools'
,
# namespaces
'inotifyx'
,
#
to watch filesystem changes (used in lockfile)
'inotifyx'
,
#
XXX use pyinotify instead
'lock_file'
,
#another lockfile implementation for multiprocess
'slapos.core'
,
# uses internally
'zc.buildout'
,
# plays with buildout
...
...
@@ -133,7 +133,6 @@ setup(name=name,
'lamp.static = slapos.recipe.lamp:Static'
,
'libcloud = slapos.recipe.libcloud:Recipe'
,
'libcloudrequest = slapos.recipe.libcloudrequest:Recipe'
,
'lockfile = slapos.recipe.lockfile:Recipe'
,
'logrotate = slapos.recipe.logrotate:Recipe'
,
'logrotate.d = slapos.recipe.logrotate:Part'
,
'memcached = slapos.recipe.memcached:Recipe'
,
...
...
slapos/recipe/lockfile.py
deleted
100644 → 0
View file @
6b3dae5f
##############################################################################
#
# 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
os
import
sys
import
subprocess
import
inotifyx
from
slapos.recipe.librecipe
import
GenericBaseRecipe
class
LockFile
(
object
):
class
LockException
(
Exception
):
pass
def
__init__
(
self
,
filename
,
wait
=
True
,
exit
=
False
):
self
.
filename
=
filename
if
wait
:
self
.
callback
=
lambda
:
self
.
waitDeletion
()
elif
not
exit
:
self
.
callback
=
lambda
:
self
.
raiseException
()
else
:
self
.
callback
=
lambda
:
sys
.
exit
(
1
)
def
raiseException
(
self
):
raise
LockFile
.
LockException
(
"Not able to lock the file"
)
def
waitDeletion
(
self
):
inotify_fd
=
inotifyx
.
init
()
try
:
inotifyx
.
add_watch
(
inotify_fd
,
self
.
filename
,
inotifyx
.
IN_DELETE
)
inotifyx
.
get_events
(
inotify_fd
)
except
IOError
:
# add_watch failed
pass
finally
:
os
.
close
(
inotify_fd
)
self
.
__enter__
()
def
__enter__
(
self
):
try
:
# Atomic file acquisition
self
.
_fd
=
os
.
open
(
self
.
filename
,
os
.
O_CREAT
|
os
.
O_EXCL
)
except
OSError
:
self
.
callback
()
def
__exit__
(
self
,
exc_type
,
exc_value
,
traceback
):
os
.
close
(
self
.
_fd
)
os
.
unlink
(
self
.
filename
)
def
locked_run
(
args
):
with
LockFile
(
args
[
'filename'
],
wait
=
args
[
'wait'
],
exit
=
True
):
subprocess
.
check_call
([
args
[
'binary'
]])
class
Recipe
(
GenericBaseRecipe
):
def
install
(
self
):
wrapper
=
self
.
createPythonScript
(
self
.
options
[
'wrapper'
],
__name__
+
'.locked_run'
,
dict
(
filename
=
self
.
options
[
'lock-file'
],
wait
=
self
.
optionIsTrue
(
'wait'
,
False
),
binary
=
self
.
options
[
'binary'
],
)
)
return
[
wrapper
]
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