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
Hardik Juneja
slapos.core
Commits
68703f7a
Commit
68703f7a
authored
Nov 25, 2011
by
Łukasz Nowak
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into hostingwebsite
parents
cb09bf79
f541513e
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
108 additions
and
99 deletions
+108
-99
CHANGES.txt
CHANGES.txt
+9
-1
TODO.txt
TODO.txt
+5
-0
documentation/source/conf.py
documentation/source/conf.py
+2
-2
master/bt5/vifib_data_category/bt/revision
master/bt5/vifib_data_category/bt/revision
+1
-1
master/bt5/vifib_erp5/TestTemplateItem/testVifibModuleSecurity.py
...t5/vifib_erp5/TestTemplateItem/testVifibModuleSecurity.py
+31
-0
master/bt5/vifib_erp5/bt/revision
master/bt5/vifib_erp5/bt/revision
+1
-1
master/product/Vifib/tests/testVifibSkinSelection.py
master/product/Vifib/tests/testVifibSkinSelection.py
+0
-45
setup.py
setup.py
+1
-1
slapos/grid/slapgrid.py
slapos/grid/slapgrid.py
+58
-48
No files found.
CHANGES.txt
View file @
68703f7a
Changes
=======
0.2
0
(unreleased)
0.2
1
(unreleased)
-----------------
* No changes yet.
0.20 (2011-11-24)
-----------------
* slapgrid: Support service-less parttions. [Antoine Catton]
* slapgrid: Avoid gid collision while dropping privileges. [Antoine Catton]
* slapgrid: Drop down network usage during usage reporting. [Łukasz Nowak]
* general: Add sphinx documentation. [Romain Courteaud]
0.19 (2011-11-07)
-----------------
...
...
TODO.txt
0 → 100644
View file @
68703f7a
0.21
- have only one file with current version
- move more documentation to sphinx (for tools)
- cleanup pypi page formatting
documentation/source/conf.py
View file @
68703f7a
...
...
@@ -45,9 +45,9 @@ copyright = u'2011, Vifib'
# built documents.
#
# The short X.Y version.
version
=
'0.2
0
-dev'
version
=
'0.2
1
-dev'
# The full version, including alpha/beta/rc tags.
release
=
'0.2
0
-dev'
release
=
'0.2
1
-dev'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
...
...
master/bt5/vifib_data_category/bt/revision
View file @
68703f7a
85
\ No newline at end of file
86
\ No newline at end of file
master/bt5/vifib_erp5/TestTemplateItem/testVifibModuleSecurity.py
View file @
68703f7a
...
...
@@ -34,7 +34,38 @@ class TestVifibModuleSecurity(testVifibMixin):
"""
used_module_id_list
=
[
'accounting_module'
,
'account_module'
,
'campaign_module'
,
'component_module'
,
'currency_module'
,
'document_ingestion_module'
,
'document_module'
,
'event_module'
,
'image_module'
,
'internal_packing_list_module'
,
'inventory_module'
,
'knowledge_pad_module'
,
'meeting_module'
,
'notification_message_module'
,
'open_sale_order_module'
,
'organisation_module'
,
'person_module'
,
'product_module'
,
'purchase_order_module'
,
'purchase_packing_list_module'
,
'purchase_trade_condition_module'
,
'query_module'
,
'sale_opportunity_module'
,
'sale_order_module'
,
'sale_packing_list_module'
,
'sale_trade_condition_module'
,
'service_module'
,
'software_product_module'
,
'software_release_module'
,
'support_request_module'
,
'transformation_module'
,
'web_page_module'
,
'web_site_module'
,
]
...
...
master/bt5/vifib_erp5/bt/revision
View file @
68703f7a
301
\ No newline at end of file
302
master/product/Vifib/tests/testVifibSkinSelection.py
View file @
68703f7a
...
...
@@ -145,7 +145,6 @@ erp5_gadget
erp5_glossary
erp5_ingestion
erp5_ingestion_test
erp5_integration
erp5_invoicing
erp5_item
erp5_item_trade
...
...
@@ -154,15 +153,12 @@ erp5_ods_core
erp5_odt_core
erp5_ooo_import
erp5_open_trade
erp5_payzen_secure_payment
erp5_pdm
erp5_project
erp5_project_trade
erp5_secure_payment
erp5_simplified_invoicing
erp5_simulation_test
erp5_software_pdm
erp5_system_event
erp5_tax_resource
erp5_toolbox
erp5_trade
...
...
@@ -174,7 +170,6 @@ erp5_web_widget_library
erp5_xhtml_jquery_style
erp5_xhtml_style
external_method
vifib_payzen
Images
activity
zpt_content
...
...
@@ -239,7 +234,6 @@ erp5_gadget
erp5_glossary
erp5_ingestion
erp5_ingestion_test
erp5_integration
erp5_invoicing
erp5_item
erp5_item_trade
...
...
@@ -248,15 +242,12 @@ erp5_ods_core
erp5_odt_core
erp5_ooo_import
erp5_open_trade
erp5_payzen_secure_payment
erp5_pdm
erp5_project
erp5_project_trade
erp5_secure_payment
erp5_simplified_invoicing
erp5_simulation_test
erp5_software_pdm
erp5_system_event
erp5_tax_resource
erp5_toolbox
erp5_trade
...
...
@@ -268,7 +259,6 @@ erp5_web_widget_library
erp5_xhtml_jquery_style
erp5_xhtml_style
external_method
vifib_payzen
Images
activity
zpt_content
...
...
@@ -333,7 +323,6 @@ erp5_gadget
erp5_glossary
erp5_ingestion
erp5_ingestion_test
erp5_integration
erp5_invoicing
erp5_item
erp5_item_trade
...
...
@@ -342,15 +331,12 @@ erp5_ods_core
erp5_odt_core
erp5_ooo_import
erp5_open_trade
erp5_payzen_secure_payment
erp5_pdm
erp5_project
erp5_project_trade
erp5_secure_payment
erp5_simplified_invoicing
erp5_simulation_test
erp5_software_pdm
erp5_system_event
erp5_tax_resource
erp5_toolbox
erp5_trade
...
...
@@ -362,7 +348,6 @@ erp5_web_widget_library
erp5_xhtml_jquery_style
erp5_xhtml_style
external_method
vifib_payzen
Images
activity
zpt_content
...
...
@@ -422,7 +407,6 @@ erp5_gadget
erp5_glossary
erp5_ingestion
erp5_ingestion_test
erp5_integration
erp5_invoicing
erp5_item
erp5_item_trade
...
...
@@ -430,15 +414,12 @@ erp5_ods_core
erp5_odt_core
erp5_ooo_import
erp5_open_trade
erp5_payzen_secure_payment
erp5_pdm
erp5_project
erp5_project_trade
erp5_secure_payment
erp5_simplified_invoicing
erp5_simulation_test
erp5_software_pdm
erp5_system_event
erp5_tax_resource
erp5_toolbox
erp5_trade
...
...
@@ -449,7 +430,6 @@ erp5_web_minimal_theme
erp5_web_widget_library
erp5_xhtml_jquery_style
external_method
vifib_payzen
Images
activity
zpt_content
...
...
@@ -509,7 +489,6 @@ erp5_gadget
erp5_glossary
erp5_ingestion
erp5_ingestion_test
erp5_integration
erp5_invoicing
erp5_item
erp5_item_trade
...
...
@@ -517,15 +496,12 @@ erp5_ods_core
erp5_odt_core
erp5_ooo_import
erp5_open_trade
erp5_payzen_secure_payment
erp5_pdm
erp5_project
erp5_project_trade
erp5_secure_payment
erp5_simplified_invoicing
erp5_simulation_test
erp5_software_pdm
erp5_system_event
erp5_tax_resource
erp5_toolbox
erp5_trade
...
...
@@ -536,7 +512,6 @@ erp5_web_minimal_theme
erp5_web_widget_library
erp5_xhtml_jquery_style
external_method
vifib_payzen
Images
activity
zpt_content
...
...
@@ -598,7 +573,6 @@ erp5_glossary
erp5_html_compatibility
erp5_ingestion
erp5_ingestion_test
erp5_integration
erp5_invoicing
erp5_item
erp5_item_trade
...
...
@@ -607,15 +581,12 @@ erp5_ods_core
erp5_odt_core
erp5_ooo_import
erp5_open_trade
erp5_payzen_secure_payment
erp5_pdm
erp5_project
erp5_project_trade
erp5_secure_payment
erp5_simplified_invoicing
erp5_simulation_test
erp5_software_pdm
erp5_system_event
erp5_tax_resource
erp5_toolbox
erp5_trade
...
...
@@ -627,7 +598,6 @@ erp5_web_widget_library
erp5_xhtml_jquery_style
erp5_xhtml_style
external_method
vifib_payzen
Images
activity
zpt_content
...
...
@@ -688,7 +658,6 @@ erp5_gadget
erp5_glossary
erp5_ingestion
erp5_ingestion_test
erp5_integration
erp5_invoicing
erp5_item
erp5_item_trade
...
...
@@ -698,15 +667,12 @@ erp5_ods_core
erp5_odt_core
erp5_ooo_import
erp5_open_trade
erp5_payzen_secure_payment
erp5_pdm
erp5_project
erp5_project_trade
erp5_secure_payment
erp5_simplified_invoicing
erp5_simulation_test
erp5_software_pdm
erp5_system_event
erp5_tax_resource
erp5_toolbox
erp5_trade
...
...
@@ -718,7 +684,6 @@ erp5_web_widget_library
erp5_xhtml_jquery_style
erp5_xhtml_style
external_method
vifib_payzen
Images
activity
zpt_content
...
...
@@ -778,7 +743,6 @@ erp5_gadget
erp5_glossary
erp5_ingestion
erp5_ingestion_test
erp5_integration
erp5_invoicing
erp5_item
erp5_item_trade
...
...
@@ -786,15 +750,12 @@ erp5_ods_core
erp5_odt_core
erp5_ooo_import
erp5_open_trade
erp5_payzen_secure_payment
erp5_pdm
erp5_project
erp5_project_trade
erp5_secure_payment
erp5_simplified_invoicing
erp5_simulation_test
erp5_software_pdm
erp5_system_event
erp5_tax_resource
erp5_toolbox
erp5_trade
...
...
@@ -805,7 +766,6 @@ erp5_web_minimal_theme
erp5_web_widget_library
erp5_xhtml_jquery_style
external_method
vifib_payzen
Images
activity
zpt_content
...
...
@@ -865,7 +825,6 @@ erp5_gadget
erp5_glossary
erp5_ingestion
erp5_ingestion_test
erp5_integration
erp5_invoicing
erp5_item
erp5_item_trade
...
...
@@ -873,15 +832,12 @@ erp5_ods_core
erp5_odt_core
erp5_ooo_import
erp5_open_trade
erp5_payzen_secure_payment
erp5_pdm
erp5_project
erp5_project_trade
erp5_secure_payment
erp5_simplified_invoicing
erp5_simulation_test
erp5_software_pdm
erp5_system_event
erp5_tax_resource
erp5_toolbox
erp5_trade
...
...
@@ -893,7 +849,6 @@ erp5_web_widget_library
erp5_xhtml_jquery_style
erp5_xhtml_style
external_method
vifib_payzen
Images
activity
zpt_content
...
...
setup.py
View file @
68703f7a
...
...
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
import
glob
import
os
version
=
'0.2
0
-dev'
version
=
'0.2
1
-dev'
name
=
'slapos.core'
long_description
=
open
(
"README.txt"
).
read
()
+
"
\
n
"
+
\
open
(
"CHANGES.txt"
).
read
()
+
"
\
n
"
...
...
slapos/grid/slapgrid.py
View file @
68703f7a
...
...
@@ -282,6 +282,10 @@ class Slapgrid(object):
""" Main class for SlapGrid. Fetches and processes informations from master
server and pushes usage information to master server.
"""
class
PromiseError
(
Exception
):
pass
def
__init__
(
self
,
software_root
,
instance_root
,
...
...
@@ -422,6 +426,59 @@ class Slapgrid(object):
launchSupervisord
(
self
.
supervisord_socket
,
self
.
supervisord_configuration_path
)
def
_checkPromises
(
self
,
computer_partition
):
self
.
logger
.
info
(
"Checking promises..."
)
instance_path
=
os
.
path
.
join
(
self
.
instance_root
,
computer_partition
.
getId
())
uid
,
gid
=
None
,
None
stat_info
=
os
.
stat
(
instance_path
)
#stat sys call to get statistics informations
uid
=
stat_info
.
st_uid
gid
=
stat_info
.
st_gid
promise_present
=
False
# Get the list of promises
promise_dir
=
os
.
path
.
join
(
instance_path
,
'etc'
,
'promise'
)
if
os
.
path
.
exists
(
promise_dir
)
and
os
.
path
.
isdir
(
promise_dir
):
cwd
=
instance_path
promises_list
=
os
.
listdir
(
promise_dir
)
# Check whether every promise is kept
for
promise
in
promises_list
:
promise_present
=
True
command
=
[
os
.
path
.
join
(
promise_dir
,
promise
)]
promise
=
os
.
path
.
basename
(
command
[
0
])
self
.
logger
.
info
(
"Checking promise %r."
,
promise
)
kw
=
dict
(
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
PIPE
)
process_handler
=
SlapPopen
(
command
,
preexec_fn
=
lambda
:
dropPrivileges
(
uid
,
gid
),
cwd
=
cwd
,
env
=
{},
**
kw
)
time
.
sleep
(
self
.
promise_timeout
)
if
process_handler
.
poll
()
is
None
:
process_handler
.
kill
()
raise
Slapgrid
.
PromiseError
(
"The promise %r timed out"
%
promise
)
elif
process_handler
.
poll
()
!=
0
:
stderr
=
process_handler
.
communicate
()[
1
]
if
stderr
is
None
:
stderr
=
'No error output from %r.'
%
promise
else
:
stderr
=
'Promise %r:'
%
promise
+
stderr
raise
Slapgrid
.
PromiseError
(
stderr
)
if
not
promise_present
:
self
.
logger
.
info
(
"No promise."
)
def
processComputerPartitionList
(
self
):
"""Will start supervisord and process each Computer Partition.
"""
...
...
@@ -462,6 +519,7 @@ class Slapgrid(object):
local_partition
.
install
()
computer_partition
.
available
()
local_partition
.
start
()
self
.
_checkPromises
(
computer_partition
)
computer_partition
.
started
()
elif
computer_partition_state
==
"stopped"
:
local_partition
.
install
()
...
...
@@ -504,54 +562,6 @@ class Slapgrid(object):
logger
.
error
(
exception
)
computer_partition
.
error
(
exception
)
# Promises
instance_path
=
os
.
path
.
join
(
self
.
instance_root
,
computer_partition
.
getId
())
uid
,
gid
=
None
,
None
stat_info
=
os
.
stat
(
instance_path
)
#stat sys call to get statistics informations
uid
=
stat_info
.
st_uid
gid
=
stat_info
.
st_gid
# Get the list of promises
promise_dir
=
os
.
path
.
join
(
instance_path
,
'etc'
,
'promise'
)
if
os
.
path
.
exists
(
promise_dir
)
and
os
.
path
.
isdir
(
promise_dir
):
cwd
=
instance_path
promises_list
=
os
.
listdir
(
promise_dir
)
# Check whether every promise is kept
for
promise
in
promises_list
:
command
=
os
.
path
.
join
(
promise_dir
,
promise
)
kw
=
dict
()
if
not
self
.
console
:
kw
.
update
(
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
PIPE
)
process_handler
=
SlapPopen
(
command
,
preexec_fn
=
lambda
:
dropPrivileges
(
uid
,
gid
),
cwd
=
cwd
,
env
=
None
,
**
kw
)
time
.
sleep
(
self
.
promise_timeout
)
promise
=
os
.
path
.
basename
(
command
)
if
process_handler
.
poll
()
is
None
:
process_handler
.
kill
()
computer_partition
.
error
(
"The promise %r timed out"
%
promise
)
clean_run
=
False
elif
process_handler
.
poll
()
!=
0
:
stderr
=
process_handler
.
communicate
()[
1
]
if
stderr
is
None
:
stderr
=
'No error output from %r.'
%
promise
computer_partition
.
error
(
stderr
)
clean_run
=
False
logger
.
info
(
"Finished computer partitions..."
)
return
clean_run
...
...
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