From be2f2596f3287d28aa339d56aa02c6545878631b Mon Sep 17 00:00:00 2001 From: Jared Tabor Date: Wed, 17 Dec 2014 17:49:45 -0500 Subject: [PATCH] Made delete prompts use the same styling made the delete prompts more uniform --- awx/ui/static/js/controllers/JobTemplates.js | 2 +- awx/ui/static/js/controllers/Organizations.js | 2 +- awx/ui/static/js/controllers/Projects.js | 2 +- awx/ui/static/js/controllers/Teams.js | 2 +- awx/ui/static/js/controllers/Users.js | 2 +- tools/docker/Dockerfile | 22 + tools/docker/license | 1 + tools/docker/local_settings.py | 489 ++++++++++++++++++ tools/docker/start_local.sh | 3 + tools/docker/start_superlocal.sh | 3 + 10 files changed, 523 insertions(+), 5 deletions(-) create mode 100644 tools/docker/Dockerfile create mode 100644 tools/docker/license create mode 100644 tools/docker/local_settings.py create mode 100755 tools/docker/start_local.sh create mode 100755 tools/docker/start_superlocal.sh diff --git a/awx/ui/static/js/controllers/JobTemplates.js b/awx/ui/static/js/controllers/JobTemplates.js index 9110638ccf..1e82159843 100644 --- a/awx/ui/static/js/controllers/JobTemplates.js +++ b/awx/ui/static/js/controllers/JobTemplates.js @@ -94,7 +94,7 @@ function JobTemplatesList($scope, $rootScope, $location, $log, $routeParams, Res Prompt({ hdr: 'Delete', - body: '
Delete inventory ' + name + '?
', + body: '
Delete job template ' + name + '?
', action: action }); }; diff --git a/awx/ui/static/js/controllers/Organizations.js b/awx/ui/static/js/controllers/Organizations.js index b4daf21470..ada8b3ae05 100644 --- a/awx/ui/static/js/controllers/Organizations.js +++ b/awx/ui/static/js/controllers/Organizations.js @@ -89,7 +89,7 @@ function OrganizationsList($routeParams, $scope, $rootScope, $location, $log, Re Prompt({ hdr: 'Delete', - body: "
Delete organization " + name + "?
", + body: '
Delete organization ' + name + '?
', action: action }); }; diff --git a/awx/ui/static/js/controllers/Projects.js b/awx/ui/static/js/controllers/Projects.js index c4e2435807..64c5e1c96a 100644 --- a/awx/ui/static/js/controllers/Projects.js +++ b/awx/ui/static/js/controllers/Projects.js @@ -269,7 +269,7 @@ function ProjectsList ($scope, $rootScope, $location, $log, $routeParams, Rest, Prompt({ hdr: 'Delete', - body: 'Are you sure you want to delete ' + name + '?', + body: '
Delete project ' + name + '?
', action: action }); }; diff --git a/awx/ui/static/js/controllers/Teams.js b/awx/ui/static/js/controllers/Teams.js index 6e2ff63418..f84a87e09f 100644 --- a/awx/ui/static/js/controllers/Teams.js +++ b/awx/ui/static/js/controllers/Teams.js @@ -102,7 +102,7 @@ function TeamsList($scope, $rootScope, $location, $log, $routeParams, Rest, Aler Prompt({ hdr: 'Delete', - body: 'Are you sure you want to delete ' + name + '?', + body: '
Delete team ' + name + '?
', action: action }); }; diff --git a/awx/ui/static/js/controllers/Users.js b/awx/ui/static/js/controllers/Users.js index 951bf6a591..718c8b73b7 100644 --- a/awx/ui/static/js/controllers/Users.js +++ b/awx/ui/static/js/controllers/Users.js @@ -93,7 +93,7 @@ function UsersList($scope, $rootScope, $location, $log, $routeParams, Rest, Aler Prompt({ hdr: 'Delete', - body: 'Are you sure you want to delete ' + name + '?', + body: '
Delete user ' + name + '?
', action: action }); }; diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile new file mode 100644 index 0000000000..a630ba60f0 --- /dev/null +++ b/tools/docker/Dockerfile @@ -0,0 +1,22 @@ +FROM ubuntu:14.04 + +RUN apt-get update +RUN apt-get install -y software-properties-common python-software-properties +RUN add-apt-repository -y ppa:chris-lea/redis-server; add-apt-repository -y ppa:chris-lea/zeromq +RUN apt-get update +RUN apt-get install -y tmux git mercurial subversion python-dev python-pip libyaml-dev python-yaml python-paramiko python-jinja2 make postgresql python-psycopg2 python-ldap nodejs npm redis-server python-gevent libzmq3 python-zmq +RUN git clone http://d7f73f8614295715a4777bf15f46d0d486ad0e21:x-oauth-basic@github.com/ansible/ansible-commander.git tower +RUN pip install Django==1.6.7 django-devserver django-debug-toolbar django-jenkins ipython ansible +RUN cd /tower ; make develop +RUN /etc/init.d/postgresql start ; su - postgres -c 'ansible -i "127.0.0.1," -c local -v -m postgresql_user -U postgres -a "name=awx-dev password=AWXsome1 login_user=postgres" all' +RUN /etc/init.d/postgresql start ; su - postgres -c 'ansible -i "127.0.0.1," -c local -v -m postgresql_db -U postgres -a "name=awx-dev owner=awx-dev login_user=postgres" all' +RUN /usr/bin/ssh-keygen -q -t rsa -N "" -f /root/.ssh/id_rsa +ADD local_settings.py /tower/awx/settings/local_settings.py +RUN mkdir -p /etc/tower +ADD license /etc/awx/license +ADD license /etc/tower/license +RUN /etc/init.d/postgresql start; cd /tower ; make migrate ; make init +ADD start_local.sh /start_local.sh + +EXPOSE 8013 8080 +CMD ./start_local.sh diff --git a/tools/docker/license b/tools/docker/license new file mode 100644 index 0000000000..6e1084f941 --- /dev/null +++ b/tools/docker/license @@ -0,0 +1 @@ +{"instance_count": "10000000", "contact_email": "dave@ansible.com", "company_name": "Demo Company", "contact_name": "Sallly Demopolois", "license_date": "1425393123000", "license_key": "078b8f661cc6c5a5a8438a42d6eafc20cd95e04c0706fdfda08b454293aa4de7"} \ No newline at end of file diff --git a/tools/docker/local_settings.py b/tools/docker/local_settings.py new file mode 100644 index 0000000000..2c538684c8 --- /dev/null +++ b/tools/docker/local_settings.py @@ -0,0 +1,489 @@ +# Copyright (c) 2014 AnsibleWorks, Inc. +# All Rights Reserved. + +# Local Django settings for AWX project. Rename to "local_settings.py" and +# edit as needed for your development environment. + +# All variables defined in awx/settings/development.py will already be loaded +# into the global namespace before this file is loaded, to allow for reading +# and updating the default settings as needed. + +############################################################################### +# MISC PROJECT SETTINGS +############################################################################### + +ADMINS = ( + # ('Your Name', 'your_email@domain.com'), +) + +MANAGERS = ADMINS + +# Database settings to use PostgreSQL for development. +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'awx-dev', + 'USER': 'awx-dev', + 'PASSWORD': 'AWXsome1', + 'HOST': 'localhost', + 'PORT': '', + } +} + +# Use SQLite for unit tests instead of PostgreSQL. If the lines below are +# commented out, Django will create the test_awx-dev database in PostgreSQL to +# run unit tests. +if len(sys.argv) >= 2 and sys.argv[1] == 'test': + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'awx.sqlite3'), + # Test database cannot be :memory: for celery/inventory tests. + 'TEST_NAME': os.path.join(BASE_DIR, 'awx_test.sqlite3'), + } + } + +# Celery AMQP configuration. +BROKER_URL = 'redis://localhost/' + +# Set True to enable additional logging from the job_event_callback plugin +JOB_CALLBACK_DEBUG = False + +# Absolute filesystem path to the directory to host projects (with playbooks). +# This directory should NOT be web-accessible. +PROJECTS_ROOT = os.path.join(BASE_DIR, 'projects') + +# Absolute filesystem path to the directory for job status stdout +# This directory should not be web-accessible +JOBOUTPUT_ROOT = os.path.join(BASE_DIR, 'job_status') + +# The UUID of the system, for HA. +SYSTEM_UUID = '00000000-0000-0000-0000-000000000000' + +# Local time zone for this installation. Choices can be found here: +# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name +# although not all choices may be available on all operating systems. +# On Unix systems, a value of None will cause Django to use the same +# timezone as the operating system. +# If running in a Windows environment this must be set to the same as your +# system time zone. +TIME_ZONE = 'America/New_York' + +# Language code for this installation. All choices can be found here: +# http://www.i18nguy.com/unicode/language-identifiers.html +LANGUAGE_CODE = 'en-us' + +# SECURITY WARNING: keep the secret key used in production secret! +# Hardcoded values can leak through source control. Consider loading +# the secret key from an environment variable or a file instead. +SECRET_KEY = 'p7z7g1ql4%6+(6nlebb6hdk7sd^&fnjpal308%n%+p^_e6vo1y' + +# HTTP headers and meta keys to search to determine remote host name or IP. Add +# additional items to this list, such as "HTTP_X_FORWARDED_FOR", if behind a +# reverse proxy. +REMOTE_HOST_HEADERS = ['REMOTE_ADDR', 'REMOTE_HOST'] + +# Define additional environment variables to be passed to subprocess started by +# the celery task. +#AWX_TASK_ENV['FOO'] = 'BAR' + +# If set, use -vvv for project updates instead of -v for more output. +# PROJECT_UPDATE_VVV=True + +# Set verbosity for inventory import command when running inventory updates. +# INVENTORY_UPDATE_VERBOSITY=1 + +############################################################################### +# EMAIL SETTINGS +############################################################################### + +# Email address that error messages come from. +SERVER_EMAIL = 'root@localhost' + +# The email backend to use. For possible shortcuts see django.core.mail. +# The default is to use the SMTP backend. +# Third-party backends can be specified by providing a Python path +# to a module that defines an EmailBackend class. +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' + +# Host for sending email. +EMAIL_HOST = 'localhost' + +# Port for sending email. +EMAIL_PORT = 25 + +# Optional SMTP authentication information for EMAIL_HOST. +EMAIL_HOST_USER = '' +EMAIL_HOST_PASSWORD = '' +EMAIL_USE_TLS = False + +# Default email address to use for various automated correspondence from +# the site managers. +DEFAULT_FROM_EMAIL = 'webmaster@localhost' + +# Subject-line prefix for email messages send with django.core.mail.mail_admins +# or ...mail_managers. Make sure to include the trailing space. +EMAIL_SUBJECT_PREFIX = '[AWX] ' + +############################################################################### +# LOGGING SETTINGS +############################################################################### + +# Enable logging to syslog. Setting level to ERROR captures 500 errors, +# WARNING also logs 4xx responses. +LOGGING['handlers']['syslog'] = { + 'level': 'WARNING', + 'filters': [], + 'class': 'django.utils.log.NullHandler', + 'formatter': 'simple', +} + +# Enable the following lines to also log to a file. +#LOGGING['handlers']['file'] = { +# 'class': 'logging.FileHandler', +# 'filename': os.path.join(BASE_DIR, 'awx.log'), +# 'formatter': 'simple', +#} + +# Enable the following lines to turn on lots of permissions-related logging. +#LOGGING['loggers']['awx.main.access']['propagate'] = True +#LOGGING['loggers']['awx.main.signals']['propagate'] = True +#LOGGING['loggers']['awx.main.permissions']['propagate'] = True + +# Enable the following lines to turn on LDAP auth logging. +#LOGGING['loggers']['django_auth_ldap']['handlers'] = ['console'] +#LOGGING['loggers']['django_auth_ldap']['level'] = 'DEBUG' + +############################################################################### +# LDAP AUTHENTICATION SETTINGS +############################################################################### + +# Refer to django-auth-ldap docs for more details: +# http://pythonhosted.org/django-auth-ldap/authentication.html + +# LDAP server URI, such as "ldap://ldap.example.com:389" (non-SSL) or +# "ldaps://ldap.example.com:636" (SSL). LDAP authentication is disable if this +# parameter is empty. +AUTH_LDAP_SERVER_URI = '' + +# DN of user to bind for all search queries. Normally in the format +# "CN=Some User,OU=Users,DC=example,DC=com" but may also be specified as +# "DOMAIN\username" for Active Directory. +AUTH_LDAP_BIND_DN = '' + +# Password using to bind above user account. +AUTH_LDAP_BIND_PASSWORD = '' + +# Enable TLS when the connection is not using SSL. +AUTH_LDAP_START_TLS = False + +# Imports needed for remaining LDAP configuration. +import ldap +from django_auth_ldap.config import LDAPSearch, LDAPSearchUnion +from django_auth_ldap.config import ActiveDirectoryGroupType + +# LDAP search query to find users. +AUTH_LDAP_USER_SEARCH = LDAPSearch( + 'OU=Users,DC=example,DC=com', # Base DN + ldap.SCOPE_SUBTREE, # SCOPE_BASE, SCOPE_ONELEVEL, SCOPE_SUBTREE + '(sAMAccountName=%(user)s)', # Query +) + +# Alternative to user search, if user DNs are all of the same format. +#AUTH_LDAP_USER_DN_TEMPLATE = 'uid=%(user)s,OU=Users,DC=example,DC=com' + +# Mapping of LDAP to user atrributes (key is user attribute name, value is LDAP +# attribute name). +AUTH_LDAP_USER_ATTR_MAP = { + 'first_name': 'givenName', + 'last_name': 'sn', + 'email': 'mail', +} + +# LDAP search query to find groups. Does not support LDAPSearchUnion. +AUTH_LDAP_GROUP_SEARCH = LDAPSearch( + 'DC=example,DC=com', # Base DN + ldap.SCOPE_SUBTREE, # SCOPE_BASE, SCOPE_ONELEVEL, SCOPE_SUBTREE + '(objectClass=group)', # Query +) +# Type of group returned by the search above. Should be one of the types +# listed at: http://pythonhosted.org/django-auth-ldap/groups.html#types-of-groups +AUTH_LDAP_GROUP_TYPE = ActiveDirectoryGroupType() + +# Group DN required to login. If specified, user must be a member of this +# group to login via LDAP. +#AUTH_LDAP_REQUIRE_GROUP = '' + +# Group DN denied from login. If specified, user will not be allowed to login +# if a member of this group. +#AUTH_LDAP_DENY_GROUP = '' + +# User profile flags updated from group membership (key is user attribute name, +# value is group DN). +AUTH_LDAP_USER_FLAGS_BY_GROUP = { + #'is_superuser': 'CN=Domain Admins,CN=Users,DC=example,DC=com', +} + +# Mapping between organization admins/users and LDAP groups. Keys are +# organization names (will be created if not present). Values are dictionaries +# of options for each organization's membership, where each can contain the +# following parameters: +# - remove: True/False. Defaults to False. Specifies the default for +# remove_admins or remove_users if those parameters aren't explicitly set. +# - admins: None, True/False, string or list/tuple of strings. +# If None, organization admins will not be updated. +# If True/False, all LDAP users will be added/removed as admins. +# If a string or list of strings, specifies the group DN(s). User will be +# added as an org admin if the user is a member of ANY of these groups. +# - remove_admins: True/False. Defaults to False. If True, a user who is not a +# member of the given groups will be removed from the organization's admins. +# - users: None, True/False, string or list/tuple of strings. Same rules apply +# as for admins. +# - remove_users: True/False. Defaults to False. If True, a user who is not a +# member of the given groups will be removed from the organization's users. +AUTH_LDAP_ORGANIZATION_MAP = { + #'Test Org': { + # 'admins': 'CN=Domain Admins,CN=Users,DC=example,DC=com', + # 'users': ['CN=Domain Users,CN=Users,DC=example,DC=com'], + #}, + #'Test Org 2': { + # 'admins': ['CN=Administrators,CN=Builtin,DC=example,DC=com'], + # 'users': True, + #}, +} + +# Mapping between team members (users) and LDAP groups. Keys are team names +# (will be created if not present). Values are dictionaries of options for +# each team's membership, where each can contain the following parameters: +# - organization: string. The name of the organization to which the team +# belongs. The team will be created if the combination of organization and +# team name does not exist. The organization will first be created if it +# does not exist. +# - users: None, True/False, string or list/tuple of strings. +# If None, team members will not be updated. +# If True/False, all LDAP users will be added/removed as team members. +# If a string or list of strings, specifies the group DN(s). User will be +# added as a team member if the user is a member of ANY of these groups. +# - remove: True/False. Defaults to False. If True, a user who is not a member +# of the given groups will be removed from the team. +AUTH_LDAP_TEAM_MAP = { + 'My Team': { + 'organization': 'Test Org', + 'users': ['CN=Domain Users,CN=Users,DC=example,DC=com'], + 'remove': True, + }, + 'Other Team': { + 'organization': 'Test Org 2', + 'users': 'CN=Other Users,CN=Users,DC=example,DC=com', + 'remove': False, + }, +} + +############################################################################### +# SCM TEST SETTINGS +############################################################################### + +# Define these variables to enable more complete testing of project support for +# SCM updates. The test repositories listed do not have to contain any valid +# playbooks. + +try: + path = os.path.expanduser(os.path.expandvars('~/.ssh/id_rsa')) + TEST_SSH_KEY_DATA = file(path, 'rb').read() +except IOError: + TEST_SSH_KEY_DATA = '' + +TEST_GIT_USERNAME = '' +TEST_GIT_PASSWORD = '' +TEST_GIT_KEY_DATA = TEST_SSH_KEY_DATA +TEST_GIT_PUBLIC_HTTPS = 'https://github.com/ansible/ansible.github.com.git' +TEST_GIT_PRIVATE_HTTPS = 'https://github.com/ansible/product-docs.git' +TEST_GIT_PRIVATE_SSH = 'git@github.com:ansible/product-docs.git' + +TEST_HG_USERNAME = '' +TEST_HG_PASSWORD = '' +TEST_HG_KEY_DATA = TEST_SSH_KEY_DATA +TEST_HG_PUBLIC_HTTPS = 'https://bitbucket.org/cchurch/django-hotrunner' +TEST_HG_PRIVATE_HTTPS = '' +TEST_HG_PRIVATE_SSH = '' + +TEST_SVN_USERNAME = '' +TEST_SVN_PASSWORD = '' +TEST_SVN_PUBLIC_HTTPS = 'https://github.com/ansible/ansible.github.com' +TEST_SVN_PRIVATE_HTTPS = 'https://github.com/ansible/product-docs' + +# To test repo access via SSH login to localhost. +import getpass +TEST_SSH_LOOPBACK_USERNAME = getpass.getuser() +TEST_SSH_LOOPBACK_PASSWORD = '' + +############################################################################### +# LDAP TEST SETTINGS +############################################################################### + +# LDAP connection and authentication settings for unit tests only. LDAP tests +# will be skipped if TEST_AUTH_LDAP_SERVER_URI is not configured. + +TEST_AUTH_LDAP_SERVER_URI = '' +TEST_AUTH_LDAP_BIND_DN = '' +TEST_AUTH_LDAP_BIND_PASSWORD = '' +TEST_AUTH_LDAP_START_TLS = False + +# LDAP username/password for testing authentication. +TEST_AUTH_LDAP_USERNAME = '' +TEST_AUTH_LDAP_PASSWORD = '' + +# LDAP search query to find users. +TEST_AUTH_LDAP_USER_SEARCH = LDAPSearch( + 'CN=Users,DC=example,DC=com', + ldap.SCOPE_SUBTREE, + '(sAMAccountName=%(user)s)', +) + +# Alternative to user search. +#TEST_AUTH_LDAP_USER_DN_TEMPLATE = 'sAMAccountName=%(user)s,OU=Users,DC=example,DC=com' + +# Mapping of LDAP attributes to user attributes. +TEST_AUTH_LDAP_USER_ATTR_MAP = { + 'first_name': 'givenName', + 'last_name': 'sn', + 'email': 'mail', +} + +# LDAP search query for finding groups. +TEST_AUTH_LDAP_GROUP_SEARCH = LDAPSearch( + 'DC=example,DC=com', + ldap.SCOPE_SUBTREE, + '(objectClass=group)', +) +# Type of group returned by the search above. +TEST_AUTH_LDAP_GROUP_TYPE = ActiveDirectoryGroupType() + +# Test DNs for a group required to login. User should be a member of the first +# group, but not a member of the second. +TEST_AUTH_LDAP_REQUIRE_GROUP = 'CN=Domain Admins,CN=Users,DC=example,DC=com' +TEST_AUTH_LDAP_REQUIRE_GROUP_FAIL = 'CN=Guest,CN=Users,DC=example,DC=com' + +# Test DNs for a group denied from login. User should not be a member of the +# first group, but should be a member of the second. +TEST_AUTH_LDAP_DENY_GROUP = 'CN=Guest,CN=Users,DC=example,DC=com' +TEST_AUTH_LDAP_DENY_GROUP_FAIL = 'CN=Domain Admins,CN=Users,DC=example,DC=com' + +# User profile flags updated from group membership. Test user should be a +# member of the group. +TEST_AUTH_LDAP_USER_FLAGS_BY_GROUP = { + 'is_superuser': 'CN=Domain Admins,CN=Users,DC=example,DC=com', +} + +# Test mapping between organization admins/users and LDAP groups. +TEST_AUTH_LDAP_ORGANIZATION_MAP = { + 'Test Org': { + 'admins': 'CN=Domain Admins,CN=Users,DC=example,DC=com', + 'users': ['CN=Domain Users,CN=Users,DC=example,DC=com'], + }, + 'Test Org 2': { + 'admins': ['CN=Administrators,CN=Builtin,DC=example,DC=com'], + 'users': True, + }, +} +# Expected results from organization mapping. After login, should user be an +# admin/user in the given organization? +TEST_AUTH_LDAP_ORGANIZATION_MAP_RESULT = { + 'Test Org': {'admins': True, 'users': False}, + 'Test Org 2': {'admins': False, 'users': True}, +} + +# Second test mapping to test remove parameters. +TEST_AUTH_LDAP_ORGANIZATION_MAP_2 = { + 'Test Org': { + 'admins': 'CN=Domain Users,CN=Users,DC=example,DC=com', + 'users': True, + 'remove_admins': True, + 'remove_users': False, + }, + 'Test Org 2': { + 'admins': ['CN=Domain Admins,CN=Users,DC=example,DC=com', + 'CN=Administrators,CN=Builtin,DC=example,DC=com'], + 'users': False, + 'remove': True, + }, +} + +# Expected results from second organization mapping. +TEST_AUTH_LDAP_ORGANIZATION_MAP_2_RESULT = { + 'Test Org': {'admins': False, 'users': True}, + 'Test Org 2': {'admins': True, 'users': False}, +} + +# Test mapping between team users and LDAP groups. +TEST_AUTH_LDAP_TEAM_MAP = { + 'Domain Users Team': { + 'organization': 'Test Org', + 'users': ['CN=Domain Users,CN=Users,DC=example,DC=com'], + 'remove': False, + }, + 'Admins Team': { + 'organization': 'Admins Org', + 'users': 'CN=Domain Admins,CN=Users,DC=example,DC=com', + 'remove': True, + }, + 'Everyone Team': { + 'organization': 'Test Org 2', + 'users': True, + }, +} +# Expected results from team mapping. After login, should user be a member of +# the given team? +TEST_AUTH_LDAP_TEAM_MAP_RESULT = { + 'Domain Users Team': {'users': False}, + 'Admins Team': {'users': True}, + 'Everyone Team': {'users': True}, +} + +# Second test mapping for teams to remove user. +TEST_AUTH_LDAP_TEAM_MAP_2 = { + 'Domain Users Team': { + 'organization': 'Test Org', + 'users': ['CN=Domain Users,CN=Users,DC=example,DC=com'], + 'remove': False, + }, + 'Admins Team': { + 'organization': 'Admins Org', + 'users': 'CN=Administrators,CN=Builtin,DC=example,DC=com', + 'remove': True, + }, + 'Everyone Team': { + 'organization': 'Test Org 2', + 'users': False, + 'remove': False, + }, +} +# Expected results from second team mapping. After login, should user be a +# member of the given team? +TEST_AUTH_LDAP_TEAM_MAP_2_RESULT = { + 'Domain Users Team': {'users': False}, + 'Admins Team': {'users': False}, + 'Everyone Team': {'users': True}, +} + +############################################################################### +# INVENTORY IMPORT TEST SETTINGS +############################################################################### + +# Define these variables to enable more complete testing of inventory import +# from cloud providers. + +# EC2 credentials +TEST_AWS_ACCESS_KEY_ID = '' +TEST_AWS_SECRET_ACCESS_KEY = '' +TEST_AWS_REGIONS = 'all' + +# Rackspace credentials +TEST_RACKSPACE_USERNAME = '' +TEST_RACKSPACE_API_KEY = '' +TEST_RACKSPACE_REGIONS = 'all' + +# VMware credentials +TEST_VMWARE_HOST = '' +TEST_VMWARE_USER = '' +TEST_VMWARE_PASSWORD = '' diff --git a/tools/docker/start_local.sh b/tools/docker/start_local.sh new file mode 100755 index 0000000000..b769f950af --- /dev/null +++ b/tools/docker/start_local.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +/etc/init.d/postgresql start diff --git a/tools/docker/start_superlocal.sh b/tools/docker/start_superlocal.sh new file mode 100755 index 0000000000..6d303b0693 --- /dev/null +++ b/tools/docker/start_superlocal.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +/etc/init.d/postgresql start ; /etc/init.d/rabbitmq-server start; cd /tower_devel; make server