Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jérome Perrin
slapos.core
Commits
1caa4cd4
Commit
1caa4cd4
authored
Sep 21, 2019
by
Jérome Perrin
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
standalone/core: wip shared parts
parent
5994d7f2
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
31 additions
and
8 deletions
+31
-8
slapos.cfg.example
slapos.cfg.example
+1
-0
slapos/grid/SlapObject.py
slapos/grid/SlapObject.py
+8
-1
slapos/grid/slapgrid.py
slapos/grid/slapgrid.py
+5
-1
slapos/slap/standalone.py
slapos/slap/standalone.py
+17
-6
No files found.
slapos.cfg.example
View file @
1caa4cd4
...
...
@@ -8,6 +8,7 @@ cert_file = /etc/opt/slapos/ssl/computer.crt
certificate_repository_path = /etc/opt/slapos/ssl/partition_pki
software_root = /opt/slapgrid
instance_root = /srv/slapgrid
shared_parts_root = /opt/slapgrid/shared
[slapformat]
# Replace by your network interface providing IPv6 if you don't use re6st
...
...
slapos/grid/SlapObject.py
View file @
1caa4cd4
...
...
@@ -112,7 +112,8 @@ class Software(object):
download_from_binary_cache_url_blacklist
=
None
,
upload_to_binary_cache_url_blacklist
=
None
,
software_min_free_space
=
None
,
buildout_debug
=
False
,):
buildout_debug
=
False
,
shared_parts_root
=
None
):
"""Initialisation of class parameters
"""
...
...
@@ -127,6 +128,7 @@ class Software(object):
self
.
software_url_hash
=
md5digest
(
self
.
url
)
self
.
software_path
=
os
.
path
.
join
(
self
.
software_root
,
self
.
software_url_hash
)
self
.
shared_parts_root
=
shared_parts_root
self
.
buildout
=
buildout
self
.
buildout_debug
=
buildout_debug
self
.
logger
=
logger
...
...
@@ -264,6 +266,11 @@ class Software(object):
additional_parameters
=
list
(
self
.
_additional_buildout_parameters
(
extends_cache
))
additional_parameters
.
extend
([
'-c'
,
buildout_cfg
])
if
self
.
shared_parts_root
:
# XXX
additional_parameters
.
append
(
'buildout:abi-tag-eggs=true'
)
additional_parameters
.
append
(
'buildout:shared-parts=%s'
%
self
.
shared_parts_root
)
buildout_binary
=
os
.
path
.
join
(
self
.
software_path
,
'bin'
,
'buildout'
)
buildout_marker
=
buildout_binary
+
"-bootstrap-skipped"
...
...
slapos/grid/slapgrid.py
View file @
1caa4cd4
...
...
@@ -241,6 +241,7 @@ def create_slapgrid_object(options, logger):
return
Slapgrid
(
software_root
=
op
[
'software_root'
],
instance_root
=
op
[
'instance_root'
],
shared_parts_root
=
op
.
get
(
'shared_parts_root'
),
master_url
=
op
[
'master_url'
],
computer_id
=
op
[
'computer_id'
],
buildout
=
op
.
get
(
'buildout'
),
...
...
@@ -340,6 +341,7 @@ class Slapgrid(object):
firewall_conf
=
{},
config
=
None
,
buildout_debug
=
False
,
shared_parts_root
=
None
):
"""Makes easy initialisation of class parameters"""
# Parses arguments
...
...
@@ -405,6 +407,7 @@ class Slapgrid(object):
self
.
firewall_conf
=
firewall_conf
self
.
config
=
config
self
.
_manager_list
=
slapmanager
.
from_config
(
config
)
self
.
shared_parts_root
=
shared_parts_root
def
_getWatchdogLine
(
self
):
invocation_list
=
[
WATCHDOG_PATH
]
...
...
@@ -562,7 +565,8 @@ stderr_logfile_backups=1
shadir_ca_file
=
self
.
shadir_ca_file
,
shadir_cert_file
=
self
.
shadir_cert_file
,
shadir_key_file
=
self
.
shadir_key_file
,
software_min_free_space
=
self
.
software_min_free_space
)
software_min_free_space
=
self
.
software_min_free_space
,
shared_parts_root
=
self
.
shared_parts_root
)
# call manager for every software release
for
manager
in
self
.
_manager_list
:
...
...
slapos/slap/standalone.py
View file @
1caa4cd4
...
...
@@ -162,6 +162,7 @@ class SlapOSConfigWriter(ConfigWriter):
[slapos]
software_root = {standalone_slapos._software_root}
instance_root = {standalone_slapos._instance_root}
shared_parts_root = {standalone_slapos._shared_parts_root}
master_url = {standalone_slapos._master_url}
computer_id = {standalone_slapos._computer_id}
root_check = False
...
...
@@ -206,14 +207,16 @@ class StandaloneSlapOS(object):
"""
def
__init__
(
self
,
base_directory
,
server_ip
,
server_port
,
computer_id
=
'local'
):
self
,
base_directory
,
server_ip
,
server_port
,
computer_id
=
'local'
,
shared_path_list
=
()
):
"""Constructor, creates a standalone slapos in `base_directory`.
Arguments:
* `base_directory` -- the directory which will contain softwares and instances.
* `server_ip`, `server_port` -- the address this SlapOS proxy will listen to.
* `computer_id` -- the id of this computer.
* `shared_path_list` -- paths to use XXX set ${buildout:shared-parts}.
TODO set to a list, the first one is read-write, others are read only.
no ... not here.
Error cases:
* `PathTooDeepError` when `base_directory` is too deep. Because of limitation
with the length of paths of UNIX sockets, too deep paths cannot be used.
...
...
@@ -278,11 +281,11 @@ class StandaloneSlapOS(object):
os
.
mkdir
(
d
)
self
.
_software_root
=
os
.
path
.
join
(
base_directory
,
'soft'
)
ensureDirectoryExists
(
self
.
_software_root
)
os
.
chmod
(
self
.
_software_root
,
0o750
)
self
.
_instance_root
=
os
.
path
.
join
(
base_directory
,
'inst'
)
ensureDirectoryExists
(
self
.
_instance_root
)
os
.
chmod
(
self
.
_instance_root
,
0o750
)
self
.
_shared_parts_root
=
os
.
path
.
join
(
base_directory
,
'shared'
)
for
d
in
(
self
.
_software_root
,
self
.
_instance_root
,
self
.
_shared_parts_root
):
ensureDirectoryExists
(
d
)
os
.
chmod
(
d
,
0o750
)
etc_directory
=
os
.
path
.
join
(
base_directory
,
'etc'
)
ensureDirectoryExists
(
etc_directory
)
...
...
@@ -331,6 +334,13 @@ class StandaloneSlapOS(object):
"""
return
self
.
_software_root
@
property
def
shared_directory
(
self
):
# type: () -> str
"""Path to shared parts directory
"""
return
self
.
_shared_parts_root
@
property
def
instance_directory
(
self
):
# type: () -> str
...
...
@@ -380,6 +390,7 @@ class StandaloneSlapOS(object):
"""
for
path
in
(
self
.
_software_root
,
self
.
_shared_parts_root
,
self
.
_instance_root
,
):
if
not
os
.
path
.
exists
(
path
):
...
...
Jérome Perrin
@jerome
mentioned in merge request
nexedi/slapos!624 (merged)
·
Sep 24, 2019
mentioned in merge request
nexedi/slapos!624 (merged)
mentioned in merge request nexedi/slapos!624
Toggle commit list
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