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
Labels
Merge Requests
107
Merge Requests
107
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
slapos
Commits
1062993d
Commit
1062993d
authored
Jun 21, 2011
by
Łukasz Nowak
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'external_buildout'
parents
3f32cfa9
0089b24a
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
30 additions
and
16 deletions
+30
-16
CHANGES.txt
CHANGES.txt
+2
-1
buildout.cfg
buildout.cfg
+1
-0
setup.py
setup.py
+0
-2
slapos.cfg.example
slapos.cfg.example
+1
-0
slapos/grid/SlapObject.py
slapos/grid/SlapObject.py
+8
-4
slapos/grid/slapgrid.py
slapos/grid/slapgrid.py
+8
-5
slapos/grid/utils.py
slapos/grid/utils.py
+10
-4
No files found.
CHANGES.txt
View file @
1062993d
0.4 (unreleased)
0.4 (unreleased)
================
================
* No changes yet.
* Do not use buildout internally, but rather call bootstrap command of any
provided buildout binary. [Łukasz Nowak]
0.3 (2011-06-14)
0.3 (2011-06-14)
================
================
...
...
buildout.cfg
View file @
1062993d
...
@@ -20,6 +20,7 @@ eggs =
...
@@ -20,6 +20,7 @@ eggs =
[slapos]
[slapos]
recipe = z3c.recipe.scripts
recipe = z3c.recipe.scripts
eggs =
eggs =
zc.buildout
slapos.core
slapos.core
ipython
ipython
ipdb
ipdb
...
...
setup.py
View file @
1062993d
...
@@ -39,8 +39,6 @@ setup(name=name,
...
@@ -39,8 +39,6 @@ setup(name=name,
'supervisor'
,
# slapgrid uses supervisor to manage processes
'supervisor'
,
# slapgrid uses supervisor to manage processes
'xml_marshaller>=0.9.3'
,
# to unmarshall/marshall python objects to/from
'xml_marshaller>=0.9.3'
,
# to unmarshall/marshall python objects to/from
# XML
# XML
'zc.buildout>=1.5.0'
,
# slapgrid uses buildout as its backend to do the
# job
'zope.interface'
,
# slap library implementes interfaces
'zope.interface'
,
# slap library implementes interfaces
]
+
additional_install_requires
,
]
+
additional_install_requires
,
zip_safe
=
False
,
# proxy depends on Flask, which has issues with
zip_safe
=
False
,
# proxy depends on Flask, which has issues with
...
...
slapos.cfg.example
View file @
1062993d
...
@@ -3,6 +3,7 @@ software_root = /opt/slapgrid
...
@@ -3,6 +3,7 @@ software_root = /opt/slapgrid
instance_root = /srv/slapgrid
instance_root = /srv/slapgrid
master_url = http://www.vifib.com/
master_url = http://www.vifib.com/
computer_id = your computer id
computer_id = your computer id
buildout = /path/to/buildout/binary
[slapformat]
[slapformat]
computer_xml = /opt/slapos/slapos.xml
computer_xml = /opt/slapos/slapos.xml
...
...
slapos/grid/SlapObject.py
View file @
1062993d
...
@@ -45,13 +45,14 @@ REQUIRED_COMPUTER_PARTITION_PERMISSION = '0750'
...
@@ -45,13 +45,14 @@ REQUIRED_COMPUTER_PARTITION_PERMISSION = '0750'
class
Software
(
object
):
class
Software
(
object
):
"""This class is responsible of installing a software release"""
"""This class is responsible of installing a software release"""
def
__init__
(
self
,
url
,
software_root
,
console
):
def
__init__
(
self
,
url
,
software_root
,
console
,
buildout
):
"""Initialisation of class parameters
"""Initialisation of class parameters
"""
"""
self
.
url
=
url
self
.
url
=
url
self
.
software_root
=
software_root
self
.
software_root
=
software_root
self
.
software_path
=
os
.
path
.
join
(
self
.
software_root
,
self
.
software_path
=
os
.
path
.
join
(
self
.
software_root
,
getSoftwareUrlHash
(
self
.
url
))
getSoftwareUrlHash
(
self
.
url
))
self
.
buildout
=
buildout
self
.
logger
=
logging
.
getLogger
(
'BuildoutManager'
)
self
.
logger
=
logging
.
getLogger
(
'BuildoutManager'
)
self
.
console
=
console
self
.
console
=
console
...
@@ -74,7 +75,7 @@ class Software(object):
...
@@ -74,7 +75,7 @@ class Software(object):
buildout_parameter_list
=
[
buildout_parameter_list
=
[
'buildout:directory=%s'
%
self
.
software_path
,
'buildout:directory=%s'
%
self
.
software_path
,
'-c'
,
self
.
url
]
'-c'
,
self
.
url
]
bootstrapBuildout
(
self
.
software_path
,
bootstrapBuildout
(
self
.
software_path
,
self
.
buildout
,
additional_buildout_parametr_list
=
buildout_parameter_list
,
additional_buildout_parametr_list
=
buildout_parameter_list
,
console
=
self
.
console
)
console
=
self
.
console
)
launchBuildout
(
self
.
software_path
,
launchBuildout
(
self
.
software_path
,
...
@@ -106,10 +107,12 @@ class Partition(object):
...
@@ -106,10 +107,12 @@ class Partition(object):
partition_id
,
partition_id
,
server_url
,
server_url
,
software_release_url
,
software_release_url
,
buildout
,
certificate_repository_path
=
None
,
certificate_repository_path
=
None
,
console
=
False
console
=
False
):
):
"""Initialisation of class parameters"""
"""Initialisation of class parameters"""
self
.
buildout
=
buildout
self
.
software_path
=
software_path
self
.
software_path
=
software_path
self
.
instance_path
=
instance_path
self
.
instance_path
=
instance_path
self
.
run_path
=
os
.
path
.
join
(
self
.
instance_path
,
'etc'
,
'run'
)
self
.
run_path
=
os
.
path
.
join
(
self
.
instance_path
,
'etc'
,
'run'
)
...
@@ -241,8 +244,9 @@ class Partition(object):
...
@@ -241,8 +244,9 @@ class Partition(object):
if
not
os
.
path
.
exists
(
buildout_binary
):
if
not
os
.
path
.
exists
(
buildout_binary
):
# use own buildout generation
# use own buildout generation
bootstrapBuildout
(
self
.
instance_path
,
[
'buildout:bin-directory=%s'
%
bootstrapBuildout
(
self
.
instance_path
,
self
.
buildout
,
os
.
path
.
join
(
self
.
instance_path
,
'sbin'
)],
console
=
self
.
console
)
[
'buildout:bin-directory=%s'
%
os
.
path
.
join
(
self
.
instance_path
,
'sbin'
)],
console
=
self
.
console
)
buildout_binary
=
os
.
path
.
join
(
self
.
instance_path
,
'sbin'
,
'buildout'
)
buildout_binary
=
os
.
path
.
join
(
self
.
instance_path
,
'sbin'
,
'buildout'
)
# Launches buildout
# Launches buildout
launchBuildout
(
self
.
instance_path
,
launchBuildout
(
self
.
instance_path
,
...
...
slapos/grid/slapgrid.py
View file @
1062993d
...
@@ -87,6 +87,8 @@ def parseArgumentTupleAndReturnSlapgridObject(*argument_tuple):
...
@@ -87,6 +87,8 @@ def parseArgumentTupleAndReturnSlapgridObject(*argument_tuple):
parser
.
add_argument
(
"--usage-report-periodicity"
,
parser
.
add_argument
(
"--usage-report-periodicity"
,
type
=
int
,
default
=
"24"
,
type
=
int
,
default
=
"24"
,
help
=
"The periodicity of usage report sends, in hours."
)
help
=
"The periodicity of usage report sends, in hours."
)
parser
.
add_argument
(
"--buildout"
,
help
=
"Location of buildout binary."
,
default
=
None
)
parser
.
add_argument
(
"--pidfile"
,
parser
.
add_argument
(
"--pidfile"
,
help
=
"The location where pidfile will be created."
)
help
=
"The location where pidfile will be created."
)
parser
.
add_argument
(
"--logfile"
,
parser
.
add_argument
(
"--logfile"
,
...
@@ -195,7 +197,8 @@ def parseArgumentTupleAndReturnSlapgridObject(*argument_tuple):
...
@@ -195,7 +197,8 @@ def parseArgumentTupleAndReturnSlapgridObject(*argument_tuple):
cert_file
=
cert_file
,
cert_file
=
cert_file
,
master_ca_file
=
master_ca_file
,
master_ca_file
=
master_ca_file
,
certificate_repository_path
=
certificate_repository_path
,
certificate_repository_path
=
certificate_repository_path
,
console
=
option_dict
[
'console'
]),
console
=
option_dict
[
'console'
],
buildout
=
option_dict
.
get
(
'buildout'
)),
option_dict
])
option_dict
])
...
@@ -259,6 +262,7 @@ class Slapgrid(object):
...
@@ -259,6 +262,7 @@ class Slapgrid(object):
supervisord_socket
,
supervisord_socket
,
supervisord_configuration_path
,
supervisord_configuration_path
,
usage_report_periodicity
,
usage_report_periodicity
,
buildout
,
key_file
=
None
,
key_file
=
None
,
cert_file
=
None
,
cert_file
=
None
,
master_ca_file
=
None
,
master_ca_file
=
None
,
...
@@ -289,6 +293,7 @@ class Slapgrid(object):
...
@@ -289,6 +293,7 @@ class Slapgrid(object):
self
.
supervisord_configuration_directory
=
\
self
.
supervisord_configuration_directory
=
\
os
.
path
.
join
(
self
.
instance_etc_directory
,
'supervisord.conf.d'
)
os
.
path
.
join
(
self
.
instance_etc_directory
,
'supervisord.conf.d'
)
self
.
console
=
console
self
.
console
=
console
self
.
buildout
=
buildout
def
checkEnvironmentAndCreateStructure
(
self
):
def
checkEnvironmentAndCreateStructure
(
self
):
"""Checks for software_root and instance_root existence, then creates
"""Checks for software_root and instance_root existence, then creates
...
@@ -347,8 +352,7 @@ class Slapgrid(object):
...
@@ -347,8 +352,7 @@ class Slapgrid(object):
software_release
.
building
()
software_release
.
building
()
software_release_uri
=
software_release
.
getURI
()
software_release_uri
=
software_release
.
getURI
()
Software
(
url
=
software_release_uri
,
software_root
=
self
.
software_root
,
Software
(
url
=
software_release_uri
,
software_root
=
self
.
software_root
,
console
=
self
.
console
console
=
self
.
console
,
buildout
=
self
.
buildout
).
install
()
).
install
()
except
(
SystemExit
,
KeyboardInterrupt
):
except
(
SystemExit
,
KeyboardInterrupt
):
exception
=
traceback
.
format_exc
()
exception
=
traceback
.
format_exc
()
software_release
.
error
(
exception
)
software_release
.
error
(
exception
)
...
@@ -399,8 +403,7 @@ class Slapgrid(object):
...
@@ -399,8 +403,7 @@ class Slapgrid(object):
server_url
=
self
.
master_url
,
server_url
=
self
.
master_url
,
software_release_url
=
software_url
,
software_release_url
=
software_url
,
certificate_repository_path
=
self
.
certificate_repository_path
,
certificate_repository_path
=
self
.
certificate_repository_path
,
console
=
self
.
console
console
=
self
.
console
,
buildout
=
self
.
buildout
)
)
# There are no conditions to try to instanciate partition
# There are no conditions to try to instanciate partition
try
:
try
:
computer_partition_state
=
computer_partition
.
getState
()
computer_partition_state
=
computer_partition
.
getState
()
...
...
slapos/grid/utils.py
View file @
1062993d
...
@@ -217,8 +217,8 @@ def dropPrivileges(uid, gid):
...
@@ -217,8 +217,8 @@ def dropPrivileges(uid, gid):
logger
.
info
(
'Succesfully dropped privileges to uid=%r gid=%r'
%
(
uid
,
gid
))
logger
.
info
(
'Succesfully dropped privileges to uid=%r gid=%r'
%
(
uid
,
gid
))
def
bootstrapBuildout
(
path
,
additional_buildout_parametr_lis
t
=
None
,
def
bootstrapBuildout
(
path
,
buildou
t
=
None
,
console
=
False
):
additional_buildout_parametr_list
=
None
,
console
=
False
):
if
additional_buildout_parametr_list
is
None
:
if
additional_buildout_parametr_list
is
None
:
additional_buildout_parametr_list
=
[]
additional_buildout_parametr_list
=
[]
logger
=
logging
.
getLogger
(
'BuildoutManager'
)
logger
=
logging
.
getLogger
(
'BuildoutManager'
)
...
@@ -228,9 +228,15 @@ def bootstrapBuildout(path, additional_buildout_parametr_list=None,
...
@@ -228,9 +228,15 @@ def bootstrapBuildout(path, additional_buildout_parametr_list=None,
gid
=
stat_info
.
st_gid
gid
=
stat_info
.
st_gid
invocation_list
=
[
sys
.
executable
,
'-S'
]
invocation_list
=
[
sys
.
executable
,
'-S'
]
invocation_list
.
append
(
pkg_resources
.
resource_filename
(
__name__
,
if
buildout
is
not
None
:
'zc.buildout-bootstap.py'
))
invocation_list
.
append
(
buildout
)
else
:
logger
.
warning
(
'Using old style bootstrap of included bootstrap file. '
'Consider setting buildout binary location.'
)
invocation_list
.
append
(
pkg_resources
.
resource_filename
(
__name__
,
'zc.buildout-bootstap.py'
))
invocation_list
.
extend
(
additional_buildout_parametr_list
)
invocation_list
.
extend
(
additional_buildout_parametr_list
)
invocation_list
.
append
(
'bootstrap'
)
try
:
try
:
umask
=
os
.
umask
(
SAFE_UMASK
)
umask
=
os
.
umask
(
SAFE_UMASK
)
logger
.
debug
(
'Set umask from %03o to %03o'
%
(
umask
,
SAFE_UMASK
))
logger
.
debug
(
'Set umask from %03o to %03o'
%
(
umask
,
SAFE_UMASK
))
...
...
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