mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Add support to download the latest stable bootstrap script.
If we're not installing under Windows, provide the same features salt-cloud had at install time before the merge.
This commit is contained in:
parent
9612e58498
commit
2c53c11793
1 changed files with 71 additions and 0 deletions
71
setup.py
71
setup.py
|
@ -14,6 +14,7 @@ from datetime import datetime
|
||||||
from distutils.cmd import Command
|
from distutils.cmd import Command
|
||||||
from distutils.command.build import build
|
from distutils.command.build import build
|
||||||
from distutils.command.clean import clean
|
from distutils.command.clean import clean
|
||||||
|
from distutils.command.sdist import sdist
|
||||||
|
|
||||||
# Change to salt source's directory prior to running any command
|
# Change to salt source's directory prior to running any command
|
||||||
try:
|
try:
|
||||||
|
@ -39,6 +40,7 @@ if 'USE_SETUPTOOLS' in os.environ or 'setuptools' in sys.modules:
|
||||||
try:
|
try:
|
||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
from setuptools.command.install import install
|
from setuptools.command.install import install
|
||||||
|
from setuptools.command.sdist import sdist
|
||||||
WITH_SETUPTOOLS = True
|
WITH_SETUPTOOLS = True
|
||||||
except ImportError:
|
except ImportError:
|
||||||
WITH_SETUPTOOLS = False
|
WITH_SETUPTOOLS = False
|
||||||
|
@ -80,6 +82,74 @@ exec(compile(open(SALT_VERSION).read(), SALT_VERSION, 'exec'))
|
||||||
exec(compile(open(SALT_SYSPATHS).read(), SALT_SYSPATHS, 'exec'))
|
exec(compile(open(SALT_SYSPATHS).read(), SALT_SYSPATHS, 'exec'))
|
||||||
|
|
||||||
|
|
||||||
|
class CloudSdist(sdist):
|
||||||
|
user_options = original_sdist.user_options + [
|
||||||
|
('skip-bootstrap-download', None,
|
||||||
|
'Skip downloading the bootstrap-salt.sh script. This can also be '
|
||||||
|
'triggered by having `SKIP_BOOTSTRAP_DOWNLOAD=1` as an environment '
|
||||||
|
'variable.')
|
||||||
|
]
|
||||||
|
boolean_options = original_sdist.boolean_options + [
|
||||||
|
'skip-bootstrap-download'
|
||||||
|
]
|
||||||
|
|
||||||
|
def initialize_options(self):
|
||||||
|
sdist.initialize_options(self)
|
||||||
|
self.skip_bootstrap_download = False
|
||||||
|
|
||||||
|
def finalize_options(self):
|
||||||
|
sdist.finalize_options(self)
|
||||||
|
if 'SKIP_BOOTSTRAP_DOWNLOAD' in os.environ:
|
||||||
|
skip_bootstrap_download = os.environ.get(
|
||||||
|
'SKIP_BOOTSTRAP_DOWNLOAD', '0'
|
||||||
|
)
|
||||||
|
self.skip_bootstrap_download = skip_bootstrap_download == '1'
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
if self.skip_bootstrap_download is False:
|
||||||
|
# Let's update the bootstrap-script to the version defined to be
|
||||||
|
# distributed. See BOOTSTRAP_SCRIPT_DISTRIBUTED_VERSION above.
|
||||||
|
url = (
|
||||||
|
'https://github.com/saltstack/salt-bootstrap/raw/{0}'
|
||||||
|
'/bootstrap-salt.sh'.format(
|
||||||
|
BOOTSTRAP_SCRIPT_DISTRIBUTED_VERSION
|
||||||
|
)
|
||||||
|
)
|
||||||
|
req = urllib2.urlopen(url)
|
||||||
|
deploy_path = os.path.join(
|
||||||
|
SALTCLOUD_SOURCE_DIR,
|
||||||
|
'saltcloud',
|
||||||
|
'deploy',
|
||||||
|
'bootstrap-salt.sh'
|
||||||
|
)
|
||||||
|
if req.getcode() == 200:
|
||||||
|
try:
|
||||||
|
log.info(
|
||||||
|
'Updating bootstrap-salt.sh.'
|
||||||
|
'\n\tSource: {0}'
|
||||||
|
'\n\tDestination: {1}'.format(
|
||||||
|
url,
|
||||||
|
deploy_path
|
||||||
|
)
|
||||||
|
)
|
||||||
|
with open(deploy_path, 'w') as fp_:
|
||||||
|
fp_.write(req.read())
|
||||||
|
except (OSError, IOError), err:
|
||||||
|
log.error(
|
||||||
|
'Failed to write the updated script: {0}'.format(err)
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
log.error(
|
||||||
|
'Failed to update the bootstrap-salt.sh script. HTTP '
|
||||||
|
'Error code: {0}'.format(
|
||||||
|
req.getcode()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Let's the rest of the build command
|
||||||
|
sdist.run(self)
|
||||||
|
|
||||||
|
|
||||||
class TestCommand(Command):
|
class TestCommand(Command):
|
||||||
description = 'Run tests'
|
description = 'Run tests'
|
||||||
user_options = [
|
user_options = [
|
||||||
|
@ -336,6 +406,7 @@ SETUP_KWARGS = {'name': NAME,
|
||||||
}
|
}
|
||||||
|
|
||||||
if IS_WINDOWS_PLATFORM is False:
|
if IS_WINDOWS_PLATFORM is False:
|
||||||
|
SETUP_KWARGS['cmdclass']['sdist'] = CloudSdist
|
||||||
SETUP_KWARGS['packages'].extend(['salt.cloud',
|
SETUP_KWARGS['packages'].extend(['salt.cloud',
|
||||||
'salt.cloud.utils',
|
'salt.cloud.utils',
|
||||||
'salt.cloud.clouds'])
|
'salt.cloud.clouds'])
|
||||||
|
|
Loading…
Add table
Reference in a new issue