Commit 2a0bbcc9 authored by Łukasz Nowak's avatar Łukasz Nowak

Use only externally provided buildout.

parent 229930c9
...@@ -45,13 +45,14 @@ REQUIRED_COMPUTER_PARTITION_PERMISSION = '0750' ...@@ -45,13 +45,14 @@ REQUIRED_COMPUTER_PARTITION_PERMISSION = '0750'
class Software(object): class Software(object):
"""This class is responsible of installing a software release""" """This class is responsible of installing a software release"""
def __init__(self, url, software_root, console): def __init__(self, url, software_root, console, buildout):
"""Initialisation of class parameters """Initialisation of class parameters
""" """
self.url = url self.url = url
self.software_root = software_root self.software_root = software_root
self.software_path = os.path.join(self.software_root, self.software_path = os.path.join(self.software_root,
getSoftwareUrlHash(self.url)) getSoftwareUrlHash(self.url))
self.buildout = buildout
self.logger = logging.getLogger('BuildoutManager') self.logger = logging.getLogger('BuildoutManager')
self.console = console self.console = console
...@@ -74,7 +75,7 @@ class Software(object): ...@@ -74,7 +75,7 @@ class Software(object):
buildout_parameter_list = [ buildout_parameter_list = [
'buildout:directory=%s' % self.software_path, 'buildout:directory=%s' % self.software_path,
'-c', self.url] '-c', self.url]
bootstrapBuildout(self.software_path, bootstrapBuildout(self.software_path, self.buildout,
additional_buildout_parametr_list=buildout_parameter_list, additional_buildout_parametr_list=buildout_parameter_list,
console=self.console) console=self.console)
launchBuildout(self.software_path, launchBuildout(self.software_path,
...@@ -106,10 +107,12 @@ class Partition(object): ...@@ -106,10 +107,12 @@ class Partition(object):
partition_id, partition_id,
server_url, server_url,
software_release_url, software_release_url,
buildout,
certificate_repository_path=None, certificate_repository_path=None,
console=False console=False
): ):
"""Initialisation of class parameters""" """Initialisation of class parameters"""
self.buildout = buildout
self.software_path = software_path self.software_path = software_path
self.instance_path = instance_path self.instance_path = instance_path
self.run_path = os.path.join(self.instance_path, 'etc', 'run') self.run_path = os.path.join(self.instance_path, 'etc', 'run')
...@@ -241,8 +244,9 @@ class Partition(object): ...@@ -241,8 +244,9 @@ class Partition(object):
if not os.path.exists(buildout_binary): if not os.path.exists(buildout_binary):
# use own buildout generation # use own buildout generation
bootstrapBuildout(self.instance_path, ['buildout:bin-directory=%s' % bootstrapBuildout(self.instance_path, self.buildout,
os.path.join(self.instance_path, 'sbin')], console=self.console) ['buildout:bin-directory=%s'% os.path.join(self.instance_path,
'sbin')], console=self.console)
buildout_binary = os.path.join(self.instance_path, 'sbin', 'buildout') buildout_binary = os.path.join(self.instance_path, 'sbin', 'buildout')
# Launches buildout # Launches buildout
launchBuildout(self.instance_path, launchBuildout(self.instance_path,
......
...@@ -87,6 +87,8 @@ def parseArgumentTupleAndReturnSlapgridObject(*argument_tuple): ...@@ -87,6 +87,8 @@ def parseArgumentTupleAndReturnSlapgridObject(*argument_tuple):
parser.add_argument("--usage-report-periodicity", parser.add_argument("--usage-report-periodicity",
type=int, default="24", type=int, default="24",
help="The periodicity of usage report sends, in hours.") help="The periodicity of usage report sends, in hours.")
parser.add_argument("--buildout", help="Location of buildout binary.",
default="buildout")
parser.add_argument("--pidfile", parser.add_argument("--pidfile",
help="The location where pidfile will be created.") help="The location where pidfile will be created.")
parser.add_argument("--logfile", parser.add_argument("--logfile",
...@@ -195,7 +197,8 @@ def parseArgumentTupleAndReturnSlapgridObject(*argument_tuple): ...@@ -195,7 +197,8 @@ def parseArgumentTupleAndReturnSlapgridObject(*argument_tuple):
cert_file=cert_file, cert_file=cert_file,
master_ca_file=master_ca_file, master_ca_file=master_ca_file,
certificate_repository_path=certificate_repository_path, certificate_repository_path=certificate_repository_path,
console=option_dict['console']), console=option_dict['console'],
buildout=option_dict['buildout']),
option_dict]) option_dict])
...@@ -259,6 +262,7 @@ class Slapgrid(object): ...@@ -259,6 +262,7 @@ class Slapgrid(object):
supervisord_socket, supervisord_socket,
supervisord_configuration_path, supervisord_configuration_path,
usage_report_periodicity, usage_report_periodicity,
buildout,
key_file=None, key_file=None,
cert_file=None, cert_file=None,
master_ca_file=None, master_ca_file=None,
...@@ -289,6 +293,7 @@ class Slapgrid(object): ...@@ -289,6 +293,7 @@ class Slapgrid(object):
self.supervisord_configuration_directory = \ self.supervisord_configuration_directory = \
os.path.join(self.instance_etc_directory, 'supervisord.conf.d') os.path.join(self.instance_etc_directory, 'supervisord.conf.d')
self.console = console self.console = console
self.buildout = buildout
def checkEnvironmentAndCreateStructure(self): def checkEnvironmentAndCreateStructure(self):
"""Checks for software_root and instance_root existence, then creates """Checks for software_root and instance_root existence, then creates
...@@ -347,8 +352,7 @@ class Slapgrid(object): ...@@ -347,8 +352,7 @@ class Slapgrid(object):
software_release.building() software_release.building()
software_release_uri = software_release.getURI() software_release_uri = software_release.getURI()
Software(url=software_release_uri, software_root=self.software_root, Software(url=software_release_uri, software_root=self.software_root,
console=self.console console=self.console, buildout=self.buildout).install()
).install()
except (SystemExit, KeyboardInterrupt): except (SystemExit, KeyboardInterrupt):
exception = traceback.format_exc() exception = traceback.format_exc()
software_release.error(exception) software_release.error(exception)
...@@ -399,8 +403,7 @@ class Slapgrid(object): ...@@ -399,8 +403,7 @@ class Slapgrid(object):
server_url=self.master_url, server_url=self.master_url,
software_release_url=software_url, software_release_url=software_url,
certificate_repository_path=self.certificate_repository_path, certificate_repository_path=self.certificate_repository_path,
console=self.console console=self.console, buildout=self.buildout)
)
# There are no conditions to try to instanciate partition # There are no conditions to try to instanciate partition
try: try:
computer_partition_state = computer_partition.getState() computer_partition_state = computer_partition.getState()
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
import logging import logging
import hashlib import hashlib
import os import os
import pkg_resources
import stat import stat
import subprocess import subprocess
import sys import sys
...@@ -217,7 +216,7 @@ def dropPrivileges(uid, gid): ...@@ -217,7 +216,7 @@ def dropPrivileges(uid, gid):
logger.info('Succesfully dropped privileges to uid=%r gid=%r' % (uid, gid)) logger.info('Succesfully dropped privileges to uid=%r gid=%r' % (uid, gid))
def bootstrapBuildout(path, additional_buildout_parametr_list=None, def bootstrapBuildout(path, buildout, additional_buildout_parametr_list=None,
console=False): console=False):
if additional_buildout_parametr_list is None: if additional_buildout_parametr_list is None:
additional_buildout_parametr_list = [] additional_buildout_parametr_list = []
...@@ -228,8 +227,7 @@ def bootstrapBuildout(path, additional_buildout_parametr_list=None, ...@@ -228,8 +227,7 @@ def bootstrapBuildout(path, additional_buildout_parametr_list=None,
gid = stat_info.st_gid gid = stat_info.st_gid
invocation_list = [sys.executable, '-S'] invocation_list = [sys.executable, '-S']
invocation_list.append(pkg_resources.resource_filename(__name__, invocation_list.extend([buildout, 'bootstrap'])
'zc.buildout-bootstap.py'))
invocation_list.extend(additional_buildout_parametr_list) invocation_list.extend(additional_buildout_parametr_list)
try: try:
umask = os.umask(SAFE_UMASK) umask = os.umask(SAFE_UMASK)
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment