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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boris Kocherov
slapos
Commits
fb52bb07
Commit
fb52bb07
authored
Sep 14, 2012
by
Alain Takoudjou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Resolve boinc update recipe
parent
f5e4f5b8
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
67 additions
and
18 deletions
+67
-18
setup.py
setup.py
+2
-2
slapos/recipe/boinc/__init__.py
slapos/recipe/boinc/__init__.py
+36
-11
slapos/recipe/boinc/configure.py
slapos/recipe/boinc/configure.py
+29
-5
No files found.
setup.py
View file @
fb52bb07
slapos/recipe/boinc/__init__.py
View file @
fb52bb07
...
@@ -84,6 +84,23 @@ class Recipe(GenericBaseRecipe):
...
@@ -84,6 +84,23 @@ class Recipe(GenericBaseRecipe):
self
.
mysqlhost
=
options
[
'mysql-host'
].
strip
()
self
.
mysqlhost
=
options
[
'mysql-host'
].
strip
()
self
.
mysqlport
=
options
[
'mysql-port'
].
strip
()
self
.
mysqlport
=
options
[
'mysql-port'
].
strip
()
def
haschanges
(
self
):
config_file
=
os
.
path
.
join
(
self
.
home
,
'.config'
)
current
=
[
self
.
fullname
,
self
.
copyright
,
self
.
port
,
self
.
password
,
self
.
mysqlhost
,
self
.
installroot
,
self
.
project
,
self
.
passwd
,
self
.
ipv6
]
previous
=
[]
result
=
False
if
os
.
path
.
exists
(
config_file
):
previous
=
open
(
config_file
,
'r'
).
read
().
split
(
'#'
)
#Check if config has changed
if
len
(
current
)
!=
len
(
set
(
current
).
intersection
(
set
(
previous
)))
or
\
not
os
.
path
.
exists
(
self
.
installroot
)
or
\
not
os
.
path
.
exists
(
os
.
path
.
join
(
self
.
home
,
'.start_service'
)):
result
=
True
open
(
config_file
,
'w'
).
write
(
'#'
.
join
(
current
))
return
result
def
install
(
self
):
def
install
(
self
):
path_list
=
[]
path_list
=
[]
make_project
=
os
.
path
.
join
(
self
.
package
,
'bin/make_project'
)
make_project
=
os
.
path
.
join
(
self
.
package
,
'bin/make_project'
)
...
@@ -157,12 +174,19 @@ class Recipe(GenericBaseRecipe):
...
@@ -157,12 +174,19 @@ class Recipe(GenericBaseRecipe):
)
)
# Generate make project wrapper file
# Generate make project wrapper file
readme_file
=
os
.
path
.
join
(
self
.
installroot
,
self
.
project
+
'.readme'
)
launch_args
=
[
make_project
,
'--url_base'
,
url_base
,
"--db_name"
,
launch_args
=
[
make_project
,
'--url_base'
,
url_base
,
"--db_name"
,
self
.
database
,
"--db_user"
,
self
.
username
,
"--db_passwd"
,
self
.
database
,
"--db_user"
,
self
.
username
,
"--db_passwd"
,
self
.
password
,
"--project_root"
,
self
.
installroot
,
"--db_host"
,
self
.
password
,
"--project_root"
,
self
.
installroot
,
"--db_host"
,
self
.
mysqlhost
,
"--user_name"
,
slapuser
,
"--srcdir"
,
self
.
mysqlhost
,
"--user_name"
,
slapuser
,
"--srcdir"
,
self
.
sourcedir
,
"--no_query"
,
"--delete_prev_inst"
,
self
.
sourcedir
,
"--no_query"
]
"--drop_db_first"
,
self
.
project
,
niceprojectname
]
drop_install
=
self
.
haschanges
()
if
drop_install
:
#Allow to restart Boinc installation from the begining
launch_args
+=
[
"--delete_prev_inst"
,
"--drop_db_first"
]
if
os
.
path
.
exists
(
readme_file
):
os
.
unlink
(
readme_file
)
launch_args
+=
[
self
.
project
,
niceprojectname
]
install_wrapper
=
self
.
createPythonScript
(
os
.
path
.
join
(
self
.
wrapperdir
,
install_wrapper
=
self
.
createPythonScript
(
os
.
path
.
join
(
self
.
wrapperdir
,
'make_project'
),
'make_project'
),
...
@@ -173,11 +197,6 @@ class Recipe(GenericBaseRecipe):
...
@@ -173,11 +197,6 @@ class Recipe(GenericBaseRecipe):
#After make_project run configure_script to perform and restart apache php services
#After make_project run configure_script to perform and restart apache php services
service_status
=
os
.
path
.
join
(
self
.
home
,
'.start_service'
)
service_status
=
os
.
path
.
join
(
self
.
home
,
'.start_service'
)
readme_file
=
os
.
path
.
join
(
self
.
installroot
,
self
.
project
+
'.readme'
)
if
os
.
path
.
exists
(
readme_file
):
os
.
unlink
(
readme_file
)
if
os
.
path
.
exists
(
service_status
):
os
.
unlink
(
service_status
)
parameter
=
dict
(
parameter
=
dict
(
readme
=
readme_file
,
readme
=
readme_file
,
htpasswd
=
self
.
htpasswd
,
htpasswd
=
self
.
htpasswd
,
...
@@ -189,7 +208,8 @@ class Recipe(GenericBaseRecipe):
...
@@ -189,7 +208,8 @@ class Recipe(GenericBaseRecipe):
service_status
=
service_status
,
service_status
=
service_status
,
project
=
niceprojectname
,
project
=
niceprojectname
,
fullname
=
self
.
fullname
,
fullname
=
self
.
fullname
,
copyright
=
self
.
copyright
copyright
=
self
.
copyright
,
drop_install
=
drop_install
)
)
start_service
=
self
.
createPythonScript
(
start_service
=
self
.
createPythonScript
(
os
.
path
.
join
(
self
.
wrapperdir
,
'config_project'
),
os
.
path
.
join
(
self
.
wrapperdir
,
'config_project'
),
...
@@ -199,10 +219,15 @@ class Recipe(GenericBaseRecipe):
...
@@ -199,10 +219,15 @@ class Recipe(GenericBaseRecipe):
#Generate Boinc start project wrapper
#Generate Boinc start project wrapper
start_args
=
[
os
.
path
.
join
(
self
.
installroot
,
'bin/start'
)]
start_args
=
[
os
.
path
.
join
(
self
.
installroot
,
'bin/start'
)]
boinc_parameter
=
dict
(
service_status
=
service_status
,
installroot
=
self
.
installroot
,
drop_install
=
drop_install
,
mysql_port
=
self
.
mysqlport
,
mysql_host
=
self
.
mysqlhost
,
mysql_user
=
self
.
username
,
mysql_password
=
self
.
password
,
database
=
self
.
database
,
python_path
=
python_path
)
start_wrapper
=
self
.
createPythonScript
(
os
.
path
.
join
(
self
.
wrapperdir
,
start_wrapper
=
self
.
createPythonScript
(
os
.
path
.
join
(
self
.
wrapperdir
,
'start_
project
'
),
'start_
boinc
'
),
'
slapos.recipe.librecipe.execute.executee_wait'
,
'
%s.configure.restart_boinc'
%
__name__
,
(
start_args
,
[
service_status
],
environment
)
boinc_parameter
)
)
path_list
.
append
(
start_wrapper
)
path_list
.
append
(
start_wrapper
)
...
...
slapos/recipe/boinc/configure.py
View file @
fb52bb07
...
@@ -44,6 +44,7 @@ def checkMysql(args):
...
@@ -44,6 +44,7 @@ def checkMysql(args):
db
=
args
[
'database'
])
db
=
args
[
'database'
])
conn
.
close
()
conn
.
close
()
print
"Successfully connect to MySQL database... "
print
"Successfully connect to MySQL database... "
if
args
.
has_key
(
'file_status'
):
file
=
open
(
args
[
'file_status'
],
'w'
)
file
=
open
(
args
[
'file_status'
],
'w'
)
file
.
write
(
"starting"
)
file
.
write
(
"starting"
)
file
.
close
()
file
.
close
()
...
@@ -55,6 +56,11 @@ def checkMysql(args):
...
@@ -55,6 +56,11 @@ def checkMysql(args):
def
services
(
args
):
def
services
(
args
):
"""This function configure a new installed boinc project instance"""
print
"Checking if needed to install or reinstall Boinc-server..."
if
not
args
[
'drop_install'
]:
print
"Not need to install Boinc-server...skipped"
return
#Sleep until file 'boinc_project'.readme exist
#Sleep until file 'boinc_project'.readme exist
while
True
:
while
True
:
print
"Search for file %s..."
%
args
[
'readme'
]
print
"Search for file %s..."
%
args
[
'readme'
]
...
@@ -122,6 +128,25 @@ def services(args):
...
@@ -122,6 +128,25 @@ def services(args):
status
.
write
(
"started"
)
status
.
write
(
"started"
)
status
.
close
()
status
.
close
()
def
restart_boinc
(
args
):
"""Stop (if currently is running state) and start all Boinc service"""
if
args
[
'drop_install'
]:
while
True
:
print
"Search for file %s..."
%
args
[
'service_status'
]
if
not
os
.
path
.
exists
(
args
[
'service_status'
]):
print
"File not found... sleep for 3 secondes"
time
.
sleep
(
3
)
else
:
break
else
:
checkMysql
(
args
)
print
"Restart Boinc..."
binstart
=
os
.
path
.
join
(
args
[
'installroot'
],
'bin/start'
)
binstop
=
os
.
path
.
join
(
args
[
'installroot'
],
'bin/stop'
)
os
.
system
(
binstop
)
os
.
system
(
binstart
)
print
"Done."
def
deployApp
(
args
):
def
deployApp
(
args
):
print
"Cheking if needed to install %s..."
%
args
[
'appname'
]
print
"Cheking if needed to install %s..."
%
args
[
'appname'
]
if
os
.
path
.
exists
(
os
.
path
.
join
(
args
[
'installroot'
],
"."
+
args
[
'appname'
])):
if
os
.
path
.
exists
(
os
.
path
.
join
(
args
[
'installroot'
],
"."
+
args
[
'appname'
])):
...
@@ -235,7 +260,6 @@ def create_wu(args, env):
...
@@ -235,7 +260,6 @@ def create_wu(args, env):
process
=
subprocess
.
Popen
(
launch_args
,
stdout
=
subprocess
.
PIPE
,
process
=
subprocess
.
Popen
(
launch_args
,
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
STDOUT
,
env
=
env
,
stderr
=
subprocess
.
STDOUT
,
env
=
env
,
cwd
=
args
[
'installroot'
])
cwd
=
args
[
'installroot'
])
result
=
process
.
communicate
()[
0
]
process
.
communicate
()[
0
]
print
"Result for workunit num %
\
n
%s"
(
str
(
i
+
1
),
result
)
\ No newline at end of file
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