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
Titouan Soulard
slapos.core
Commits
5385f95f
Commit
5385f95f
authored
May 13, 2014
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[slapos.core] Remove cli_legacy
parent
65d7a5d4
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
40 additions
and
798 deletions
+40
-798
setup.py
setup.py
+0
-10
slapos/cli_legacy/__init__.py
slapos/cli_legacy/__init__.py
+0
-0
slapos/cli_legacy/bang.py
slapos/cli_legacy/bang.py
+0
-47
slapos/cli_legacy/console.py
slapos/cli_legacy/console.py
+0
-48
slapos/cli_legacy/format.py
slapos/cli_legacy/format.py
+0
-145
slapos/cli_legacy/proxy_start.py
slapos/cli_legacy/proxy_start.py
+0
-72
slapos/cli_legacy/slapgrid.py
slapos/cli_legacy/slapgrid.py
+0
-158
slapos/cli_legacy/svcbackend.py
slapos/cli_legacy/svcbackend.py
+0
-98
slapos/cli_legacy/util.py
slapos/cli_legacy/util.py
+0
-13
slapos/tests/slapgrid.py
slapos/tests/slapgrid.py
+40
-207
No files found.
setup.py
View file @
5385f95f
...
@@ -73,17 +73,7 @@ setup(name=name,
...
@@ -73,17 +73,7 @@ setup(name=name,
entry_points
=
{
entry_points
=
{
'console_scripts'
:
[
'console_scripts'
:
[
'slapos-watchdog = slapos.grid.watchdog:main'
,
'slapos-watchdog = slapos.grid.watchdog:main'
,
'slapproxy = slapos.cli_legacy.proxy_start:main'
,
'slapos = slapos.cli.entry:main'
,
'slapos = slapos.cli.entry:main'
,
# Deprecated entry points
'slapconsole = slapos.cli_legacy.console:console'
,
'slapformat = slapos.cli_legacy.format:main'
,
'slapgrid-sr = slapos.cli_legacy.slapgrid:runSoftwareRelease'
,
'slapgrid-cp = slapos.cli_legacy.slapgrid:runComputerPartition'
,
'slapgrid-ur = slapos.cli_legacy.slapgrid:runUsageReport'
,
'slapgrid-supervisorctl = slapos.cli_legacy.svcbackend:supervisorctl'
,
'slapgrid-supervisord = slapos.cli_legacy.svcbackend:supervisord'
,
'bang = slapos.cli_legacy.bang:main'
,
],
],
'slapos.cli'
:
[
'slapos.cli'
:
[
# Utilities
# Utilities
...
...
slapos/cli_legacy/__init__.py
deleted
100644 → 0
View file @
65d7a5d4
slapos/cli_legacy/bang.py
deleted
100644 → 0
View file @
65d7a5d4
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2011, 2012 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 advised 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
argparse
import
ConfigParser
from
slapos.bang
import
do_bang
def
main
(
*
args
):
ap
=
argparse
.
ArgumentParser
()
ap
.
add_argument
(
'-m'
,
'--message'
,
default
=
''
,
help
=
'Message for bang.'
)
ap
.
add_argument
(
'configuration_file'
,
type
=
argparse
.
FileType
(),
help
=
'SlapOS configuration file.'
)
if
args
:
args
=
ap
.
parse_args
(
list
(
args
))
else
:
args
=
ap
.
parse_args
()
configp
=
ConfigParser
.
SafeConfigParser
()
configp
.
readfp
(
args
.
configuration_file
)
do_bang
(
configp
,
args
.
message
)
slapos/cli_legacy/console.py
deleted
100644 → 0
View file @
65d7a5d4
# -*- coding: utf-8 -*-
import
argparse
import
os
import
textwrap
from
slapos.client
import
ClientConfig
,
init
,
do_console
from
slapos.cli_legacy.util
import
get_config_parser
def
console
():
description
=
textwrap
.
dedent
(
"""
\
slapconsole allows you interact with slap API. You can play with the global
"slap" object and with the global "request" method.
examples :
>>> # Request instance
>>> request(kvm, "myuniquekvm")
>>> # Request software installation on owned computer
>>> supply(kvm, "mycomputer")
>>> # Fetch instance informations on already launched instance
>>> request(kvm, "myuniquekvm").getConnectionParameter("url")"""
)
ap
=
argparse
.
ArgumentParser
(
description
=
description
,
formatter_class
=
argparse
.
RawDescriptionHelpFormatter
)
ap
.
add_argument
(
'-u'
,
'--master_url'
,
default
=
None
,
help
=
'Url of SlapOS Master to use.'
)
ap
.
add_argument
(
'-k'
,
'--key_file'
,
help
=
"SSL Authorisation key file."
)
ap
.
add_argument
(
'-c'
,
'--cert_file'
,
help
=
"SSL Authorisation certificate file."
)
ap
.
add_argument
(
'configuration_file'
,
help
=
'path to slapos.cfg'
)
args
=
ap
.
parse_args
()
if
not
os
.
path
.
isfile
(
args
.
configuration_file
):
ap
.
error
(
"%s: Not found or not a regular file."
%
args
.
configuration_file
)
configp
=
get_config_parser
(
args
.
configuration_file
)
conf
=
ClientConfig
(
args
,
configp
)
local
=
init
(
conf
)
do_console
(
local
)
slapos/cli_legacy/format.py
deleted
100644 → 0
View file @
65d7a5d4
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2010, 2011, 2012 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 advised 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
argparse
import
ConfigParser
import
logging
import
sys
import
os
from
slapos.format
import
FormatConfig
,
UsageError
,
tracing_monkeypatch
,
do_format
def
main
(
*
args
):
"Run default configuration."
ap
=
argparse
.
ArgumentParser
()
ap
.
add_argument
(
'-x'
,
'--computer_xml'
,
help
=
"Path to file with computer's XML. If does not exists, will be created"
,
default
=
None
)
ap
.
add_argument
(
'--computer_json'
,
help
=
"Path to a JSON version of the computer's XML (for development only)."
,
default
=
None
)
ap
.
add_argument
(
'-l'
,
'--log_file'
,
help
=
"The path to the log file used by the script."
)
ap
.
add_argument
(
'-i'
,
'--input_definition_file'
,
help
=
"Path to file to read definition of computer instead of "
"declaration. Using definition file allows to disable "
"'discovery' of machine services and allows to define computer "
"configuration in fully controlled manner."
)
ap
.
add_argument
(
'-o'
,
'--output_definition_file'
,
help
=
"Path to file to write definition of computer from "
"declaration."
)
ap
.
add_argument
(
'-n'
,
'--dry_run'
,
help
=
"Don't actually do anything."
,
default
=
False
,
action
=
"store_true"
)
ap
.
add_argument
(
'-v'
,
'--verbose'
,
default
=
False
,
action
=
"store_true"
,
help
=
"Verbose output."
)
# the console option is actually ignored and not used anymore.
ap
.
add_argument
(
'-c'
,
'--console'
,
default
=
False
,
action
=
"store_true"
,
help
=
"Console output."
)
ap
.
add_argument
(
'--alter_user'
,
choices
=
[
'True'
,
'False'
],
help
=
"Shall slapformat alter user database [default: True]"
)
ap
.
add_argument
(
'--alter_network'
,
choices
=
[
'True'
,
'False'
],
help
=
"Shall slapformat alter network configuration [default: True]"
)
ap
.
add_argument
(
'--now'
,
help
=
"Launch slapformat without delay"
,
default
=
False
,
action
=
"store_true"
)
ap
.
add_argument
(
'configuration_file'
,
help
=
'path to slapos.cfg'
)
if
args
:
args
=
ap
.
parse_args
(
list
(
args
))
else
:
args
=
ap
.
parse_args
()
logger
=
logging
.
getLogger
(
"slapformat"
)
logger
.
addHandler
(
logging
.
StreamHandler
())
if
args
.
verbose
:
logger
.
setLevel
(
logging
.
DEBUG
)
logger
.
debug
(
"Verbose mode enabled."
)
else
:
logger
.
setLevel
(
logging
.
INFO
)
conf
=
FormatConfig
(
logger
=
logger
)
configp
=
ConfigParser
.
SafeConfigParser
()
if
configp
.
read
(
args
.
configuration_file
)
!=
[
args
.
configuration_file
]:
raise
UsageError
(
'Cannot find or parse configuration file: %s'
%
args
.
configuration_file
)
conf
.
mergeConfig
(
args
,
configp
)
if
conf
.
log_file
:
if
not
os
.
path
.
isdir
(
os
.
path
.
dirname
(
conf
.
log_file
)):
# fallback to console only if directory for logs does not exists and
# continue to run
raise
ValueError
(
'Please create directory %r to store %r log file'
%
(
os
.
path
.
dirname
(
conf
.
log_file
),
conf
.
log_file
))
else
:
file_handler
=
logging
.
FileHandler
(
conf
.
log_file
)
file_handler
.
setFormatter
(
logging
.
Formatter
(
"%(asctime)s - "
"%(name)s - %(levelname)s - %(message)s"
))
conf
.
logger
.
addHandler
(
file_handler
)
conf
.
logger
.
info
(
'Configured logging to file %r'
%
conf
.
log_file
)
try
:
conf
.
setConfig
()
except
UsageError
as
exc
:
sys
.
stderr
.
write
(
exc
.
message
+
'
\
n
'
)
sys
.
stderr
.
write
(
"For help use --help
\
n
"
)
sys
.
exit
(
1
)
tracing_monkeypatch
(
conf
)
try
:
do_format
(
conf
=
conf
)
except
:
conf
.
logger
.
exception
(
'Uncaught exception:'
)
raise
slapos/cli_legacy/proxy_start.py
deleted
100644 → 0
View file @
65d7a5d4
# -*- coding: utf-8 -*-
# vim: set et sts=2:
import
argparse
import
ConfigParser
import
logging
import
os
import
sys
from
slapos.proxy
import
ProxyConfig
,
do_proxy
class
UsageError
(
Exception
):
pass
def
main
():
ap
=
argparse
.
ArgumentParser
()
ap
.
add_argument
(
'-l'
,
'--log_file'
,
help
=
'The path to the log file used by the script.'
)
ap
.
add_argument
(
'-v'
,
'--verbose'
,
action
=
'store_true'
,
help
=
'Verbose output.'
)
# XXX not used anymore, deprecated
ap
.
add_argument
(
'-c'
,
'--console'
,
action
=
'store_true'
,
help
=
'Console output.'
)
ap
.
add_argument
(
'-u'
,
'--database-uri'
,
help
=
'URI for sqlite database'
)
ap
.
add_argument
(
'configuration_file'
,
help
=
'path to slapos.cfg'
)
args
=
ap
.
parse_args
()
logger
=
logging
.
getLogger
(
'slapproxy'
)
logger
.
addHandler
(
logging
.
StreamHandler
())
if
args
.
verbose
:
logger
.
setLevel
(
logging
.
DEBUG
)
else
:
logger
.
setLevel
(
logging
.
INFO
)
conf
=
ProxyConfig
(
logger
=
logger
)
configp
=
ConfigParser
.
SafeConfigParser
()
if
configp
.
read
(
args
.
configuration_file
)
!=
[
args
.
configuration_file
]:
raise
UsageError
(
'Cannot find or parse configuration file: %s'
%
args
.
configuration_file
)
conf
.
mergeConfig
(
args
,
configp
)
if
conf
.
log_file
:
if
not
os
.
path
.
isdir
(
os
.
path
.
dirname
(
conf
.
log_file
)):
raise
ValueError
(
'Please create directory %r to store %r log file'
%
(
os
.
path
.
dirname
(
conf
.
log_file
),
conf
.
log_file
))
file_handler
=
logging
.
FileHandler
(
conf
.
log_file
)
file_handler
.
setFormatter
(
logging
.
Formatter
(
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
))
logger
.
addHandler
(
file_handler
)
logger
.
info
(
'Configured logging to file %r'
%
conf
.
log_file
)
conf
.
setConfig
()
try
:
do_proxy
(
conf
=
conf
)
return_code
=
0
except
SystemExit
as
err
:
return_code
=
err
sys
.
exit
(
return_code
)
slapos/cli_legacy/slapgrid.py
deleted
100644 → 0
View file @
65d7a5d4
# -*- coding: utf-8 -*-
# vim: set et sts=2:
import
argparse
import
ConfigParser
import
logging
import
sys
from
slapos.grid.utils
import
setRunning
,
setFinished
from
slapos.grid.slapgrid
import
(
merged_options
,
check_missing_parameters
,
check_missing_files
,
random_delay
,
create_slapgrid_object
)
def
parse_arguments
(
*
argument_tuple
):
"""Parse arguments and return options dictionary merged with the config file."""
ap
=
argparse
.
ArgumentParser
()
ap
.
add_argument
(
'--instance-root'
,
help
=
'The instance root directory location.'
)
ap
.
add_argument
(
'--software-root'
,
help
=
'The software_root directory location.'
)
ap
.
add_argument
(
'--master-url'
,
help
=
'The master server URL. Mandatory.'
)
ap
.
add_argument
(
'--computer-id'
,
help
=
'The computer id defined in the server.'
)
ap
.
add_argument
(
'--supervisord-socket'
,
help
=
'The socket supervisor will use.'
)
ap
.
add_argument
(
'--supervisord-configuration-path'
,
help
=
'The location where supervisord configuration will be stored.'
)
ap
.
add_argument
(
'--buildout'
,
default
=
None
,
help
=
'Location of buildout binary.'
)
ap
.
add_argument
(
'--pidfile'
,
help
=
'The location where pidfile will be created.'
)
ap
.
add_argument
(
'--logfile'
,
help
=
'The location where slapgrid logfile will be created.'
)
ap
.
add_argument
(
'--key_file'
,
help
=
'SSL Authorisation key file.'
)
ap
.
add_argument
(
'--cert_file'
,
help
=
'SSL Authorisation certificate file.'
)
ap
.
add_argument
(
'--signature_private_key_file'
,
help
=
'Signature private key file.'
)
ap
.
add_argument
(
'--master_ca_file'
,
help
=
'Root certificate of SlapOS master key.'
)
ap
.
add_argument
(
'--certificate_repository_path'
,
help
=
'Path to directory where downloaded certificates would be stored.'
)
ap
.
add_argument
(
'-v'
,
'--verbose'
,
action
=
'store_true'
,
help
=
'Be verbose.'
)
ap
.
add_argument
(
'--maximum-periodicity'
,
type
=
int
,
default
=
None
,
help
=
'Periodicity at which buildout should be run in instance.'
)
ap
.
add_argument
(
'--promise-timeout'
,
type
=
int
,
default
=
3
,
help
=
'Promise timeout in seconds.'
)
ap
.
add_argument
(
'--now'
,
action
=
'store_true'
,
help
=
'Launch slapgrid without delay. Default behavior.'
)
ap
.
add_argument
(
'--all'
,
action
=
'store_true'
,
help
=
'Launch slapgrid to process all Software Releases '
'and/or Computer Partitions.'
)
ap
.
add_argument
(
'--only-sr'
,
help
=
'Force the update of a single software release (use url hash), '
'even if is already installed. This option will make all other '
'sofware releases be ignored.'
)
ap
.
add_argument
(
'--only-cp'
,
help
=
'Update a single or a list of computer partitions '
'(ie.:slappartX, slappartY), '
'this option will make all other computer partitions be ignored.'
)
ap
.
add_argument
(
'configuration_file'
,
type
=
argparse
.
FileType
(),
help
=
'SlapOS configuration file.'
)
# Deprecated options
ap
.
add_argument
(
'-c'
,
'--console'
,
action
=
'store_true'
,
help
=
"Deprecated, doesn't do anything."
)
ap
.
add_argument
(
'--develop'
,
action
=
'store_true'
,
help
=
'Deprecated, same as --all.'
)
ap
.
add_argument
(
'--only_sr'
,
help
=
'Deprecated, same as --only-sr.'
)
ap
.
add_argument
(
'--only_cp'
,
help
=
'Deprecated, same as --only-cp.'
)
ap
.
add_argument
(
'--maximal_delay'
,
help
=
'Deprecated. Will only work from configuration file in the future.'
)
if
not
argument_tuple
:
args
=
ap
.
parse_args
()
else
:
args
=
ap
.
parse_args
(
list
(
argument_tuple
))
return
args
def
setup_logger
(
options
):
logger
=
logging
.
getLogger
(
__name__
)
if
options
.
get
(
'logfile'
):
handler
=
logging
.
FileHandler
(
options
[
'logfile'
])
else
:
handler
=
logging
.
StreamHandler
()
if
options
[
'verbose'
]:
handler
.
setLevel
(
logging
.
DEBUG
)
else
:
handler
.
setLevel
(
logging
.
INFO
)
formatter
=
logging
.
Formatter
(
fmt
=
'%(asctime)s %(name)-18s: '
'%(levelname)-8s %(message)s'
,
datefmt
=
'%Y-%m-%dT%H:%M:%S'
)
handler
.
setFormatter
(
formatter
)
logger
.
addHandler
(
handler
)
return
logger
def
parseArgumentTupleAndReturnSlapgridObject
(
*
argument_tuple
):
"""Returns a new instance of slapgrid.Slapgrid created with argument+config parameters.
Also returns the pidfile path, and configures logger.
"""
args
=
parse_arguments
(
*
argument_tuple
)
configp
=
ConfigParser
.
SafeConfigParser
()
configp
.
readfp
(
args
.
configuration_file
)
options
=
merged_options
(
args
,
configp
)
logger
=
setup_logger
(
options
)
check_missing_parameters
(
options
)
check_missing_files
(
options
)
random_delay
(
options
,
logger
=
logger
)
slapgrid_object
=
create_slapgrid_object
(
options
,
logger
=
logger
)
return
slapgrid_object
,
options
.
get
(
'pidfile'
)
def
realRun
(
argument_tuple
,
method
):
slapgrid_object
,
pidfile
=
parseArgumentTupleAndReturnSlapgridObject
(
*
argument_tuple
)
if
pidfile
:
setRunning
(
logger
=
slapgrid_object
.
logger
,
pidfile
=
pidfile
)
try
:
return
getattr
(
slapgrid_object
,
method
)()
finally
:
if
pidfile
:
setFinished
(
pidfile
)
def
runSoftwareRelease
(
*
argument_tuple
):
"""Hook for entry point to process Software Releases"""
sys
.
exit
(
realRun
(
argument_tuple
,
'processSoftwareReleaseList'
))
def
runComputerPartition
(
*
argument_tuple
):
"""Hook for entry point to process Computer Partitions"""
sys
.
exit
(
realRun
(
argument_tuple
,
'processComputerPartitionList'
))
def
runUsageReport
(
*
argument_tuple
):
"""Hook for entry point to process Usage Reports"""
sys
.
exit
(
realRun
(
argument_tuple
,
'agregateAndSendUsage'
))
slapos/cli_legacy/svcbackend.py
deleted
100644 → 0
View file @
65d7a5d4
# -*- coding: utf-8 -*-
# vim: set et sts=2:
##############################################################################
#
# Copyright (c) 2010, 2011, 2012 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 advised 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
logging
import
os
from
optparse
import
OptionParser
import
ConfigParser
from
slapos.grid.svcbackend
import
launchSupervisord
def
getOptionDict
(
*
argument_tuple
):
usage
=
"""
Typical usage:
* %prog CONFIGURATION_FILE [arguments passed to supervisor]
"""
.
strip
()
parser
=
OptionParser
(
usage
=
usage
)
# Parses arguments
if
argument_tuple
:
(
argument_option_instance
,
argument_list
)
=
parser
.
parse_args
(
list
(
argument_tuple
))
else
:
# No arguments given to entry point : we parse sys.argv.
(
argument_option_instance
,
argument_list
)
=
parser
.
parse_args
()
if
not
argument_list
:
parser
.
error
(
"Configuration file is obligatory. Consult documentation by calling with -h."
)
configuration_file
=
argument_list
[
0
]
if
not
os
.
path
.
exists
(
configuration_file
):
parser
.
error
(
"Could not read configuration file : %s"
%
configuration_file
)
slapgrid_configuration
=
ConfigParser
.
SafeConfigParser
()
slapgrid_configuration
.
read
(
configuration_file
)
# Merges the two dictionnaries
option_dict
=
dict
(
slapgrid_configuration
.
items
(
"slapos"
))
# Supervisord configuration location
option_dict
.
setdefault
(
'supervisord_configuration_path'
,
os
.
path
.
join
(
option_dict
[
'instance_root'
],
'etc'
,
'supervisord.conf'
))
# Supervisord socket
option_dict
.
setdefault
(
'supervisord_socket'
,
os
.
path
.
join
(
option_dict
[
'instance_root'
],
'supervisord.socket'
))
return
option_dict
,
argument_list
[
1
:]
def
supervisorctl
(
*
argument_tuple
):
logger
=
logging
.
getLogger
(
'SVCBackend'
)
logger
.
setLevel
(
logging
.
INFO
)
handler
=
logging
.
StreamHandler
()
logger
.
addHandler
(
handler
)
option_dict
,
args
=
getOptionDict
(
*
argument_tuple
)
import
supervisor.supervisorctl
launchSupervisord
(
socket
=
option_dict
[
'supervisord_socket'
],
configuration_file
=
option_dict
[
'supervisord_configuration_path'
],
logger
=
logger
)
supervisor
.
supervisorctl
.
main
(
args
=
[
'-c'
,
option_dict
[
'supervisord_configuration_path'
]]
+
args
)
def
supervisord
(
*
argument_tuple
):
logger
=
logging
.
getLogger
(
'SVCBackend'
)
logger
.
setLevel
(
logging
.
INFO
)
handler
=
logging
.
StreamHandler
()
logger
.
addHandler
(
handler
)
option_dict
,
_
=
getOptionDict
(
*
argument_tuple
)
launchSupervisord
(
socket
=
option_dict
[
'supervisord_socket'
],
configuration_file
=
option_dict
[
'supervisord_configuration_path'
],
logger
=
logger
)
slapos/cli_legacy/util.py
deleted
100644 → 0
View file @
65d7a5d4
# -*- coding: utf-8 -*-
import
ConfigParser
import
os
def
get_config_parser
(
path
):
configp
=
ConfigParser
.
SafeConfigParser
()
path
=
os
.
path
.
expanduser
(
path
)
if
not
os
.
path
.
isfile
(
path
):
raise
OSError
(
'Specified configuration file %s does not exist. Exiting.'
%
path
)
configp
.
read
(
path
)
return
configp
slapos/tests/slapgrid.py
View file @
5385f95f
...
@@ -46,7 +46,6 @@ from mock import patch
...
@@ -46,7 +46,6 @@ from mock import patch
import
slapos.slap.slap
import
slapos.slap.slap
import
slapos.grid.utils
import
slapos.grid.utils
from
slapos.grid
import
slapgrid
from
slapos.grid
import
slapgrid
from
slapos.cli_legacy.slapgrid
import
parseArgumentTupleAndReturnSlapgridObject
from
slapos.grid.utils
import
md5digest
from
slapos.grid.utils
import
md5digest
from
slapos.grid.watchdog
import
Watchdog
from
slapos.grid.watchdog
import
Watchdog
from
slapos.grid
import
SlapObject
from
slapos.grid
import
SlapObject
...
@@ -543,7 +542,8 @@ class TestSlapgridCPWithMaster(MasterMixin, unittest.TestCase):
...
@@ -543,7 +542,8 @@ class TestSlapgridCPWithMaster(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'buildout.cfg'
,
'software_release'
,
'worked'
])
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.slapgrid'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertEqual
(
computer
.
sequence
,
self
.
assertEqual
(
computer
.
sequence
,
[
'getFullComputerInformation'
,
'availableComputerPartition'
,
[
'getFullComputerInformation'
,
'availableComputerPartition'
,
...
@@ -559,7 +559,8 @@ class TestSlapgridCPWithMaster(MasterMixin, unittest.TestCase):
...
@@ -559,7 +559,8 @@ class TestSlapgridCPWithMaster(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'buildout.cfg'
,
'software_release'
,
'worked'
])
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.slapgrid'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertEqual
(
computer
.
sequence
,
self
.
assertEqual
(
computer
.
sequence
,
[
'getFullComputerInformation'
,
'availableComputerPartition'
,
[
'getFullComputerInformation'
,
'availableComputerPartition'
,
...
@@ -588,7 +589,8 @@ class TestSlapgridCPWithMaster(MasterMixin, unittest.TestCase):
...
@@ -588,7 +589,8 @@ class TestSlapgridCPWithMaster(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
partition
.
partition_path
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
.
partition_path
),
[
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
wrapper_log
=
os
.
path
.
join
(
partition
.
partition_path
,
'.0_wrapper.log'
)
wrapper_log
=
os
.
path
.
join
(
partition
.
partition_path
,
'.0_wrapper.log'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
partition
.
software
.
software_hash
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
partition
.
software
.
software_hash
])
...
@@ -623,7 +625,8 @@ chmod 755 etc/run/wrapper
...
@@ -623,7 +625,8 @@ chmod 755 etc/run/wrapper
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
[
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
...
@@ -637,7 +640,8 @@ chmod 755 etc/run/wrapper
...
@@ -637,7 +640,8 @@ chmod 755 etc/run/wrapper
self
.
assertEqual
(
self
.
launchSlapgrid
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
launchSlapgrid
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
[
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
self
.
assertLogContent
(
wrapper_log
,
'Signal handler called with signal 15'
)
self
.
assertLogContent
(
wrapper_log
,
'Signal handler called with signal 15'
)
self
.
assertEqual
(
computer
.
sequence
,
self
.
assertEqual
(
computer
.
sequence
,
[
'getFullComputerInformation'
,
'availableComputerPartition'
,
[
'getFullComputerInformation'
,
'availableComputerPartition'
,
...
@@ -675,7 +679,8 @@ chmod 755 etc/run/wrapper
...
@@ -675,7 +679,8 @@ chmod 755 etc/run/wrapper
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
[
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
...
@@ -694,7 +699,8 @@ exit 1
...
@@ -694,7 +699,8 @@ exit 1
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
[
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
self
.
assertLogContent
(
wrapper_log
,
'Signal handler called with signal 15'
)
self
.
assertLogContent
(
wrapper_log
,
'Signal handler called with signal 15'
)
self
.
assertEqual
(
computer
.
sequence
,
self
.
assertEqual
(
computer
.
sequence
,
[
'getFullComputerInformation'
,
[
'getFullComputerInformation'
,
...
@@ -711,7 +717,7 @@ exit 1
...
@@ -711,7 +717,7 @@ exit 1
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'
.slapgrid'
,
'
buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
[
instance
.
software
.
software_hash
])
self
.
assertEqual
(
computer
.
sequence
,
self
.
assertEqual
(
computer
.
sequence
,
...
@@ -725,7 +731,8 @@ exit 1
...
@@ -725,7 +731,8 @@ exit 1
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.0_wrapper.log'
,
'etc'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_wrapper.log'
,
'etc'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
[
instance
.
software
.
software_hash
])
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
...
@@ -752,7 +759,7 @@ exit 1
...
@@ -752,7 +759,7 @@ exit 1
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
dummy_file_name
])
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.slapgrid'
,
dummy_file_name
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertEqual
(
computer
.
sequence
,
self
.
assertEqual
(
computer
.
sequence
,
[
'getFullComputerInformation'
,
[
'getFullComputerInformation'
,
...
@@ -796,7 +803,8 @@ class TestSlapgridCPWithMasterWatchdog(MasterMixin, unittest.TestCase):
...
@@ -796,7 +803,8 @@ class TestSlapgridCPWithMasterWatchdog(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
partition
.
partition_path
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
.
partition_path
),
[
'.0_daemon.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_daemon.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
daemon_log
=
os
.
path
.
join
(
partition
.
partition_path
,
'.0_daemon.log'
)
daemon_log
=
os
.
path
.
join
(
partition
.
partition_path
,
'.0_daemon.log'
)
self
.
assertLogContent
(
daemon_log
,
'Failing'
)
self
.
assertLogContent
(
daemon_log
,
'Failing'
)
self
.
assertIsCreated
(
self
.
watchdog_banged
)
self
.
assertIsCreated
(
self
.
watchdog_banged
)
...
@@ -840,7 +848,8 @@ class TestSlapgridCPWithMasterWatchdog(MasterMixin, unittest.TestCase):
...
@@ -840,7 +848,8 @@ class TestSlapgridCPWithMasterWatchdog(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
partition
.
partition_path
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
.
partition_path
),
[
'.0_daemon.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_daemon.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
daemon_log
=
os
.
path
.
join
(
partition
.
partition_path
,
'.0_daemon.log'
)
daemon_log
=
os
.
path
.
join
(
partition
.
partition_path
,
'.0_daemon.log'
)
self
.
assertLogContent
(
daemon_log
,
'Failing'
)
self
.
assertLogContent
(
daemon_log
,
'Failing'
)
self
.
assertIsNotCreated
(
self
.
watchdog_banged
)
self
.
assertIsNotCreated
(
self
.
watchdog_banged
)
...
@@ -1127,7 +1136,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
...
@@ -1127,7 +1136,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
[
'.
slapgrid'
,
'.
timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
timestamp_path
=
os
.
path
.
join
(
instance
.
partition_path
,
'.timestamp'
)
timestamp_path
=
os
.
path
.
join
(
instance
.
partition_path
,
'.timestamp'
)
self
.
setSlapgrid
()
self
.
setSlapgrid
()
...
@@ -1146,7 +1155,8 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
...
@@ -1146,7 +1155,8 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertEqual
(
self
.
launchSlapgrid
(
develop
=
True
),
self
.
assertEqual
(
self
.
launchSlapgrid
(
develop
=
True
),
...
@@ -1167,7 +1177,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
...
@@ -1167,7 +1177,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
[
'.
slapgrid'
,
'.
timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
instance
.
timestamp
=
str
(
int
(
timestamp
)
-
1
)
instance
.
timestamp
=
str
(
int
(
timestamp
)
-
1
)
self
.
assertEqual
(
self
.
launchSlapgrid
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
launchSlapgrid
(),
slapgrid
.
SLAPGRID_SUCCESS
)
...
@@ -1184,7 +1194,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
...
@@ -1184,7 +1194,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
[
'.
slapgrid'
,
'.
timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
instance
.
timestamp
=
str
(
int
(
timestamp
)
+
1
)
instance
.
timestamp
=
str
(
int
(
timestamp
)
+
1
)
self
.
assertEqual
(
self
.
launchSlapgrid
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
launchSlapgrid
(),
slapgrid
.
SLAPGRID_SUCCESS
)
...
@@ -1205,7 +1215,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
...
@@ -1205,7 +1215,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
[
'.
slapgrid'
,
'.
timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
[
instance
.
software
.
software_hash
])
instance
.
timestamp
=
None
instance
.
timestamp
=
None
...
@@ -1231,7 +1241,8 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
...
@@ -1231,7 +1241,8 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
launchSlapgrid
()
self
.
launchSlapgrid
()
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
time
.
sleep
(
2
)
time
.
sleep
(
2
)
# dummify install() so that it doesn't actually do anything so that it
# dummify install() so that it doesn't actually do anything so that it
...
@@ -1240,9 +1251,8 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
...
@@ -1240,9 +1251,8 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
launchSlapgrid
()
self
.
launchSlapgrid
()
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
def
test_one_partition_periodicity_from_file_does_not_disturb_others
(
self
):
def
test_one_partition_periodicity_from_file_does_not_disturb_others
(
self
):
"""
"""
...
@@ -1514,7 +1524,8 @@ class TestSlapgridUsageReport(MasterMixin, unittest.TestCase):
...
@@ -1514,7 +1524,8 @@ class TestSlapgridUsageReport(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
[
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
...
@@ -1582,7 +1593,8 @@ class TestSlapgridUsageReport(MasterMixin, unittest.TestCase):
...
@@ -1582,7 +1593,8 @@ class TestSlapgridUsageReport(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
[
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
...
@@ -1597,12 +1609,14 @@ class TestSlapgridUsageReport(MasterMixin, unittest.TestCase):
...
@@ -1597,12 +1609,14 @@ class TestSlapgridUsageReport(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
agregateAndSendUsage
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertEqual
(
self
.
grid
.
agregateAndSendUsage
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
[
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
self
.
assertItemsEqual
(
os
.
listdir
(
instance
.
partition_path
),
[
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.0_wrapper.log'
,
'buildout.cfg'
,
'etc'
,
'software_release'
,
'worked'
])
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertEqual
(
computer
.
sequence
,
self
.
assertEqual
(
computer
.
sequence
,
...
@@ -1710,187 +1724,6 @@ buildout = /path/to/buildout/binary
...
@@ -1710,187 +1724,6 @@ buildout = /path/to/buildout/binary
shutil
.
rmtree
(
self
.
certificate_repository_path
,
True
)
shutil
.
rmtree
(
self
.
certificate_repository_path
,
True
)
class
TestSlapgridArgumentTuple
(
SlapgridInitialization
):
"""
Test suite about arguments given to slapgrid command.
"""
def
test_empty_argument_tuple
(
self
):
"""
Raises if the argument list if empty and without configuration file.
"""
parser
=
parseArgumentTupleAndReturnSlapgridObject
# XXX: SystemExit is too generic exception, it is only known that
# something is wrong
self
.
assertRaises
(
SystemExit
,
parser
,
*
())
def
test_default_argument_tuple
(
self
):
"""
Check if we can have the slapgrid object returned with the minimum
arguments.
"""
parser
=
parseArgumentTupleAndReturnSlapgridObject
return_list
=
parser
(
*
self
.
default_arg_tuple
)
self
.
assertEquals
(
2
,
len
(
return_list
))
def
test_signature_private_key_file_non_exists
(
self
):
"""
Raises if the signature_private_key_file does not exists.
"""
parser
=
parseArgumentTupleAndReturnSlapgridObject
argument_tuple
=
(
"--signature_private_key_file"
,
"/non/exists/path"
)
+
self
.
default_arg_tuple
self
.
assertRaisesRegexp
(
RuntimeError
,
"File '/non/exists/path' does not exist."
,
parser
,
*
argument_tuple
)
def
test_signature_private_key_file
(
self
):
"""
Check if the signature private key argument value is available on
slapgrid object.
"""
parser
=
parseArgumentTupleAndReturnSlapgridObject
argument_tuple
=
(
"--signature_private_key_file"
,
self
.
signature_key_file_descriptor
.
name
)
+
self
.
default_arg_tuple
slapgrid_object
=
parser
(
*
argument_tuple
)[
0
]
self
.
assertEquals
(
self
.
signature_key_file_descriptor
.
name
,
slapgrid_object
.
signature_private_key_file
)
def
test_backward_compatibility_all
(
self
):
"""
Check if giving --all triggers "develop" option.
"""
parser
=
parseArgumentTupleAndReturnSlapgridObject
slapgrid_object
=
parser
(
'--all'
,
*
self
.
default_arg_tuple
)[
0
]
self
.
assertTrue
(
slapgrid_object
.
develop
)
def
test_backward_compatibility_not_all
(
self
):
"""
Check if not giving --all neither --develop triggers "develop"
option to be False.
"""
parser
=
parseArgumentTupleAndReturnSlapgridObject
slapgrid_object
=
parser
(
*
self
.
default_arg_tuple
)[
0
]
self
.
assertFalse
(
slapgrid_object
.
develop
)
def
test_upload_binary_cache_blacklist
(
self
):
"""
Check if giving --upload-to-binary-cache-url-blacklist triggers option.
"""
self
.
slapos_config_descriptor
.
write
(
"""
[slapos]
software_root = /opt/slapgrid
instance_root = /srv/slapgrid
master_url = https://slap.vifib.com/
computer_id = your computer id
buildout = /path/to/buildout/binary
[networkcache]
upload-to-binary-cache-url-blacklist =
http://1
http://2/bla
"""
)
self
.
slapos_config_descriptor
.
seek
(
0
)
slapgrid_object
=
parseArgumentTupleAndReturnSlapgridObject
(
*
self
.
default_arg_tuple
)[
0
]
self
.
assertEqual
(
slapgrid_object
.
upload_to_binary_cache_url_blacklist
,
[
'http://1'
,
'http://2/bla'
]
)
self
.
assertEqual
(
slapgrid_object
.
download_from_binary_cache_url_blacklist
,
[]
)
def
test_download_binary_cache_blacklist
(
self
):
"""
Check if giving --download-from-binary-cache-url-blacklist triggers option.
"""
self
.
slapos_config_descriptor
.
write
(
"""
[slapos]
software_root = /opt/slapgrid
instance_root = /srv/slapgrid
master_url = https://slap.vifib.com/
computer_id = your computer id
buildout = /path/to/buildout/binary
[networkcache]
download-from-binary-cache-url-blacklist =
http://1
http://2/bla
"""
)
self
.
slapos_config_descriptor
.
seek
(
0
)
slapgrid_object
=
parseArgumentTupleAndReturnSlapgridObject
(
*
self
.
default_arg_tuple
)[
0
]
self
.
assertEqual
(
slapgrid_object
.
upload_to_binary_cache_url_blacklist
,
[]
)
self
.
assertEqual
(
slapgrid_object
.
download_from_binary_cache_url_blacklist
,
[
'http://1'
,
'http://2/bla'
]
)
def
test_upload_download_binary_cache_blacklist
(
self
):
"""
Check if giving both --download-from-binary-cache-url-blacklist
and --upload-to-binary-cache-url-blacklist triggers options.
"""
self
.
slapos_config_descriptor
.
write
(
"""
[slapos]
software_root = /opt/slapgrid
instance_root = /srv/slapgrid
master_url = https://slap.vifib.com/
computer_id = your computer id
buildout = /path/to/buildout/binary
[networkcache]
upload-to-binary-cache-url-blacklist =
http://1
http://2/bla
download-from-binary-cache-url-blacklist =
http://3
http://4/bla
"""
)
self
.
slapos_config_descriptor
.
seek
(
0
)
slapgrid_object
=
parseArgumentTupleAndReturnSlapgridObject
(
*
self
.
default_arg_tuple
)[
0
]
self
.
assertEqual
(
slapgrid_object
.
upload_to_binary_cache_url_blacklist
,
[
'http://1'
,
'http://2/bla'
]
)
self
.
assertEqual
(
slapgrid_object
.
download_from_binary_cache_url_blacklist
,
[
'http://3'
,
'http://4/bla'
]
)
def
test_backward_compatibility_download_binary_cache_blacklist
(
self
):
"""
Check if giving both --binary-cache-url-blacklist
and --upload-to-binary-cache-blacklist triggers options.
"""
self
.
slapos_config_descriptor
.
write
(
"""
[slapos]
software_root = /opt/slapgrid
instance_root = /srv/slapgrid
master_url = https://slap.vifib.com/
computer_id = your computer id
buildout = /path/to/buildout/binary
[networkcache]
binary-cache-url-blacklist =
http://1
http://2/bla
"""
)
self
.
slapos_config_descriptor
.
seek
(
0
)
slapgrid_object
=
parseArgumentTupleAndReturnSlapgridObject
(
*
self
.
default_arg_tuple
)[
0
]
self
.
assertEqual
(
slapgrid_object
.
upload_to_binary_cache_url_blacklist
,
[]
)
self
.
assertEqual
(
slapgrid_object
.
download_from_binary_cache_url_blacklist
,
[
'http://1'
,
'http://2/bla'
]
)
class
TestSlapgridCPWithMasterPromise
(
MasterMixin
,
unittest
.
TestCase
):
class
TestSlapgridCPWithMasterPromise
(
MasterMixin
,
unittest
.
TestCase
):
def
test_one_failing_promise
(
self
):
def
test_one_failing_promise
(
self
):
computer
=
ComputerForTest
(
self
.
software_root
,
self
.
instance_root
)
computer
=
ComputerForTest
(
self
.
software_root
,
self
.
instance_root
)
...
...
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