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
Léo-Paul Géneau
slapos.core
Commits
f8190f73
Commit
f8190f73
authored
May 13, 2014
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[slapos.core] Remove cli_legacy
parent
0299560c
Changes
10
Hide 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 @
f8190f73
...
...
@@ -73,17 +73,7 @@ setup(name=name,
entry_points
=
{
'console_scripts'
:
[
'slapos-watchdog = slapos.grid.watchdog:main'
,
'slapproxy = slapos.cli_legacy.proxy_start: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'
:
[
# Utilities
...
...
slapos/cli_legacy/__init__.py
deleted
100644 → 0
View file @
0299560c
slapos/cli_legacy/bang.py
deleted
100644 → 0
View file @
0299560c
# -*- 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 @
0299560c
# -*- 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 @
0299560c
# -*- 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 @
0299560c
# -*- 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 @
0299560c
# -*- 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 @
0299560c
# -*- 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 @
0299560c
# -*- 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 @
f8190f73
...
...
@@ -46,7 +46,6 @@ from mock import patch
import
slapos.slap.slap
import
slapos.grid.utils
from
slapos.grid
import
slapgrid
from
slapos.cli_legacy.slapgrid
import
parseArgumentTupleAndReturnSlapgridObject
from
slapos.grid.utils
import
md5digest
from
slapos.grid.watchdog
import
Watchdog
from
slapos.grid
import
SlapObject
...
...
@@ -543,7 +542,8 @@ class TestSlapgridCPWithMaster(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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
.
assertEqual
(
computer
.
sequence
,
[
'getFullComputerInformation'
,
'availableComputerPartition'
,
...
...
@@ -559,7 +559,8 @@ class TestSlapgridCPWithMaster(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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
.
assertEqual
(
computer
.
sequence
,
[
'getFullComputerInformation'
,
'availableComputerPartition'
,
...
...
@@ -588,7 +589,8 @@ class TestSlapgridCPWithMaster(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
partition
.
software
.
software_hash
])
...
...
@@ -623,7 +625,8 @@ chmod 755 etc/run/wrapper
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
...
...
@@ -637,7 +640,8 @@ chmod 755 etc/run/wrapper
self
.
assertEqual
(
self
.
launchSlapgrid
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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
.
assertEqual
(
computer
.
sequence
,
[
'getFullComputerInformation'
,
'availableComputerPartition'
,
...
...
@@ -675,7 +679,8 @@ chmod 755 etc/run/wrapper
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
...
...
@@ -694,7 +699,8 @@ exit 1
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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
.
assertEqual
(
computer
.
sequence
,
[
'getFullComputerInformation'
,
...
...
@@ -711,7 +717,7 @@ exit 1
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
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
),
[
instance
.
software
.
software_hash
])
self
.
assertEqual
(
computer
.
sequence
,
...
...
@@ -725,7 +731,8 @@ exit 1
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
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
),
[
instance
.
software
.
software_hash
])
wrapper_log
=
os
.
path
.
join
(
instance
.
partition_path
,
'.0_wrapper.log'
)
...
...
@@ -752,7 +759,7 @@ exit 1
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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
.
assertEqual
(
computer
.
sequence
,
[
'getFullComputerInformation'
,
...
...
@@ -796,7 +803,8 @@ class TestSlapgridCPWithMasterWatchdog(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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'
)
self
.
assertLogContent
(
daemon_log
,
'Failing'
)
self
.
assertIsCreated
(
self
.
watchdog_banged
)
...
...
@@ -840,7 +848,8 @@ class TestSlapgridCPWithMasterWatchdog(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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'
)
self
.
assertLogContent
(
daemon_log
,
'Failing'
)
self
.
assertIsNotCreated
(
self
.
watchdog_banged
)
...
...
@@ -1127,7 +1136,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
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
])
timestamp_path
=
os
.
path
.
join
(
instance
.
partition_path
,
'.timestamp'
)
self
.
setSlapgrid
()
...
...
@@ -1146,7 +1155,8 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
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
.
assertEqual
(
self
.
launchSlapgrid
(
develop
=
True
),
...
...
@@ -1167,7 +1177,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
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
])
instance
.
timestamp
=
str
(
int
(
timestamp
)
-
1
)
self
.
assertEqual
(
self
.
launchSlapgrid
(),
slapgrid
.
SLAPGRID_SUCCESS
)
...
...
@@ -1184,7 +1194,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
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
])
instance
.
timestamp
=
str
(
int
(
timestamp
)
+
1
)
self
.
assertEqual
(
self
.
launchSlapgrid
(),
slapgrid
.
SLAPGRID_SUCCESS
)
...
...
@@ -1205,7 +1215,7 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
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
])
instance
.
timestamp
=
None
...
...
@@ -1231,7 +1241,8 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
launchSlapgrid
()
partition
=
os
.
path
.
join
(
self
.
instance_root
,
'0'
)
self
.
assertItemsEqual
(
os
.
listdir
(
partition
),
[
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
[
'.slapgrid'
,
'.timestamp'
,
'buildout.cfg'
,
'software_release'
,
'worked'
])
time
.
sleep
(
2
)
# dummify install() so that it doesn't actually do anything so that it
...
...
@@ -1240,9 +1251,8 @@ class TestSlapgridCPPartitionProcessing(MasterMixin, unittest.TestCase):
self
.
launchSlapgrid
()
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
):
"""
...
...
@@ -1514,7 +1524,8 @@ class TestSlapgridUsageReport(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
...
...
@@ -1582,7 +1593,8 @@ class TestSlapgridUsageReport(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
processComputerPartitionList
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
software_root
),
[
instance
.
software
.
software_hash
])
...
...
@@ -1597,12 +1609,14 @@ class TestSlapgridUsageReport(MasterMixin, unittest.TestCase):
self
.
assertEqual
(
self
.
grid
.
agregateAndSendUsage
(),
slapgrid
.
SLAPGRID_SUCCESS
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertItemsEqual
(
os
.
listdir
(
self
.
instance_root
),
[
'0'
,
'etc'
,
'var'
])
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'
)
self
.
assertLogContent
(
wrapper_log
,
'Working'
)
self
.
assertEqual
(
computer
.
sequence
,
...
...
@@ -1710,187 +1724,6 @@ buildout = /path/to/buildout/binary
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
):
def
test_one_failing_promise
(
self
):
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