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'
class Software(object):
"""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
"""
self.url = url
self.software_root = software_root
self.software_path = os.path.join(self.software_root,
getSoftwareUrlHash(self.url))
self.buildout = buildout
self.logger = logging.getLogger('BuildoutManager')
self.console = console
......@@ -74,7 +75,7 @@ class Software(object):
buildout_parameter_list = [
'buildout:directory=%s' % self.software_path,
'-c', self.url]
bootstrapBuildout(self.software_path,
bootstrapBuildout(self.software_path, self.buildout,
additional_buildout_parametr_list=buildout_parameter_list,
console=self.console)
launchBuildout(self.software_path,
......@@ -106,10 +107,12 @@ class Partition(object):
partition_id,
server_url,
software_release_url,
buildout,
certificate_repository_path=None,
console=False
):
"""Initialisation of class parameters"""
self.buildout = buildout
self.software_path = software_path
self.instance_path = instance_path
self.run_path = os.path.join(self.instance_path, 'etc', 'run')
......@@ -241,8 +244,9 @@ class Partition(object):
if not os.path.exists(buildout_binary):
# use own buildout generation
bootstrapBuildout(self.instance_path, ['buildout:bin-directory=%s' %
os.path.join(self.instance_path, 'sbin')], console=self.console)
bootstrapBuildout(self.instance_path, self.buildout,
['buildout:bin-directory=%s'% os.path.join(self.instance_path,
'sbin')], console=self.console)
buildout_binary = os.path.join(self.instance_path, 'sbin', 'buildout')
# Launches buildout
launchBuildout(self.instance_path,
......
......@@ -87,6 +87,8 @@ def parseArgumentTupleAndReturnSlapgridObject(*argument_tuple):
parser.add_argument("--usage-report-periodicity",
type=int, default="24",
help="The periodicity of usage report sends, in hours.")
parser.add_argument("--buildout", help="Location of buildout binary.",
default="buildout")
parser.add_argument("--pidfile",
help="The location where pidfile will be created.")
parser.add_argument("--logfile",
......@@ -195,7 +197,8 @@ def parseArgumentTupleAndReturnSlapgridObject(*argument_tuple):
cert_file=cert_file,
master_ca_file=master_ca_file,
certificate_repository_path=certificate_repository_path,
console=option_dict['console']),
console=option_dict['console'],
buildout=option_dict['buildout']),
option_dict])
......@@ -259,6 +262,7 @@ class Slapgrid(object):
supervisord_socket,
supervisord_configuration_path,
usage_report_periodicity,
buildout,
key_file=None,
cert_file=None,
master_ca_file=None,
......@@ -289,6 +293,7 @@ class Slapgrid(object):
self.supervisord_configuration_directory = \
os.path.join(self.instance_etc_directory, 'supervisord.conf.d')
self.console = console
self.buildout = buildout
def checkEnvironmentAndCreateStructure(self):
"""Checks for software_root and instance_root existence, then creates
......@@ -347,8 +352,7 @@ class Slapgrid(object):
software_release.building()
software_release_uri = software_release.getURI()
Software(url=software_release_uri, software_root=self.software_root,
console=self.console
).install()
console=self.console, buildout=self.buildout).install()
except (SystemExit, KeyboardInterrupt):
exception = traceback.format_exc()
software_release.error(exception)
......@@ -399,8 +403,7 @@ class Slapgrid(object):
server_url=self.master_url,
software_release_url=software_url,
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
try:
computer_partition_state = computer_partition.getState()
......
......@@ -27,7 +27,6 @@
import logging
import hashlib
import os
import pkg_resources
import stat
import subprocess
import sys
......@@ -217,7 +216,7 @@ def dropPrivileges(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):
if additional_buildout_parametr_list is None:
additional_buildout_parametr_list = []
......@@ -228,8 +227,7 @@ def bootstrapBuildout(path, additional_buildout_parametr_list=None,
gid = stat_info.st_gid
invocation_list = [sys.executable, '-S']
invocation_list.append(pkg_resources.resource_filename(__name__,
'zc.buildout-bootstap.py'))
invocation_list.extend([buildout, 'bootstrap'])
invocation_list.extend(additional_buildout_parametr_list)
try:
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