2013-05-03 08:14:14 +04:00
#!/usr/bin/env python
2015-06-11 23:05:30 +03:00
# Copyright (c) 2015 Ansible, Inc.
2013-05-22 02:20:26 +04:00
# All Rights Reserved.
2015-02-05 18:40:22 +03:00
import os
import datetime
import glob
import sys
import shutil
from setuptools import setup
2013-06-26 03:46:12 +04:00
2013-06-23 21:21:02 +04:00
from awx import __version__
2013-05-03 08:14:14 +04:00
2014-10-17 17:01:45 +04:00
if os . getenv ( ' OFFICIAL ' , ' no ' ) == ' yes ' :
build_timestamp = ' '
else :
build_timestamp = ' - ' + os . getenv ( " BUILD " , datetime . datetime . now ( ) . strftime ( ' 0.git % Y % m %d % H % M ' ) )
2013-05-22 01:39:34 +04:00
2013-06-15 12:10:11 +04:00
# Paths we'll use later
2016-03-23 22:46:00 +03:00
etcpath = " /etc/tower "
2013-06-23 21:21:02 +04:00
homedir = " /var/lib/awx "
2016-03-23 22:46:00 +03:00
bindir = " /usr/bin "
2016-03-25 20:10:47 +03:00
sharedir = " /usr/share/awx "
docdir = " /usr/share/doc/ansible-tower "
2014-07-29 19:44:36 +04:00
munin_plugin_path = " /etc/munin/plugins/ "
munin_plugin_conf_path = " /etc/munin/plugin-conf.d "
2013-06-15 12:10:11 +04:00
if os . path . exists ( " /etc/debian_version " ) :
2016-03-25 20:10:47 +03:00
sysinit = " /etc/init.d "
webconfig = " /etc/apache2/conf.d "
2014-07-21 21:45:26 +04:00
shutil . copy ( " config/awx-munin-ubuntu.conf " , " config/awx-munin.conf " )
2014-08-14 17:17:35 +04:00
# sosreport-3.1 (and newer) look in '/usr/share/sosreport/sos/plugins'
# sosreport-3.0 looks in '/usr/lib/python2.7/dist-packages/sos/plugins'
# debian/<package>.links will create symlinks to support both versions
sosconfig = " /usr/share/sosreport/sos/plugins "
2013-06-15 12:10:11 +04:00
else :
2016-03-25 20:10:47 +03:00
sysinit = " /etc/rc.d/init.d "
webconfig = " /etc/httpd/conf.d "
2014-07-21 21:45:26 +04:00
shutil . copy ( " config/awx-munin-el.conf " , " config/awx-munin.conf " )
2014-08-14 17:17:35 +04:00
# The .spec will create symlinks to support multiple versions of sosreport
sosconfig = " /usr/share/sosreport/sos/plugins "
2013-06-15 12:10:11 +04:00
#####################################################################
# Helper Functions
def explode_glob_path ( path ) :
""" Take a glob and hand back the full recursive expansion,
ignoring links .
"""
result = [ ]
includes = glob . glob ( path )
for item in includes :
if os . path . isdir ( item ) and not os . path . islink ( item ) :
result . extend ( explode_glob_path ( os . path . join ( item , " * " ) ) )
else :
result . append ( item )
return result
def proc_data_files ( data_files ) :
""" Because data_files doesn ' t natively support globs...
let ' s add them.
"""
result = [ ]
2013-06-23 00:27:09 +04:00
2013-06-23 00:30:17 +04:00
# If running in a virtualenv, don't return data files that would install to
2013-06-23 00:27:09 +04:00
# system paths (mainly useful for running tests via tox).
if hasattr ( sys , ' real_prefix ' ) :
return result
2014-04-15 23:41:13 +04:00
2013-06-15 12:10:11 +04:00
for dir , files in data_files :
includes = [ ]
for item in files :
includes . extend ( explode_glob_path ( item ) )
result . append ( ( dir , includes ) )
return result
#####################################################################
2013-05-03 08:14:14 +04:00
setup (
2014-01-29 21:30:12 +04:00
name = ' ansible-tower ' ,
2013-06-20 12:20:48 +04:00
version = __version__ . split ( " - " ) [ 0 ] , # FIXME: Should keep full version here?
2014-01-29 21:30:12 +04:00
author = ' Ansible, Inc. ' ,
author_email = ' support@ansible.com ' ,
description = ' ansible-tower: API, UI and Task Engine for Ansible ' ,
2013-06-23 21:21:02 +04:00
long_description = ' AWX provides a web-based user interface, REST API and '
' task engine built on top of Ansible ' ,
2013-05-03 08:14:14 +04:00
license = ' Proprietary ' ,
keywords = ' ansible ' ,
url = ' http://github.com/ansible/ansible-commander ' ,
2013-06-23 21:21:02 +04:00
packages = [ ' awx ' ] ,
2013-05-03 08:14:14 +04:00
include_package_data = True ,
zip_safe = False ,
setup_requires = [ ] ,
classifiers = [
2013-09-25 05:40:53 +04:00
' Development Status :: 5 - Production/Stable ' ,
2013-05-03 08:14:14 +04:00
' Environment :: Web Environment ' ,
' Framework :: Django ' ,
' Intended Audience :: Developers ' ,
' Intended Audience :: Information Technology ' ,
' Intended Audience :: System Administrators '
' License :: Other/Proprietary License ' ,
' Natural Language :: English ' ,
' Operating System :: OS Independent ' ,
' Operating System :: POSIX ' ,
' Programming Language :: Python ' ,
' Topic :: System :: Installation/Setup ' ,
' Topic :: System :: Systems Administration ' ,
] ,
entry_points = {
' console_scripts ' : [
2013-06-23 21:21:02 +04:00
' awx-manage = awx:manage ' ,
2014-07-30 20:56:58 +04:00
' tower-manage = awx:manage ' ,
2013-05-03 08:14:14 +04:00
] ,
} ,
2013-06-15 12:10:11 +04:00
data_files = proc_data_files ( [
2015-02-05 18:40:22 +03:00
( " %s " % homedir , [ " config/wsgi.py " ,
" awx/static/favicon.ico " ] ) ,
( " %s " % webconfig , [ " config/awx-httpd-80.conf " ,
" config/awx-httpd-443.conf " ,
" config/awx-munin.conf " ] ) ,
2015-11-05 18:14:30 +03:00
( " %s " % sharedir , [ " tools/scripts/request_tower_configuration.sh " , " tools/scripts/request_tower_configuration.ps1 " ] ) ,
2015-09-18 22:38:49 +03:00
( " %s " % docdir , [ " docs/licenses/* " , ] ) ,
2015-02-05 18:40:22 +03:00
( " %s " % munin_plugin_path , [ " tools/munin_monitors/tower_jobs " ,
" tools/munin_monitors/callbackr_alive " ,
" tools/munin_monitors/celery_alive " ,
" tools/munin_monitors/postgres_alive " ,
" tools/munin_monitors/redis_alive " ,
" tools/munin_monitors/socketio_alive " ,
2015-06-08 23:23:37 +03:00
" tools/munin_monitors/taskmanager_alive " ,
2015-06-09 17:57:16 +03:00
" tools/munin_monitors/mongo_conn " ,
2015-06-08 23:23:37 +03:00
" tools/munin_monitors/mongo_docs " ,
" tools/munin_monitors/mongo_mem " ,
" tools/munin_monitors/mongo_ops " ] ) ,
2015-02-05 18:40:22 +03:00
( " %s " % munin_plugin_conf_path , [ " config/awx_munin_tower_jobs " ] ) ,
2016-03-23 22:46:00 +03:00
( " %s " % bindir , [ " tools/scripts/ansible-tower-service " ,
" tools/scripts/tower-python " ] ) ,
2015-02-05 18:40:22 +03:00
( " %s " % sosconfig , [ " tools/sosreport/tower.py " ] ) ] ) ,
2013-06-26 03:46:12 +04:00
options = {
2013-05-03 08:14:14 +04:00
' egg_info ' : {
2014-10-17 17:01:45 +04:00
' tag_build ' : build_timestamp ,
2013-05-03 08:14:14 +04:00
} ,
' aliases ' : {
2014-10-17 17:01:45 +04:00
' dev_build ' : ' clean --all egg_info sdist ' ,
' release_build ' : ' clean --all egg_info -b " " sdist ' ,
2013-05-03 08:14:14 +04:00
} ,
2016-03-23 22:46:00 +03:00
' build_scripts ' : {
' executable ' : ' /usr/bin/tower-python ' ,
} ,
2013-05-03 08:14:14 +04:00
} ,
)