diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index cd79b033..00000000
--- a/.gitignore
+++ /dev/null
@@ -1,33 +0,0 @@
-*.swp
-*~
-*.qcow2
-
-.DS_Store
-
-*.egg
-*.egg-info
-*.pyc
-
-doc/source/devtest*.rst
-openstack-tools
-scripts/ceilometer
-scripts/cinder
-scripts/generate-keystone-pki
-scripts/glance
-scripts/heat
-scripts/init-keystone
-scripts/ironic
-scripts/keystone
-scripts/nova
-scripts/neutron
-scripts/openstack
-scripts/os-apply-config
-scripts/register-nodes
-scripts/setup-neutron
-scripts/swift
-
-.tox
-doc/build
-
-AUTHORS
-ChangeLog
diff --git a/.gitreview b/.gitreview
deleted file mode 100644
index 8a0590e3..00000000
--- a/.gitreview
+++ /dev/null
@@ -1,4 +0,0 @@
-[gerrit]
-host=review.openstack.org
-port=29418
-project=openstack/tripleo-incubator.git
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
deleted file mode 100644
index 8b929e41..00000000
--- a/CONTRIBUTING.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-Contributing
-============
-
-If you would like to contribute to the development of OpenStack,
-you must follow the steps in documented at:
-
- http://docs.openstack.org/infra/manual/developers.html#development-workflow
-
-Once those steps have been completed, changes to OpenStack
-should be submitted for review via the Gerrit tool, following
-the workflow documented at:
-
- http://docs.openstack.org/infra/manual/developers.html#development-workflow
-
-Pull requests submitted through GitHub will not be seen.
-
-Bugs should be filed on Launchpad, not GitHub:
-
- https://bugs.launchpad.net/tripleo
-
diff --git a/HACKING.rst b/HACKING.rst
deleted file mode 100644
index bc735063..00000000
--- a/HACKING.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-TripleO Style Guidelines
-========================
-
-- Step 1: Read the OpenStack Style Guidelines [1]_
-- Step 2: Read Bashate [2]_
-- Step 3: See specific guidelines below
-
-TripleO Specific Guidelines
----------------------------
-
-There is plenty of code that does not adhere to these conventions currently.
-However it is useful to have conventions as consistently formatted code is
-easier to read and less likely to hide bugs. New code should adhere to these
-conventions, and developers should consider sensible adjustment of existing
-code when working nearby.
-
-Formatting
-~~~~~~~~~~
-Please follow conventions described in OpenStack style guidelines [1]_ and Bashate [2]_.
-
-- Order lists whenever possible, whether in code or data. If the order doesn't
- matter, use a case-insensitive alphabetical sort. This makes them easier to
- compare with ``diff``-like tools.
- - "a" < "B" < "c"
- - "a" < "ab"
- - "2" < "10"
-
-Bash
-~~~~
-As well as those rules described in Bashate [2]_:
-
-- The interpreter is ``/bin/bash``.
-- Provide a shebang ``#!/bin/bash`` if you intend your script to be run rather than sourced.
-- Use ``set -e`` and ``set -o pipefail`` to exit early on errors.
-- Use ``set -u`` to catch typos in variable names.
-- Use ``$()`` not `````` for subshell commands.
-- Double quote substitutions by default. It's OK to omit quotes if it's
- important that the result be multiple words. EG given VAR="a b":
-
- ``echo "${VAR}"``
- Quote variables.
- ``echo "$(echo a b)"``
- Quote subshells.
- ``echo "$(echo "${VAR}")"``
- In subshells, the inner quotes must not be escaped.
- ``function print_b() { echo "$2"; }; print_b ${VAR}``
- You must omit quotes for a variable to be passed as multiple arguments.
- ``ARRAY=(${VAR}); echo "${#ARRAY[@]}" = 2``
- You must omit quotes to form a multi-element array.
-
-- Avoid repeated/copy-pasted code. Make it a function, or a shared script, etc.
-
-Script Input
-~~~~~~~~~~~~
-- Avoid environment variables as input. Prefer command-line arguments.
-- If passing structured data, use JSON.
-- Avoid passing substantial amounts of bare data (eg JSON) on the command
- line. It is preferred to place the data in a file and pass the filename.
- Using process substitution ``<()`` can help with this.
-
-Variables
-~~~~~~~~~
-- Within a shell script, variables that are defined for local use should be
- lower_cased. Variables that are passed in or come from outside the script
- should be UPPER_CASED.
-
-References
-----------
-.. [1] http://docs.openstack.org/developer/hacking/
-.. [2] http://git.openstack.org/cgit/openstack-dev/bashate/tree/README.rst
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index d6456956..00000000
--- a/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/README.rst b/README.rst
index f36ece50..d98af48c 100644
--- a/README.rst
+++ b/README.rst
@@ -1,13 +1,10 @@
-========================
-Team and repository tags
-========================
+This project is no longer maintained.
-.. image:: http://governance.openstack.org/badges/tripleo-incubator.svg
- :target: http://governance.openstack.org/reference/tags/index.html
+The contents of this repository are still available in the Git
+source code management system. To see the contents of this
+repository before it reached its end of life, please check out the
+previous commit with "git checkout HEAD^1".
-.. Change things from this point on
-
-This Repo is Deprecated
-=======================
-
-Please see the `current TripleO docs `_.
+For any further questions, please email
+openstack-dev@lists.openstack.org or join #openstack-dev on
+Freenode.
diff --git a/cloudprompt b/cloudprompt
deleted file mode 100644
index 0d1130c2..00000000
--- a/cloudprompt
+++ /dev/null
@@ -1,5 +0,0 @@
-# Add OS_CLOUDNAME to PS1
-if [ -z "${OS_CLOUDPROMPT_ENABLED:-}" ]; then
- export PS1=\${OS_CLOUDNAME:+"(\$OS_CLOUDNAME)"}$PS1
- export OS_CLOUDPROMPT_ENABLED=1
-fi
diff --git a/doc/ext/__init__.py b/doc/ext/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/doc/ext/extract_docs.py b/doc/ext/extract_docs.py
deleted file mode 100644
index 50e68fa0..00000000
--- a/doc/ext/extract_docs.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-import os
-
-from sphinx import errors
-
-
-def builder_inited(app):
- app.info('In: ' + os.path.abspath('.'))
- source_dir = app.srcdir
- build_dir = app.outdir
- app.info('Generating devtest from %s into %s' % (source_dir, build_dir))
- ret = os.system('scripts/extract-docs')
- if ret:
- raise errors.ExtensionError(
- "Error generating %s/devtest.rst" % build_dir)
-
-
-def setup(app):
- app.connect('builder-inited', builder_inited)
diff --git a/doc/source/CONTRIBUTING.rst b/doc/source/CONTRIBUTING.rst
deleted file mode 100644
index ac7b6bcf..00000000
--- a/doc/source/CONTRIBUTING.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../CONTRIBUTING.rst
diff --git a/doc/source/HACKING.rst b/doc/source/HACKING.rst
deleted file mode 100644
index a2bcf4fd..00000000
--- a/doc/source/HACKING.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../HACKING.rst
diff --git a/doc/source/README.rst b/doc/source/README.rst
deleted file mode 100644
index a6210d3d..00000000
--- a/doc/source/README.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../README.rst
diff --git a/doc/source/conf.py b/doc/source/conf.py
deleted file mode 100644
index baac6506..00000000
--- a/doc/source/conf.py
+++ /dev/null
@@ -1,50 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import os
-import sys
-
-sys.path.insert(0, os.path.abspath('../..'))
-sys.path.insert(0, os.path.abspath('../'))
-sys.path.insert(0, os.path.abspath('./'))
-
-# -- General configuration ----------------------------------------------------
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = [
- 'sphinx.ext.autodoc',
- 'sphinx.ext.intersphinx',
- 'oslosphinx',
- 'ext.extract_docs'
-]
-
-# The suffix of source filenames.
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = u'TripleO'
-copyright = u'2013, OpenStack Foundation'
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# -- Options for HTML output --------------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = '%sdoc' % project
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, documentclass
-# [howto/manual]).
-latex_documents = [
- ('index',
- '%s.tex' % project,
- u'%s Documentation' % project,
- u'OpenStack Foundation', 'manual'),
-]
-
-# Example configuration for intersphinx: refer to the Python standard library.
-intersphinx_mapping = {'http://docs.python.org/': None}
diff --git a/doc/source/deploying.rst b/doc/source/deploying.rst
deleted file mode 100644
index 40b831d0..00000000
--- a/doc/source/deploying.rst
+++ /dev/null
@@ -1,494 +0,0 @@
-Deploying TripleO
-=================
-
-Components
-----------
-
-Essential Components
-^^^^^^^^^^^^^^^^^^^^
-
-Essential components make up the self-deploying infrastructure that is
-the heart of TripleO.
-
-- Baremetal machine deployment (Nova Baremetal, soon to be 'Ironic')
-
-- Baremetal volume management (Cinder - not available yet)
-
-- Cluster orchestration (Heat)
-
-- Machine image creation (Diskimage-builder)
-
-- In-instance configuration management
- (os-apply-config+os-refresh-config, and/or Chef/Puppet/Salt)
-
-- Image management (Glance)
-
-- Network management (Neutron)
-
-- Authentication and service catalog (Keystone)
-
-Additional Components
-^^^^^^^^^^^^^^^^^^^^^
-
-These components add value to the TripleO story, making it safer to
-upgrade and evolve an environment, but are secondary to the core thing
-itself.
-
-- Continuous integration (Zuul/Jenkins)
-
-- Monitoring and alerting (Ceilometer/nagios/etc)
-
-Dependencies
-------------
-
-Each component can only be deployed once its dependencies are available.
-
-TripleO is built on a Linux platform, so a Linux environment is required
-both to create images and as the OS that will run on the machines. If
-you have no Linux machines at all, you can download a live CD from a
-number of vendors, which will permit you to run diskimage-builder to get
-going.
-
-Diskimage-builder
-^^^^^^^^^^^^^^^^^
-
-An internet connection is also required to download the various packages
-used in preparing each image.
-
-The machine images built *can* depend on Heat metadata, or they can just
-contain configured Chef/Puppet/Salt credentials, depending on how much
-of TripleO is in use. Avoiding Heat is useful when doing a incremental
-adoption of TripleO (see later in this document).
-
-Baremetal machine deployment
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Baremetal deployments are delivered via Nova. Additionally, the network
-must be configured so that the baremetal host machine can receive TFTP
-from any physical machine that is being booted.
-
-Nova
-^^^^
-
-Nova depends on Keystone, Glance and Neutron. In future Cinder will be
-one of the dependencies.
-
-There are three ways the service can be deployed:
-
-- Via diskimage-builder built machine images, configured via a running
- Heat cluster. This is the normal TripleO deployment.
-
-- Via the special bootstrap node image, which is built by
- diskimage-builder and contains a full working stack - nova, glance,
- keystone and neutron, configured by statically generated Heat
- metadata. This approach is used to get TripleO up and running.
-
-- By hand - e.g. using devstack, or manually/chef/puppet/packages on a
- dedicated machine. This can be useful for incremental adoption of
- TripleO.
-
-Cinder
-^^^^^^
-
-Cinder is needed for persistent storage on bare metal machines. That
-aspect of TripleO is not yet available : when an instance is deleted,
-the storage is deleted with it.
-
-Neutron
-^^^^^^^
-
-Neutron depends on Keystone. The same three deployment options exist as
-for Nova. The Neutron network node(s) must be the only DHCP servers on
-the network.
-
-Glance
-^^^^^^
-
-Glance depends on Keystone. The same three deployment options exist as
-for Nova.
-
-Keystone
-^^^^^^^^
-
-Keystone has no external dependencies. The same three deployment options
-exist as for Nova.
-
-Heat
-^^^^
-
-Heat depends on Nova, Cinder and Keystone. The same three deployment
-options exist as for Nova.
-
-In-instance configuration
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The os-apply-config and os-refresh-config tools depend on Heat to
-provide cluster configuration metadata. They can be used before Heat is
-functional if a statically prepared metadata file is placed in the Heat
-path : this is how the bootstrap node works.
-
-os-apply-config and os-refresh-config can be used in concert with
-Chef/Puppet/Salt, or not used at all, if you configure your services via
-Chef/Puppet/Salt.
-
-The reference TripleO elements do not depend on Chef/Puppet/Salt, to
-avoid conflicting when organisations with an investment in
-Chef/Puppet/Salt start using TripleO.
-
-Deploying TripleO incrementally
--------------------------------
-
-The general sequence is:
-
-- Examine the current state of TripleO and assess where non-automated
- solutions will be needed for your environment. E.g. at the time of
- writing VLAN support requires baking the VLAN configuration into your
- built disk images.
-
-- Decide how much of TripleO you will adopt. See `Example deployments (possible today)`_
- below.
-
-- Install diskimage-builder somewhere and use it to build the disk
- images your configuration will require.
-
-- Bring up the aspects of TripleO you will be using, starting with a
- boot-stack node (which you can run in a KVM VM in your datacentre),
- using that to bring up an actual machine and transfer bare metal
- services onto it, and then continuing up the stack.
-
-Current caveats / workarounds
------------------------------
-
-These are all documented in README.rst and in the
-`TripleO bugtracker`_.
-
-.. _`TripleO bugtracker`: https://launchpad.net/tripleo
-
-No API driven persistent storage
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Every 'nova boot' will reset the data on the machine it deploys to. To
-do incremental image based updates they have to be done within the
-runnning image. 'takeovernode' can do that, but as yet we have not
-written rules to split out persistent data into another partition - so
-some assembly required.
-
-VLANs for physical nodes require customised images (rather than just metadata).
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-If you require VLANs you should create a diskimage-builder element to
-add the vlan package and vlan configuration to /etc/network/interfaces
-as a first-boot rule.
-
-New seed image creation returns tmpfs space errors (systems with < 9GB of RAM)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Creating a new seed image takes up to 4.5GB of space inside a /tmp/imageXXXXX
-directory. tmpfs can take up to 50% of RAM and systems with less than 9GB of
-RAM will fail in this step. When using ``diskimage-builder`` directly, you can
-prevent the space errors by:
-
-- avoiding tmpfs with ``--no-tmpfs`` or
-- specifying a minimum tmpfs size required with ``--min-tmpfs`` (which can be used
- in conjunction with setting the environment variable ``TMP_DIR`` to override the
- default temporary directory)
-
-If you are using ``boot-seed-vm``, set the environment variable ``DIB_NO_TMPFS=1``.
-
-Example deployments (possible today)
-------------------------------------
-
-Baremetal only
-^^^^^^^^^^^^^^
-
-In this scenario you make use of the baremetal driver to deploy
-unspecialised machine images, and perform specialisation using
-Chef/Puppet/Salt - whatever configuration management toolchain you
-prefer. The baremetal host system is installed manually, but a TripleO
-image is used to deploy it.
-
-It scales within any one broadcast domain to the capacity of the single
-baremetal host.
-
-Prerequisites
-~~~~~~~~~~~~~
-
-- A boot-stack image setup to run in KVM.
-
-- A vanilla image.
-
-- A userdata script to configure new instances to run however you want.
-
-- A machine installed with your OS of choice in your datacentre.
-
-- Physical machines configured to netboot in preference to local boot.
-
-- A list of the machines + their IPMI details + mac addresses.
-
-- A network range larger than the maximum number of concurrent deploy
- operations to run in parallel.
-
-- A network to run the instances on large enough to supply one ip per
- instance.
-
-HOWTO
-~~~~~
-
-- Build the images you need (add any local elements you need to the
- commands)
-
-- Copy ``tripleo-image-elements/elements/seed-stack-config/config.json`` to
- ``tripleo-image-elements/elements/seed-stack-config/local.json`` and
- change the virtual power manager to 'nova...impi.IPMI'.
- https://bugs.launchpad.net/tripleo/+bug/1178547::
-
- disk-image-create -o bootstrap vm boot-stack local-config ubuntu
- disk-image-create -o ubuntu ubuntu
-
- The ``local-config`` element will copy your ssh key and your HTTP proxy
- settings in the disk image during the creation process.
-
- The ``stackuser`` element will create a user ``stack`` with the password ``stack``.
-
- ``disk-image-create`` will create a image with a very small disk size
- that at to be resized for example by cloud-init. You can use
- ``DIB_IMAGE_SIZE`` to increase this initial size, in GB.
-
-- Setup a VM using bootstrap.qcow2 on your existing machine, with eth1
- bridged into your datacentre LAN.
-
-- Run up that VM, which will create a self contained nova baremetal
- install.
-
-- Reconfigure the networking within the VM to match your physical
- network. https://bugs.launchpad.net/tripleo/+bug/1178397
- https://bugs.launchpad.net/tripleo/+bug/1178099
-
-- If you had exotic hardware needs, replace the deploy images that the
- bootstack creates. https://bugs.launchpad.net/tripleo/+bug/1178094
-
-- Enroll your vanilla image into the glance of that install. Be sure to
- use ``tripleo-incubator/scripts/load-image`` as that will extract the
- kernel and ramdisk and register them appropriately with glance.
-
-- Enroll your other datacentre machines into that nova baremetal
- install. A script that takes your machine inventory and prints out
- something like::
-
- nova baremetal-node-create --pm_user XXX --pm_address YYY --pm_password ZZZ COMPUTEHOST 24 98304 2048 MAC
-
- can be a great help - and can be run from outside the environment.
-
-- Setup admin users with SSH keypairs etc. e.g.::
-
- nova keypair-add --pub-key .ssh/authorized_keys default
-
-- Boot them using the ubuntu.qcow2 image, with appropriate user data to
- connect to your Chef/Puppet/Salt environments.
-
-Baremetal with Heat
-^^^^^^^^^^^^^^^^^^^
-
-In this scenario you use the baremetal driver to deploy specialised
-machine images which are orchestrated by Heat.
-
-Prerequisites.
-~~~~~~~~~~~~~~
-
-- A boot-stack image setup to run in KVM.
-
-- A vanilla image with cfn-tools installed.
-
-- A seed machine installed with your OS of choice in your datacentre.
-
-HOWTO
-~~~~~
-
-- Build the images you need (add any local elements you need to the
- commands)::
-
- disk-image-create -o bootstrap vm boot-stack ubuntu heat-api
- disk-image-create -o ubuntu ubuntu cfn-tools
-
-- Setup a VM using bootstrap.qcow2 on your existing machine, with eth1
- bridged into your datacentre LAN.
-
-- Run up that VM, which will create a self contained nova baremetal
- install.
-
-- Enroll your vanilla image into the glance of that install.
-
-- Enroll your other datacentre machines into that nova baremetal
- install.
-
-- Setup admin users with SSH keypairs etc.
-
-- Create a Heat stack with your application topology. Be sure to use
- the image id of your cfn-tools customised image.
-
-GRE Neutron OpenStack managed by Heat
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-In this scenario we build on Baremetal with Heat to deploy a full
-OpenStack orchestrated by Heat, with specialised disk images for
-different OpenStack node roles.
-
-Prerequisites.
-~~~~~~~~~~~~~~
-
-- A boot-stack image setup to run in KVM.
-
-- A vanilla image with cfn-tools installed.
-
-- A seed machine installed with your OS of choice in your datacentre.
-
-- At least 4 machines in your datacentre, one of which manually installed with
- a recent Linux (libvirt 1.0+ or newer required).
-
-- L2 network with private address range
-
-- L3 accessible management network (via the L2 default router)
-
-- VLAN with public IP ranges on it
-
-Needed data
-~~~~~~~~~~~
-
-- a JSON file describing your baremetal machines in a format described
- in :ref:`devtest-environment-configuration` (see: nodes), making sure to
- include all MAC addresses for all network interface cards as well as the
- IPMI (address, user, password) details for them.
-
-- 2 spare contiguous ip addresses on your L2 network for seed deployment.
-
-- 1 spare ip address for your seed VM, and one spare for talking to it on it's
- bridge (seedip, seediplink)
-
-- 3 spare ip addresses for your undercloud tenant network + neutron services.
-
-- Public IP address to be your undercloud endpoint
-
-- Public IP address to be your overcloud endpoint
-
-Install Seed
-~~~~~~~~~~~~
-
-Follow the 'devtest' guide but edit the seed config.json to:
-
-- change the dnsmasq range to the seed deployment range
-
-- change the heat endpoint details to refer to your seed ip address
-
-- change the ctlplane ip and cidr to match your seed ip address
-
-- change the power manager line nova.virt.baremetal.ipmi.IPMI and
- remove the virtual subsection.
-
-- setup proxy arp (this and the related bits are used to avoid messing about
- with the public NIC and bridging: you may choose to use that approach
- instead...)::
-
- sudo sysctl net/ipv4/conf/all/proxy_arp=1
- arp -s -i -D pub
- ip addr add /32 dev brbm
- ip route add /32 dev brbm src
-
-- setup ec2 metadata support::
-
- iptables -t nat -A PREROUTING -d 169.254.169.254/32 -i -p tcp -m tcp --dport 80 -j DNAT --to-destination :8775
-
-- setup DHCP relay::
-
- sudo apt-get install dhcp-helper
-
- and configure it with ``-s ``
- Note that isc-dhcp-relay fails to forward responses correctly, so dhcp-helper is preferred
- ( https://bugs.launchpad.net/ubuntu/+bug/1233953 ).
-
- Also note that dnsmasq may have to be stopped as they both listen to ``*:dhcps``
- ( https://bugs.launchpad.net/ubuntu/+bug/1233954 ).
-
- Disable the ``filter-bootps`` cronjob (``./etc/cron.d/filter-bootp``) inside the seed vm and reset the table::
-
- sudo iptables -F FILTERBOOTPS
-
- edit /etc/init/novabm-dnsmasq.conf::
-
- exec dnsmasq --conf-file= \
- --keep-in-foreground \
- --port=0 \
- --dhcp-boot=pxelinux.0,, \
- --bind-interfaces \
- --pid-file=/var/run/dnsmasq.pid \
- --interface=br-ctlplane \
- --dhcp-range=,,
-
-- When you setup the seed, use instead of 192.0.2.1, and you may need to edit seedrc.
-
-- For setup-neutron:
- setup-neutron ctlplane
-
-- Validate networking:
-
- - From outside the seed host you should be able to ping
- - From the seed VM you should be able to ping
- - From outside the seed host you should be able to get a response from the dnsmasq running on
-
-- Create your deployment ramdisk with baremetal in mind::
-
- $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST -a \
- $NODE_ARCH -o $TRIPLEO_ROOT/undercloud boot-stack nova-baremetal \
- os-collect-config stackuser $DHCP_DRIVER -p linux-image-generic mellanox \
- serial-console --offline
-
-- If your hardware has something other than eth0 plugged into the network,
- fix your file injection template -
- ``/opt/stack/nova/nova/virt/baremetal/net-static.ubuntu.template`` inside the
- seed vm, replacing the enumerated interface values with the right interface
- to use (e.g. auto eth2... iface eth2 inet static..)
-
-Deploy Undercloud
-~~~~~~~~~~~~~~~~~
-
-Use ``heat stack-create`` per the devtest documentation to boot your undercloud.
-But use the ``undercloud-bm.yaml`` file rather ``than undercloud-vm.yaml``.
-
-Once it's booted:
-
-- ``modprobe 8021q``
-
-- edit ``/etc/network/interfaces`` and define your vlan
-
-- delete the default route on your internal network
-
-- add a targeted route to your management l3 range via the internal network router
-
-- add a targeted route to ``169.254.169.254`` via
-
-- ``ifup`` the vlan interface
-
-- fix your resolv.conf
-
-- configure the undercloud per devtest.
-
-- upgrade your quotas::
-
- nova quota-update --cores node_size*machine_count --instances machine_count --ram node_size*machine_count admin-tenant-id
-
-
-Deploy Overcloud
-~~~~~~~~~~~~~~~~
-
-Follow devtest again, but modify the images you build per the undercloud notes, and for machines you put public services on, follow the undercloud notes to fix them up.
-
-Example deployments (future)
-----------------------------
-
-WARNING: Here be draft notes.
-
-VM seed + bare metal under cloud
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-- need to be aware nova metadata wont be available after booting as the
- default rule assumes this host never initiates requests
- ( https://bugs.launchpad.net/tripleo/+bug/1178487 ).
diff --git a/doc/source/index.rst b/doc/source/index.rst
deleted file mode 100644
index 52b450ee..00000000
--- a/doc/source/index.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-TripleO Incubator
-=================
-
-Getting Started
----------------
-.. toctree::
- :maxdepth: 1
-
- README
- userguide
- devtest
- HACKING
-
-Detailed notes
----------------
-
-.. tip::
-
- The following docs each contain detailed notes about one of the scripts corresponding to one of the high-level stages of a TripleO deployment. You should be familiar with the content in the `Getting Started`_ section above before diving into these docs.
-
-.. toctree::
- :maxdepth: 1
-
- devtest_variables
- devtest_setup
- devtest_testenv
- devtest_update_network
- devtest_ramdisk
- devtest_seed
- devtest_undercloud
- devtest_overcloud
- devtest_overcloud_images
- devtest_end
-
-Further Information
--------------------
-.. toctree::
- :maxdepth: 1
-
- deploying
- puppet
- resources
- troubleshooting
- CONTRIBUTING
- selinux-guide
-
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
diff --git a/doc/source/overview.svg b/doc/source/overview.svg
deleted file mode 100644
index 140ca2dc..00000000
--- a/doc/source/overview.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/doc/source/puppet.rst b/doc/source/puppet.rst
deleted file mode 100644
index 70567c14..00000000
--- a/doc/source/puppet.rst
+++ /dev/null
@@ -1,133 +0,0 @@
-TripleO Overcloud deployment with Puppet
-========================================
-
-Intro
------
-
-This document outlines how to deploy a TripleO overcloud using Puppet
-for configuration. TripleO currently supports using Puppet for configuration
-using Heat metadata directly via the normal os-collect-config/os-refresh-config
-agents. No puppet-master or puppet DB infrastructure is required.
-
-Building Images
----------------
-When building TripleO images for use with Puppet the following elements
-should be installed:
-
-- ``hosts``
-- ``os-net-config``
-- ``os-collect-config``
-- ``heat-config-puppet``
-- ``puppet-modules``
-- ``hiera``
-
-The ``hosts`` and ``os-net-config`` are normal TripleO image elements and are still
-used to deploy basic physical networking configuration required to bootstrap
-the node.
-
-The ``os-collect-config``, and ``heat-config-puppet`` elements provide mechanism
-to run ``puppet apply`` commands that have been configured via Heat software
-deployment configurations.
-
-The ``puppet-modules`` element installs all of the required ``stackforge
-puppet-*`` modules. This element has two modes of operation: package or source
-installs. The package mode assumes that all of the required modules exist in
-a single distribution provided package. The source mode deploys the puppet
-modules from Git at image build time and automatically links them into
-``/etc/puppet/modules``. The source mode makes use of source repositories so
-you can, for example, pin to a specific ``puppetlabs-mysql`` module version by setting::
-
- DIB_REPOREF_puppetlabs_mysql=
-
-The ``hiera`` element provides a way to configure the hiera.yaml and hieradata
-files on each node directly via Heat metadata. The ``tripleo-heat-templates``
-are used to drive this configuration.
-
-When building images for use with Puppet it is important to note that
-regardless of whether you use source or package mode to install these core
-elements the actual OpenStack service packages (Nova, Neutron, Keystone, etc)
-will need to be installed via normal distro packages. This is required in
-order to work with the stackforge puppet modules.
-
-The OpenStack service packages can be installed at DIB time via the -p
-option or at deployment time when Puppet is executed on each node.
-
-Heat Templates
---------------
-
-When deploying an overcloud with Heat only the newer
-``overcloud-without-mergepy.yaml`` supports Puppet. To enable Puppet simply use
-the ``overcloud-resource-registry-puppet.yaml`` instead of the normal
-``overcloud-resource-registry.yaml`` with your Heat ``stack-create`` command.
-
-Running Devtest Overcloud with Delorean on Fedora
--------------------------------------------------
-
-This section describes the variables required in order to run
-``devtest_overcloud.sh`` with Puppet. It assumes you have a fully working
-TripleO undercloud (or seed) which has been preconfigured to work
-in your environment.
-
-.. note::
-
- The following instructions assume this pre-existing config from a normal devtest Fedora setup::
-
- export NODE_DIST='fedora selinux-permissive'
- export DIB_RELEASE=21
- export RDO_RELEASE=kilo
-
- # Enable packages for all elements by default
- export DIB_DEFAULT_INSTALLTYPE=package
-
- # Do not manage /etc/hosts via cloud-init
- export DIB_CLOUD_INIT_ETC_HOSTS=''
-
- # Set ROOT_DISK == NODE_DISK (no ephemeral partition)
- export ROOT_DISK=40
- export NODE_DISK=40
-
- By default TripleO uses puppet for configuration only. Packages (RPMs, etc)
- are typically installed at image build time.
-
- If you wish to have packages installed at deploy time via Puppet it
- is important to have a working undercloud nameserver. You can configure
- this by adding the appropriate undercloud.nameserver setting
- settings to your undercoud-env.json file. Alternately, If going directly
- from the seed to the overcloud then you'll need to set seed.nameserver
- in your testenv.json. If you wish to install packages at deploy
- time you will also need to set EnablePackageInstall to true in your
- overcloud-resource-registry-puppet.yaml (see below for instructions
- on how to override your Heat resource registry).
-
-1) Git clone the tripleo-puppet-elements [1]_ project into your $TRIPLEO_ROOT. This is currently a non-standard image elements repository and needs to be manually cloned in order to build Puppet images.
-
-2) Add tripleo-puppet-elements to your ELEMENTS_PATH::
-
- export ELEMENTS_PATH=$ELEMENTS_PATH:$TRIPLEO_ROOT/tripleo-puppet-elements/elements:$TRIPLEO_ROOT/heat-templates/hot/software-config/elements
-
-3) Set a variable so that a custom puppet image gets built and loaded into Glance::
-
- export OVERCLOUD_DISK_IMAGES_CONFIG=$TRIPLEO_ROOT/tripleo-incubator/scripts/overcloud_puppet_disk_images.yaml
-
-4) Override the tripleo-heat-templates resource registry::
-
- export RESOURCE_REGISTRY_PATH="$TRIPLEO_ROOT/tripleo-heat-templates/overcloud-resource-registry-puppet.yaml"
-
-5) Configure your Delorean repo URL. This is used to fetch more recently built upstream packages for your OpenStack services::
-
- export DELOREAN_REPO_URL="http://trunk.rdoproject.org/f21/current/"
-
- For more information on Delorean see [2]_
-
-6) Enable the use of stackforge modules from Git. This is to work around the fact that the Fedora RPM doesn't have support for all the required modules yet::
-
- export DIB_INSTALLTYPE_puppet_modules=source
-
-7) Source your undercloud environment RC file (perhaps via the select-cloud script). Then execute devtest_overcloud.sh::
-
- devtest_overcloud.sh
-
-References
-----------
-.. [1] http://git.openstack.org/openstack/tripleo-puppet-elements/
-.. [2] https://github.com/openstack-packages/delorean
diff --git a/doc/source/resources.rst b/doc/source/resources.rst
deleted file mode 100644
index 7f334122..00000000
--- a/doc/source/resources.rst
+++ /dev/null
@@ -1,29 +0,0 @@
-Tripleo team resources
-======================
-
-- Launchpad team (lets you get our ssh keys etc easily):
-
- ::
-
- https://launchpad.net/~tripleo
-
-- Demo and staging PPAs (for custom binaries):
-
- ::
-
- apt-add-repository ppa:tripleo/demo
- apt-add-repository ppa:tripleo/demo-staging
-
-- Git repositories:
-
- ::
-
- https://git.openstack.org/cgit/?q=tripleo
- https://git.openstack.org/cgit/?q=tuskar
- https://git.openstack.org/cgit/openstack/diskimage-builder
-
-- IRC: duh.
-
- ::
-
- irc://irc.freenode.net/#tripleo
diff --git a/doc/source/selinux-guide.rst b/doc/source/selinux-guide.rst
deleted file mode 100644
index 62accc8f..00000000
--- a/doc/source/selinux-guide.rst
+++ /dev/null
@@ -1,283 +0,0 @@
-SELinux Developer Guide
-=======================
-
-
-Do I have a SELinux problem?
-----------------------------
-
-At the moment SELinux is set to run in permissive mode in TripleO. This means
-that problems are logged but not blocked. To see if you have a SELinux problem
-that needs to be fixed, examine /var/log/audit/audit.log in your local
-development environment or from the TripleO-CI log archive. You may need to
-examine the log files for multiple nodes (undercloud and/or overcloud).
-
-Any line that has "denied" is a problem. This guide will talk about common
-problems and how to fix them.
-
-
-Workflow
---------
-
-All changes are assumed to have been tested locally before a patch is submitted
-upstream for review. Testing should include inspecting the local audit.log to
-see that no new SELinux errors were logged.
-
-If an error was logged, it should be fixed using the guidelines described below.
-
-If no errors were logged, then the change is submitted for review. In addition
-to getting the change to pass CI, the audit.log archived from the CI runs should
-be inspected to see no new SELinux errors were logged. Problems should be fixed
-until the audit.log is clear of new errors.
-
-The archived audit.log file can be found in the logs directory for each
-individual instance that is brought up. For example the seed instance log files
-can be seen here:
-
-http://logs.openstack.org/03/115303/1/check-tripleo/check-tripleo-novabm-overcloud-f20-nonha/e5bef5c/logs/seed_logs/
-
-audit.log is audit.txt.gz.
-
-ps -efZ output can be found in host_info.txt.gz.
-
-
-Updating SELinux file security contexts
----------------------------------------
-
-The targeted policy expects directories and files to be placed in certain
-locations. For example, nova normally has files under /var/log/nova and
-/var/lib/nova. Its executables are placed under /usr/bin.
-
-::
-
- [user@server files]$ pwd
- /etc/selinux/targeted/contexts/files
- [user@server files]$ grep nova *
- file_contexts:/var/lib/nova(/.*)? system_u:object_r:nova_var_lib_t:s0
- file_contexts:/var/log/nova(/.*)? system_u:object_r:nova_log_t:s0
- file_contexts:/var/run/nova(/.*)? system_u:object_r:nova_var_run_t:s0
- file_contexts:/usr/bin/nova-api -- system_u:object_r:nova_api_exec_t:s0
- file_contexts:/usr/bin/nova-cert -- system_u:object_r:nova_cert_exec_t:s0
-
-TripleO diverges from what the target policy expects and places files and
-executables in different locations. When a file or directory is not properly
-labeled the service may fail to startup. A SELinux AVC denial is logged to
-/var/log/audit.log when SELinux detects that a service doesn't have permission
-to access a file or directory.
-
-When the ephemeral element is active, upstream TripleO places /var/log and
-/var/lib under the ephemeral mount point, /mnt/state. The directories and files
-on these locations may not have the correct file security contexts if they were
-installed outside of yum.
-
-The directories and files in the ephemeral disk must be updated to have the
-correct security context. Here is an example for nova:
-
-https://github.com/openstack/tripleo-image-elements/blob/master/elements/nova/os-refresh-config/configure.d/20-nova-selinux#L6
-
-::
-
- semanage fcontext -a -t nova_var_lib_t "/mnt/state/var/lib/nova(/.*)?"
- restorecon -Rv /mnt/state/var/lib/nova
- semanage fcontext -a -t nova_log_t "/mnt/state/var/log/nova(/.*)?"
- restorecon -Rv /mnt/state/var/log/nova
-
-For nova we use semanage to relabel /mnt/state/var/lib/nova with the type
-nova_var_lib_t and /mnt/state/var/log/nova with the type nova_var_log_t. Then
-we call restorecon to apply the labels.
-
-To see a file's security context run "ls -lZ ".
-
-::
-
- [user@server]# ls -lZ /mnt/state/var/lib
- drwxr-xr-x. root root system_u:object_r:file_t:s0 boot-stack
- drwxrwx---. ceilometer ceilometer system_u:object_r:file_t:s0 ceilometer
- drwxr-xr-x. root root system_u:object_r:file_t:s0 cinder
- drwxrwx---. glance glance system_u:object_r:glance_var_lib_t:s0 glance
- drwxr-xr-x. mysql mysql system_u:object_r:mysqld_db_t:s0 mysql
- drwxrwx---. neutron neutron system_u:object_r:neutron_var_lib_t:s0 neutron
- drwxrwxr-x. nova nova system_u:object_r:nova_var_lib_t:s0 nova
- drwxrwx---. rabbitmq rabbitmq system_u:object_r:rabbitmq_var_lib_t:s0 rabbitmq
-
-TripleO installs many components under /opt/stack/venvs/. Executables under
-/opt/stack/venvs//bin need to be relabeled. For these we do a path
-substitution to tell SELinux policy that /usr/bin and
-/opt/stack/venvs//bin are equivalent. When the image is relabeled
-during image build or during first boot, SELinux will relabel the files under
-/opt/stack/stack/venvs//bin as if they were installed under /usr/bin.
-
-An example of a path substitution for nova:
-
-https://github.com/openstack/tripleo-image-elements/blob/master/elements/nova/install.d/nova-source-install/74-nova
-
-::
-
- add-selinux-path-substitution /usr/bin $NOVA_VENV_DIR/bin
-
-
-Allowing port access
---------------------
-
-Services are granted access to a prespecified set of ports by the
-selinux-policy. A list of ports for a service can be seen using
-
-::
-
- semanage port -l | grep http
-
-You can grant a service access to additional ports by using semanage.
-
-::
-
- semanage port -a -t http_port_t -p tcp 9876
-
-If the port you are adding is a standard or default port, then it would be
-appropriate to also file a bug against upstream SELinux to ask for the policy
-to include it by default.
-
-
-Using SELinux booleans
-----------------------
-
-Sometimes a problem can be fixed by toggling a SELinux boolean to allow certain
-actions.
-
-Currently we enable two booleans in TripleO.
-
-https://github.com/openstack/tripleo-image-elements/blob/master/elements/keepalived/os-refresh-config/configure.d/20-keepalived-selinux
-
-::
-
- setsebool -P domain_kernel_load_modules 1
-
-https://github.com/openstack/tripleo-image-elements/blob/master/elements/haproxy/os-refresh-config/configure.d/20-haproxy-selinux
-
-::
-
- setsebool -P haproxy_connect_any 1
-
-domain_kernel_load_modules is used with the keepalived element to allow
-keepalive to load kernel modules.
-
-haproxy_connect_any is used with the haproxy element to allow it to proxy any
-port.
-
-When a boolean is enabled, it should be enabled within the element that requires
-it.
-
-"semanage boolean -l" lists the booleans that are available in the current
-policy.
-
-When would you know to use a boolean? Generating a custom policy for the denials
-you are seeing will tell you whether a boolean can be used to fix the denials.
-
-For example, when I generated a custom policy for the haproxy denials I was
-seeing in audit.log, the custom policy stated that haproxy_connect_any could be
-used to fix the denials.
-
-::
-
- #!!!! This avc can be allowed using the boolean 'haproxy_connect_any'
- allow haproxy_t glance_registry_port_t:tcp_socket name_bind;
-
- #!!!! This avc can be allowed using the boolean 'haproxy_connect_any'
- allow haproxy_t neutron_port_t:tcp_socket name_bind;
-
-How to generate a custom policy is discussed in the next section.
-
-
-Generating a custom policy
---------------------------
-
-If relabeling or toggling a boolean doesn't solve your problem, the next step is
-to generate a custom policy used as an hotfix to allow the actions that SELinux
-denied.
-
-To generate a custom policy, use this command
-
-::
-
- ausearch -m AVC | audit2allow -M
-
-.. note:: Not all AVCs should be allowed from an ausearch. In fact, most of
- them are likely leaked file descriptors, mislabeled files, and bugs in code.
-
-The custom policies are stored under
-tripleo-image-elements/elements/selinux/custom-policies. We use a single policy
-file for each component (one for nova, keystone, etc..). It is organized as per
-component to mirror how the policies are organized upstream. When you generate
-your custom policy, instead of dropping in a new file, you may need to edit an
-existing policy file to include the new changes.
-
-Each custom policy file must contain comments referencing the upstream bugs
-(Launchpad and upstream SELinux) that the policy is intended to fix. The
-comments help with housekeeping. When a bug is fixed upstream, a developer can
-then quickly search for the bug number and delete the appropriate lines from the
-custom policy file that are no longer needed.
-
-Example: https://review.openstack.org/#/c/107233/3/elements/selinux/custom-policies/tripleo-selinux-ssh.te
-
-
-Filing bugs for SELinux policy updates
---------------------------------------
-
-The custom policy is meant to be used as a temporary solution until the
-underlying problem is addressed. Most of the time, the upstream SELinux policy
-needs to be updated to incorporate the rules suggested by the custom policy. To
-ensure that that upstream policy is updated, we need to file a bug against the
-selinux-policy package.
-
-For Fedora, use this link to create a bug
-
-https://bugzilla.redhat.com/enter_bug.cgi?component=selinux-policy&product=Fedora
-
-For RHEL 7, use this link to create a bug, and file against the
-openstack-selinux component, not the selinux-policy component because it is
-released less frequently.
-
-https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20OpenStack
-
-Under "Version-Release number" include the package and version of the affected
-component.
-
-::
-
- Example:
- selinux-policy-3.12.1-179.fc20.noarch
- selinux-policy-targeted-3.12.1-179.fc20.noarch
- openssh-6.4p1-5.fc20.i686
- openssh-clients-6.4p1-5.fc20.i686
- openssh-server-6.4p1-5.fc20.i686
-
-Include the ps -efZ output from the affected system. And most importantly
-attach the /var/log/audit/audit.log to the bug.
-
-Also file a bug in Launchpad, referencing the bugzilla. When you commit the
-custom policy into github, the commit message should reference the Launchpad
-bug ID. The Launchpad bug should also be tagged with "selinux" to make SELinux
-bugs easier to find.
-
-Setting SELinux to enforcing mode
----------------------------------
-
-By default in TripleO, SELinux runs in permissive mode. This is set in the
-NODE_DIST environment variable in the devtest scripts.
-
-::
-
- export NODE_DIST="fedora selinux-permissive"
-
-To set SELinux to run in enforcing mode, remove the selinux-permissive element
-by adding this line to your ~/.devtestrc file.
-
-::
-
- export NODE_DIST="fedora"
-
-
-Additional Resources
---------------------
-
-1. http://openstack.redhat.com/SELinux_issues
-2. http://docs.fedoraproject.org/en-US/Fedora/19/html/Security_Guide/ch09.html
-
diff --git a/doc/source/troubleshooting.rst b/doc/source/troubleshooting.rst
deleted file mode 100644
index 063f227b..00000000
--- a/doc/source/troubleshooting.rst
+++ /dev/null
@@ -1,101 +0,0 @@
-Troubleshooting tips
-====================
-
-VM won't boot
--------------
-
-Make sure the partition table is correct. See
-https://bugs.launchpad.net/nova/+bug/1088652.
-
-Baremetal
----------
-
-If you get a no hosts found error in the schedule/nova logs, check:
-
-::
-
- mysql nova -e 'select * from compute_nodes;'
-
-After adding a bare metal node, the bare metal backend writes an entry
-to the compute nodes table, but it takes about 5 seconds to go from A to
-B.
-
-Be sure that the hostname in nova\_bm.bm\_nodes (service\_host) is the
-same than the one used by nova. If no value has been specified using the
-flag "host=" in nova.conf, the default one is:
-
-::
-
- python -c "import socket; print socket.getfqdn()"
-
-You can override this value when populating the bm database using the -h
-flag:
-
-::
-
- scripts/populate-nova-bm-db.sh -i "xx:xx:xx:xx:xx:xx" -j "yy:yy:yy:yy:yy:yy" -h "nova_hostname" add
-
-
-DHCP Server Work Arounds
-------------------------
-
-If you don't control the DHCP server on your flat network you will need
-to at least have someone put the MAC address of the server your trying
-to provision in there DHCP server.
-
-::
-
- host bm-compute001 {
- hardware ethernet 78:e7:d1:XX:XX:XX ;
- next-server 10.0.1.2 ;
- filename "pxelinux.0";
- }
-
-Write down the MAC address for the IPMI management interface and the NIC
-your booting from. You will also need to know the IP address of both.
-Most DHCP server won't expire the IP leased to quickly so if your lucky
-you will get the same IP each time you reboot. With that information
-bare-metal can generate the correct pxelinux.cfg/. (???? Commands to
-tell nova?)
-
-In the provisional environment I have there was another problem. The
-DHCP Server was already modified to point to a next-server. A quick work
-around was to redirect the connections using iptables.
-
-::
-
- modprobe nf_nat_tftp
-
- baremetal_installer="/"
- iptables -t nat -A PREROUTING -i eth2 -p udp --dport 69 -j DNAT --to ${baremetal_installer}:69
- iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 10000 -j DNAT --to ${baremetal_installer}:10000
- iptables -A FORWARD -p udp -i eth2 -o eth2 -d ${baremetal_installer} --dport 69 -j ACCEPT
- iptables -A FORWARD -p tcp -i eth2 -o eth2 -d ${baremetal_installer} --dport 10000 -j ACCEPT
- iptables -t nat -A POSTROUTING -j MASQUERADE
-
-Notice the additional rules for port 10000. It is for the bare-metal
-interface (???) You should have matching reverse DNS too. We experienced
-problems connecting to port 10000 (????). That may be very unique to my
-environment btw.
-
-Image Build Race Condition
---------------------------
-
-Multiple times we experienced a failure to build a good bootable image.
-This is because of a race condition hidden in the code currently. Just
-remove the failed image and try to build it again.
-
-Once you have a working image check the Nova DB to make sure the it is
-not flagged as removed (???)
-
-Virtual Machines
-----------------
-
-VM's booting terribly slowly in KVM?
-------------------------------------
-
-Check the console, if the slowdown happens right after probing for
-consoles - wait 2m or so and you should see a serial console as the next
-line output after the vga console. If so you're likely running into
-https://bugzilla.redhat.com/show\_bug.cgi?id=750773. Remove the serial
-device from your machine definition in libvirt, and it should fix it.
diff --git a/doc/source/userguide.rst b/doc/source/userguide.rst
deleted file mode 100644
index 48c612cd..00000000
--- a/doc/source/userguide.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-Using TripleO
-=============
-
-Learning
---------
-
-Learning how TripleO all works is essential. Working through :doc:`devtest` is
-highly recommended.
-
-Overview
---------
-
-.. image:: overview.svg
-
-Setup
------
-
-The script `install-dependencies` from incubator will install the basic tools
-needed to build and deploy images via TripleO. What it won't do is larger scale
-tasks like configuring a Ubuntu/Fedora/etc mirror, a pypi mirror, squid or
-similar HTTP caches etc. If you are deploying rarely, these things are
-optional.
-
-However, if you are building lots of images, having a local mirror of the
-things you are installing can be extremely advantageous.
-
-Operating
----------
-
-The general design of TripleO is intended to produce small unix-like tools
-that can be used to drive arbitrary cloud deployments. It is expected that
-you will either wrap them in higher order tools (such as CM tools, custom UI's
-or even just targeted scripts). TripleO is building a dedicated API to unify
-all these small tools for common case deployments, called Tuskar, but that is
-not yet ready for prime time. We'll start using it ourselves as it becomes
-ready.
-
-Take the time to learn the plumbing - nova, nova-bm or ironic, glance, keystone
-etc.
diff --git a/images/baremetal-bootstrap.dia b/images/baremetal-bootstrap.dia
deleted file mode 100644
index 5a82835a..00000000
Binary files a/images/baremetal-bootstrap.dia and /dev/null differ
diff --git a/images/baremetal-build-and-test-cycle.dia b/images/baremetal-build-and-test-cycle.dia
deleted file mode 100644
index fdb0ef2d..00000000
Binary files a/images/baremetal-build-and-test-cycle.dia and /dev/null differ
diff --git a/images/baremetal-build-images.dia b/images/baremetal-build-images.dia
deleted file mode 100644
index 974137ce..00000000
Binary files a/images/baremetal-build-images.dia and /dev/null differ
diff --git a/images/baremetal-deploy.odp b/images/baremetal-deploy.odp
deleted file mode 100644
index c10729f9..00000000
Binary files a/images/baremetal-deploy.odp and /dev/null differ
diff --git a/images/baremetal-discovery.odp b/images/baremetal-discovery.odp
deleted file mode 100644
index c5ba4014..00000000
Binary files a/images/baremetal-discovery.odp and /dev/null differ
diff --git a/images/nova-baremetal-deploy-process.dia b/images/nova-baremetal-deploy-process.dia
deleted file mode 100644
index f215fe73..00000000
Binary files a/images/nova-baremetal-deploy-process.dia and /dev/null differ
diff --git a/images/tripleo-concept.odp b/images/tripleo-concept.odp
deleted file mode 100644
index 061723fc..00000000
Binary files a/images/tripleo-concept.odp and /dev/null differ
diff --git a/images/tripleo-concept.svg b/images/tripleo-concept.svg
deleted file mode 100644
index d4866b55..00000000
--- a/images/tripleo-concept.svg
+++ /dev/null
@@ -1,469 +0,0 @@
-
-
-
-
diff --git a/images/tripleo-overview.dia b/images/tripleo-overview.dia
deleted file mode 100644
index 98a46713..00000000
Binary files a/images/tripleo-overview.dia and /dev/null differ
diff --git a/images/tripleo-overview.png b/images/tripleo-overview.png
deleted file mode 100644
index 35af5fb9..00000000
Binary files a/images/tripleo-overview.png and /dev/null differ
diff --git a/overcloudrc b/overcloudrc
deleted file mode 100644
index 040ad32b..00000000
--- a/overcloudrc
+++ /dev/null
@@ -1,8 +0,0 @@
-export NOVA_VERSION=1.1
-export OS_PASSWORD=$(os-apply-config -m $TE_DATAFILE --type raw --key overcloud.password)
-export OS_AUTH_URL=$(os-apply-config -m $TE_DATAFILE --type raw --key overcloud.endpoint)
-export OS_USERNAME=admin
-export OS_TENANT_NAME=admin
-export COMPUTE_API_VERSION=1.1
-export OS_NO_CACHE=True
-export OS_CLOUDNAME=overcloud
diff --git a/overcloudrc-user b/overcloudrc-user
deleted file mode 100644
index 517a918f..00000000
--- a/overcloudrc-user
+++ /dev/null
@@ -1,8 +0,0 @@
-export NOVA_VERSION=1.1
-export OS_PASSWORD=$OVERCLOUD_DEMO_PASSWORD
-export OS_AUTH_URL=$(os-apply-config -m $TE_DATAFILE --type raw --key overcloud.endpoint)
-export OS_USERNAME=demo
-export OS_TENANT_NAME=demo
-export COMPUTE_API_VERSION=1.1
-export OS_NO_CACHE=True
-export OS_CLOUDNAME=overcloud-user
diff --git a/presentations/TripleO architecture overview.odp b/presentations/TripleO architecture overview.odp
deleted file mode 100644
index edcc4c00..00000000
Binary files a/presentations/TripleO architecture overview.odp and /dev/null differ
diff --git a/run-bashate.sh b/run-bashate.sh
deleted file mode 100755
index 6bcca1ad..00000000
--- a/run-bashate.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash -
-
-# We could ignore the E012 bashate rule until the bug will be fixed in it.
-find scripts -type f -not -name '*.awk' -print0 | xargs -0 grep -HL '^#!/usr/bin/env python' | xargs bashate -v -i E012
-
diff --git a/scripts/acquire-image b/scripts/acquire-image
deleted file mode 100755
index 9690fb05..00000000
--- a/scripts/acquire-image
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/bin/bash
-
-set -eu
-set -o pipefail
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options () {
- echo "Usage: $SCRIPT_NAME --download BASE_URL [options] IMAGE_SET"
- echo
- echo "Acquire an image from cache/download it."
- echo
- echo "A BASE_URL needs to be supplied and the image will be downloaded only if"
- echo "the local copy is different. With -c, locally built images are not refreshed"
- echo "while we can do cache invalidation for downloaded images, we don't have cache"
- echo "invalidation logic yet for building images - -c allows direct control."
- echo
- echo "What constitutes an image is determined by the images key of the"
- echo "IMAGE_SET metadata file. This is a json file with the following structure:"
- echo
- echo " {\"images\": ["
- echo " \"image1_control.qcow2\","
- echo " \"image2_compute.qcow2\","
- echo " \"image3_compute_ha.qcow2\","
- echo " ..."
- echo " ]}"
- echo
- echo "Options:"
- echo " -c -- re-use existing images rather than rebuilding."
- echo " --download BASE_URL -- download images from BASE_URL/\$imagename."
- echo " -h, --help -- this text."
- echo
- exit $1
-}
-
-DOWNLOAD_BASE=
-USE_CACHE=
-
-TEMP=$(getopt -o ch -l download:,help -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ] ; then show_options 1; fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- --download) DOWNLOAD_BASE=$2; shift 2;;
- -c) USE_CACHE=1; shift 1;;
- -h | --help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-IMAGE_SET=${1:-''}
-shift || true
-
-if [ -z "$IMAGE_SET" -o -z "$DOWNLOAD_BASE" ]; then
- show_options 1
-fi
-
-IMAGE_BASENAME=$(basename "${IMAGE_SET}")
-IMAGE_DIRNAME=$(dirname "${IMAGE_SET}")
-METADATA_PATH=$DOWNLOAD_BASE/$IMAGE_BASENAME
-CACHE_URL="$TRIPLEO_ROOT/diskimage-builder/elements/cache-url/bin/cache-url"
-
-
-if [ image_exists -a -n "$USE_CACHE" ]; then
- exit 0
-fi
-
-set +e
-"${CACHE_URL}" ${METADATA_PATH} ${IMAGE_SET}
-RES=$?
-set -e
-if [ 0 -ne "$RES" -a 44 -ne "$RES" ]; then
- exit $RES
-elif [ 44 -ne "$RES" ]; then
- IMG_LIST=$(jq '.images' ${IMAGE_SET})
- for pos in $(seq 0 $(( $(jq length <<< $IMG_LIST) -1 )) ); do
- COMPONENT_NAME=$(jq -r ".[$pos]" <<< $IMG_LIST)
- "${CACHE_URL}" ${DOWNLOAD_BASE}/${COMPONENT_NAME} "${IMAGE_DIRNAME}"/${COMPONENT_NAME}
- done
- exit 0
-else
- echo "Error to retrieve the IMAGE_SET meta file."
- exit 1
-fi
-
-function image_exists() {
- if [ ! -e "${IMAGE_SET}" ]; then
- return 1
- fi
- IMG_LIST=$(jq '.images' ${IMAGE_SET})
- for pos in $(seq 0 $(($(jq length <<< $IMG_LIST) -1))); do
- COMPONENT_NAME=$(jq -r ".[$pos]" <<< $IMG_LIST)
- if [ ! -e "${IMAGE_DIRNAME}"/${COMPONENT_NAME} ]; then
- return 1
- fi
- done
- return 0
-}
diff --git a/scripts/assert-admin-users b/scripts/assert-admin-users
deleted file mode 100755
index c30a8eae..00000000
--- a/scripts/assert-admin-users
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] LISTFILE"
- echo
- echo "Ensure that every user listed in LISTFILE has an admin account."
- echo "Admin accounts are made by creating a user $USER-admin for every"
- echo "user in LISTFILE."
- echo
- echo "Options:"
- echo " -h -- this help"
- echo
- exit $1
-}
-
-TEMP=`getopt -o h -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-LISTFILE=${1:-''}
-EXTRA_ARGS=${2:-''}
-
-if [ -z "$LISTFILE" -o -n "$EXTRA_ARGS" ]; then
- show_options 1
-fi
-
-assert-users -t admin <(awk 'BEGIN { FS = "," }{ print $1 "-admin," $2 "," $3 }' < $LISTFILE)
diff --git a/scripts/assert-user b/scripts/assert-user
deleted file mode 100755
index 237ab24c..00000000
--- a/scripts/assert-user
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options]"
- echo
- echo "Ensure that a given user exists."
- echo
- echo "Options:"
- echo " -h -- this help"
- echo " -e -- email"
- echo " -n -- name"
- echo " -t -- tenant"
- echo " -u -- usercode"
- echo
- exit $1
-}
-
-EMAIL=''
-NAME=''
-TENANT=''
-USERCODE=''
-
-TEMP=`getopt -o hu:e:n:t: -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h) show_options 0;;
- -e) EMAIL=$2; shift 2 ;;
- -n) NAME=$2; shift 2 ;;
- -t) TENANT=$2; shift 2 ;;
- -u) USERCODE=$2; shift 2 ;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-EXTRA_ARGS=${1:-''}
-
-if [ -z "$EMAIL" -o -z "$NAME" -o -z "$TENANT" -o -z "$USERCODE" -o -n "$EXTRA_ARGS" ]; then
- show_options 1
-fi
-
-echo "Checking for user $USERCODE"
-#TODO: fix after bug 1392035 in the keystone client library
-USER_ID=$(openstack user list | awk '{print tolower($0)}' |grep " ${USERCODE,,} " |awk '{print$2}')
-if [ -z "$USER_ID" ]; then
- PASSWORD=''
- if [ -e os-asserted-users ]; then
- PASSWORD=$(awk "\$1==\"$USERCODE\" { print \$2 }" < os-asserted-users)
- fi
- if [ -z "$PASSWORD" ]; then
- PASSWORD=$(os-make-password)
- echo "$USERCODE $PASSWORD" >> os-asserted-users
- fi
- USER_ID=$(openstack user create --pass "$PASSWORD"
- --email "$EMAIL" $USERCODE | awk '$2=="id" {print $4}')
-fi
-#TODO: fix after bug 1392035 in the keystone client library
-TENANT_ID=$(openstack project list | awk '{print tolower($0)}' |grep " ${TENANT,,} " |awk '{print$2}')
-if [ -z "$TENANT_ID" ]; then
- TENANT_ID=$(openstack project create $TENANT | awk '$2=="id" {print $4}')
-fi
-if [ "$TENANT" = "admin" ]; then
- ROLE="admin"
-else
- ROLE="_member_"
-fi
-ROLE_ID=$(openstack role show $ROLE | awk '$2=="id" {print $4}')
-if openstack user role list --project $TENANT_ID $USER_ID | grep "${ROLE_ID}.*${ROLE}.*${USER_ID}" ; then
- echo "User already has role '$ROLE'"
-else
- openstack role add --project $TENANT_ID --user $USER_ID $ROLE_ID
-fi
-echo "User $USERCODE configured."
diff --git a/scripts/assert-users b/scripts/assert-users
deleted file mode 100755
index 5ea0d089..00000000
--- a/scripts/assert-users
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] LISTFILE"
- echo
- echo "Ensure that every user listed in LISTFILE has a cloud account."
- echo
- echo "Options:"
- echo " -h -- this help"
- echo " -t -- Choose a tenant. Defaults to the usercode"
- echo
- exit $1
-}
-
-TENANT=''
-
-TEMP=`getopt -o ht: -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h) show_options 0;;
- -t) TENANT=$2; shift 2 ;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-LISTFILE=${1:-''}
-EXTRA_ARGS=${2:-''}
-
-if [ -z "$LISTFILE" -o -n "$EXTRA_ARGS" ]; then
- show_options 1
-fi
-
-while IFS=, read -ra DETAILS; do
- if [ -z "$TENANT" ] ; then
- USER_TENANT=${DETAILS[0]}
- else
- USER_TENANT=$TENANT
- fi
- assert-user -u ${DETAILS[0]} -e ${DETAILS[1]} -t $USER_TENANT -n "${DETAILS[2]}"
-done < $LISTFILE
diff --git a/scripts/boot-seed-vm b/scripts/boot-seed-vm
deleted file mode 100755
index a8e9449b..00000000
--- a/scripts/boot-seed-vm
+++ /dev/null
@@ -1,228 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -e
-set -o pipefail
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-PATH=$PATH:/usr/sbin:/sbin
-
-# Some defaults
-ARCH=i386
-export IMAGE_NAME=seed
-export DIB_IMAGE_SIZE=30
-BUILD_ONLY=
-CREATE_IMAGE=yes
-ALWAYS_ELEMENTS="vm cloud-init-nocloud local-config boot-stack seed-stack-config nova-ironic"
-DIB_COMMON_ELEMENTS=${DIB_COMMON_ELEMENTS:-''}
-SEED_DIB_EXTRA_ARGS=${SEED_DIB_EXTRA_ARGS:-'rabbitmq-server'}
-
-if [ "${USE_MARIADB:-}" = 1 ] ; then
- SEED_DIB_EXTRA_ARGS="$SEED_DIB_EXTRA_ARGS mariadb-rpm"
-fi
-
-if [[ "$DIB_COMMON_ELEMENTS $SEED_DIB_EXTRA_ARGS" != *enable-serial-console* ]]; then
- SEED_DIB_EXTRA_ARGS="$SEED_DIB_EXTRA_ARGS remove-serial-console"
-fi
-export VM_IP=""
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] [ ...]"
- echo
- echo "Create and start a VM by combining the specified elements"
- echo "with common default elements, assuming many things about"
- echo "the local operating environment."
- echo "See ../scripts/devtest.sh"
- echo
- echo "The environment variable TE_DATAFILE must be set, pointing at a test"
- echo "environment JSON file. If seed-ip is present in the JSON then that is"
- echo "used for the VM IP address, otherwise it is discovered by probing the"
- echo "ARP table and then saved back into the JSON file."
- echo
- echo "If host-ip (and possibly ssh-user) is set in the JSON then those details"
- echo "are used to construct a remote libvirt URL and spawn the VM remotely."
- echo "Note that seed-ip *must* be present when doing this. When spawning remotely"
- echo "the image is copied to that host via rsync, and a remote virsh URI is used."
- echo "However SSH access with rsync write access to /var/lib/libvirt/images/,"
- echo "permission to chattr, and the ability to run virsh as the selected user are"
- echo "requirements."
- echo
- echo "Options:"
- echo " -a i386|amd64 -- set the architecture of the VM (i386)"
- echo " --build-only -- build the needed images but don't deploy them."
- echo " -o name -- set the name of the VM and image file"
- echo " (seed) - must match that from setup-seed-vm"
- echo " -s size -- set the image size (30 GB)"
- echo " -c -- use a image cache for seed image"
- echo " -i -- image file was built elsewhere, don't"
- echo " create"
- echo
- exit $1
-}
-
-TEMP=$(getopt -o hcia:o:s: -l build-only -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -a) export ARCH=$2; shift 2 ;;
- --build-only) BUILD_ONLY="1"; shift 1;;
- -o) export IMAGE_NAME=$2; shift 2 ;;
- -s) export DIB_IMAGE_SIZE=$2; shift 2 ;;
- -h) show_options 0;;
- -c) export IMAGE_CACHE_USE=1; shift ;;
- -i) export CREATE_IMAGE=; shift ;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-for arg; do
- SEED_DIB_EXTRA_ARGS="$SEED_DIB_EXTRA_ARGS $arg";
-done
-
-SEED_ARCH=
-
-case $ARCH in
- i386) SEED_ARCH='i686'; ;;
- amd64|x86_64) SEED_ARCH='x86_64'; ;;
- *) echo "Unsupported arch $ARCH!" ; exit 1 ;;
-esac
-
-if [ -z "$TE_DATAFILE" ]; then
- echo "Error: TE_DATAFILE not set."
- show_options 1
-fi
-
-HOST_IP=$(os-apply-config -m $TE_DATAFILE --key host-ip --type netaddress --key-default '')
-REMOTE_OPERATIONS=$(os-apply-config -m $TE_DATAFILE --key remote-operations --type raw --key-default '')
-if [ -n "$HOST_IP" ]; then
- SSH_USER=$(os-apply-config -m $TE_DATAFILE --key ssh-user --type raw --key-default '')
- if [ -n "$SSH_USER" ]; then
- SSH_USER="${SSH_USER}@"
- fi
- VM_HOST=${SSH_USER}${HOST_IP}
- echo $VM_HOST
-fi
-
-ENV_NUM=$(os-apply-config -m $TE_DATAFILE --key env-num --type int --key-default 0)
-
-if [ $CREATE_IMAGE ]; then
-
- ELEMENTS_PATH=${ELEMENTS_PATH:-$SCRIPT_HOME/../../tripleo-image-elements/elements}
- export ELEMENTS_PATH
-
- DIB_PATH=${DIB_PATH:-$SCRIPT_HOME/../../diskimage-builder}
- DIB=$(which disk-image-create || echo $DIB_PATH/bin/disk-image-create)
-
- if [ ! -e $DIB ]; then
- echo "Error: unable to locate disk-image-create"
- exit 1
- fi
-
-fi
-
-# Shutdown any running VM - writing to the image file of a running VM is a
-# great way to get a corrupt image file.
-if [ -z "$BUILD_ONLY" ]; then
- if [ -n "$REMOTE_OPERATIONS" ]; then
- ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no ${VM_HOST} virsh destroy ${IMAGE_NAME}_$ENV_NUM || true
- # Ensure any existing VM's in the test environment are shutdown, so devtest always starts at a consistent point.
- for NUM in $(seq 0 14) ; do
- ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no ${VM_HOST} virsh destroy baremetalbrbm${ENV_NUM}_${NUM} || true
- done
- else
- virsh destroy $IMAGE_NAME || true
- for NUM in $(seq 0 14) ; do
- virsh destroy baremetal_${NUM} || true
- done
- fi
-fi
-
-if [ $CREATE_IMAGE ]; then
-
- IMAGE_CACHE_FILE=$TRIPLEO_ROOT/seed
-
- # Create the image if it doesn't exist or we're not using image cache
- if [ ! -e "$IMAGE_CACHE_FILE.qcow2" -o -z "$IMAGE_CACHE_USE" ] ; then
- $DIB -x -u -a $ARCH $ALWAYS_ELEMENTS $DIB_COMMON_ELEMENTS $SEED_DIB_EXTRA_ARGS -o $IMAGE_CACHE_FILE 2>&1 | tee $IMAGE_CACHE_FILE.log
- else
- echo "Using cached seed image : $IMAGE_CACHE_FILE.qcow2"
- fi
- if [ -n "$BUILD_ONLY" ]; then
- exit 0
- fi
-
- if [ -n "$REMOTE_OPERATIONS" ]; then
- # rsync could be used here which may have been more efficient but using a
- # custom command "copyseed" should be easier to restrict. Also we can
- # take multiple steps on the server in this single command meaning we
- # don't have to open up the ssh access even further.
- dd if=$IMAGE_CACHE_FILE.qcow2 | ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no ${VM_HOST} copyseed $ENV_NUM
- else
- sudo cp $IMAGE_CACHE_FILE.qcow2 /var/lib/libvirt/images/$IMAGE_NAME.qcow2
- sudo chattr +C /var/lib/libvirt/images/$IMAGE_NAME.qcow2 || true
- fi
-fi
-
-function poll_vm {
- if [ -z "$VM_IP" ]; then
- MAC=$(sudo virsh dumpxml $IMAGE_NAME | grep "mac address" | head -1 | awk -F "'" '{print $2}')
- VM_IP=$(arp -n | grep $MAC | awk '{print $1}')
- fi
- [ -z $VM_IP ] && return 1
- ping -c 1 $VM_IP || return 1
- return 0
-}
-export -f poll_vm
-
-if [ -n "$REMOTE_OPERATIONS" ]; then
- ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no ${VM_HOST} virsh start ${IMAGE_NAME}_$ENV_NUM
- VM_IP=$(os-apply-config -m $TE_DATAFILE --key seed-ip --type netaddress --key-default '')
-else
- sudo virsh start $IMAGE_NAME
-fi
-
-echo "Waiting for $IMAGE_NAME VM to boot."
-wait_for -w 100 --delay 1 -- poll_vm
-poll_vm
-
-echo
-echo "Booted. Found IP: $VM_IP."
-
-# hostkeys are generated by cloud-init as part of the boot sequence - can
-# take a few seconds.
-echo "Waiting for SSH hostkey."
-wait_for -w 30 --delay 1 -- "ssh-keyscan $VM_IP 2>&1 | grep \"$VM_IP.*OpenSSH\""
-
-# Remove the hostkey, new instance == new key.
-ssh-keygen -R $(os-apply-config -m $TE_DATAFILE --key baremetal-network.seed.ip --type netaddress --key-default '192.0.2.1') || true
-
-echo "element(s): $ALWAYS_ELEMENTS $DIB_COMMON_ELEMENTS $SEED_DIB_EXTRA_ARGS booted and ready."
-echo "SEED_IP=$VM_IP"
-echo
-echo "to login: ssh root@$VM_IP"
-NEW_JSON=$(jq '.["seed-ip"]="'${VM_IP}'"' $TE_DATAFILE)
-echo "$NEW_JSON" > $TE_DATAFILE
diff --git a/scripts/build-images b/scripts/build-images
deleted file mode 100755
index 74691c03..00000000
--- a/scripts/build-images
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2015 Red Hat, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-
-import argparse
-import logging
-import os
-import subprocess
-import sys
-import yaml
-
-logger = logging.getLogger(__name__)
-env = os.environ.copy()
-
-
-# YAML FILE FORMAT
-# disk_images:
-# -
-# imagename: overcloud-compute
-# arch: amd64
-# type: qcow2
-# elements:
-# - overcloud-compute
-# packages:
-# - vim
-# options:
-def parse_opts(argv):
- parser = argparse.ArgumentParser(
- description='Create a set of disk images using a YAML/JSON config file'
- ' format.')
- parser.add_argument('-c', '--config-file', metavar='CONFIG_FILE',
- help="""path to the configuration file.""",
- default='disk_images.yaml')
- parser.add_argument('-o', '--output-directory', metavar='DIRECTORY',
- help="""output directory for images. """
- """Defaults to $TRIPLEO_ROOT""",
- default=env.get('TRIPLEO_ROOT'))
- parser.add_argument('-s', '--skip', action='store_true',
- help="""skip build if cached image exists. """
- """Or set USE_CACHE ENV variable to 1.""",
- default=False)
- parser.add_argument('-d', '--debug', dest="debug", action='store_true',
- help="Print debugging output.", required=False)
- parser.add_argument('-v', '--verbose', dest="verbose",
- action='store_true', help="Print verbose output.",
- required=False)
-
- opts = parser.parse_args(argv[1:])
-
- return opts
-
-
-def configure_logger(verbose=False, debug=False):
- LOG_FORMAT = '[%(asctime)s] [%(levelname)s] %(message)s'
- DATE_FORMAT = '%Y/%m/%d %I:%M:%S %p'
- log_level = logging.WARN
-
- if debug:
- log_level = logging.DEBUG
- elif verbose:
- log_level = logging.INFO
-
- logging.basicConfig(format=LOG_FORMAT, datefmt=DATE_FORMAT,
- level=log_level)
-
-
-def main(argv=sys.argv):
- opts = parse_opts(argv)
- configure_logger(opts.verbose, opts.debug)
- logger.info('Using config file at: %s' % opts.config_file)
-
- if os.path.exists(opts.config_file):
- with open(opts.config_file) as cf:
- disk_images = yaml.load(cf.read()).get("disk_images")
- logger.debug('disk_images JSON: %s' % str(disk_images))
- else:
- logger.error('No config file exists at: %s' % opts.config_file)
- return 1
-
- if not opts.output_directory:
- logger.error('Please specify --output-directory.')
- return 1
-
- for image in disk_images:
- arch = image.get('arch', 'amd64')
- img_type = image.get('type', 'qcow2')
- skip_base = image.get('skip_base', 'false')
- docker_target = image.get('docker_target')
- imagename = image.get('imagename')
- logger.info('imagename: %s' % imagename)
- image_path = '%s/%s.%s' % (opts.output_directory, imagename, img_type)
- if opts.skip or env.get('USE_CACHE', '0') == '1':
- logger.info('looking for image at path: %s' % image_path)
- if os.path.exists(image_path):
- logger.warn('Image file exists for image name: %s' % imagename)
- logger.warn('Skipping image build')
- continue
- elements = image.get('elements', [])
- options = image.get('options', [])
- packages = image.get('packages', [])
- cmd = ['disk-image-create', '-a', arch, '-o', image_path, '-t',
- img_type]
-
- if packages:
- cmd.append('-p')
- cmd.append(','.join(packages))
-
- if docker_target:
- cmd.append('--docker-target')
- cmd.append(docker_target)
-
- if skip_base == True:
- cmd.append('-n')
-
- if options:
- cmd.extend(options)
-
- # NODE_DIST provides a distro specific element hook
- node_dist = image.get('distro') or env.get('NODE_DIST')
- if node_dist:
- cmd.append(node_dist)
-
- cmd.extend(elements)
-
- logger.info('Running %s' % cmd)
- retval = subprocess.call(cmd)
- if retval != 0:
- logger.error('Failed to build image: %s' % imagename)
- return 1
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv))
diff --git a/scripts/cleanup-env b/scripts/cleanup-env
deleted file mode 100755
index 07162b0b..00000000
--- a/scripts/cleanup-env
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright 2013 Red Hat
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-SCRIPT_NAME=$(basename $0)
-
-LIBVIRT_VOL_POOL=${LIBVIRT_VOL_POOL:-"default"}
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [-n NUM]"
- echo
- echo "Cleanup vm state left behind by previous runs"
- echo
- echo " -b -- Baremetal bridge name(s)."
- echo " The create-nodes script names nodes and"
- echo " volumes based on the attached"
- echo " bridge name(s). This parameter provides"
- echo " a way to cleanup nodes attached to the"
- echo " associated bridge name(s). NOTE: when"
- echo " cleaning up environments with multiple"
- echo " bridges all bridge names must be"
- echo " specified."
- echo " -n -- Test environment number to clean up."
- echo " -a -- Clean up all environments."
- echo " Will delete all libvirt defined domains"
- echo " that start with baremetal* and seed*"
- echo " and their storage"
- echo
- echo "If provided, NUM is the environment number to be cleaned up."
- echo "If not provided, the default environment will be cleaned."
- echo ""
- echo "If both baremetal bridge names and NUM (-n) are provided the NUM"
- echo "is appended to the bridge names when searching for VMs to delete."
- exit 1
-}
-
-NUM=
-BRIDGE_NAMES=brbm
-CLEANUP_ALL=
-
-TEMP=$(getopt -o h,b:,n:,a -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- show_options;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h) show_options ;;
- -b) BRIDGE_NAMES="$2" ; shift 2 ;;
- -n) NUM="$2" ; shift 2 ;;
- -a) CLEANUP_ALL=1 ; shift ;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; show_options ;;
- esac
-done
-
-SEED_NAME=seed
-BAREMETAL_PREFIX="baremetal"
-NUMBERED_BRIDGE_NAMES=
-
-if [ -n "$NUM" ]; then
- SEED_NAME="seed_${NUM}"
-fi
-for NAME in $BRIDGE_NAMES; do
- NUMBERED_BRIDGE_NAMES="$NUMBERED_BRIDGE_NAMES$NAME${NUM}_"
-done
-# remove the last underscore
-NUMBERED_BRIDGE_NAMES=${NUMBERED_BRIDGE_NAMES%_}
-
-if [ -z "$CLEANUP_ALL" ]; then
- BAREMETAL_PREFIX="baremetal${NUMBERED_BRIDGE_NAMES}"
-fi
-
-for NAME in $(sudo virsh list --name | grep "^\($SEED_NAME\|${BAREMETAL_PREFIX}\)"); do
- sudo virsh destroy $NAME
-done
-
-for NAME in $(sudo virsh list --name --all | grep "^\($SEED_NAME\|${BAREMETAL_PREFIX}\)"); do
- if [ $NAME == $SEED_NAME ]; then
- # handle seeds differently since their storage is not managed by libvirt
- sudo virsh undefine --managed-save $NAME
- sudo rm /var/lib/libvirt/images/$NAME.qcow2
- else
- sudo virsh undefine --managed-save --remove-all-storage $NAME
- fi
-done
-
-for NAME in $(sudo virsh vol-list $LIBVIRT_VOL_POOL 2>/dev/null | grep /var/ | awk '{print $1}' | grep "^\($SEED_NAME\|${BAREMETAL_PREFIX}\)"); do
- sudo virsh vol-delete --pool $LIBVIRT_VOL_POOL $NAME
-done
diff --git a/scripts/configure-vm b/scripts/configure-vm
deleted file mode 100755
index 8b5851f7..00000000
--- a/scripts/configure-vm
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/usr/bin/env python
-
-import argparse
-import math
-import os.path
-import random
-
-import libvirt
-
-templatedir = os.path.join(
- os.path.dirname(
- os.path.dirname(
- os.path.abspath(__file__))), 'templates')
-
-MAX_NUM_MACS = math.trunc(0xff/2)
-
-
-def generate_baremetal_macs(count=1):
- """Generate an Ethernet MAC address suitable for baremetal testing."""
- # NOTE(dprince): We generate our own bare metal MAC address's here
- # instead of relying on libvirt so that we can ensure the
- # locally administered bit is set low. (The libvirt default is
- # to set the 2nd MSB high.) This effectively allows our
- # fake baremetal VMs to more accurately behave like real hardware
- # and fixes issues with bridge/DHCP configurations which rely
- # on the fact that bridges assume the MAC address of the lowest
- # attached NIC.
- # MACs generated for a given machine will also be in sequential
- # order, which matches how most BM machines are laid out as well.
- # Additionally we increment each MAC by two places.
- macs = []
-
- if count > MAX_NUM_MACS:
- raise ValueError("The MAX num of MACS supported is %i." % MAX_NUM_MACS)
-
- base_nums = [0x00,
- random.randint(0x00, 0xff),
- random.randint(0x00, 0xff),
- random.randint(0x00, 0xff),
- random.randint(0x00, 0xff)]
- base_mac = ':'.join(map(lambda x: "%02x" % x, base_nums))
-
- start = random.randint(0x00, 0xff)
- if (start + (count * 2)) > 0xff:
- # leave room to generate macs in sequence
- start = 0xff - count * 2
- for num in range(0, count*2, 2):
- mac = start + num
- macs.append(base_mac + ":" + ("%02x" % mac))
- return macs
-
-def main():
- parser = argparse.ArgumentParser(
- description="Configure a kvm virtual machine for the seed image.")
- parser.add_argument('--name', default='seed',
- help='the name to give the machine in libvirt.')
- parser.add_argument('--image',
- help='Use a custom image file (must be qcow2).')
- parser.add_argument('--diskbus', default='sata',
- help='Choose an alternate bus type for the disk')
- parser.add_argument('--baremetal-interface', nargs='+', default=['brbm'],
- help='The interface which bare metal nodes will be connected to.')
- parser.add_argument('--engine', default='kvm',
- help='The virtualization engine to use')
- parser.add_argument('--arch', default='i686',
- help='The architecture to use')
- parser.add_argument('--memory', default='2097152',
- help="Maximum memory for the VM in KB.")
- parser.add_argument('--cpus', default='1',
- help="CPU count for the VM.")
- parser.add_argument('--bootdev', default='hd',
- help="What boot device to use (hd/network).")
- parser.add_argument('--seed', default=False, action='store_true',
- help='Create a seed vm with two interfaces.')
- parser.add_argument('--ovsbridge', default="",
- help='Place the seed public interface on this ovs bridge.')
- parser.add_argument('--libvirt-nic-driver', default='virtio',
- help='The libvirt network driver to use')
- parser.add_argument('--enable-serial-console', action="store_true",
- help='Enable a serial console')
- parser.add_argument('--uri', default='qemu:///system',
- help='The server uri with which to connect.')
- args = parser.parse_args()
- with file(templatedir + '/domain.xml', 'rb') as f:
- source_template = f.read()
- imagefile = '/var/lib/libvirt/images/seed.qcow2'
- if args.image:
- imagefile = args.image
- imagefile = os.path.realpath(imagefile)
- params = {
- 'name': args.name,
- 'imagefile': imagefile,
- 'engine': args.engine,
- 'arch': args.arch,
- 'memory': args.memory,
- 'cpus': args.cpus,
- 'bootdev': args.bootdev,
- 'network': '',
- 'enable_serial_console': '',
- }
- if args.image is not None:
- params['imagefile'] = args.image
-
- # Configure the bus type for the target disk device
- params['diskbus'] = args.diskbus
- nicparams = {
- 'nicdriver': args.libvirt_nic_driver,
- 'ovsbridge': args.ovsbridge,
- }
- if args.seed:
- if args.ovsbridge:
- params['network'] = """
-
-
-
-
- """ % nicparams
- else:
- params['network'] = """
-
-
-
-
- """ % nicparams
-
- macs = generate_baremetal_macs(len(args.baremetal_interface))
-
- params['bm_network'] = ""
- for bm_interface, mac in zip(args.baremetal_interface, macs):
- bm_interface_params = {
- 'bminterface': bm_interface,
- 'bmmacaddress': mac,
- 'nicdriver': args.libvirt_nic_driver,
- }
- params['bm_network'] += """
-
-
-
-
-
- """ % bm_interface_params
-
- if args.enable_serial_console:
- params['enable_serial_console'] = """
-
-
-
-
-
-
- """
-
- libvirt_template = source_template % params
- conn=libvirt.open(args.uri)
- a = conn.defineXML(libvirt_template)
- print ("Created machine %s with UUID %s" % (args.name, a.UUIDString()))
-
-if __name__ == '__main__':
- main()
diff --git a/scripts/create-nodes b/scripts/create-nodes
deleted file mode 100755
index fe1b2719..00000000
--- a/scripts/create-nodes
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash
-set -eu
-
-CPU=$1
-MEM=$(( 1024 * $2 ))
-# extra G to allow fuzz for partition table : flavor size and registered size
-# need to be different to actual size.
-DISK=$3
-LIBVIRT_DISK_BUS_TYPE=${LIBVIRT_DISK_BUS_TYPE:-"sata"}
-NODE_DISK=$(( $DISK + 1))
-
-
-case $4 in
- i386) ARCH='i686' ;;
- amd64|x86_64) ARCH='x86_64' ;;
- *) echo "Unsupported arch $4!" ; exit 1 ;;
-esac
-
-TOTAL=$(($5 - 1))
-SSH_USER=$6
-HOSTIP=$7
-TE_DATAFILE=$8
-BRIDGE_NAMES=${9:-""}
-
-LIBVIRT_NIC_DRIVER=${LIBVIRT_NIC_DRIVER:-"virtio"}
-LIBVIRT_VOL_POOL=${LIBVIRT_VOL_POOL:-"default"}
-LIBVIRT_VOL_POOL_TARGET=${LIBVIRT_VOL_POOL_TARGET:-"/var/lib/libvirt/images"}
-
-# define the $LIBVIRT_VOL_POOL storage pool if its not there yet
-if ! $(virsh pool-list --all --persistent | grep -q $LIBVIRT_VOL_POOL) ; then
- if [ ! -d $LIBVIRT_VOL_POOL_TARGET ]; then
- sudo mkdir -p $LIBVIRT_VOL_POOL_TARGET ;
- fi
- (virsh pool-define-as --name $LIBVIRT_VOL_POOL dir --target $LIBVIRT_VOL_POOL_TARGET ; \
- virsh pool-autostart $LIBVIRT_VOL_POOL; virsh pool-start $LIBVIRT_VOL_POOL) >&2
-fi
-PREALLOC=
-if [ "${TRIPLEO_OS_FAMILY:-}" = "debian" ]; then
- PREALLOC="--prealloc-metadata"
-fi
-
-# Create empty json file if it doesn't exist
-[ -s $TE_DATAFILE ] || echo "{}" > $TE_DATAFILE
-JSON=$(jq .nodes=[] $TE_DATAFILE)
-
-EXTRAOPTS=
-if [[ ${DIB_COMMON_ELEMENTS:-} == *enable-serial-console* ]]; then
- EXTRAOPTS="--enable-serial-console"
-fi
-
-for idx in $(seq 0 $TOTAL) ; do
- vm_name="baremetal${BRIDGE_NAMES// /_}_$idx"
- (virsh list --all --name | grep -q "^$vm_name\$") && continue
- virsh vol-create-as $LIBVIRT_VOL_POOL $vm_name.qcow2 ${NODE_DISK}G --format qcow2 $PREALLOC >&2
- volume_path=$(virsh vol-path --pool $LIBVIRT_VOL_POOL $vm_name.qcow2)
- # Pre-touch the VM to set +C, as it can only be set on empty files.
- sudo touch "$volume_path"
- sudo chattr +C "$volume_path" || true
- BAREMETAL_INTERFACE=
- if [ -n "$BRIDGE_NAMES" ]; then
- BAREMETAL_INTERFACE="--baremetal-interface $BRIDGE_NAMES"
- fi
- configure-vm $EXTRAOPTS \
- --bootdev network \
- --name $vm_name \
- --image "$volume_path" \
- --diskbus $LIBVIRT_DISK_BUS_TYPE \
- --arch $ARCH \
- --cpus $CPU \
- --memory $MEM \
- --libvirt-nic-driver $LIBVIRT_NIC_DRIVER $BAREMETAL_INTERFACE >&2
- mac=$(get-vm-mac $vm_name)
- JSON=$(jq ".nodes=(.nodes + [{mac:[\"$mac\"], cpu:\"$CPU\", memory:\"$2\", disk:\"$DISK\", arch:\"$4\", pm_user:\"$SSH_USER\", pm_addr:\"$HOSTIP\", pm_password:.[\"ssh-key\"], pm_type:\"pxe_ssh\"}])" <<< $JSON)
-
-done
-jq . <<< $JSON > $TE_DATAFILE
-
diff --git a/scripts/devtest.sh b/scripts/devtest.sh
deleted file mode 100755
index 15d04350..00000000
--- a/scripts/devtest.sh
+++ /dev/null
@@ -1,387 +0,0 @@
-#!/bin/bash
-#
-# Demo script for Tripleo - the dev/test story.
-# This can be run for CI purposes, by passing --trash-my-machine to it.
-# Without that parameter, the script is a no-op.
-
-# Set PS4 as early as possible if it is still at the default, so that
-# we have a useful trace output for everything when running devtest.sh
-# with bash -x ./devtest.sh
-if [ "$PS4" = "+ " ]; then
- export PS4='$(basename ${BASH_SOURCE})@${LINENO}: '
-fi
-set -eu
-set -o pipefail
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options]"
- echo
- echo "Test the core TripleO story."
- echo
- echo "Options:"
- echo " --trash-my-machine -- make nontrivial destructive changes to the machine."
- echo " For details read the source."
- echo " -c -- re-use existing source/images if they exist."
- echo " --existing-environment -- use an existing test environment. The JSON file"
- echo " for it may be overridden via the TE_DATAFILE"
- echo " environment variable."
- echo " --bm-networks NETFILE -- You are supplying your own network layout."
- echo " The schema for baremetal-network can be found in"
- echo " the devtest_setup documentation."
- echo
- echo " --nodes NODEFILE -- You are supplying your own list of hardware."
- echo " The schema for nodes can be found in the devtest_setup"
- echo " documentation."
- echo " --no-undercloud -- Use the seed as the baremetal cloud to deploy the"
- echo " overcloud from."
- echo " --build-only -- Builds images but doesn't attempt to run them."
- echo " --no-mergepy -- Use the standalone Heat templates (default)."
- echo " --debug-logging -- Enable debug logging in the undercloud and overcloud."
- echo " This enables build time debug logs by setting the"
- echo " OS_DEBUG_LOGGING env var and also sets the Debug"
- echo " heat parameter."
- echo " --heat-env-undercloud ENVFILE"
- echo " -- heat environment file for the undercloud."
- echo " --heat-env-overcloud ENVFILE"
- echo " -- heat environment file for the overcloud."
- echo
- echo "Note that this script just chains devtest_variables, devtest_setup,"
- echo "devtest_testenv, devtest_ramdisk, devtest_seed, devtest_undercloud,"
- echo "devtest_overcloud, devtest_end. If you want to run less than all of them just"
- echo "run the steps you want in order after sourcing ~/.devtestrc and"
- echo "devtest_variables.sh"
- echo
- exit $1
-}
-
-BUILD_ONLY=
-DEBUG_LOGGING=
-NODES_ARG=
-NO_UNDERCLOUD=
-NETS_ARG=
-CONTINUE=
-HEAT_ENV_UNDERCLOUD=
-HEAT_ENV_OVERCLOUD=
-USE_CACHE=0
-export TRIPLEO_CLEANUP=1
-DEVTEST_START=$(date +%s) #nodocs
-
-TEMP=$(getopt -o h,c -l build-only,no-mergepy,debug-logging,existing-environment,help,trash-my-machine,nodes:,bm-networks:,no-undercloud,heat-env-overcloud:,heat-env-undercloud: -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- --build-only) BUILD_ONLY=--build-only; shift 1;;
- --no-mergepy)
- USE_MERGEPY=0
- echo "Warning: --no-mergepy is the default now, option is DEPRECATED" >&2
- shift 1
- ;;
- --debug-logging)
- DEBUG_LOGGING=--debug-logging
- export OS_DEBUG_LOGGING="1"
- shift 1
- ;;
- --trash-my-machine) CONTINUE=--trash-my-machine; shift 1;;
- --existing-environment) TRIPLEO_CLEANUP=0; shift 1;;
- --nodes) NODES_ARG="--nodes $2"; shift 2;;
- --bm-networks) NETS_ARG="--bm-networks $2"; shift 2;;
- --no-undercloud) NO_UNDERCLOUD="true"; shift 1;;
- --heat-env-undercloud) HEAT_ENV_UNDERCLOUD="--heat-env $2"; shift 2;;
- --heat-env-overcloud) HEAT_ENV_OVERCLOUD="--heat-env $2"; shift 2;;
- -c) USE_CACHE=1; shift 1;;
- -h|--help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-if [ -z "$CONTINUE" ]; then
- echo "Not running - this script is destructive and requires --trash-my-machine to run." >&2
- exit 1
-fi
-
-export USE_CACHE
-export USE_MERGEPY
-
-# Source environment variables from .devtestrc, allowing defaults to be setup
-# specific to users environments
-if [ -e ~/.devtestrc ] ; then
- echo "sourcing ~/.devtestrc"
- source ~/.devtestrc
-fi
-
-### --include
-## devtest
-## =======
-
-## (There are detailed instructions available below, the overview and
-## configuration sections provide background information).
-
-## Overview:
-## * Define a VM that is your seed node
-## * Define N VMs to pretend to be your cluster
-## * Create a seed VM
-## * Create an undercloud
-## * Create an overcloud
-## * Deploy a sample workload in the overcloud
-## * Add environment variables to be included to ~/.devtestrc, e.g. http_proxy
-## * Go to town testing deployments on them.
-## * For troubleshooting see :doc:`troubleshooting`
-## * For generic deployment information see :doc:`deploying`
-
-## This document is extracted from devtest.sh, our automated bring-up story for
-## CI/experimentation.
-
-## More details about the TripleO project and its goals can be found in the
-## :doc:`README `
-
-## .. tip::
-
-## https://wiki.openstack.org/wiki/TripleO#Notes_for_new_developers contains
-## notes on setting up a development environment. It's primarily aimed at
-## people who intend to become contributors for tripleo, but many of its
-## notes (such as those relating to setting up local mirrors for apt and
-## pypi) will probably be helpful for everyone.
-
-## .. note::
-
-## See :ref:`tested_platforms` for an overview of which releases of which
-## distros are tested in our CI system. We suggest you read that section
-## before proceeding, to make sure you're running on a platform that we have
-## extensively tested.
-
-## Permissions
-## -----------
-
-## These scripts are designed to be run under your normal user account. The
-## scripts make use of sudo when elevated privileges are needed. You will
-## either need to run this attended, entering your password when sudo needs
-## it, or enable passwordless sudo for your user. Another option is to extend
-## the timeout of sudo sessions so that passwordless sudo will be allowed
-## enough time on the controlling terminal to complete the devtest run. If
-## there are any circumstances where running as a normal user, and not root,
-## fails, this is considered a critical bug.
-
-## Sudo
-## ~~~~
-
-## In order to set the sudo session timeout higher, add this to /etc/sudoers::
-##
-## Defaults timestamp_timeout=240 # 4 hours
-##
-## This will result in 4 hour timeouts for sudo session credentials. To
-## reset the timeout run::
-##
-## sudo -k; sudo -v
-##
-
-## In order to set a user to full passwordless operation add this (typically
-## near the end of /etc/sudoers)::
-##
-## username ALL = NOPASSWD: ALL
-##
-
-## Initial Checkout
-## ----------------
-
-## #. Choose a base location to put all of the source code.
-
-## .. note::
-
-## exports are ephemeral - they will not survive across new shell sessions
-## or reboots. If you put these export commands in ``~/.devtestrc``, you
-## can simply ``source ~/.devtestrc`` to reload them. Alternatively, you
-## can ``$TRIPLEO_ROOT/tripleo-incubator/scripts/write-tripleorc`` and then
-## source the generated tripleorc file.
-
-## ::
-
-## export TRIPLEO_ROOT=~/tripleo
-
-## .. note::
-
-## This will be used by devtest.sh and other scripts to store the
-## additional tools, images, packages, tarballs and everything else
-## needed by the deployment process. The tripleo-incubator tools must
-## be cloned within your ``$TRIPLEO_ROOT``.
-
-## #. Create the directory and clone tripleo-incubator within ``$TRIPLEO_ROOT``
-
-## ::
-
-## mkdir -p $TRIPLEO_ROOT
-## cd $TRIPLEO_ROOT
-## git clone https://git.openstack.org/openstack/tripleo-incubator
-## cd tripleo-incubator
-
-## Optional: stable branch
-## -----------------------
-
-## Note that every effort is made to keep the published set of these instructions
-## updated for use with only the master branches of the TripleO projects. There is
-## **NO** guaranteed stability in master. There is also no guaranteed stable
-## upgrade path from release to release or from one stable branch to a later
-## stable branch. The stable branches are a point in time and make no
-## guarantee about deploying older or newer branches of OpenStack projects
-## correctly.
-
-## If you wish to use the stable branches, you should instead checkout and clone
-## the stable branch of tripleo-incubator you want, and then build the
-## instructions yourself. For instance, to create a local branch named
-## ``foo`` based on the upstream branch ``stable/foo``::
-
-## git checkout -b foo origin/stable/foo
-## tox -edocs
-## # View doc/build/html/devtest.html in your browser and proceed from there
-
-## Next Steps:
-## -----------
-
-## When run as a standalone script, devtest.sh runs the following commands
-## to configure the devtest environment, bootstrap a seed, deploy under and
-## overclouds. Many of these commands are also part of our documentation.
-## Readers may choose to either run the commands given here, or instead follow
-## the documentation for each command and walk through it step by step to see
-## what is going on. This choice can be made on a case by case basis - for
-## instance, if bootstrapping is not interesting, run that as devtest does,
-## then step into the undercloud setup for granular details of bringing up a
-## baremetal cloud.
-
-### --end
-
-#FIXME: This is a little weird. Perhaps we should identify whatever state we're
-# accumulating and store it in files or something, rather than using
-# source?
-
-### --include
-
-## #. See :doc:`devtest_variables` for documentation. Assuming you're still at
-## the root of your checkout::
-
-## source scripts/devtest_variables.sh
-source $SCRIPT_HOME/devtest_variables.sh #nodocs
-
-## #. See :doc:`devtest_setup` for documentation.
-## $CONTINUE should be set to '--trash-my-machine' to have it execute
-## unattended.
-## ::
-
-devtest_setup.sh $CONTINUE
-
-## #. See :doc:`devtest_testenv` for documentation. This step creates the
-## seed VM, as well as "baremetal" VMs for the under/overclouds. Details
-## of the created VMs are written to ``$TE_DATAFILE``.
-
-## .. warning::
-
-## You should only run this step once, the first time the environment
-## is being set up. Unless you remove the VMs and need to recreate
-## them, you should skip this step on subsequent runs. Running this
-## script with existing VMs will result in information about the existing
-## nodes being removed from ``$TE_DATAFILE``
-
-## ::
-
-if [ "$TRIPLEO_CLEANUP" = "1" ]; then #nodocs
-#XXX: When updating, also update the header in devtest_testenv.sh #nodocs
-devtest_testenv.sh $TE_DATAFILE $NODES_ARG $NETS_ARG
-fi #nodocs
-
-## #. See :doc:`devtest_ramdisk` for documentation::
-
-DEVTEST_RD_START=$(date +%s) #nodocs
-devtest_ramdisk.sh
-DEVTEST_RD_END=$(date +%s) #nodocs
-
-## #. See :doc:`devtest_seed` for documentation. If you are not deploying an
-## undercloud, (see below) then you will want to add --all-nodes to your
-## invocation of devtest_seed.sh,which will register all your nodes directly
-## with the seed cloud.::
-
-## devtest_seed.sh
-## export no_proxy=${no_proxy:-},192.0.2.1
-## source $TRIPLEO_ROOT/tripleo-incubator/seedrc
-
-### --end
-DEVTEST_SD_START=$(date +%s)
-if [ -z "$NO_UNDERCLOUD" ]; then
- ALLNODES=""
-else
- ALLNODES="--all-nodes"
-fi
-devtest_seed.sh $BUILD_ONLY $ALLNODES $DEBUG_LOGGING
-DEVTEST_SD_END=$(date +%s)
-export no_proxy=${no_proxy:-},$(os-apply-config --type netaddress -m $TE_DATAFILE --key baremetal-network.seed.ip --key-default '192.0.2.1')
-if [ -z "$BUILD_ONLY" ]; then
- source $TRIPLEO_ROOT/tripleo-incubator/seedrc
-fi
-### --include
-
-## #. See :doc:`devtest_undercloud` for documentation. The undercloud doesn't
-## have to be built - the seed is entirely capable of deploying any
-## baremetal workload - but a production deployment would quite probably
-## want to have a heat deployed (and thus reconfigurable) deployment
-## infrastructure layer).
-## If you are only building images you won't need to update your no_proxy
-## line or source the undercloudrc file.
-
-## ::
-
-## devtest_undercloud.sh $TE_DATAFILE
-## export no_proxy=$no_proxy,$(os-apply-config --type raw -m $TE_DATAFILE --key undercloud.endpointhost)
-## source $TRIPLEO_ROOT/tripleo-incubator/undercloudrc
-### --end
-DEVTEST_UC_START=$(date +%s)
-if [ -z "$NO_UNDERCLOUD" ]; then
- devtest_undercloud.sh $TE_DATAFILE $BUILD_ONLY $DEBUG_LOGGING $HEAT_ENV_UNDERCLOUD
- if [ -z "$BUILD_ONLY" ]; then
- export no_proxy=$no_proxy,$(os-apply-config --type raw -m $TE_DATAFILE --key undercloud.endpointhost)
- source $TRIPLEO_ROOT/tripleo-incubator/undercloudrc
- fi
-fi
-DEVTEST_UC_END=$(date +%s)
-### --include
-
-## #. See :doc:`devtest_overcloud` for documentation.
-## If you are only building images you won't need to update your no_proxy
-## line or source the overcloudrc file.
-
-## ::
-
-## devtest_overcloud.sh
-### --end
-DEVTEST_OC_START=$(date +%s)
-devtest_overcloud.sh $BUILD_ONLY $DEBUG_LOGGING $HEAT_ENV_OVERCLOUD
-DEVTEST_OC_END=$(date +%s)
-if [ -z "$BUILD_ONLY" ]; then
-### --include
-export no_proxy=$no_proxy,$(os-apply-config --type raw -m $TE_DATAFILE --key overcloud.endpointhost)
-source $TRIPLEO_ROOT/tripleo-incubator/overcloudrc
-fi #nodocs
-
-## #. See :doc:`devtest_end` for documentation::
-
-devtest_end.sh
-
-### --end
-
-DEVTEST_END=$(date +%s) #nodocs
-DEVTEST_PERF_LOG="${TRIPLEO_ROOT}/devtest_perf.log" #nodocs
-TIMESTAMP=$(date "+[%Y-%m-%d %H:%M:%S]") #nodocs
-echo "${TIMESTAMP} Run comment : ${DEVTEST_PERF_COMMENT:-"No Comment"}" >> ${DEVTEST_PERF_LOG} #nodocs
-echo "${TIMESTAMP} Total runtime: $((DEVTEST_END - DEVTEST_START)) s" | tee -a ${DEVTEST_PERF_LOG} #nodocs
-echo "${TIMESTAMP} ramdisk : $((DEVTEST_RD_END - DEVTEST_RD_START)) s" | tee -a ${DEVTEST_PERF_LOG} #nodocs
-echo "${TIMESTAMP} seed : $((DEVTEST_SD_END - DEVTEST_SD_START)) s" | tee -a ${DEVTEST_PERF_LOG} #nodocs
-echo "${TIMESTAMP} undercloud : $((DEVTEST_UC_END - DEVTEST_UC_START)) s" | tee -a ${DEVTEST_PERF_LOG} #nodocs
-echo "${TIMESTAMP} overcloud : $((DEVTEST_OC_END - DEVTEST_OC_START)) s" | tee -a ${DEVTEST_PERF_LOG} #nodocs
-echo "${TIMESTAMP} DIB_COMMON_ELEMENTS=${DIB_COMMON_ELEMENTS}" >> ${DEVTEST_PERF_LOG} #nodocs
-
diff --git a/scripts/devtest_end.sh b/scripts/devtest_end.sh
deleted file mode 100755
index dd87ba01..00000000
--- a/scripts/devtest_end.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-set -eu
-set -o pipefail
-
-### --include
-## devtest_end
-## ============
-
-## #. Save your devtest environment::
-
-## write-tripleorc --overwrite $TRIPLEO_ROOT/tripleorc
-
-### --end
-if [ -e tripleorc ]; then
- echo "Resetting existing $PWD/tripleorc with new values"
- tripleorc_path=$PWD/tripleorc
-else
- tripleorc_path=$TRIPLEO_ROOT/tripleorc
-fi
-write-tripleorc --overwrite $tripleorc_path
-
-echo "devtest.sh completed."
-echo source $tripleorc_path to restore all values
-echo ""
-
-### --include
-## #. If you need to recover the environment, you can source tripleorc.
-## ::
-
-## source $TRIPLEO_ROOT/tripleorc
-
-
-## The End!
-##
-### --end
diff --git a/scripts/devtest_overcloud.sh b/scripts/devtest_overcloud.sh
deleted file mode 100755
index 231c9d46..00000000
--- a/scripts/devtest_overcloud.sh
+++ /dev/null
@@ -1,716 +0,0 @@
-#!/bin/bash
-
-set -eu
-set -o pipefail
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-BUILD_ONLY=
-DEBUG_LOGGING=
-HEAT_ENV=
-DISK_IMAGES_CONFIG=${OVERCLOUD_DISK_IMAGES_CONFIG:-''}
-COMPUTE_FLAVOR="baremetal"
-CONTROL_FLAVOR="baremetal"
-BLOCKSTORAGE_FLAVOR="baremetal"
-SWIFTSTORAGE_FLAVOR="baremetal"
-WITH_STEPS=
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options]"
- echo
- echo "Deploys a KVM cloud via heat."
- echo
- echo "Options:"
- echo " -h -- this help"
- echo " -c -- re-use existing source/images if they exist."
- echo " --build-only -- build the needed images but don't deploy them."
- echo " --no-mergepy -- use the standalone Heat templates (default)."
- echo " --with-steps -- Deploy in steps, asking for confirmation between each."
- echo " --debug-logging -- Turn on debug logging in the built overcloud."
- echo " Sets both OS_DEBUG_LOGGING and the heat Debug parameter."
- echo " --heat-env -- path to a JSON heat environment file."
- echo " Defaults to \$TRIPLEO_ROOT/overcloud-env.json."
- echo " --compute-flavor -- Nova flavor to use for compute nodes."
- echo " Defaults to 'baremetal'."
- echo " --control-flavor -- Nova flavor to use for control nodes."
- echo " Defaults to 'baremetal'."
- echo " --block-storage-flavor -- Nova flavor to use for block "
- echo " storage nodes."
- echo " Defaults to 'baremetal'."
- echo " --swift-storage-flavor -- Nova flavor to use for swift "
- echo " storage nodes."
- echo " Defaults to 'baremetal'."
- echo
- exit $1
-}
-
-TEMP=$(getopt -o c,h -l build-only,no-mergepy,with-steps,debug-logging,heat-env:,compute-flavor:,control-flavor:,block-storage-flavor:,swift-storage-flavor:,help -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ] ; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -c) USE_CACHE=1; shift 1;;
- --build-only) BUILD_ONLY="1"; shift 1;;
- --no-mergepy)
- USE_MERGEPY=0
- echo "Warning: --no-mergepy is the default now, option is DEPRECATED" >&2
- shift 1
- ;;
- --with-steps) WITH_STEPS="1"; shift 1;;
- --debug-logging)
- DEBUG_LOGGING="1"
- export OS_DEBUG_LOGGING="1"
- shift 1
- ;;
- --heat-env) HEAT_ENV="$2"; shift 2;;
- --disk-images-config) DISK_IMAGES_CONFIG="$2"; shift 2;;
- --compute-flavor) COMPUTE_FLAVOR="$2"; shift 2;;
- --control-flavor) CONTROL_FLAVOR="$2"; shift 2;;
- --block-storage-flavor) BLOCKSTORAGE_FLAVOR="$2"; shift 2;;
- --swift-storage-flavor) SWIFTSTORAGE_FLAVOR="$2"; shift 2;;
- -h | --help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-set -x
-
-### --include
-## devtest_overcloud
-## =================
-
-## #. Build images. There are two helper scripts which can be
-## used to build images. The first method uses environment
-## variables to create a specific image for each overcloud
-## role. This method works best if you are using tripleo-image-elements
-## for configuration (which requires per role image customization).
-## See :doc:`devtest_overcloud_images` for documentation.
-## This method is currently the default.
-
-
-## Another option is to make use of the build-images script which
-## dynamically creates a set of images using a YAML (or JSON) config
-## file (see the build-images script for details and the expected config
-## file format). This method is typically preferred when using
-## tripleo-puppet-elements (Puppet) for configuration which
-## allows the contents and number of images used to deploy an
-## overcloud to be more flexibly defined. Example:
-
-## build-images -d -c $DISK_IMAGES_CONFIG
-
-### --end
-USE_CACHE=${USE_CACHE:-0}
-if [ -n "$DISK_IMAGES_CONFIG" ]; then
- USE_CACHE=$USE_CACHE build-images -d -c $DISK_IMAGES_CONFIG
-else
- USE_CACHE=$USE_CACHE devtest_overcloud_images.sh
- # use a default disk images YAML file to load images
- DISK_IMAGES_CONFIG="$TRIPLEO_ROOT/tripleo-incubator/scripts/overcloud_disk_images.yaml"
-fi
-if [ -n "$BUILD_ONLY" ]; then
- echo "--build-only is deprecated. Please use devtest_overcloud_images.sh instead."
- exit 0
-fi
-
-
-OS_PASSWORD=${OS_PASSWORD:?"OS_PASSWORD is not set. Undercloud credentials are required"}
-
-# Parameters for tripleo-cd - see the tripleo-cd element.
-# NOTE(rpodolyaka): retain backwards compatibility by accepting both positional
-# arguments and environment variables. Positional arguments
-# take precedence over environment variables
-NeutronPublicInterface=${1:-${NeutronPublicInterface:-'nic1'}}
-NeutronPublicInterfaceIP=${2:-${NeutronPublicInterfaceIP:-''}}
-NeutronPublicInterfaceRawDevice=${3:-${NeutronPublicInterfaceRawDevice:-''}}
-NeutronPublicInterfaceDefaultRoute=${4:-${NeutronPublicInterfaceDefaultRoute:-''}}
-FLOATING_START=${5:-${FLOATING_START:-'192.0.2.45'}}
-FLOATING_END=${6:-${FLOATING_END:-'192.0.2.64'}}
-FLOATING_CIDR=${7:-${FLOATING_CIDR:-'192.0.2.0/24'}}
-ADMIN_USERS=${8:-${ADMIN_USERS:-''}}
-USERS=${9:-${USERS:-''}}
-STACKNAME=${10:-overcloud}
-# If set, the base name for a .crt and .key file for SSL. This will trigger
-# inclusion of openstack-ssl in the build and pass the contents of the files to heat.
-# Note that PUBLIC_API_URL ($12) must also be set for SSL to actually be used.
-SSLBASE=${11:-''}
-OVERCLOUD_SSL_CERT=${SSLBASE:+$(<$SSLBASE.crt)}
-OVERCLOUD_SSL_KEY=${SSLBASE:+$(<$SSLBASE.key)}
-PUBLIC_API_URL=${12:-''}
-TE_DATAFILE=${TE_DATAFILE:?"TE_DATAFILE must be defined before calling this script!"}
-
-# A client-side timeout in minutes for creating or updating the overcloud
-# Heat stack.
-OVERCLOUD_STACK_TIMEOUT=${OVERCLOUD_STACK_TIMEOUT:-60}
-
-# The private instance fixed IP network range
-OVERCLOUD_FIXED_RANGE_CIDR=${OVERCLOUD_FIXED_RANGE_CIDR:-"10.0.0.0/8"}
-OVERCLOUD_FIXED_RANGE_GATEWAY=${OVERCLOUD_FIXED_RANGE_GATEWAY:-"10.0.0.1"}
-OVERCLOUD_FIXED_RANGE_NAMESERVER=${OVERCLOUD_FIXED_RANGE_NAMESERVER:-"8.8.8.8"}
-
-NODE_ARCH=$(os-apply-config -m $TE_DATAFILE --key arch --type raw)
-
-### --include
-
-## #. Load all images into Glance (based on the provided disk images config).
-## This captures all the Glance IDs into a Heat env file which maps
-## them to the appropriate parameter names. This allows us some
-## amount of flexability how many images to use for the overcloud
-## deployment.
-## ::
-
-OVERCLOUD_IMAGE_IDS_ENV=${OVERCLOUD_IMAGE_IDS_ENV:-"${TRIPLEO_ROOT}/overcloud-images-env.yaml"}
-load-images -d --remove -c $DISK_IMAGES_CONFIG -o $OVERCLOUD_IMAGE_IDS_ENV
-
-## #. For running an overcloud in VM's. For Physical machines, set to kvm:
-## ::
-
-OVERCLOUD_LIBVIRT_TYPE=${OVERCLOUD_LIBVIRT_TYPE:-"qemu"}
-
-## #. Set the public interface of overcloud network node::
-## ::
-
-NeutronPublicInterface=${NeutronPublicInterface:-'nic1'}
-
-## #. Set the NTP server for the overcloud::
-## ::
-
-OVERCLOUD_NTP_SERVER=${OVERCLOUD_NTP_SERVER:-''}
-
-## #. If you want to permit VM's access to bare metal networks, you need
-## to define flat-networks and bridge mappings in Neutron. We default
-## to creating one called datacentre, which we use to grant external
-## network access to VMs::
-## ::
-
-OVERCLOUD_FLAT_NETWORKS=${OVERCLOUD_FLAT_NETWORKS:-'datacentre'}
-OVERCLOUD_BRIDGE_MAPPINGS=${OVERCLOUD_BRIDGE_MAPPINGS:-'datacentre:br-ex'}
-OVERCLOUD_HYPERVISOR_PHYSICAL_BRIDGE=${OVERCLOUD_HYPERVISOR_PHYSICAL_BRIDGE:-'br-ex'}
-OVERCLOUD_HYPERVISOR_PUBLIC_INTERFACE=${OVERCLOUD_HYPERVISOR_PUBLIC_INTERFACE:-'nic1'}
-OVERCLOUD_VIRTUAL_INTERFACE=${OVERCLOUD_VIRTUAL_INTERFACE:-'br-ex'}
-
-## #. If you are using SSL, your compute nodes will need static mappings to your
-## endpoint in ``/etc/hosts`` (because we don't do dynamic undercloud DNS yet).
-## set this to the DNS name you're using for your SSL certificate - the heat
-## template looks up the controller address within the cloud::
-
-OVERCLOUD_NAME=${OVERCLOUD_NAME:-''}
-
-## #. Detect if we are deploying with a VLAN for API endpoints / floating IPs.
-## This is done by looking for a 'public' network in Neutron, and if found
-## we pull out the VLAN id and pass that into Heat, as well as using a VLAN
-## enabled Heat template.
-## ::
-
-if (neutron net-list | grep -q public); then
- VLAN_ID=$(neutron net-show public | awk '/provider:segmentation_id/ { print $4 }')
- NeutronPublicInterfaceTag="$VLAN_ID"
- # This should be in the heat template, but see
- # https://bugs.launchpad.net/heat/+bug/1336656
- # note that this will break if there are more than one subnet, as if
- # more reason to fix the bug is needed :).
- PUBLIC_SUBNET_ID=$(neutron net-show public | awk '/subnets/ { print $4 }')
- VLAN_GW=$(neutron subnet-show $PUBLIC_SUBNET_ID | awk '/gateway_ip/ { print $4}')
- BM_VLAN_CIDR=$(neutron subnet-show $PUBLIC_SUBNET_ID | awk '/cidr/ { print $4}')
- NeutronPublicInterfaceDefaultRoute="${VLAN_GW}"
- export CONTROLEXTRA=overcloud-vlan-port.yaml
-else
- VLAN_ID=
- NeutronPublicInterfaceTag=
-fi
-
-## #. TripleO explicitly models key settings for OpenStack, as well as settings
-## that require cluster awareness to configure. To configure arbitrary
-## additional settings, provide a JSON string with them in the structure
-## required by the template ExtraConfig parameter.
-
-OVERCLOUD_EXTRA_CONFIG=${OVERCLOUD_EXTRA_CONFIG:-''}
-
-## #. Choose whether to deploy or update. Use stack-update to update::
-
-## HEAT_OP=stack-create
-
-### --end
-
-if heat stack-show $STACKNAME > /dev/null; then
- HEAT_OP=stack-update
- if (heat stack-show $STACKNAME | grep -q FAILED); then
- echo "Updating a failed stack; this is a new ability and may cause problems." >&2
- fi
-else
- HEAT_OP=stack-create
-fi
-
-### --include
-
-## #. Wait for the BM cloud to register BM nodes with the scheduler::
-
-expected_nodes=$(( $OVERCLOUD_COMPUTESCALE + $OVERCLOUD_CONTROLSCALE + $OVERCLOUD_BLOCKSTORAGESCALE ))
-wait_for -w $((60 * $expected_nodes)) --delay 10 -- wait_for_hypervisor_stats $expected_nodes
-
-## #. Set password for Overcloud SNMPd, same password needs to be set in Undercloud Ceilometer
-
-UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD=$(os-apply-config -m $TE_DATAFILE --key undercloud.ceilometer_snmpd_password --type raw --key-default '')
-if [ -z "$UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD" ]; then #nodocs
- UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD=$(os-make-password)
-fi #nodocs
-
-## #. Create unique credentials::
-
-### --end
-# NOTE(tchaypo): We used to write these passwords in $CWD; so check to see
-# if the file exists there first. As well as providing backwards
-# compatibility, this allows for people to run multiple test environments on
-# the same machine - just make sure to have a different directory for
-# running the scripts for each different environment you wish to use.
-#
-# If we can't find the file in $CWD we look in the new default location.
-if [ -e tripleo-overcloud-passwords ]; then
- echo "Re-using existing passwords in $PWD/tripleo-overcloud-passwords"
- # Add any new passwords since the file was generated
- setup-overcloud-passwords tripleo-overcloud-passwords
- source tripleo-overcloud-passwords
-else
-### --include
- setup-overcloud-passwords $TRIPLEO_ROOT/tripleo-overcloud-passwords
- source $TRIPLEO_ROOT/tripleo-overcloud-passwords
-fi #nodocs
-
-## #. We need an environment file to store the parameters we're gonig to give
-## heat.::
-
-HEAT_ENV=${HEAT_ENV:-"${TRIPLEO_ROOT}/overcloud-env.json"}
-
-## #. Read the heat env in for updating.::
-
-if [ -e "${HEAT_ENV}" ]; then
-### --end
- if [ "$(stat -c %a ${HEAT_ENV})" != "600" ]; then
- echo "Error: Heat environment cache \"${HEAT_ENV}\" not set to permissions of 0600."
-# We should exit 1 so all the users from before the permissions
-# requirement dont have their HEAT_ENV files ignored in a nearly silent way
- exit 1
- fi
-### --include
- ENV_JSON=$(cat "${HEAT_ENV}")
-else
- ENV_JSON='{"parameters":{}}'
-fi
-
-## #. Set parameters we need to deploy a KVM cloud.::
-
-NeutronControlPlaneID=$(neutron net-show ctlplane | grep ' id ' | awk '{print $4}')
-ENV_JSON=$(jq '.parameters = {
-"MysqlInnodbBufferPoolSize": 100
-} + .parameters + {
-"AdminPassword": "'"${OVERCLOUD_ADMIN_PASSWORD}"'",
-"AdminToken": "'"${OVERCLOUD_ADMIN_TOKEN}"'",
-"CeilometerPassword": "'"${OVERCLOUD_CEILOMETER_PASSWORD}"'",
-"CeilometerMeteringSecret": "'"${OVERCLOUD_CEILOMETER_SECRET}"'",
-"CinderPassword": "'"${OVERCLOUD_CINDER_PASSWORD}"'",
-"CloudName": "'"${OVERCLOUD_NAME}"'",
-"GlancePassword": "'"${OVERCLOUD_GLANCE_PASSWORD}"'",
-"HeatPassword": "'"${OVERCLOUD_HEAT_PASSWORD}"'",
-"HeatStackDomainAdminPassword": "'"${OVERCLOUD_HEAT_STACK_DOMAIN_PASSWORD}"'",
-"HypervisorNeutronPhysicalBridge": "'"${OVERCLOUD_HYPERVISOR_PHYSICAL_BRIDGE}"'",
-"HypervisorNeutronPublicInterface": "'"${OVERCLOUD_HYPERVISOR_PUBLIC_INTERFACE}"'",
-"NeutronBridgeMappings": "'"${OVERCLOUD_BRIDGE_MAPPINGS}"'",
-"NeutronControlPlaneID": "'${NeutronControlPlaneID}'",
-"NeutronFlatNetworks": "'"${OVERCLOUD_FLAT_NETWORKS}"'",
-"NeutronPassword": "'"${OVERCLOUD_NEUTRON_PASSWORD}"'",
-"NeutronPublicInterface": "'"${NeutronPublicInterface}"'",
-"NeutronPublicInterfaceTag": "'"${NeutronPublicInterfaceTag}"'",
-"NovaComputeLibvirtType": "'"${OVERCLOUD_LIBVIRT_TYPE}"'",
-"NovaPassword": "'"${OVERCLOUD_NOVA_PASSWORD}"'",
-"NtpServer": "'"${OVERCLOUD_NTP_SERVER}"'",
-"SwiftHashSuffix": "'"${OVERCLOUD_SWIFT_HASH}"'",
-"SwiftPassword": "'"${OVERCLOUD_SWIFT_PASSWORD}"'",
-"SSLCertificate": "'"${OVERCLOUD_SSL_CERT}"'",
-"SSLKey": "'"${OVERCLOUD_SSL_KEY}"'",
-"OvercloudComputeFlavor": "'"${COMPUTE_FLAVOR}"'",
-"OvercloudControlFlavor": "'"${CONTROL_FLAVOR}"'",
-"OvercloudBlockStorageFlavor": "'"${BLOCKSTORAGE_FLAVOR}"'",
-"OvercloudSwiftStorageFlavor": "'"${SWIFTSTORAGE_FLAVOR}"'"
-}' <<< $ENV_JSON)
-
-### --end
-if [ "$DEBUG_LOGGING" = "1" ]; then
- ENV_JSON=$(jq '.parameters = .parameters + {
- "Debug": "True",
- }' <<< $ENV_JSON)
-fi
-### --include
-
-
-## #. We enable the automatic relocation of L3 routers in Neutron by default,
-## alternatively you can use the L3 agents high availability mechanism
-## (only works with three or more controller nodes) or the distributed virtul
-## routing mechanism (deploying routers on compute nodes). Set the environment
-## variable ``OVERCLOUD_L3`` to ``relocate``, ``ha`` or ``dvr``.
-## ::
-
-OVERCLOUD_L3=${OVERCLOUD_L3:-'relocate'}
-
-## #. If enabling distributed virtual routing on the overcloud, some values need
-## to be set so that Neutron DVR will work.
-## ::
-
-if [ ${OVERCLOUD_DISTRIBUTED_ROUTERS:-'False'} == "True" -o $OVERCLOUD_L3 == "dvr" ]; then
- ENV_JSON=$(jq '.parameters = {} + .parameters + {
- "NeutronDVR": "True",
- "NeutronTunnelTypes": "vxlan",
- "NeutronNetworkType": "vxlan",
- "NeutronMechanismDrivers": "openvswitch,l2population",
- "NeutronAllowL3AgentFailover": "False",
- }' <<< $ENV_JSON)
-fi
-
-
-if [ ${OVERCLOUD_L3_HA:-'False'} == "True" -o $OVERCLOUD_L3 == "ha" ]; then
- ENV_JSON=$(jq '.parameters = {} + .parameters + {
- "NeutronL3HA": "True",
- "NeutronAllowL3AgentFailover": "False",
- }' <<< $ENV_JSON)
-fi
-
-### --end
-# Options we haven't documented as such
-ENV_JSON=$(jq '.parameters = {
-"ControlVirtualInterface": "'${OVERCLOUD_VIRTUAL_INTERFACE}'"
-} + .parameters + {
-"NeutronPublicInterfaceDefaultRoute": "'${NeutronPublicInterfaceDefaultRoute}'",
-"NeutronPublicInterfaceIP": "'${NeutronPublicInterfaceIP}'",
-"NeutronPublicInterfaceRawDevice": "'${NeutronPublicInterfaceRawDevice}'",
-"SnmpdReadonlyUserPassword": "'${UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD}'",
-}' <<< $ENV_JSON)
-
-RESOURCE_REGISTRY=
-RESOURCE_REGISTRY_PATH=${RESOURCE_REGISTRY_PATH:-"$TRIPLEO_ROOT/tripleo-heat-templates/overcloud-resource-registry.yaml"}
-STEPFILE_PATH=${STEPFILE_PATH:-"$TRIPLEO_ROOT/tripleo-heat-templates/environments/overcloud-steps.yaml"}
-
-if [ "$USE_MERGEPY" -eq 0 ]; then
- RESOURCE_REGISTRY="-e $RESOURCE_REGISTRY_PATH"
- ENV_JSON=$(jq '.parameters = .parameters + {
- "ControllerCount": '${OVERCLOUD_CONTROLSCALE}',
- "ComputeCount": '${OVERCLOUD_COMPUTESCALE}'
- }' <<< $ENV_JSON)
- if [ -e "$TRIPLEO_ROOT/tripleo-heat-templates/cinder-storage.yaml" ]; then
- ENV_JSON=$(jq '.parameters = .parameters + {
- "BlockStorageCount": '${OVERCLOUD_BLOCKSTORAGESCALE}'
- }' <<< $ENV_JSON)
- fi
- if [ "$WITH_STEPS" = "1" ]; then
- RESOURCE_REGISTRY="$RESOURCE_REGISTRY -e $STEPFILE_PATH"
- fi
-fi
-
-CUSTOM_HEAT_ENVIRONMENT=
-OVERCLOUD_CUSTOM_HEAT_ENV=${OVERCLOUD_CUSTOM_HEAT_ENV:-''}
-if [ -n "$OVERCLOUD_CUSTOM_HEAT_ENV" ]; then
- for NAME in $OVERCLOUD_CUSTOM_HEAT_ENV; do
- CUSTOM_HEAT_ENVIRONMENT="$CUSTOM_HEAT_ENVIRONMENT -e $NAME"
- done
-fi
-
-### --include
-
-## #. Save the finished environment file.::
-
-jq . > "${HEAT_ENV}" <<< $ENV_JSON
-chmod 0600 "${HEAT_ENV}"
-
-## #. Add Keystone certs/key into the environment file.::
-
-generate-keystone-pki --heatenv $HEAT_ENV
-
-## #. Deploy an overcloud::
-
-## heat $HEAT_OP -e "$HEAT_ENV" \
-## -f $TRIPLEO_ROOT/tripleo-heat-templates/overcloud.yaml \
-## -P "ExtraConfig=${OVERCLOUD_EXTRA_CONFIG}" \
-## overcloud
-
-### --end
-
-if [ "$USE_MERGEPY" -eq 1 ]; then
- make -C $TRIPLEO_ROOT/tripleo-heat-templates overcloud.yaml \
- COMPUTESCALE=$OVERCLOUD_COMPUTESCALE,${OVERCLOUD_COMPUTE_BLACKLIST:-} \
- CONTROLSCALE=$OVERCLOUD_CONTROLSCALE,${OVERCLOUD_CONTROL_BLACKLIST:-} \
- BLOCKSTORAGESCALE=$OVERCLOUD_BLOCKSTORAGESCALE
- OVERCLOUD_TEMPLATE=$TRIPLEO_ROOT/tripleo-heat-templates/overcloud.yaml
-else
- OVERCLOUD_TEMPLATE=$TRIPLEO_ROOT/tripleo-heat-templates/overcloud-without-mergepy.yaml
-fi
-
-# create stack with a 6 hour timeout, and allow wait_for_stack_ready
-# to impose a realistic timeout.
-heat $HEAT_OP -e "$HEAT_ENV" \
- -e $OVERCLOUD_IMAGE_IDS_ENV \
- $RESOURCE_REGISTRY \
- $CUSTOM_HEAT_ENVIRONMENT \
- -t 360 \
- -f "$OVERCLOUD_TEMPLATE" \
- -P "ExtraConfig=${OVERCLOUD_EXTRA_CONFIG}" \
- $STACKNAME
-
-### --include
-
-## You can watch the console via ``virsh``/``virt-manager`` to observe the PXE
-## boot/deploy process. After the deploy is complete, the machines will reboot
-## and be available.
-
-## #. While we wait for the stack to come up, build an end user disk image and
-## register it with glance.::
-
-USER_IMG_NAME="user.qcow2"
-### --end
-USE_CIRROS=${USE_CIRROS:-0}
-if [ "$USE_CIRROS" != "0" ]; then
- USER_IMG_NAME="user-cirros.qcow2"
-fi
-
-TEST_IMAGE_DIB_EXTRA_ARGS=${TEST_IMAGE_DIB_EXTRA_ARGS:-''}
-if [ ! -e $TRIPLEO_ROOT/$USER_IMG_NAME -o "$USE_CACHE" == "0" ] ; then
- if [ "$USE_CIRROS" == "0" ] ; then
-### --include
- $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST vm $TEST_IMAGE_DIB_EXTRA_ARGS \
- -a $NODE_ARCH -o $TRIPLEO_ROOT/user 2>&1 | tee $TRIPLEO_ROOT/dib-user.log
-### --end
- else
- VERSION=$($TRIPLEO_ROOT/diskimage-builder/elements/cache-url/bin/cache-url \
- http://download.cirros-cloud.net/version/released >(cat) 1>&2)
- IMAGE_ID=cirros-${VERSION}-${NODE_ARCH/amd64/x86_64}-disk.img
- MD5SUM=$($TRIPLEO_ROOT/diskimage-builder/elements/cache-url/bin/cache-url \
- http://download.cirros-cloud.net/${VERSION}/MD5SUMS >(cat) 1>&2 | awk "/$IMAGE_ID/ {print \$1}")
- $TRIPLEO_ROOT/diskimage-builder/elements/cache-url/bin/cache-url \
- http://download.cirros-cloud.net/${VERSION}/${IMAGE_ID} $TRIPLEO_ROOT/$USER_IMG_NAME
- pushd $TRIPLEO_ROOT
- echo "$MD5SUM *$USER_IMG_NAME" | md5sum --check -
- popd
- fi
-fi
-
-# If --with-steps is specified, we step through the deployment, waiting
-# for user confirmation before proceeding, based on the heat hooks defined
-# in tripleo-heat-templates/overcloud-steps.yaml
-STEP_SLEEPTIME=${STEP_SLEEPTIME:-30}
-STEP_NESTED_DEPTH=${STEP_NESTED_DEPTH:-5}
-if [ "$WITH_STEPS" = "1" ]; then
- set +x
- while $(heat stack-show overcloud | grep stack_status | grep -q IN_PROGRESS)
- do
- HEADER_DONE=0
- HEADER_STR="| resource_name"
- while read -r -u 3 line
- do
- if [[ $line =~ ^"$HEADER_STR" && $HEADER_DONE -eq 0 ]]; then
- echo $line
- HEADER_DONE=1
- fi
- if [[ $line == *"paused until Hook"* ]]; then
- echo -e "Hit hook, event:\n$line"
- # Prompt for confirmation before continuing
- read -p "To clear hook and continue, press \"y\"" -n 1 -r
- echo
- if [[ $REPLY =~ ^[Yy]$ ]]; then
- HOOK_RSRC=$(echo $line | cut -d "|" -f2)
- HOOK_STACK=$(echo $line | cut -d "|" -f7)
- heat hook-clear $HOOK_STACK $HOOK_RSRC
- fi
- fi
- done 3< <(heat hook-poll overcloud --nested-depth $STEP_NESTED_DEPTH)
- echo "Waiting for hook to be reached"
- sleep $STEP_SLEEPTIME
- done
- set -x
-fi
-
-### --include
-## #. Get the overcloud IP from the heat stack
-## ::
-
-echo "Waiting for the overcloud stack to be ready" #nodocs
-wait_for_stack_ready -w $(($OVERCLOUD_STACK_TIMEOUT * 60)) 10 $STACKNAME
-OVERCLOUD_ENDPOINT=$(heat output-show $STACKNAME KeystoneURL|sed 's/^"\(.*\)"$/\1/')
-OVERCLOUD_IP=$(echo $OVERCLOUD_ENDPOINT | awk -F '[/:]' '{print $4}')
-### --end
-# If we're forcing a specific public interface, we'll want to advertise that as
-# the public endpoint for APIs.
-if [ -n "$NeutronPublicInterfaceIP" ]; then
- OVERCLOUD_IP=$(echo ${NeutronPublicInterfaceIP} | sed -e s,/.*,,)
- OVERCLOUD_ENDPOINT="http://$OVERCLOUD_IP:5000/v2.0"
-fi
-
-### --include
-
-## #. We don't (yet) preserve ssh keys on rebuilds.
-## ::
-
-ssh-keygen -R $OVERCLOUD_IP
-
-## #. Export the overcloud endpoint and credentials to your test environment.
-## ::
-
-NEW_JSON=$(jq '.overcloud.password="'${OVERCLOUD_ADMIN_PASSWORD}'" | .overcloud.endpoint="'${OVERCLOUD_ENDPOINT}'" | .overcloud.endpointhost="'${OVERCLOUD_IP}'"' $TE_DATAFILE)
-echo $NEW_JSON > $TE_DATAFILE
-
-## #. Source the overcloud configuration::
-
-source $TRIPLEO_ROOT/tripleo-incubator/overcloudrc
-
-## #. Exclude the overcloud from proxies::
-
-set +u #nodocs
-export no_proxy=$no_proxy,$OVERCLOUD_IP
-set -u #nodocs
-
-## #. If we updated the cloud we don't need to do admin setup again - skip down to `Wait for Nova Compute`_.
-
-
-if [ "stack-create" = "$HEAT_OP" ]; then #nodocs
-
-## #. Perform admin setup of your overcloud.
-## ::
-
- init-keystone -o $OVERCLOUD_IP -t $OVERCLOUD_ADMIN_TOKEN \
- -e admin@example.com -p $OVERCLOUD_ADMIN_PASSWORD \
- ${SSLBASE:+-s $PUBLIC_API_URL} --no-pki-setup
- # Creating these roles to be used by tenants using swift
- openstack role create swiftoperator
- openstack role create ResellerAdmin
- setup-endpoints $OVERCLOUD_IP \
- --cinder-password $OVERCLOUD_CINDER_PASSWORD \
- --glance-password $OVERCLOUD_GLANCE_PASSWORD \
- --heat-password $OVERCLOUD_HEAT_PASSWORD \
- --neutron-password $OVERCLOUD_NEUTRON_PASSWORD \
- --nova-password $OVERCLOUD_NOVA_PASSWORD \
- --swift-password $OVERCLOUD_SWIFT_PASSWORD \
- --ceilometer-password $OVERCLOUD_CEILOMETER_PASSWORD \
- ${SSLBASE:+--ssl $PUBLIC_API_URL}
- openstack role create heat_stack_user
- user-config
- BM_NETWORK_GATEWAY=$(OS_CONFIG_FILES=$TE_DATAFILE os-apply-config --key baremetal-network.gateway-ip --type raw --key-default '192.0.2.1')
- OVERCLOUD_NAMESERVER=$(os-apply-config -m $TE_DATAFILE --key overcloud.nameserver --type netaddress --key-default "$OVERCLOUD_FIXED_RANGE_NAMESERVER")
- NETWORK_JSON=$(mktemp)
- jq "." < $NETWORK_JSON
-{
- "float": {
- "cidr": "$OVERCLOUD_FIXED_RANGE_CIDR",
- "name": "default-net",
- "nameserver": "$OVERCLOUD_NAMESERVER",
- "segmentation_id": "$NeutronPublicInterfaceTag",
- "physical_network": "datacentre",
- "gateway": "$OVERCLOUD_FIXED_RANGE_GATEWAY"
- },
- "external": {
- "name": "ext-net",
- "provider:network_type": "flat",
- "provider:physical_network": "datacentre",
- "cidr": "$FLOATING_CIDR",
- "allocation_start": "$FLOATING_START",
- "allocation_end": "$FLOATING_END",
- "gateway": "$BM_NETWORK_GATEWAY"
- }
-}
-EOF
- setup-neutron -n $NETWORK_JSON
- rm $NETWORK_JSON
-
-## #. If you want a demo user in your overcloud (probably a good idea).
-## ::
-
- os-adduser -p $OVERCLOUD_DEMO_PASSWORD demo demo@example.com
-
-## #. Workaround https://bugs.launchpad.net/diskimage-builder/+bug/1211165.
-## ::
-
- nova flavor-delete m1.tiny
- nova flavor-create m1.tiny 1 512 2 1
-
-## #. Register the end user image with glance.
-## ::
-
- glance image-create --name user --visibility public --disk-format qcow2 \
- --container-format bare --file $TRIPLEO_ROOT/$USER_IMG_NAME
-
-fi #nodocs
-
-## #. _`Wait for Nova Compute`
-## ::
-
-wait_for -w 300 --delay 10 -- nova service-list --binary nova-compute 2\>/dev/null \| grep 'enabled.*\ up\ '
-
-## #. Wait for L2 Agent On Nova Compute
-## ::
-
-wait_for -w 300 --delay 10 -- neutron agent-list -f csv -c alive -c agent_type -c host \| grep "\":-).*Open vSwitch agent.*-novacompute\"" #nodocs
-## wait_for 30 10 neutron agent-list -f csv -c alive -c agent_type -c host \| grep "\":-).*Open vSwitch agent.*-novacompute\""
-
-## #. Log in as a user.
-## ::
-
-source $TRIPLEO_ROOT/tripleo-incubator/overcloudrc-user
-
-## #. If you just created the cloud you need to add your keypair to your user.
-## ::
-
-if [ "stack-create" = "$HEAT_OP" ] ; then #nodocs
- user-config
-
-## #. So that you can deploy a VM.
-## ::
-
- IMAGE_ID=$(nova image-show user | awk '/ id / {print $4}')
- nova boot --key-name default --flavor m1.tiny --block-device source=image,id=$IMAGE_ID,dest=volume,size=3,shutdown=preserve,bootindex=0 demo
-
-## #. Add an external IP for it.
-## ::
-
- wait_for -w 50 --delay 5 -- neutron port-list -f csv -c id --quote none \| grep id
- PORT=$(neutron port-list -f csv -c id --quote none | tail -n1)
- FLOATINGIP=$(neutron floatingip-create ext-net \
- --port-id "${PORT//[[:space:]]/}" \
- | awk '$2=="floating_ip_address" {print $4}')
-
-## #. And allow network access to it.
-## ::
-
- neutron security-group-rule-create default --protocol icmp \
- --direction ingress --port-range-min 8
- neutron security-group-rule-create default --protocol tcp \
- --direction ingress --port-range-min 22 --port-range-max 22
-
-### --end
-else
- FLOATINGIP=$(neutron floatingip-list \
- --quote=none -f csv -c floating_ip_address | tail -n 1)
- nova stop demo
- sleep 5
- nova start demo
-fi
-### --include
-
-## #. After which, you should be able to ping it
-## ::
-
-wait_for -w 300 --delay 10 -- ping -c 1 $FLOATINGIP
-
-### --end
-
-if [ -n "$ADMIN_USERS" ]; then
- source $TRIPLEO_ROOT/tripleo-incubator/overcloudrc
- assert-admin-users "$ADMIN_USERS"
- assert-users "$ADMIN_USERS"
-fi
-
-if [ -n "$USERS" ] ; then
- source $TRIPLEO_ROOT/tripleo-incubator/overcloudrc
- assert-users "$USERS"
-fi
diff --git a/scripts/devtest_overcloud_images.sh b/scripts/devtest_overcloud_images.sh
deleted file mode 100755
index bbe86f44..00000000
--- a/scripts/devtest_overcloud_images.sh
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/bin/bash
-
-set -eu
-set -o pipefail
-SCRIPT_NAME=$(basename $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options]"
- echo
- echo "Builds overcloud images using defined environment variables."
- echo
- echo "Options:"
- echo " -h -- this help"
- echo " -c -- re-use existing source/images if they exist."
- exit $1
-}
-
-TEMP=$(getopt -o c,h,help -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ] ; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -c) USE_CACHE=1; shift 1;;
- -h | --help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-USE_CACHE=${USE_CACHE:-0}
-DIB_COMMON_ELEMENTS=${DIB_COMMON_ELEMENTS:-'stackuser'}
-OVERCLOUD_CONTROL_DIB_ELEMENTS=${OVERCLOUD_CONTROL_DIB_ELEMENTS:-'ntp hosts baremetal boot-stack cinder-api ceilometer-collector ceilometer-api ceilometer-agent-central ceilometer-agent-notification ceilometer-alarm-notifier ceilometer-alarm-evaluator os-collect-config horizon neutron-network-node dhcp-all-interfaces swift-proxy swift-storage keepalived haproxy sysctl'}
-OVERCLOUD_CONTROL_DIB_EXTRA_ARGS=${OVERCLOUD_CONTROL_DIB_EXTRA_ARGS:-'rabbitmq-server cinder-tgt'}
-OVERCLOUD_COMPUTE_DIB_ELEMENTS=${OVERCLOUD_COMPUTE_DIB_ELEMENTS:-'ntp hosts baremetal nova-compute nova-kvm neutron-openvswitch-agent os-collect-config dhcp-all-interfaces sysctl'}
-OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS=${OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS:-''}
-
-OVERCLOUD_BLOCKSTORAGE_DIB_ELEMENTS=${OVERCLOUD_BLOCKSTORAGE_DIB_ELEMENTS:-'ntp hosts baremetal os-collect-config dhcp-all-interfaces sysctl'}
-OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS=${OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS:-'cinder-tgt'}
-SSL_ELEMENT=${SSLBASE:+openstack-ssl}
-TE_DATAFILE=${TE_DATAFILE:?"TE_DATAFILE must be defined before calling this script!"}
-
-if [ "${USE_MARIADB:-}" = 1 ] ; then
- OVERCLOUD_CONTROL_DIB_EXTRA_ARGS="$OVERCLOUD_CONTROL_DIB_EXTRA_ARGS mariadb-rpm"
- OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS="$OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS mariadb-dev-rpm"
- OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS="$OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS mariadb-dev-rpm"
-fi
-
-NODE_ARCH=$(os-apply-config -m $TE_DATAFILE --key arch --type raw)
-
-### --include
-## devtest_overcloud_images
-## ========================
-## Build images with environment variables. This script works best
-## when using tripleo-image-elements for Overcloud configuration.
-
-## #. Undercloud UI needs SNMPd for monitoring of every Overcloud node
-## ::
-
-if [ "$USE_UNDERCLOUD_UI" -ne 0 ] ; then
- OVERCLOUD_CONTROL_DIB_EXTRA_ARGS="$OVERCLOUD_CONTROL_DIB_EXTRA_ARGS snmpd"
- OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS="$OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS snmpd"
- OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS="$OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS snmpd"
-fi
-
-## #. Create your overcloud control plane image.
-
-## ``$OVERCLOUD_*_DIB_EXTRA_ARGS`` (CONTROL, COMPUTE, BLOCKSTORAGE) are
-## meant to be used to pass additional build-time specific arguments to
-## ``disk-image-create``.
-
-## ``$SSL_ELEMENT`` is used when building a cloud with SSL endpoints - it should be
-## set to openstack-ssl in that situation.
-## ::
-
-if [ ! -e $TRIPLEO_ROOT/overcloud-control.qcow2 -o "$USE_CACHE" == "0" ] ; then
- $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \
- -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-control \
- $OVERCLOUD_CONTROL_DIB_ELEMENTS \
- $DIB_COMMON_ELEMENTS $OVERCLOUD_CONTROL_DIB_EXTRA_ARGS ${SSL_ELEMENT:-} 2>&1 | \
- tee $TRIPLEO_ROOT/dib-overcloud-control.log
-fi
-
-## #. Create your block storage image if some block storage nodes are to be used. This
-## is the image the undercloud deploys for the additional cinder-volume nodes.
-## ::
-
-if [ ${OVERCLOUD_BLOCKSTORAGESCALE:-0} -gt 0 ]; then
- if [ ! -e $TRIPLEO_ROOT/overcloud-cinder-volume.qcow2 -o "$USE_CACHE" == "0" ]; then
- $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \
- -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-cinder-volume \
- $OVERCLOUD_BLOCKSTORAGE_DIB_ELEMENTS $DIB_COMMON_ELEMENTS \
- $OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS 2>&1 | \
- tee $TRIPLEO_ROOT/dib-overcloud-cinder-volume.log
- fi
-fi
-
-## If enabling distributed virtual routing for Neutron on the overcloud the compute node
-## must have the ``neutron-router`` element installed.
-## ::
-
-OVERCLOUD_DISTRIBUTED_ROUTERS=${OVERCLOUD_DISTRIBUTED_ROUTERS:-'False'}
-OVERCLOUD_L3=${OVERCLOUD_L3:-'relocate'}
-if [ $OVERCLOUD_DISTRIBUTED_ROUTERS == "True" -o $OVERCLOUD_L3 == "dvr" ]; then
- OVERCLOUD_COMPUTE_DIB_ELEMENTS="$OVERCLOUD_COMPUTE_DIB_ELEMENTS neutron-router"
-fi
-
-## #. Create your overcloud compute image. This is the image the undercloud
-## deploys to host the overcloud Nova compute hypervisor components.
-## ::
-
-if [ ! -e $TRIPLEO_ROOT/overcloud-compute.qcow2 -o "$USE_CACHE" == "0" ]; then
- $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \
- -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-compute \
- $OVERCLOUD_COMPUTE_DIB_ELEMENTS $DIB_COMMON_ELEMENTS \
- $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2>&1 | \
- tee $TRIPLEO_ROOT/dib-overcloud-compute.log
-fi
-### --end
diff --git a/scripts/devtest_ramdisk.sh b/scripts/devtest_ramdisk.sh
deleted file mode 100755
index 06a02b2d..00000000
--- a/scripts/devtest_ramdisk.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-
-set -eu
-set -o pipefail
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options]"
- echo
- echo "Build a baremetal deployment ramdisk."
- echo
- echo "Options:"
- echo " -h -- this help"
- echo
- exit $1
-}
-
-TEMP=$(getopt -o h -l help -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h | --help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-set -x
-USE_CACHE=${USE_CACHE:-0}
-DIB_COMMON_ELEMENTS=${DIB_COMMON_ELEMENTS:-'stackuser'}
-
-### --include
-## devtest_ramdisk
-## ===============
-
-## Deploy Ramdisk creation
-## -----------------------
-
-
-## #. Create a deployment ramdisk + kernel. These are used by the seed cloud and
-## the undercloud for deployment to bare metal.
-## ::
-
-### --end
-NODE_ARCH=$(os-apply-config -m $TE_DATAFILE --key arch)
-if [ ! -e $TRIPLEO_ROOT/$DEPLOY_NAME.kernel -o \
- ! -e $TRIPLEO_ROOT/$DEPLOY_NAME.initramfs -o \
- "$USE_CACHE" == "0" ] ; then
-### --include
- $TRIPLEO_ROOT/diskimage-builder/bin/ramdisk-image-create -a $NODE_ARCH \
- $NODE_DIST $DEPLOY_IMAGE_ELEMENT -o $TRIPLEO_ROOT/$DEPLOY_NAME \
- $DIB_COMMON_ELEMENTS 2>&1 | \
- tee $TRIPLEO_ROOT/dib-deploy.log
-### --end
-fi
diff --git a/scripts/devtest_seed.sh b/scripts/devtest_seed.sh
deleted file mode 100755
index ed9cc3f9..00000000
--- a/scripts/devtest_seed.sh
+++ /dev/null
@@ -1,437 +0,0 @@
-#!/bin/bash
-
-set -eu
-set -o pipefail
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-PATH=$PATH:/usr/sbin:/sbin
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options]"
- echo
- echo "Deploys a baremetal cloud via virsh."
- echo
- echo "Options:"
- echo " -h -- this help"
- echo " -c -- re-use existing source/images if they exist."
- echo " --build-only -- build the needed images but don't deploy them."
- echo " --debug-logging -- Turn on debug logging in the seed. Sets both the"
- echo " OS_DEBUG_LOGGING env var and the debug environment"
- echo " json values."
- echo " --all-nodes -- use all the nodes in the testenv rather than"
- echo " just the first one."
- echo
- exit $1
-}
-
-BUILD_ONLY=
-DEBUG_LOGGING=
-
-TEMP=$(getopt -o c,h -l all-nodes,build-only,debug-logging,help -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- --all-nodes) ALL_NODES="true"; shift 1;;
- -c) SEED_USE_CACHE=1; shift 1;;
- --build-only) BUILD_ONLY="--build-only"; shift 1;;
- --debug-logging)
- DEBUG_LOGGING="seed-debug-logging"
- export OS_DEBUG_LOGGING="1"
- shift 1
- ;;
- -h | --help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-set -x
-USE_CACHE=${USE_CACHE:-0}
-
-# SEED_USE_CACHE can be set independently of the global USE_CACHE
-# This is useful if you want to rebuild your seed, but reuse the
-# cached overcloud images. Do this via SEED_USE_CACHE=0 with
-# the global USE_CACHE=1. Note this is only overriding the local
-# USE_CACHE variable, not what is set in the environment.
-USE_CACHE=${SEED_USE_CACHE:-$USE_CACHE}
-
-### --include
-## devtest_seed
-## ============
-
-
-
-## #. Create and start your seed VM. This script invokes diskimage-builder with
-## suitable paths and options to create and start a VM that contains an
-## all-in-one OpenStack cloud with the baremetal driver enabled, and
-## preconfigures it for a development environment. Note that the seed has
-## minimal variation in it's configuration: the goal is to bootstrap with
-## a known-solid config.
-## ::
-
-cd $TRIPLEO_ROOT/tripleo-image-elements/elements/seed-stack-config
-
-## #. Ironic and Nova-Baremetal require different metadata to operate.
-## ::
-
-# Unsets .nova.baremetal as it's unused.
-# TODO replace "baremetal": {} with del(.baremetal) when jq 1.3 is widely available.
-# Sets:
-# - ironic.virtual_power_ssh_key.
-# - nova.compute_driver to ironic.nova.virt.ironic.driver.IronicDriver.
-# - nova.compute_manager to avoid race conditions on ironic startup.
-jq -s '
- .[1] as $config
- | .[0]
- | . + {
- "ironic": (.ironic + {
- "virtual_power_ssh_key": $config["ssh-key"],
- }),
- "nova": (.nova + {
- "baremetal": {},
- "compute_driver": "nova.virt.ironic.driver.IronicDriver",
- "compute_manager": "ironic.nova.compute.manager.ClusteredComputeManager",
- "scheduler_host_manager": "nova.scheduler.ironic_host_manager.IronicHostManager",
- })
- }' config.json $TE_DATAFILE > tmp_local.json
-
-# Add Keystone certs/key into the environment file
-generate-keystone-pki --heatenv tmp_local.json -s
-
-# Get details required to set-up a callback heat call back from the seed from os-collect-config.
-HOST_IP=$(os-apply-config -m $TE_DATAFILE --key host-ip --type netaddress --key-default '192.168.122.1')
-COMP_IP=$(ip route get "$HOST_IP" | awk '/'"$HOST_IP"'/ {print $NF}')
-
-SEED_COMP_PORT="${SEED_COMP_PORT:-27410}"
-SEED_IMAGE_ID="${SEED_IMAGE_ID:-seedImageID}"
-
-# Firewalld interferes with our seed completion signal
-if systemctl status firewalld; then
- if ! sudo firewall-cmd --list-ports | grep "$SEED_COMP_PORT/tcp"; then
- echo 'Firewalld is running and the seed completion port is not open.'
- echo 'To continue you must either stop firewalld or open the port with:'
- echo "sudo firewall-cmd --add-port=$SEED_COMP_PORT/tcp"
- exit 1
- fi
-fi
-
-# Apply custom BM network settings to the seeds local.json config
-# Because the seed runs under libvirt and usually isn't in routing tables for
-# access to the networks behind it, we setup masquerading for the bm networks,
-# which permits outbound access from the machines we've deployed.
-# If the seed is not the router (e.g. real machines are being used) then these
-# rules are harmless.
-BM_NETWORK_CIDR=$(os-apply-config -m $TE_DATAFILE --key baremetal-network.cidr --type raw --key-default '192.0.2.0/24')
-BM_VLAN_SEED_TAG=$(os-apply-config -m $TE_DATAFILE --key baremetal-network.seed.public_vlan.tag --type netaddress --key-default '')
-BM_VLAN_SEED_IP=$(os-apply-config -m $TE_DATAFILE --key baremetal-network.seed.public_vlan.ip --type netaddress --key-default '')
-if [ -n "$BM_VLAN_SEED_IP" ]; then
- BM_VLAN_SEED_IP_ADDR=$(python -c "import netaddr; print netaddr.IPNetwork('$BM_VLAN_SEED_IP').ip")
- BM_VLAN_SEED_IP_CIDR=$(python -c "import netaddr; print '%s/%s' % (netaddr.IPNetwork('$BM_VLAN_SEED_IP').network, netaddr.IPNetwork('$BM_VLAN_SEED_IP').prefixlen)")
- echo "{ \"ovs\": {\"public_interface_tag\": \"${BM_VLAN_SEED_TAG}\", \"public_interface_tag_ip\": \"${BM_VLAN_SEED_IP}\"}, \"masquerade\": [\"${BM_VLAN_SEED_IP}\"] }" > bm-vlan.json
-else
- echo "{ \"ovs\": {}, \"masquerade\": [] }" > bm-vlan.json
-fi
-BM_BRIDGE_ROUTE=$(jq -r '.["baremetal-network"].seed.physical_bridge_route // {}' $TE_DATAFILE)
-BM_CTL_ROUTE_PREFIX=$(jq -r '.["baremetal-network"].seed.physical_bridge_route.prefix // ""' $TE_DATAFILE)
-BM_CTL_ROUTE_VIA=$(jq -r '.["baremetal-network"].seed.physical_bridge_route.via // ""' $TE_DATAFILE)
-jq -s '
- .[1]["baremetal-network"] as $bm
- | ($bm.seed.ip // "192.0.2.1") as $bm_seed_ip
- | .[2] as $bm_vlan
- | .[3] as $bm_bridge_route
- | .[0]
- | . + {
- "local-ipv4": $bm_seed_ip,
- "completion-signal": ("http://'"${COMP_IP}"':'"${SEED_COMP_PORT}"'"),
- "instance-id": "'"${SEED_IMAGE_ID}"'",
- "bootstack": (.bootstack + {
- "public_interface_ip": ($bm_seed_ip + "/'"${BM_NETWORK_CIDR##*/}"'"),
- "masquerade_networks": ([$bm.cidr // "192.0.2.0/24"] + $bm_vlan.masquerade)
- }),
- "heat": (.heat + {
- "watch_server_url": ("http://" + $bm_seed_ip + ":8003"),
- "waitcondition_server_url": ("http://" + $bm_seed_ip + ":8000/v1/waitcondition"),
- "metadata_server_url": ("http://" + $bm_seed_ip + ":8000")
- }),
- "neutron": (.neutron + {
- "ovs": (.neutron.ovs + $bm_vlan.ovs + {"local_ip": $bm_seed_ip } + {
- "physical_bridge_route": $bm_bridge_route
- })
- })
-}' tmp_local.json $TE_DATAFILE bm-vlan.json <(echo "$BM_BRIDGE_ROUTE") > local.json
-rm tmp_local.json
-rm bm-vlan.json
-
-### --end
-# If running in a CI environment then the user and ip address should be read
-# from the json describing the environment
-REMOTE_OPERATIONS=$(os-apply-config -m $TE_DATAFILE --key remote-operations --type raw --key-default '')
-if [ -n "$REMOTE_OPERATIONS" ] ; then
- SSH_USER=$(os-apply-config -m $TE_DATAFILE --key ssh-user --type raw --key-default 'root')
- sed -i "s/\"192.168.122.1\"/\"$HOST_IP\"/" local.json
- sed -i "s/\"user\": \".*\?\",/\"user\": \"$SSH_USER\",/" local.json
-fi
-### --include
-
-NODE_ARCH=$(os-apply-config -m $TE_DATAFILE --key arch --type raw)
-
-## #. If you are only building disk images, there is no reason to boot the
-## seed VM. Instead, pass ``--build-only`` to tell boot-seed-vm not to boot
-## the vm it builds.
-
-## If you want to use a previously built image rather than building a new
-## one, passing ``-c`` will boot the existing image rather than creating
-## a new one.
-
-## ::
-
-cd $TRIPLEO_ROOT
-## boot-seed-vm -a $NODE_ARCH $NODE_DIST neutron-dhcp-agent
-### --end
-if [ "$USE_CACHE" == "0" ] ; then
- CACHE_OPT=
-else
- CACHE_OPT="-c"
-fi
-boot-seed-vm $CACHE_OPT $BUILD_ONLY -a $NODE_ARCH $NODE_DIST $DEBUG_LOGGING neutron-dhcp-agent 2>&1 | \
- tee $TRIPLEO_ROOT/dib-seed.log
-
-if [ -n "${BUILD_ONLY}" ]; then
- exit 0
-fi
-### --include
-
-## #. If you're just building images, you're done with this script. Move on
-## to :doc:`devtest_undercloud`
-
-## ``boot-seed-vm`` will start a VM containing your SSH key for the root user.
-##
-## The IP address of the VM's eth0 is printed out at the end of boot-seed-vm, or
-## you can query the testenv json which is updated by boot-seed-vm::
-
-SEED_IP=$(os-apply-config -m $TE_DATAFILE --key seed-ip --type netaddress)
-
-## #. Add a route to the baremetal bridge via the seed node (we do this so that
-## your host is isolated from the networking of the test environment.
-## We only add this route if the baremetal seed IP is used as the
-## gateway (the route is typically not required if you are using
-## a pre-existing baremetal network)
-## ::
-
-# These are not persistent, if you reboot, re-run them.
-
-BM_NETWORK_SEED_IP=$(os-apply-config -m $TE_DATAFILE --key baremetal-network.seed.ip --type raw --key-default '192.0.2.1')
-BM_NETWORK_GATEWAY=$(os-apply-config -m $TE_DATAFILE --key baremetal-network.gateway-ip --type raw --key-default '192.0.2.1')
-if [ $BM_NETWORK_GATEWAY = $BM_NETWORK_SEED_IP -o $BM_NETWORK_GATEWAY = ${BM_VLAN_SEED_IP_ADDR:-''} ]; then
- ROUTE_DEV=$(os-apply-config -m $TE_DATAFILE --key seed-route-dev --type netdevice --key-default virbr0)
- sudo ip route replace $BM_NETWORK_CIDR dev $ROUTE_DEV via $SEED_IP
- if [ -n "$BM_VLAN_SEED_IP" ]; then
- sudo ip route replace $BM_VLAN_SEED_IP_CIDR via $SEED_IP
- fi
-fi
-
-## #. Mask the seed API endpoint out of your proxy settings
-## ::
-
-set +u #nodocs
-export no_proxy=$no_proxy,$BM_NETWORK_SEED_IP
-set -u #nodocs
-
-## #. If you downloaded a pre-built seed image you will need to log into it
-## and customise the configuration within it. See footnote [#f1]_.)
-##
-## #. Setup a prompt clue so you can tell what cloud you have configured.
-## (Do this once).
-## ::
-##
-## source $TRIPLEO_ROOT/tripleo-incubator/cloudprompt
-
-## #. Source the client configuration for the seed cloud.
-## ::
-
-source $TRIPLEO_ROOT/tripleo-incubator/seedrc
-
-## #. Perform setup of your seed cloud.
-## ::
-
-echo "Waiting for seed node to configure br-ctlplane..." #nodocs
-
-# Listen on SEED_COMP_PORT for a callback from os-collect-config. This is
-# similar to how Heat waits, but Heat does not run on the seed.
-timeout 480 sh -c 'printf "HTTP/1.0 200 OK\r\n\r\n\r\n" | nc -l '"$COMP_IP"' '"$SEED_COMP_PORT"' | grep '"$SEED_IMAGE_ID"
-
-# Wait for network
-wait_for -w 20 --delay 1 -- ping -c 1 $BM_NETWORK_SEED_IP
-
-# If ssh-keyscan fails to connect, it returns 0. So grep to see if it succeeded
-ssh-keyscan -t rsa $BM_NETWORK_SEED_IP | tee -a ~/.ssh/known_hosts | grep -q "^$BM_NETWORK_SEED_IP ssh-rsa "
-
-init-keystone -o $BM_NETWORK_SEED_IP -t unset -e admin@example.com -p unset --no-pki-setup
-setup-endpoints $BM_NETWORK_SEED_IP --glance-password unset --heat-password unset --neutron-password unset --nova-password unset --ironic-password unset
-openstack role create heat_stack_user
-# Creating these roles to be used by tenants using swift
-openstack role create swiftoperator
-openstack role create ResellerAdmin
-
-echo "Waiting for nova to initialise..."
-wait_for -w 500 --delay 10 -- nova list
-user-config
-
-echo "Waiting for Nova Compute to be available"
-wait_for -w 300 --delay 10 -- nova service-list --binary nova-compute 2\>/dev/null \| grep 'enabled.*\ up\ '
-echo "Waiting for neutron API and L2 agent to be available"
-wait_for -w 300 --delay 10 -- neutron agent-list -f csv -c alive -c agent_type -c host \| grep "\":-).*Open vSwitch agent.*\"" #nodocs
-
-BM_NETWORK_SEED_RANGE_START=$(os-apply-config -m $TE_DATAFILE --key baremetal-network.seed.range-start --type raw --key-default '192.0.2.2')
-BM_NETWORK_SEED_RANGE_END=$(os-apply-config -m $TE_DATAFILE --key baremetal-network.seed.range-end --type raw --key-default '192.0.2.20')
-
-if [ -n "$BM_VLAN_SEED_TAG" ]; then
- # With a public VLAN, the gateway address is on the public LAN.
- CTL_GATEWAY=
-else
- CTL_GATEWAY=$BM_NETWORK_GATEWAY
-fi
-
-SEED_NAMESERVER=$(os-apply-config -m $TE_DATAFILE --key seed.nameserver --type netaddress --key-default "${SEED_NAMESERVER:-}")
-NETWORK_JSON=$(mktemp)
-jq "." < $NETWORK_JSON
-{
- "physical": {
- "gateway": "$CTL_GATEWAY",
- "metadata_server": "$BM_NETWORK_SEED_IP",
- "cidr": "$BM_NETWORK_CIDR",
- "allocation_start": "$BM_NETWORK_SEED_RANGE_START",
- "allocation_end": "$BM_NETWORK_SEED_RANGE_END",
- "name": "ctlplane",
- "nameserver": "$SEED_NAMESERVER"
- }
-}
-EOF
-if [ -n "$BM_CTL_ROUTE_PREFIX" -a -n "$BM_CTL_ROUTE_VIA" ]; then
- EXTRA_ROUTE="{\"destination\": \"$BM_CTL_ROUTE_PREFIX\", \"nexthop\": \"$BM_CTL_ROUTE_VIA\"}"
- TMP_NETWORK=$(mktemp)
- jq ".[\"physical\"][\"extra_routes\"]=[$EXTRA_ROUTE]" < $NETWORK_JSON > $TMP_NETWORK
- mv $TMP_NETWORK $NETWORK_JSON
-fi
-setup-neutron -n $NETWORK_JSON
-rm $NETWORK_JSON
-# Is there a public network as well? If so configure it.
-if [ -n "$BM_VLAN_SEED_TAG" ]; then
- BM_VLAN_SEED_START=$(jq -r '.["baremetal-network"].seed.public_vlan.start' $TE_DATAFILE)
- BM_VLAN_SEED_END=$(jq -r '.["baremetal-network"].seed.public_vlan.finish' $TE_DATAFILE)
- BM_VLAN_SEED_TAG=$(jq -r '.["baremetal-network"].seed.public_vlan.tag' $TE_DATAFILE)
-
- PUBLIC_NETWORK_JSON=$(mktemp)
- jq "." < $PUBLIC_NETWORK_JSON
-{
- "physical": {
- "gateway": "$BM_NETWORK_GATEWAY",
- "metadata_server": "$BM_NETWORK_SEED_IP",
- "cidr": "$BM_VLAN_SEED_IP_CIDR",
- "allocation_start": "$BM_VLAN_SEED_START",
- "allocation_end": "$BM_VLAN_SEED_END",
- "name": "public",
- "nameserver": "$SEED_NAMESERVER",
- "segmentation_id": "$BM_VLAN_SEED_TAG",
- "physical_network": "ctlplane",
- "enabled_dhcp": false
- }
-}
-EOF
- setup-neutron -n $PUBLIC_NETWORK_JSON
- rm $PUBLIC_NETWORK_JSON
-fi
-
-## #. Nova quota runs up with the defaults quota so overide the default to
-## allow unlimited cores, instances and ram.
-## ::
-
-nova quota-update --cores -1 --instances -1 --ram -1 $(openstack project show admin | awk '$2=="id" {print $4}')
-
-
-## #. Register "bare metal" nodes with nova and setup Nova baremetal flavors.
-## When using VMs Nova will PXE boot them as though they use physical
-## hardware.
-## If you want to create the VM yourself see footnote [#f2]_ for details
-## on its requirements.
-## If you want to use real baremetal see footnote [#f3]_ for details.
-## If you are building an undercloud, register only the first node.
-## ::
-
-if [ -z "${ALL_NODES:-}" ]; then #nodocs
- setup-baremetal --service-host seed --nodes <(jq '[.nodes[0]]' $TE_DATAFILE)
-else #nodocs
-
-## Otherwise, if you are skipping the undercloud, you should register all
-## the nodes.::
-
- setup-baremetal --service-host seed --nodes <(jq '.nodes' $TE_DATAFILE)
-fi #nodocs
-
-## If you need to collect the MAC address separately, see ``scripts/get-vm-mac``.
-
-## .. rubric:: Footnotes
-##
-## .. [#f1] Customize a downloaded seed image.
-##
-## If you downloaded your seed VM image, you may need to configure it.
-## Setup a network proxy, if you have one (e.g. 192.168.2.1 port 8080)
-## ::
-##
-## # Run within the image!
-## echo << EOF >> ~/.profile
-## export no_proxy=192.0.2.1
-## export http_proxy=http://192.168.2.1:8080/
-## EOF
-##
-## Add an ~/.ssh/authorized_keys file. The image rejects password authentication
-## for security, so you will need to ssh out from the VM console. Even if you
-## don't copy your authorized_keys in, you will still need to ensure that
-## /home/stack/.ssh/authorized_keys on your seed node has some kind of
-## public SSH key in it, or the openstack configuration scripts will error.
-##
-## You can log into the console using the username 'stack' password 'stack'.
-##
-## .. [#f2] Requirements for the "baremetal node" VMs
-##
-## If you don't use create-nodes, but want to create your own VMs, here are some
-## suggestions for what they should look like.
-##
-## * each VM should have 1 NIC
-## * eth0 should be on brbm
-## * record the MAC addresses for the NIC of each VM.
-## * give each VM no less than 2GB of disk, and ideally give them
-## more than NODE_DISK, which defaults to 20GB
-## * 1GB RAM is probably enough (512MB is not enough to run an all-in-one
-## OpenStack), and 768M isn't enough to do repeated deploys with.
-## * if using KVM, specify that you will install the virtual machine via PXE.
-## This will avoid KVM prompting for a disk image or installation media.
-##
-## .. [#f3] Notes when using real bare metal
-##
-## If you want to use real bare metal see the following.
-##
-## * When calling setup-baremetal you can set the MAC, IP address, user,
-## and password parameters which should all be space delemited lists
-## that correspond to the MAC addresses and power management commands
-## your real baremetal machines require. See scripts/setup-baremetal
-## for details.
-##
-## * If you see over-mtu packets getting dropped when iscsi data is copied
-## over the control plane you may need to increase the MTU on your brbm
-## interfaces. Symptoms that this might be the cause include:
-## ::
-##
-## iscsid: log shows repeated connection failed errors (and reconnects)
-## dmesg shows:
-## openvswitch: vnet1: dropped over-mtu packet: 1502 > 1500
-##
-### --end
diff --git a/scripts/devtest_setup.sh b/scripts/devtest_setup.sh
deleted file mode 100755
index 34faed2d..00000000
--- a/scripts/devtest_setup.sh
+++ /dev/null
@@ -1,353 +0,0 @@
-#!/bin/bash
-#
-# Idempotent one-time setup for devtest.
-# This can be run for CI purposes, by passing --trash-my-machine to it.
-# Without that parameter, the script will error.
-set -eux
-set -o pipefail
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options]"
- echo
- echo "Setup the TripleO devtest environment."
- echo
- echo "Options:"
- echo " --trash-my-machine -- make nontrivial destructive changes to the machine."
- echo " For details read the source."
- echo " -c -- re-use existing source/images if they exist."
- echo
- exit $1
-}
-
-CONTINUE=0
-USE_CACHE=${USE_CACHE:-0}
-
-TEMP=`getopt -o h,c -l trash-my-machine -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- --trash-my-machine) CONTINUE=1; shift 1;;
- -c) USE_CACHE=1; shift 1;;
- -h) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-if [ "0" = "$CONTINUE" ]; then
- echo "Not running - this script is destructive and requires --trash-my-machine to run." >&2
- exit 1
-fi
-
-### --include
-## devtest_setup
-## =============
-
-## Configuration
-## -------------
-
-## The seed instance expects to run with its eth0 connected to the outside world,
-## via whatever IP range you choose to setup. You can run NAT, or not, as you
-## choose. This is how we connect to it to run scripts etc - though you can
-## equally log in on its console if you like.
-
-## We use flat networking with all machines on one broadcast domain for dev-test.
-
-## The eth1 of your seed instance should be connected to your bare metal cloud
-## LAN. The seed VM uses this network to bringing up nodes, and does its own
-## DHCP etc, so do not connect it to a network
-## shared with other DHCP servers or the like. The instructions in this document
-## create a bridge device ('brbm') on your machine to emulate this with virtual
-## machine 'bare metal' nodes.
-
-
-## NOTE: We recommend using an apt/HTTP proxy and setting the http_proxy
-## environment variable accordingly in order to speed up the image build
-## times. See footnote [#f3]_ to set up Squid proxy.
-
-## NOTE: Likewise, setup a pypi mirror and use the pypi element, or use the
-## pip-cache element. (See diskimage-builder documentation for both of
-## these). Add the relevant element name to the DIB_COMMON_ELEMENTS
-## variable.
-
-## .. _devtest-environment-configuration:
-
-## Devtest test environment configuration
-## --------------------------------------
-
-## Devtest uses a JSON file to describe the test environment that OpenStack will
-## run within. The JSON file path is given by $TE_DATAFILE. The JSON file contains
-## the following keys:
-
-## #. arch: The CPU arch which Nova-BM nodes will be registered with.
-## This must be consistent when VM's are created (in devtest_testenv.sh)
-## and when disk images are created (in devtest_seed / undercloud /
-## overcloud. The images are controlled by this testenv key, and VMs
-## are created by the same code that sets this key in the test environment
-## description, so you should only need to change/set it once, when creating
-## the test environment. We use 32-bit by default for the reduced memory
-## footprint. If you are running on real hardware, or want to test with
-## 64-bit arch, replace i386 => amd64 in all the commands below. You will of
-## course need amd64 capable hardware to do this.
-
-## #. host-ip: The IP address of the host which will run the seed VM using virsh.
-
-## #. seed-ip: The IP address of the seed VM (if known). If not known, it is
-## looked up locally in the ARP table.
-
-## #. ssh-key: The private part of an SSH key to be used when performing virsh
-## commands on $host-ip.
-
-## #. ssh-user: The SSH username to use when performing virsh commands on
-## $host-ip.
-
-## #. nodes: A list of node metadata. Each node has "memory" in MiB, "cpu" in
-## threads, "arch" (one of i386/amd64/etc), "disk" in GiB, a list of MAC
-## addresses for the node, and "pm_type", "pm_user", "pm_addr", and
-## "pm_password" fields. Future iterations may add more Ironic power and
-## deploy driver selections here.
-
-## See the `os-cloud-config documentation
-## `_
-## for a sample
-
-## #. baremetal-network: A mapping of metadata describing the bare metal cloud
-## network. This is a flat network which is used to bring up nodes via
-## DHCP and transfer images. By default the rfc5735 TEST-NET-1 range -
-## 192.0.2.0/24 is used. The following fields are available (along
-## with the default values for each field):
-## ::
-
-## {
-## "cidr": "192.0.2.0/24",
-## "gateway-ip": "192.0.2.1",
-## "seed": {
-## "ip": "192.0.2.1",
-## "range-start": "192.0.2.2",
-## "range-end": "192.0.2.20",
-## "physical_bridge_route": (null),
-## "public_vlan": (null)
-## },
-## "undercloud": {
-## "range-start": "192.0.2.21",
-## "range-end": "192.0.2.40",
-## "public_vlan": (null)
-## }
-## }
-
-## The physical_bridge_route and public_vlan keys default to absent, which
-## is suitable for a flat networking environment. When exterior access will
-## be on a vlan they should be filled out. For instance, if TEST-NET-2 were
-## our exterior subnet on VLAN 10, we might have the following as our
-## baremetal network, to use a baremetal router on .1, the seed on .2, and a
-## handful of addresses for both the seed and the undercloud dhcp pools. We
-## would also expect a route to the IPMI network to allow control of machines.
-## The gateway IP and physical_bridge_route if specified are also put into the
-## initial network definitions created by the _seed script, and so are
-## accessible via DHCP to the undercloud instances (and likewise overcloud).
-## ::
-
-## {
-## "cidr": "192.0.2.0/25",
-## "gateway-ip": "198.51.100.1",
-## "seed": {
-## "ip": "192.0.2.1",
-## "range-start": "192.0.2.2",
-## "range-end": "192.0.2.20",
-## "physical_bridge_route": {
-## "prefix": "192.0.2.0/24",
-## "via": "192.0.2.126"
-## },
-## "public_vlan": {
-## "tag": 10,
-## "ip": "198.51.100.2/24",
-## "start": "198.51.100.3",
-## "finish": "198.51.100.10"
-## }
-## },
-## "undercloud": {
-## "range-start": "192.0.2.21",
-## "range-end": "192.0.2.40",
-## "public_vlan": {
-## "start": "198.51.100.11",
-## "finish": "198.51.100.20"
-## }
-## }
-## }
-
-## #. power_manager: The class path for a Nova Baremetal power manager.
-## Note that this is specific to operating with Nova Baremetal and is ignored
-## for use with Ironic. However, since this describes the test environment,
-## not the code under test, it should always be present while we support
-## using Nova Baremetal.
-
-## #. seed-route-dev: What device to route traffic for the initial undercloud
-## network. As our test network is unrouteable we require an explicit device
-## to avoid accidentally routing it onto live networks. Defaults to virbr0.
-
-## #. remote-operations: Whether to operate on the local machine only, or
-## perform remote operations when starting VMs and copying disk images.
-## A non-empty string means true, the default is '', which means false.
-
-## #. remote-host: If the test environment is on a remote host, this may be
-## set to the host name of the remote host. It is intended to help
-## provide valuable debug information about where devtest is hosted.
-
-## #. env-num: An opaque key used by the test environment hosts for identifying
-## which environment seed images are being copied into.
-
-## #. undercloud: an object with metadata for connecting to the undercloud in
-## the environment.
-
-## #. undercloud.password: The password for the currently deployed undercloud.
-
-## #. undercloud.endpoint: The Keystone endpoint URL for the undercloud.
-
-## #. undercloud.endpointhost: The host of the endpoint - used for noproxy settings.
-
-## #. overcloud: an object with metadata for connecting to the overcloud in
-## the environment.
-
-## #. overcloud.password: The admin password for the currently deployed overcloud.
-
-## #. overcloud.endpoint: The Keystone endpoint URL for the overcloud.
-
-## #. overcloud.endpointhost: The host of the endpoint - used for noproxy settings.
-
-## XXX: We're currently migrating to that structure - some code still uses
-## environment variables instead.
-
-## Detailed instructions
-## ---------------------
-
-## **(Note: all of the following commands should be run on your host machine, not inside the seed VM)**
-
-## #. Before you start, check to see that your machine supports hardware
-## virtualization, otherwise performance of the test environment will be poor.
-## We are currently bringing up an LXC based alternative testing story, which
-## will mitigate this, though the deployed instances will still be full virtual
-## machines and so performance will be significantly less there without
-## hardware virtualization.
-
-## #. As you step through the instructions several environment
-## variables are set in your shell. These variables will be lost if
-## you exit out of your shell. After setting variables, use
-## scripts/write-tripleorc to write out the variables to a file that
-## can be sourced later to restore the environment.
-
-## #. Also check ssh server is running on the host machine and port 22 is open for
-## connections from virbr0 - VirtPowerManager will boot VMs by sshing into the
-## host machine and issuing libvirt/virsh commands. The user these instructions
-## use is your own, but you can also setup a dedicated user if you choose.
-
-### --end
-if [ "$USE_CACHE" == "0" ] ; then
- if [ -z "${ZUUL_REF:-''}" ]; then
- cd $TRIPLEO_ROOT/tripleo-incubator ; git pull
- fi
-fi
-
-if [ "$NODE_DIST" == 'unsupported' ]; then
- echo 'Unsupported OS distro.'
- exit 1
-fi
-### --include
-
-## #. Install required system packages
-## ::
-
-if [ "$USE_CACHE" = "0" ] ; then #nodocs
- install-dependencies
-fi #nodocs
-
-## #. Clone/update the other needed tools which are not available as packages.
-## The DIB_REPOLOCATION_* and DIB_REPOREF_* environment variables will be used,
-## if set, to select the diskimage_builder, tripleo_image_elements and
-## tripleo_heat_templates to check out. Setting TRIPLEO_ADDITIONAL_PULL_TOOLS
-## to full git URLs will also allow you to add extra repositories to be cloned
-## or updated by the pull-tools script.
-## ::
-
-if [ "$USE_CACHE" = "0" ] ; then #nodocs
- pull-tools
-fi #nodocs
-
-## #. Install client tools
-## ::
-
-if [ "$USE_CACHE" = "0" ] ; then #nodocs
- setup-clienttools
-fi #nodocs
-
-## #. Ensure current user can manage libvirt resources
-## ::
-
-set-usergroup-membership
-
-## .. rubric:: Footnotes
-## .. [#f3] Setting Up Squid Proxy
-##
-## * Install squid proxy
-## ::
-##
-## apt-get install squid
-##
-## * Set `/etc/squid3/squid.conf` to the following
-## ::
-##
-## acl localhost src 127.0.0.1/32 ::1
-## acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
-## acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
-## acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
-## acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
-## acl SSL_ports port 443
-## acl Safe_ports port 80 # http
-## acl Safe_ports port 21 # ftp
-## acl Safe_ports port 443 # https
-## acl Safe_ports port 70 # gopher
-## acl Safe_ports port 210 # wais
-## acl Safe_ports port 1025-65535 # unregistered ports
-## acl Safe_ports port 280 # http-mgmt
-## acl Safe_ports port 488 # gss-http
-## acl Safe_ports port 591 # filemaker
-## acl Safe_ports port 777 # multiling http
-## acl CONNECT method CONNECT
-## http_access allow manager localhost
-## http_access deny manager
-## http_access deny !Safe_ports
-## http_access deny CONNECT !SSL_ports
-## http_access allow localnet
-## http_access allow localhost
-## http_access deny all
-## http_port 3128
-## maximum_object_size 1024 MB
-## cache_dir aufs /var/spool/squid3 5000 24 256
-## coredump_dir /var/spool/squid3
-## refresh_pattern ^ftp: 1440 20% 10080
-## refresh_pattern ^gopher: 1440 0% 1440
-## refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
-## refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
-## refresh_pattern . 0 20% 4320
-## refresh_all_ims on
-##
-## * Restart squid
-## ::
-##
-## sudo service squid3 restart
-##
-## * Set http_proxy environment variable
-## ::
-##
-## http_proxy=http://your_ip_or_localhost:3128/
-##
-##
-### --end
diff --git a/scripts/devtest_testenv.sh b/scripts/devtest_testenv.sh
deleted file mode 100755
index 7ebbfb82..00000000
--- a/scripts/devtest_testenv.sh
+++ /dev/null
@@ -1,288 +0,0 @@
-#!/bin/bash
-#
-# Test environment creation for devtest.
-# This creates the bridge and VM's
-
-set -eu
-set -o pipefail
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] {JSON-filename}"
- echo
- echo "Setup a TripleO devtest environment."
- echo
- echo "Options:"
- echo " -b -- Name of an already existing OVS bridge to use for "
- echo " the public interface of the seed."
-
- echo " -h -- This help."
- echo " -n -- Test environment number to add the seed to."
- echo " -s -- SSH private key path to inject into the JSON."
- echo " If not supplied, defaults to ~/.ssh/id_rsa_virt_power"
- echo " --nodes NODEFILE -- You are supplying your own list of hardware."
- echo " A sample nodes definition can be found in the os-cloud-config"
- echo " usage documentation."
- echo
- echo " --bm-networks NETFILE -- You are supplying your own network layout."
- echo " The schema for baremetal-network can be found in"
- echo " the devtest_setup documentation."
- echo " --baremetal-bridge-names BRIDGE_NAMES -- Name(s) of baremetal bridges"
- echo " to create and attach to each VM."
- echo " This should be a space delimited string"
- echo " that contains 'brbm' as the first"
- echo " entry so that it seed's ctlplane"
- echo " network (also attached to brbm)"
- echo " can provision instances."
- echo " --keep-vms -- Prevent cleanup of virsh instances for"
- echo " undercloud and overcloud"
- echo "JSON-filename -- the path to write the environment description to."
- echo
- echo "Note: This adds a unique key to your authorised_keys file to permit "
- echo "virtual-power-managment calls to be made."
- echo
- exit $1
-}
-
-NODES_PATH=
-NETS_PATH=
-NUM=
-OVSBRIDGE=
-BRIDGE_NAMES=brbm
-SSH_KEY=~/.ssh/id_rsa_virt_power
-KEEP_VMS=
-
-TEMP=$(getopt -o h,n:,b:,s: -l nodes:,bm-networks:,baremetal-bridge-names:,keep-vms -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- --nodes) NODES_PATH="$2"; shift 2;;
- --bm-networks) NETS_PATH="$2"; shift 2;;
- --keep-vms) KEEP_VMS=1; shift;;
- --baremetal-bridge-names) BRIDGE_NAMES="$2" ; shift 2 ;;
- -b) OVSBRIDGE="$2" ; shift 2 ;;
- -h) show_options 0;;
- -n) NUM="$2" ; shift 2 ;;
- -s) SSH_KEY="$2" ; shift 2 ;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-### --include
-## devtest_testenv
-## ===============
-
-#XXX: When updating, sync with the call in devtest.sh #nodocs
-
-## .. note::
-
-## This script is usually called from ``devtest.sh`` as
-## ``devtest_testenv.sh $TE_DATAFILE`` so we should declare
-## a JSONFILE variable (which equals to the first positional
-## argument) explicitly.
-## ::
-
-## JSONFILE=${JSONFILE:-$TE_DATAFILE}
-
-### --end
-JSONFILE=${1:-''}
-EXTRA_ARGS=${2:-''}
-
-if [ -z "$JSONFILE" -o -n "$EXTRA_ARGS" ]; then
- show_options 1
-fi
-
-### --include
-
-## #. Set HW resources for VMs used as 'baremetal' nodes. NODE_CPU is cpu count,
-## NODE_MEM is memory (MB), NODE_DISK is disk size (GB), NODE_ARCH is
-## architecture (i386, amd64). NODE_ARCH is used also for the seed VM.
-## A note on memory sizing: TripleO images in raw form are currently
-## ~2.7Gb, which means that a tight node will end up with a thrashing page
-## cache during glance -> local + local -> raw operations. This significantly
-## impairs performance. Of the four minimum VMs for TripleO simulation, two
-## are nova baremetal nodes (seed and undercloud) and these need to be 3G or
-## larger. The hypervisor host in the overcloud also needs to be a decent size
-## or it cannot host more than one VM. The NODE_DISK is set to support
-## building 5 overcloud nodes when not using Ironic. If you are building a
-## larger overcloud than this without using Ironic you may need to increase
-## NODE_DISK.
-
-## NODE_CNT specifies how many VMs to define using virsh. NODE_CNT
-## defaults to 15, or 0 if NODES_PATH is provided.
-
-### --end
-## This number is intentionally higher than required as the
-## definitions are cheap (until the VM is activated the only cost
-## is a small amount of disk space) but growing this number in our
-## CI environment is expensive.
-### --include
-
-## 32bit VMs
-## ::
-
-## NODE_CPU=1 NODE_MEM=3072 NODE_DISK=40 NODE_ARCH=i386
-
-
-### --end
-
-if [ -n "$NODES_PATH" ]; then
- NODE_CNT=${NODE_CNT:-0}
-else
- NODE_CNT=${NODE_CNT:-15}
-fi
-
-NODE_CPU=${NODE_CPU:-1} NODE_MEM=${NODE_MEM:-3072} NODE_DISK=${NODE_DISK:-40} NODE_ARCH=${NODE_ARCH:-i386}
-
-
-
-### --include
-## For 64bit it is better to create VMs with more memory and storage because of
-## increased memory footprint (we suggest 4GB)::
-
-## NODE_CPU=1 NODE_MEM=4096 NODE_DISK=40 NODE_ARCH=amd64
-
-
-## #. Configure a network for your test environment.
-## This configures an openvswitch bridge and teaches libvirt about it.
-## ::
-
-setup-network -n "$NUM" -b "$BRIDGE_NAMES"
-
-## #. Configure a seed VM. This VM has a disk image manually configured by
-## later scripts, and hosts the statically configured seed which is used
-## to bootstrap a full dynamically configured baremetal cloud. The seed VM
-## specs can be configured with the environment variables SEED_CPU and
-## SEED_MEM (MB). It defaults to the NODE_CPU and NODE_MEM values, since
-## the seed is equivalent to an undercloud in resource requirements.
-## ::
-
-NUMBERED_BRIDGE_NAMES=
-SEED_ARGS="-a $NODE_ARCH"
-if [ -n "$NUM" ]; then
- SEED_ARGS="$SEED_ARGS -o seed_${NUM}"
-fi
-if [ -n "$OVSBRIDGE" ]; then
- SEED_ARGS="$SEED_ARGS -p $OVSBRIDGE"
-fi
-for NAME in $BRIDGE_NAMES; do
- NUMBERED_BRIDGE_NAMES="$NUMBERED_BRIDGE_NAMES$NAME${NUM} "
-done
-# remove the last space
-NUMBERED_BRIDGE_NAMES=${NUMBERED_BRIDGE_NAMES% }
-
-SEED_CPU=${SEED_CPU:-${NODE_CPU}}
-SEED_MEM=${SEED_MEM:-${NODE_MEM}}
-
-## #. Clean up any prior environment. Unless the --keep-vms argument is
-## passed to the script, VMs for the undercloud and overcloud are
-## destroyed
-## ::
-
-if [ -z "$KEEP_VMS" ]; then
- if [ -n "$NUM" ]; then
- cleanup-env -n $NUM -b "$BRIDGE_NAMES"
- else
- cleanup-env -b "$BRIDGE_NAMES"
- fi
-fi
-
-#Now start creating the new environment
-setup-seed-vm $SEED_ARGS -c ${SEED_CPU} -m $((1024 * ${SEED_MEM}))
-
-## #. What user will be used to ssh to run virt commands to control our
-## emulated baremetal machines.
-## ::
-
-SSH_USER=$(whoami)
-
-## #. What IP address to ssh to for virsh operations.
-## ::
-
-HOSTIP=${HOSTIP:-192.168.122.1}
-
-## #. If a static SEEDIP is in use, define it here. If not defined it will be
-## looked up in the ARP table by the seed MAC address during seed deployment.
-## ::
-
-if [ -n "$NETS_PATH" ]; then
- # if the value is not set try the default 192.0.2.1.
- SEEDIP=$(jq '.["seed"]["ip"] // "192.0.2.1"' -r $NETS_PATH)
-else
- SEEDIP=${SEEDIP:-''}
-fi
-
-
-## #. Set the default bare metal power manager. By default devtest uses
-## nova.virt.baremetal.virtual_power_driver.VirtualPowerManager to
-## support a fully virtualized TripleO test environment. You may
-## optionally customize this setting if you are using real baremetal
-## hardware with the devtest scripts. This setting controls the
-## power manager used in both the seed VM and undercloud for Nova Baremetal.
-## ::
-
-POWER_MANAGER=${POWER_MANAGER:-'nova.virt.baremetal.virtual_power_driver.VirtualPowerManager'}
-
-## #. Ensure we can ssh into the host machine to turn VMs on and off.
-## The private key we create will be embedded in the seed VM, and delivered
-## dynamically by heat to the undercloud VM.
-## ::
-
-# generate ssh authentication keys if they don't exist
-if [ ! -f $SSH_KEY ]; then
- ssh-keygen -t rsa -N "" -C virtual-power-key -f $SSH_KEY
-fi
-
-# make the local id_rsa_virt_power.pub be in ``.ssh/authorized_keys`` before
-# that is copied into images via ``local-config``
-if ! grep -qF "$(cat ${SSH_KEY}.pub)" ~/.ssh/authorized_keys; then
- cat ${SSH_KEY}.pub >> ~/.ssh/authorized_keys
- chmod 0600 ~/.ssh/authorized_keys
-fi
-
-## #. Wrap this all up into JSON.
-## ::
-
-jq "." < $JSONFILE
-{
- "arch":"$NODE_ARCH",
- "host-ip":"$HOSTIP",
- "power_manager":"$POWER_MANAGER",
- "seed-ip":"$SEEDIP",
- "ssh-key":"$(cat $SSH_KEY|sed 's,$,\\n,'|tr -d '\n')",
- "ssh-user":"$SSH_USER"
-}
-EOF
-
-## #. If you have an existing bare metal cloud network to use, use it. See
-## `baremetal-network` section in :ref:`devtest-environment-configuration`
-## for more details
-## ::
-
-devtest_update_network.sh ${NETS_PATH:+--bm-networks $NETS_PATH} $JSONFILE
-
-## #. If you have an existing set of nodes to use, use them.
-## ::
-
-if [ -n "$NODES_PATH" ]; then
- JSON=$(jq -s '.[0].nodes=.[1] | .[0]' $JSONFILE $NODES_PATH)
- echo "${JSON}" > $JSONFILE
-else
-
-## #. Create baremetal nodes for the test cluster. If the required number of
-## VMs changes in future, you can run cleanup-env and then recreate with
-## more nodes.
-## ::
-
-create-nodes $NODE_CPU $NODE_MEM $NODE_DISK $NODE_ARCH $NODE_CNT $SSH_USER $HOSTIP $JSONFILE "$NUMBERED_BRIDGE_NAMES"
-### --end
-fi
diff --git a/scripts/devtest_undercloud.sh b/scripts/devtest_undercloud.sh
deleted file mode 100755
index 3ae63cd6..00000000
--- a/scripts/devtest_undercloud.sh
+++ /dev/null
@@ -1,448 +0,0 @@
-#!/bin/bash
-
-set -eu
-set -o pipefail
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-BUILD_ONLY=
-DEBUG_LOGGING=
-HEAT_ENV=
-FLAVOR="baremetal"
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options]"
- echo
- echo "Deploys a baremetal cloud via heat."
- echo
- echo "Options:"
- echo " -h -- this help"
- echo " -c -- re-use existing source/images if they exist."
- echo " --build-only -- build the needed images but don't deploy them."
- echo " --debug-logging -- Turn on debug logging in the undercloud. Sets"
- echo " both OS_DEBUG_LOGGING and the heat Debug parameter."
- echo " --heat-env -- path to a JSON heat environment file."
- echo " Defaults to \$TRIPLEO_ROOT/undercloud-env.json."
- echo " --flavor -- flavor to use for the undercloud. Defaults"
- echo " to 'baremetal'."
- echo
- exit $1
-}
-
-TEMP=$(getopt -o c,h -l build-only,debug-logging,heat-env:,flavor:,help -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -c) USE_CACHE=1; shift 1;;
- --build-only) BUILD_ONLY="1"; shift 1;;
- --debug-logging)
- DEBUG_LOGGING="1"
- export OS_DEBUG_LOGGING="1"
- shift 1
- ;;
- --heat-env) HEAT_ENV="$2"; shift 2;;
- --flavor) FLAVOR="$2"; shift 2;;
- -h | --help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-set -x
-USE_CACHE=${USE_CACHE:-0}
-TE_DATAFILE=${1:?"A test environment description is required as \$1."}
-UNDERCLOUD_DIB_EXTRA_ARGS=${UNDERCLOUD_DIB_EXTRA_ARGS:-'rabbitmq-server'}
-
-if [ "${USE_MARIADB:-}" = 1 ] ; then
- UNDERCLOUD_DIB_EXTRA_ARGS="$UNDERCLOUD_DIB_EXTRA_ARGS mariadb-rpm"
-fi
-
-### --include
-## devtest_undercloud
-## ==================
-
-## #. Add extra elements for Undercloud UI
-## ::
-
-if [ "$USE_UNDERCLOUD_UI" -ne 0 ] ; then
- UNDERCLOUD_DIB_EXTRA_ARGS="$UNDERCLOUD_DIB_EXTRA_ARGS ceilometer-collector \
- ceilometer-api ceilometer-agent-central ceilometer-agent-notification \
- ceilometer-undercloud-config horizon nova-ironic"
-fi
-
-## #. Specifiy a client-side timeout in minutes for creating or updating the
-## undercloud Heat stack.
-## ::
-
-UNDERCLOUD_STACK_TIMEOUT=${UNDERCLOUD_STACK_TIMEOUT:-60}
-
-## #. Create your undercloud image. This is the image that the seed nova
-## will deploy to become the baremetal undercloud. $UNDERCLOUD_DIB_EXTRA_ARGS is
-## meant to be used to pass additional arguments to disk-image-create.
-## ::
-
-NODE_ARCH=$(os-apply-config -m $TE_DATAFILE --key arch --type raw)
-if [ ! -e $TRIPLEO_ROOT/undercloud.qcow2 -o "$USE_CACHE" == "0" ] ; then #nodocs
- $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \
- -a $NODE_ARCH -o $TRIPLEO_ROOT/undercloud \
- ntp baremetal boot-stack os-collect-config dhcp-all-interfaces \
- neutron-dhcp-agent $DIB_COMMON_ELEMENTS $UNDERCLOUD_DIB_EXTRA_ARGS 2>&1 | \
- tee $TRIPLEO_ROOT/dib-undercloud.log
-### --end
-fi
-if [ -n "$BUILD_ONLY" ]; then
- exit 0
-fi
-### --include
-
-## #. If you wanted to build the image and run it elsewhere, you can stop at
-## this point and head onto the overcloud image building.
-
-## #. Load the undercloud image into Glance:
-## ::
-
-UNDERCLOUD_ID=$(load-image -d $TRIPLEO_ROOT/undercloud.qcow2)
-
-
-## #. Set the public interface of the undercloud network node:
-## ::
-
-NeutronPublicInterface=${NeutronPublicInterface:-'nic1'}
-
-## #. Set the NTP server for the undercloud::
-## ::
-
-UNDERCLOUD_NTP_SERVER=${UNDERCLOUD_NTP_SERVER:-''}
-
-## #. Create secrets for the cloud. The secrets will be written to a file
-## ($TRIPLEO_ROOT/tripleo-undercloud-passwords by default)
-## that you need to source into your shell environment.
-##
-## .. note::
-##
-## You can also make or change these later and
-## update the heat stack definition to inject them - as long as you also
-## update the keystone recorded password.
-##
-## .. note::
-##
-## There will be a window between updating keystone and
-## instances where they will disagree and service will be down. Instead
-## consider adding a new service account and changing everything across
-## to it, then deleting the old account after the cluster is updated.
-##
-## ::
-
-### --end
-
-# NOTE(tchaypo): We used to write these passwords in $CWD; so check to see if the
-# file exists there first. As well as providing backwards compatibility, this
-# allows for people to run multiple test environments on the same machine - just
-# make sure to have a different directory for running the scripts for each
-# different environment you wish to use.
-#
-if [ -e tripleo-undercloud-passwords ]; then
- echo "Re-using existing passwords in $PWD/tripleo-undercloud-passwords"
- # Add any new passwords since the file was generated
- setup-undercloud-passwords tripleo-undercloud-passwords
- source tripleo-undercloud-passwords
-else
-### --include
- setup-undercloud-passwords $TRIPLEO_ROOT/tripleo-undercloud-passwords
- source $TRIPLEO_ROOT/tripleo-undercloud-passwords
-fi #nodocs
-
-## #. Export UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD to your environment
-## so it can be applied to the SNMPd of all Overcloud nodes.
-
-NEW_JSON=$(jq '.undercloud.ceilometer_snmpd_password="'${UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD}'"' $TE_DATAFILE)
-echo $NEW_JSON > $TE_DATAFILE
-
-## #. Pull out needed variables from the test environment definition.
-## ::
-
-POWER_MANAGER=$(os-apply-config -m $TE_DATAFILE --key power_manager --type raw)
-POWER_KEY=$(os-apply-config -m $TE_DATAFILE --key ssh-key --type raw)
-POWER_HOST=$(os-apply-config -m $TE_DATAFILE --key host-ip --type raw)
-POWER_USER=$(os-apply-config -m $TE_DATAFILE --key ssh-user --type raw)
-
-## #. Wait for the BM cloud to register BM nodes with the scheduler::
-
-wait_for -w 60 --delay 1 -- wait_for_hypervisor_stats
-
-
-## #. We need an environment file to store the parameters we're going to give
-## heat.::
-
-HEAT_ENV=${HEAT_ENV:-"${TRIPLEO_ROOT}/undercloud-env.json"}
-
-## #. Read the heat env in for updating.::
-
-if [ -e "${HEAT_ENV}" ]; then
-### --end
- if [ "$(stat -c %a ${HEAT_ENV})" != "600" ]; then
- echo "Error: Heat environment cache \"${HEAT_ENV}\" not set to permissions of 0600."
-# We should exit 1 so all the users from before the permissions
-# requirement dont have their HEAT_ENV files ignored in a nearly silent way
- exit 1
- fi
-### --include
- ENV_JSON=$(cat "${HEAT_ENV}")
-else
- ENV_JSON='{"parameters":{}}'
-fi
-
-## #. Detect if we are deploying with a VLAN for API endpoints / floating IPs.
-## This is done by looking for a 'public' network in Neutron, and if found
-## we pull out the VLAN id and pass that into Heat, as well as using a VLAN
-## enabled Heat template.
-## ::
-
-if (neutron net-list | grep -q public); then
- VLAN_ID=$(neutron net-show public | awk '/provider:segmentation_id/ { print $4 }')
-else
- VLAN_ID=
-fi
-
-## #. Nova-baremetal and Ironic require different Heat templates
-## and different options.
-## ::
-
-if [ -n "$VLAN_ID" ]; then
- HEAT_UNDERCLOUD_TEMPLATE="undercloud-vm-ironic-vlan.yaml"
- ENV_JSON=$(jq .parameters.NeutronPublicInterfaceTag=\"${VLAN_ID}\" <<< $ENV_JSON)
-# This should be in the heat template, but see
-# https://bugs.launchpad.net/heat/+bug/1336656
-# note that this will break if there are more than one subnet, as if
-# more reason to fix the bug is needed :).
-PUBLIC_SUBNET_ID=$(neutron net-show public | awk '/subnets/ { print $4 }')
-VLAN_GW=$(neutron subnet-show $PUBLIC_SUBNET_ID | awk '/gateway_ip/ { print $4}')
-BM_VLAN_CIDR=$(neutron subnet-show $PUBLIC_SUBNET_ID | awk '/cidr/ { print $4}')
- ENV_JSON=$(jq .parameters.NeutronPublicInterfaceDefaultRoute=\"${VLAN_GW}\" <<< $ENV_JSON)
-else
- HEAT_UNDERCLOUD_TEMPLATE="undercloud-vm-ironic.yaml"
-fi
-ENV_JSON=$(jq .parameters.IronicPassword=\"${UNDERCLOUD_IRONIC_PASSWORD}\" <<< $ENV_JSON)
-REGISTER_SERVICE_OPTS="--ironic-password $UNDERCLOUD_IRONIC_PASSWORD"
-
-STACKNAME_UNDERCLOUD=${STACKNAME_UNDERCLOUD:-'undercloud'}
-
-## #. Choose whether to deploy or update. Use stack-update to update::
-## HEAT_OP=stack-create
-## ::
-
-if heat stack-show $STACKNAME_UNDERCLOUD > /dev/null; then
- HEAT_OP=stack-update
- if (heat stack-show $STACKNAME_UNDERCLOUD | grep -q FAILED); then
- echo "Updating a failed stack. this is a new ability and may cause problems." >&2
- fi
-else
- HEAT_OP=stack-create
-fi
-
-## #. Set parameters we need to deploy a baremetal undercloud::
-
-ENV_JSON=$(jq '.parameters = {
-"MysqlInnodbBufferPoolSize": 100
-} + .parameters + {
-"AdminPassword": "'"${UNDERCLOUD_ADMIN_PASSWORD}"'",
-"AdminToken": "'"${UNDERCLOUD_ADMIN_TOKEN}"'",
-"SnmpdReadonlyUserPassword": "'"${UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD}"'",
-"GlancePassword": "'"${UNDERCLOUD_GLANCE_PASSWORD}"'",
-"HeatPassword": "'"${UNDERCLOUD_HEAT_PASSWORD}"'",
-"NovaPassword": "'"${UNDERCLOUD_NOVA_PASSWORD}"'",
-"NeutronPassword": "'"${UNDERCLOUD_NEUTRON_PASSWORD}"'",
-"NeutronPublicInterface": "'"${NeutronPublicInterface}"'",
-"undercloudImage": "'"${UNDERCLOUD_ID}"'",
-"BaremetalArch": "'"${NODE_ARCH}"'",
-"PowerSSHPrivateKey": "'"${POWER_KEY}"'",
-"NtpServer": "'"${UNDERCLOUD_NTP_SERVER}"'",
-"Flavor": "'"${FLAVOR}"'"
-}' <<< $ENV_JSON)
-
-
-### --end
-if [ "$DEBUG_LOGGING" = "1" ]; then
- ENV_JSON=$(jq '.parameters = .parameters + {
- "Debug": "True",
- }' <<< $ENV_JSON)
-fi
-### --include
-
-#Add Ceilometer to env only if USE_UNDERCLOUD_UI is specified
-
-if [ "$USE_UNDERCLOUD_UI" -ne 0 ] ; then
- ENV_JSON=$(jq '.parameters = .parameters + {
- "CeilometerPassword": "'"${UNDERCLOUD_CEILOMETER_PASSWORD}"'"
- }' <<< $ENV_JSON)
-fi
-
-## #. Save the finished environment file.::
-
-jq . > "${HEAT_ENV}" <<< $ENV_JSON
-chmod 0600 "${HEAT_ENV}"
-
-## #. Add Keystone certs/key into the environment file.::
-
-generate-keystone-pki --heatenv $HEAT_ENV
-
-## #. Deploy an undercloud.
-## ::
-
-make -C $TRIPLEO_ROOT/tripleo-heat-templates $HEAT_UNDERCLOUD_TEMPLATE
-
-heat $HEAT_OP -e $HEAT_ENV \
- -t 360 \
- -f $TRIPLEO_ROOT/tripleo-heat-templates/$HEAT_UNDERCLOUD_TEMPLATE \
- $STACKNAME_UNDERCLOUD
-
-## You can watch the console via ``virsh``/``virt-manager`` to observe the PXE
-## boot/deploy process. After the deploy is complete, it will reboot into the
-## image.
-##
-## #. Get the undercloud IP from ``nova list``
-## ::
-
-echo "Waiting for the undercloud stack to be ready" #nodocs
-# Make time out 60 mins as like the Heat stack-create default timeout.
-wait_for_stack_ready -w $(($UNDERCLOUD_STACK_TIMEOUT * 60 )) 10 undercloud
-UNDERCLOUD_CTL_IP=$(nova list | grep ctlplane | sed -e "s/.*=\\([0-9.]*\\).*/\1/")
-
-## #. If we're deploying with a public VLAN we must use it, not the control plane
-## network (which we may not even have access to) to ping and configure thing.
-## ::
-
-if [ -n "$VLAN_ID" ]; then
- UNDERCLOUD_IP=$(heat output-show undercloud PublicIP|sed 's/^"\(.*\)"$/\1/')
-else
- UNDERCLOUD_IP=$UNDERCLOUD_CTL_IP
-fi
-
-## #. We don't (yet) preserve ssh keys on rebuilds.
-## ::
-
-ssh-keygen -R $UNDERCLOUD_IP
-ssh-keygen -R $UNDERCLOUD_CTL_IP
-
-## #. Exclude the undercloud from proxies:
-## ::
-
-set +u #nodocs
-export no_proxy=$no_proxy,$UNDERCLOUD_IP
-set -u #nodocs
-
-## #. Export the undercloud endpoint and credentials to your test environment.
-## ::
-
-UNDERCLOUD_ENDPOINT="http://$UNDERCLOUD_IP:5000/v2.0"
-NEW_JSON=$(jq '.undercloud.password="'${UNDERCLOUD_ADMIN_PASSWORD}'" | .undercloud.endpoint="'${UNDERCLOUD_ENDPOINT}'" | .undercloud.endpointhost="'${UNDERCLOUD_IP}'"' $TE_DATAFILE)
-echo $NEW_JSON > $TE_DATAFILE
-
-## #. Source the undercloud configuration:
-## ::
-
-source $TRIPLEO_ROOT/tripleo-incubator/undercloudrc
-
-## #. Perform setup of your undercloud.
-## ::
-
-init-keystone -o $UNDERCLOUD_CTL_IP -t $UNDERCLOUD_ADMIN_TOKEN \
- -e admin@example.com -p $UNDERCLOUD_ADMIN_PASSWORD \
- --public $UNDERCLOUD_IP --no-pki-setup
-
-# Creating these roles to be used by tenants using swift
-openstack role create swiftoperator
-openstack role create ResellerAdmin
-
-
-# Create service endpoints and optionally include Ceilometer for UI support
-ENDPOINT_LIST="--glance-password $UNDERCLOUD_GLANCE_PASSWORD
- --heat-password $UNDERCLOUD_HEAT_PASSWORD
- --neutron-password $UNDERCLOUD_NEUTRON_PASSWORD
- --nova-password $UNDERCLOUD_NOVA_PASSWORD
- --tuskar-password $UNDERCLOUD_TUSKAR_PASSWORD"
-
-if [ "$USE_UNDERCLOUD_UI" -ne 0 ] ; then
- ENDPOINT_LIST="$ENDPOINT_LIST --ceilometer-password $UNDERCLOUD_CEILOMETER_PASSWORD"
-fi
-
-setup-endpoints $UNDERCLOUD_CTL_IP $ENDPOINT_LIST $REGISTER_SERVICE_OPTS \
- --public $UNDERCLOUD_IP
-openstack role create heat_stack_user
-
-user-config
-
-BM_NETWORK_CIDR=$(os-apply-config -m $TE_DATAFILE --key baremetal-network.cidr --type raw --key-default '192.0.2.0/24')
-if [ -n "$VLAN_ID" ]; then
- # No ctl plane gateway - public net gateway is needed.
- # XXX (lifeless) - Neutron still configures one, first position in the subnet.
- BM_NETWORK_GATEWAY=
-else
- # Use a control plane gateway.
- BM_NETWORK_GATEWAY=$(os-apply-config -m $TE_DATAFILE --key baremetal-network.gateway-ip --type raw --key-default '192.0.2.1')
-fi
-BM_NETWORK_UNDERCLOUD_RANGE_START=$(os-apply-config -m $TE_DATAFILE --key baremetal-network.undercloud.range-start --type raw --key-default '192.0.2.21')
-BM_NETWORK_UNDERCLOUD_RANGE_END=$(os-apply-config -m $TE_DATAFILE --key baremetal-network.undercloud.range-end --type raw --key-default '192.0.2.40')
-
-UNDERCLOUD_NAMESERVER=$(os-apply-config -m $TE_DATAFILE --key undercloud.nameserver --type netaddress --key-default "${UNDERCLOUD_NAMESERVER:-}")
-
-NETWORK_JSON=$(mktemp)
-jq "." < $NETWORK_JSON
-{
- "physical": {
- "gateway": "$BM_NETWORK_GATEWAY",
- "metadata_server": "$UNDERCLOUD_CTL_IP",
- "cidr": "$BM_NETWORK_CIDR",
- "allocation_start": "$BM_NETWORK_UNDERCLOUD_RANGE_START",
- "allocation_end": "$BM_NETWORK_UNDERCLOUD_RANGE_END",
- "name": "ctlplane",
- "nameserver": "$UNDERCLOUD_NAMESERVER"
- }
-}
-EOF
-setup-neutron -n $NETWORK_JSON
-rm $NETWORK_JSON
-
-if [ -n "$VLAN_ID" ]; then
- BM_VLAN_START=$(jq -r '.["baremetal-network"].undercloud.public_vlan.start' $TE_DATAFILE)
- BM_VLAN_END=$(jq -r '.["baremetal-network"].undercloud.public_vlan.finish' $TE_DATAFILE)
- PUBLIC_NETWORK_JSON=$(mktemp)
- jq "." < $PUBLIC_NETWORK_JSON
-{
- "physical": {
- "gateway": "$VLAN_GW",
- "metadata_server": "$UNDERCLOUD_CTL_IP",
- "cidr": "$BM_VLAN_CIDR",
- "allocation_start": "$BM_VLAN_START",
- "allocation_end": "$BM_VLAN_END",
- "name": "public",
- "nameserver": "$UNDERCLOUD_NAMESERVER",
- "segmentation_id": "$VLAN_ID",
- "physical_network": "ctlplane",
- "enable_dhcp": false
- }
-}
-EOF
- setup-neutron -n $PUBLIC_NETWORK_JSON
-fi
-
-## #. Nova quota runs up with the defaults quota so overide the default to
-## allow unlimited cores, instances and ram.
-## ::
-
-nova quota-update --cores -1 --instances -1 --ram -1 $(openstack project show admin | awk '$2=="id" {print $4}')
-
-## #. Register two baremetal nodes with your undercloud.
-## ::
-
-setup-baremetal --service-host undercloud --nodes <(jq '.nodes - [.nodes[0]]' $TE_DATAFILE)
-
-### --end
diff --git a/scripts/devtest_update_network.sh b/scripts/devtest_update_network.sh
deleted file mode 100755
index fb5e2264..00000000
--- a/scripts/devtest_update_network.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/bash
-
-set -eu
-set -o pipefail
-SCRIPT_NAME=$(basename $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME --bm-networks NETFILE {JSON-filename}"
- echo
- echo "Reads the baremetal-network description in NETFILE and writes it into JSON-filename"
- echo
- echo "For instance, to read the file named bm-networks.json and update testenv.json:"
- echo " ${SCRIPT_NAME} --bm-networks bm-networks.json testenv.json "
- echo
- echo "Options:"
- echo " -h -- This help."
- echo " --bm-networks NETFILE -- You are supplying your own network layout."
- echo " The schema for baremetal-network can be found in"
- echo " the devtest_setup documentation."
- echo " For backwards compatibility, this argument is optional;"
- echo " but if it's not provided this script does nothing."
- echo
- echo "JSON-filename -- the path to write the environment description to."
- echo
- exit $1
-}
-
-NETS_PATH=
-
-TEMP=$(getopt -o h -l help,bm-networks: -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- --bm-networks) NETS_PATH="$2"; shift 2;;
- -h|--help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-### --include
-## devtest_update_network
-## ======================
-
-## This script updates the baremetal networks definition in the
-## ``$TE_DATAFILE``.
-### --end
-
-JSONFILE=${1:-''}
-EXTRA_ARGS=${2:-''}
-
-if [ -z "$JSONFILE" -o -n "$EXTRA_ARGS" ]; then
- show_options 1
-fi
-
-if [ -n "$NETS_PATH" ]; then
- JSON=$(jq -s '.[0]["baremetal-network"]=.[1] | .[0]' $JSONFILE $NETS_PATH)
- echo "${JSON}" > $JSONFILE
-fi
diff --git a/scripts/devtest_variables.sh b/scripts/devtest_variables.sh
deleted file mode 100755
index e63bdbf0..00000000
--- a/scripts/devtest_variables.sh
+++ /dev/null
@@ -1,215 +0,0 @@
-#!/bin/bash
-#
-# Variable definition for devtest.
-
-### --include
-## devtest_variables
-## =================
-
-## #. The devtest scripts require access to the libvirt system URI.
-## If running against a different libvirt URI you may encounter errors.
-## Export ``LIBVIRT_DEFAULT_URI`` to prevent devtest using qemu:///system
-## Check that the default libvirt connection for your user is qemu:///system.
-## If it is not, set an environment variable to configure the connection.
-## This configuration is necessary for consistency, as later steps assume
-## qemu:///system is being used.
-## ::
-
-export LIBVIRT_DEFAULT_URI=${LIBVIRT_DEFAULT_URI:-"qemu:///system"}
-
-## #. The VMs created by devtest will use a virtio network device by
-## default. This can be overridden to use a different network driver for
-## interfaces instead, such as ``e1000`` if required.
-## ::
-
-export LIBVIRT_NIC_DRIVER=${LIBVIRT_NIC_DRIVER:-"virtio"}
-
-## #. By default the node volumes will be created in a volume pool named
-## 'default'. This variable can be used to specify a custom volume
-## pool. This is useful in scenarios where the default volume pool cannot
-## accommodate the storage requirements of the nodes.
-
-## Note that this variable only changes the volume pool for the nodes.
-## Seed image will still end up in /var/lib/libvirt/images.
-## ::
-
-export LIBVIRT_VOL_POOL=${LIBVIRT_VOL_POOL:-"default"}
-
-## #. The tripleo-incubator tools must be available at
-## ``$TRIPLEO_ROOT/tripleo-incubator``. See the :doc:`devtest` documentation
-## which describes how to set that up correctly.
-## ::
-
-export TRIPLEO_ROOT=${TRIPLEO_ROOT:-} #nodocs
-
-### --end
-## NOTE(gfidente): Keep backwards compatibility by setting TRIPLEO_ROOT
-## to ~/.cache/tripleo if the var is found empty and the dir exists.
-if [ -z "$TRIPLEO_ROOT" -a -d ~/.cache/tripleo ]; then
- echo "WARNING: Defaulting TRIPLEO_ROOT to ~/.cache/tripleo"
- echo " Other environment variables are based on \$TRIPLEO_ROOT so"
- echo " if you intend changing it, please source devtest_variables.sh"
- echo " again afterwards."
- TRIPLEO_ROOT=~/.cache/tripleo
-fi
-
-if [ -z "$TRIPLEO_ROOT" -o ! -d $TRIPLEO_ROOT/tripleo-incubator/scripts ]; then
- echo 'WARNING: Cannot find $TRIPLEO_ROOT/tripleo-incubator/scripts'
- echo ' To use devtest you must export the TRIPLEO_ROOT variable and have cloned tripleo-incubator within that directory.'
- echo ' Check http://docs.openstack.org/developer/tripleo-incubator/devtest.html#initial-checkout for instructions.'
-fi
-### --include
-if [ -n "$TRIPLEO_ROOT" ]; then
- export PATH=$TRIPLEO_ROOT/tripleo-incubator/scripts:$TRIPLEO_ROOT/dib-utils/bin:$TRIPLEO_ROOT/diskimage-builder/bin:$PATH
-fi
-
-## #. It's possible to deploy the Undercloud without a UI and its dependent elements.
-## The dependent image elements in Undercloud are Horizon, Tuskar-UI (not included
-## yet, Tuskar UI element is not finished) and Ceilometer. In Overcloud it is
-## SNMPd image element on every node.
-## ::
-
-export USE_UNDERCLOUD_UI=${USE_UNDERCLOUD_UI:-1}
-
-## #. Set a list of image elements that should be included in all image builds.
-## Note that stackuser is only for debugging support - it is not suitable for
-## a production network. This is also the place to include elements such as
-## pip-cache or pypi-openstack if you intend to use them.
-## ::
-
-export DIB_COMMON_ELEMENTS=${DIB_COMMON_ELEMENTS:-"stackuser common-venv use-ephemeral"}
-
-## #. If you have a specific Ubuntu mirror you want to use when building
-## images.
-## ::
-
-# export DIB_COMMON_ELEMENTS="${DIB_COMMON_ELEMENTS} apt-sources"
-# export DIB_APT_SOURCES=/path/to/a/sources.list to use.
-
-## #. Choose the deploy image element to be used. `deploy-kexec` will relieve you of
-## the need to wait for long hardware POST times, however it has known stability
-## issues (please see https://bugs.launchpad.net/diskimage-builder/+bug/1240933).
-## If stability is preferred over speed, use the `deploy-ironic` image
-## element.
-## ::
-
-export DEPLOY_IMAGE_ELEMENT=${DEPLOY_IMAGE_ELEMENT:-deploy-ironic}
-export DEPLOY_NAME=deploy-ramdisk-ironic
-
-## #. A messaging backend is required for the seed, undercloud, and overcloud
-## control node. It is not required for overcloud computes. The backend is
-## set through the ``*EXTRA_ARGS``.
-## rabbitmq-server is enabled by default. Another option is qpidd.
-## For overclouds we also use ``*EXTRA_ARGS`` to choose a cinder backend, set
-## to cinder-tgt by default.
-## ::
-
-export SEED_DIB_EXTRA_ARGS=${SEED_DIB_EXTRA_ARGS:-"rabbitmq-server"}
-export UNDERCLOUD_DIB_EXTRA_ARGS=${UNDERCLOUD_DIB_EXTRA_ARGS:-"rabbitmq-server"}
-export OVERCLOUD_CONTROL_DIB_EXTRA_ARGS=${OVERCLOUD_CONTROL_DIB_EXTRA_ARGS:-'rabbitmq-server cinder-tgt'}
-
-## #. The block storage nodes are deployed with the cinder-tgt backend by
-## default too. Alternatives are cinder-lio and cinder-volume-nfs. Make sure
-## to check the README files of these elements to configure them as needed.
-## ::
-
-export OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS=${OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS:-'cinder-tgt'}
-
-## #. Set distribution used for VMs (fedora, opensuse, ubuntu). If unset, this
-## will match TRIPLEO_OS_DISTRO, which is automatically gathered by devtest
-## and represent your build host distro (where the devtest code runs).
-##
-## For Fedora, set SELinux permissive mode(currently the default when using Fedora)::
-##
-## export NODE_DIST="fedora selinux-permissive"
-
-## For openSUSE, use::
-##
-## export NODE_DIST="opensuse"
-
-## For Ubuntu, use::
-##
-## export NODE_DIST="ubuntu"
-
-### --end
-source $(dirname ${BASH_SOURCE[0]:-$0})/set-os-type
-if [ -z "${NODE_DIST:-}" ]; then
- if [ "$TRIPLEO_OS_DISTRO" = "fedora" ]; then
- export NODE_DIST="fedora selinux-permissive"
- else
- export NODE_DIST=$TRIPLEO_OS_DISTRO
- fi
-fi
-### --include
-
-## #. Set the number of baremetal nodes to create in the virtual test
-## environment.
-## ::
-
-# Node definitions are cheap but redeploying testenv's is not.
-# Set NODE_CNT high enough for typical CI and Dev deployments for the
-# foreseeable future
-export NODE_CNT=${NODE_CNT:-15}
-
-## #. Set size of root partition on our disk (GB). The remaining disk space
-## will be used for the persistent ephemeral disk to store node state.
-## ::
-
-export ROOT_DISK=${ROOT_DISK:-10}
-
-## #. Set the disk bus type. The default value is 'sata'. But if the VM is going
-## to be migrated or saved to disk, then 'scsi' would be more appropriate
-## for libvirt.
-## ::
-
-export LIBVIRT_DISK_BUS_TYPE=${LIBVIRT_DISK_BUS_TYPE:-"sata"}
-
-## #. Set number of compute, control and block storage nodes for the overcloud.
-## Only a value of 1 for OVERCLOUD_CONTROLSCALE is currently supported.
-## ::
-
-export OVERCLOUD_COMPUTESCALE=${OVERCLOUD_COMPUTESCALE:-1}
-export OVERCLOUD_CONTROLSCALE=${OVERCLOUD_CONTROLSCALE:-1}
-export OVERCLOUD_BLOCKSTORAGESCALE=${OVERCLOUD_BLOCKSTORAGESCALE:-0}
-
-## #. These optional variables can be set to remove dead nodes. See the merge.py
-## help for details of use. These example lines would remove Compute1 and
-## Compute3, and Control2 and Control4.
-## ::
-
-## export OVERCLOUD_COMPUTE_BLACKLIST=1,3
-## export OVERCLOUD_CONTROL_BLACKLIST=2,4
-
-## #. You need to make the tripleo image elements accessible to diskimage-builder:
-## ::
-
-export ELEMENTS_PATH=${ELEMENTS_PATH:-"$TRIPLEO_ROOT/tripleo-image-elements/elements"}
-
-## #. Set the datafile to use to describe the 'hardware' in the devtest
-## environment. If this file already exists, you should skip running
-## devtest_testenv.sh as it writes to the file
-## ::
-
-export TE_DATAFILE=${TE_DATAFILE:-"$TRIPLEO_ROOT/testenv.json"}
-
-## #. By default Percona XtraDB Cluster is used when installing MySQL database,
-## set ``USE_MARIADB=1`` if you want use MariaDB instead, MariaDB is used by
-## default on Fedora based distributions because MariaDB packages are included
-## directly in distribution
-## ::
-
-
-if [[ $NODE_DIST =~ .*(fedora|rhel|centos).* ]] ; then
- export USE_MARIADB=${USE_MARIADB:-1}
-else
- export USE_MARIADB=0
-fi
-
-
-## #. You can choose between using the old-style merge.py script for putting
-## together or the newer way of doing it directly via Heat.
-## ::
-
-export USE_MERGEPY=${USE_MERGEPY:-0}
-
-### --end
diff --git a/scripts/extract-docs b/scripts/extract-docs
deleted file mode 100755
index d421f513..00000000
--- a/scripts/extract-docs
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options]"
- echo
- echo "Extract documentation from our demonstration scripts."
- echo
- echo "This will create devtest.rst from devtest.sh."
- echo
- echo "Options:"
- echo " -h -- Show this help screen."
- echo
- exit 0
-}
-
-TEMP=`getopt -o h -l help -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h | --help) show_options;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-EXTRA=${1:-""}
-
-for script in $(ls $SCRIPT_HOME/../scripts/devtest*.sh) ; do
- bname=${script##*/}
- noext=${bname%.sh}
- awk -f $SCRIPT_HOME/extract-docs.awk $script > $SCRIPT_HOME/../doc/source/$noext.rst
-done
diff --git a/scripts/extract-docs.awk b/scripts/extract-docs.awk
deleted file mode 100644
index b52c9810..00000000
--- a/scripts/extract-docs.awk
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-#################
-#
-# Read a shell script with embedded comments and:
-# - discard undesired portions
-# - strip leading '## ' from lines
-# - indent other non-empty lines by 8 spaces
-# - output the result to a nominated file
-# This allows a script to have copious documentation but also be presented as a
-# markdown / ReST file.
-#
-
-/^### --include/ {
- for (;;) {
- if ((getline line) <= 0)
- unexpected_eof()
- if (line ~ /^### --end/)
- break
- if (match(line, ".* #nodocs$"))
- continue
- if (substr(line, 0, 3) == "## ") {
- line = substr(line, 4)
- } else if (line != "") {
- line = " "line
- }
- print line > "/dev/stdout"
- }
-}
-
-
-function unexpected_eof() {
- printf("%s:%d: unexpected EOF or error\n", FILENAME, FNR) > "/dev/stderr"
- exit 1
-}
-
-
-END {
- if (curfile)
- close(curfile)
-}
-
-# vim:sw=4:sts=4:expandtab:textwidth=79
diff --git a/scripts/get-vm-mac b/scripts/get-vm-mac
deleted file mode 100755
index fafd92ef..00000000
--- a/scripts/get-vm-mac
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-set -eu
-
-PATH=$PATH:/usr/sbin:/sbin
-
-if [ "$#" -lt 1 ]; then
- echo "Usage: $(basename $0) "
- exit 1
-fi
-
-VMNAME="$1"
-
-vms=$(sudo virsh list --all | grep "$VMNAME" | awk '{ print $2 }')
-
-macs=""
-for vm in $vms ; do
- macs="$(sudo virsh dumpxml $vm | grep "mac address" | head -1 | awk -F "'" '{ print $2 }') $macs"
-done
-
-echo $macs
diff --git a/scripts/install-dependencies b/scripts/install-dependencies
deleted file mode 100755
index a6231de8..00000000
--- a/scripts/install-dependencies
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/bash
-set -eu
-
-## This script should die: https://bugs.launchpad.net/tripleo/+bug/1195046.
-
-# generate ssh key directory if it doesn't exist
-if [ ! -d ~/.ssh ]; then
- install --mode 700 -d ~/.ssh
-fi
-
-# generate ssh authentication keys if they don't exist
-if [ ! -f ~/.ssh/id_rsa ]; then
- ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
-fi
-
-# Ensure the local id_rsa.pub is in .ssh/authorized_keys before that is copied
-# into images via local-config. We are opening up ssh access to the host with
-# a key that the user might not want, we should find another way to place the
-# key onto the image. See https://bugs.launchpad.net/tripleo/+bug/1280052 for
-# more details.
-if ! grep "$(cat ~/.ssh/id_rsa.pub)" ~/.ssh/authorized_keys >/dev/null; then
- echo "Adding public key to ~/.ssh/authorized_keys"
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
-fi
-
-# Make sure permissions are correct for ssh authorized_keys file.
-chmod 0600 ~/.ssh/authorized_keys
-
-# packages
-if [ "$TRIPLEO_OS_DISTRO" = "unsupported" ]; then
- echo This script has not been tested outside of Fedora, RHEL/CentOS, and Ubuntu variants.
- echo Make sure you have installed all the needed dependencies or subsequent steps will fail.
-fi
-
-if [ "$TRIPLEO_OS_FAMILY" = "debian" ]; then
- if $(grep -Eqs 'Ubuntu 12.04' /etc/lsb-release); then
- #adding Ubuntu Cloud Archive Repository only if not present : bug https://bugs.launchpad.net/tripleo/+bug/1212237
- #Ubuntu 12.04 has a too-old libvirt-bin but a newer one is present in the Ubuntu cloud archive.
- sudo -E apt-get update
- DEBIAN_FRONTEND=noninteractive sudo -E apt-get install --yes ubuntu-cloud-keyring
- (grep -Eqs "precise-updates/grizzly" /etc/apt/sources.list.d/cloud-archive.list) || echo 'deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main
- ' | sudo tee -a /etc/apt/sources.list.d/cloud-archive.list
- #adding precise-backports universe repository for jq package
- if ! command -v add-apt-repository; then
- DEBIAN_FRONTEND=noninteractive sudo -E apt-get install --yes python-software-properties
- fi
- sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ precise-backports universe"
- fi
- # packages
- sudo -E apt-get update
- DEBIAN_FRONTEND=noninteractive sudo -E apt-get install --yes python-lxml python-libvirt libvirt-bin qemu-utils qemu-system qemu-kvm git python-pip python-dev gcc python-virtualenv openvswitch-switch libssl-dev curl python-yaml parted lsb-release libxml2-dev libxslt1-dev jq openssh-server libffi-dev kpartx python-netaddr
-
- if [ -f /lib/systemd/system/libvirtd.service ]; then
- sudo service libvirtd restart
- else
- sudo service libvirt-bin restart
- fi
-fi
-
-if [ "$TRIPLEO_OS_FAMILY" = "redhat" ]; then
- sudo -E yum install -y python-lxml libvirt-python libvirt qemu-img qemu-kvm git python-pip openssl-devel python-devel gcc audit python-virtualenv openvswitch python-yaml net-tools redhat-lsb-core libxslt-devel jq openssh-server libffi-devel which glusterfs-api python-netaddr
-
- sudo service libvirtd restart
- sudo service openvswitch restart
- sudo chkconfig openvswitch on
-fi
-
-if [ "$TRIPLEO_OS_FAMILY" = "suse" ]; then
- # Need these in path for sudo service & usermod to work
- PATH=/sbin:/usr/sbin:$PATH
- # TODO: this is a bit fragile, and assumes openSUSE, not SLES
- suse_version=$(awk '/VERSION/ { print $3 }' /etc/SuSE-release)
- if [ ! -f /etc/zypp/repos.d/Cloud_OpenStack_Master.repo ]; then
- # Add Cloud:OpenStack:Master (Project that follows master branch with daily updates)
- sudo -E zypper -n ar -f http://download.opensuse.org/repositories/Cloud:/OpenStack:/Master/openSUSE_$suse_version/Cloud:OpenStack:Master.repo
- sudo -E zypper -n --gpg-auto-import-keys ref
- fi
- sudo -E zypper --non-interactive install \
- python-lxml libvirt-python libvirt qemu-tools kvm git python-pip libopenssl-devel \
- python-devel gcc audit python-virtualenv openvswitch-switch python-PyYAML net-tools \
- lsb-release libxslt-devel jq libffi-devel python-netaddr
- sudo service libvirtd restart
- sudo service openvswitch-switch restart
-fi
diff --git a/scripts/load-image b/scripts/load-image
deleted file mode 100755
index a4ed1bca..00000000
--- a/scripts/load-image
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -e
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-# save stdout for later then make fd 1 stderr
-exec 3>&1 >&2
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] "
- echo
- echo "Load an image into Glance for use with Nova BareMetal driver"
- echo
- echo "Options:"
- echo " -d -- delete duplicate images from glance before loading"
- echo " -h -- print this help"
- echo
- exit 0
-}
-
-function cleanup {
- rm -rf $TMP_IMAGE_DIR
-}
-
-function remove_image {
- NAME=$1
- UUIDS=$(glance image-list | awk "/$NAME/ {print \$2}")
- for UUID in $UUIDS; do
- echo "Removing image $1 ($UUID) from glance"
- glance image-delete $UUID
- done
-}
-
-function load_image {
- FILE=$(readlink -f $1)
- DIR=$(dirname ${FILE})
- GLANCE_IMAGE_NAME=$(basename ${FILE%.*})
- RAMDISK="${DIR}/${GLANCE_IMAGE_NAME}.initrd"
- KERNEL="${DIR}/${GLANCE_IMAGE_NAME}.vmlinuz"
-
- if [ ! -e "$FILE" ]; then
- echo "Error: specified file $FILE not found"
- exit 1
- fi
-
- CURRENT_CHECKSUM=$(nova image-show $GLANCE_IMAGE_NAME 2> /dev/null | awk '/ checksum / {print $4}')
- NEW_CHECKSUM=$(md5sum $FILE | awk '{print $1}')
- if [ "$CURRENT_CHECKSUM" = "$NEW_CHECKSUM" ]; then
- echo "$FILE checksum matches glance checksum, not creating duplicate image."
- nova image-show $GLANCE_IMAGE_NAME | awk '/ id / {print $4}' >&3
- return
- fi
-
- if [ ! -e "$KERNEL" -o ! -e "$RAMDISK" ] ; then
- DIGK=$(which disk-image-get-kernel || echo $DIB_PATH/bin/disk-image-get-kernel)
- if [ ! -e $DIGK ]; then
- echo "Error: unable to locate disk-image-get-kernel"
- exit 1
- fi
-
- echo "Warning: Kernel ($KERNEL) or initrd ($RAMDISK) for specified file $FILE not found."
- echo " Trying to extract them with disk-image-get-kernel now."
- echo " Please add the \"baremetal\" element to your image-build."
- export TMP_IMAGE_DIR=$(mktemp -t -d --tmpdir=${TMP_DIR:-/tmp} image.XXXXXXXX)
- [ $? -eq 0 ] || die "Failed to create tmp directory"
- trap cleanup EXIT
-
- $DIGK -d ${TMP_IMAGE_DIR} -o 'tmp' -i $FILE
- KERNEL=$TMP_IMAGE_DIR/tmp-vmlinuz
- RAMDISK=$TMP_IMAGE_DIR/tmp-initrd
- fi
-
- if [ "$REMOVE_OLD_IMAGES" ]; then
- remove_image "${GLANCE_IMAGE_NAME}-vmlinuz"
- remove_image "${GLANCE_IMAGE_NAME}-initrd"
- remove_image "${GLANCE_IMAGE_NAME}"
- fi
-
- kernel_id=$(glance image-create \
- --name "${GLANCE_IMAGE_NAME}-vmlinuz" \
- --visibility public \
- --disk-format aki \
- --container-format aki \
- --file "$KERNEL" \
- | grep ' id ' | awk '{print $4}')
- ramdisk_id=$(glance image-create \
- --name "${GLANCE_IMAGE_NAME}-initrd" \
- --visibility public \
- --disk-format ari \
- --container-format ari \
- --file "$RAMDISK" \
- | grep ' id ' | awk '{print $4}')
-
- # >&3 sends to the original stdout as this is what we are after
- glance image-create --name $GLANCE_IMAGE_NAME \
- --visibility public \
- --disk-format qcow2 \
- --container-format bare \
- --property kernel_id=$kernel_id \
- --property ramdisk_id=$ramdisk_id \
- --file $FILE | awk '/ id / { print $4 }' >&3
-
- cleanup
- trap EXIT
-}
-
-
-TEMP=`getopt -o hd -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -d) export REMOVE_OLD_IMAGES=1 ; shift ;;
- -h) show_options;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-for arg; do
- FILES="$FILES $arg";
-done
-
-if [ ! "$FILES" ]; then
- show_options
-fi
-
-which glance >/dev/null || ( echo "Error: unable to locate glance"; exit 1 )
-
-DIB_PATH=${DIB_PATH:-$SCRIPT_HOME/../../diskimage-builder}
-
-# Attempt to get the OS credentials, or die.
-[ -z "$OS_AUTH_URL" ] && [ -z "$OS_USERNAME" ] && [ -z "$OS_PASSWORD" ] && \
- ( ( [ -e ~/stackrc ] && source ~/stackrc ) \
- || ( echo "Error: OS credentials not found. Please save them to ~/stackrc." && exit 1 ) )
-
-
-# Load the images now
-for FILE in $FILES; do
- load_image $FILE
-done
diff --git a/scripts/load-images b/scripts/load-images
deleted file mode 100755
index 462172f7..00000000
--- a/scripts/load-images
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2015 Red Hat, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-
-import argparse
-import logging
-import os
-import subprocess
-import sys
-import yaml
-
-logger = logging.getLogger(__name__)
-env = os.environ.copy()
-
-
-# YAML FILE FORMAT (same format as build-images but only uses the name/type)
-# disk_images:
-# -
-# type: qcow2
-# imagename: overcloud
-# heat_parameters:
-# - controllerImage
-# - NovaImage
-def parse_opts(argv):
- parser = argparse.ArgumentParser(
- description='Load images into Glance using a YAML/JSON config file'
- ' format.')
- parser.add_argument('-c', '--config-file', metavar='CONFIG_FILE',
- help="""path to the configuration file.""",
- default='disk_images.yaml')
- parser.add_argument('-i', '--images-directory', metavar='DIRECTORY',
- help="""images directory for images. """
- """Defaults to $TRIPLEO_ROOT""",
- default=env.get('TRIPLEO_ROOT'))
- parser.add_argument('-o', '--output-heat-env', metavar='PATH',
- help="""Output path for a heat environment that
- contains Glance image IDs set to the
- respective heat input name specified in the
- config file. """)
- parser.add_argument('-r', '--remove', action='store_true',
- help="""remove duplicate image names from glance.""",
- default=False)
- parser.add_argument('-d', '--debug', dest="debug", action='store_true',
- help="Print debugging output.", required=False)
- parser.add_argument('-v', '--verbose', dest="verbose",
- action='store_true', help="Print verbose output.",
- required=False)
-
- opts = parser.parse_args(argv[1:])
-
- return opts
-
-
-def configure_logger(verbose=False, debug=False):
- LOG_FORMAT = '[%(asctime)s] [%(levelname)s] %(message)s'
- DATE_FORMAT = '%Y/%m/%d %I:%M:%S %p'
- log_level = logging.WARN
-
- if debug:
- log_level = logging.DEBUG
- elif verbose:
- log_level = logging.INFO
-
- logging.basicConfig(format=LOG_FORMAT, datefmt=DATE_FORMAT,
- level=log_level)
-
-
-def main(argv=sys.argv):
- opts = parse_opts(argv)
- configure_logger(opts.verbose, opts.debug)
- logger.info('Using config file at: %s' % opts.config_file)
-
- if os.path.exists(opts.config_file):
- with open(opts.config_file) as cf:
- disk_images = yaml.load(cf.read()).get("disk_images")
- logger.debug('disk_images JSON: %s' % str(disk_images))
- else:
- logger.error('No config file exists at: %s' % opts.config_file)
- return 1
-
- if not opts.images_directory:
- logger.error('Please specify --images-directory.')
- return 1
-
- heat_parameters = {'parameters': {}}
-
- for image in disk_images:
- img_type = image.get('type', 'qcow2')
- imagename = image.get('imagename')
- image_path = '%s/%s.%s' % (opts.images_directory, imagename, img_type)
- if os.path.exists(image_path):
- logger.info('image path: %s' % image_path)
- cmd = ['load-image']
- if opts.remove:
- cmd.append('-d')
- cmd.append(image_path)
- logger.info('Running %s' % cmd)
- retval = subprocess.call(cmd)
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.PIPE, env=env)
- stdout, stderr = proc.communicate()
- if proc.returncode != 0:
- logger.error('Failed to load image: %s' % imagename)
- return 1
- if image.get('heat_parameters'):
- for name in image.get('heat_parameters'):
- heat_parameters['parameters'][name] = stdout.strip()
-
- else:
- logger.warn('No image file exists for image name: %s' % image_path)
- continue
-
- if opts.output_heat_env:
- with open(opts.output_heat_env, 'w') as of:
- of.write(yaml.dump(heat_parameters))
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv))
diff --git a/scripts/os-adduser b/scripts/os-adduser
deleted file mode 100755
index 5be55f4e..00000000
--- a/scripts/os-adduser
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-GROUP=""
-PASSWORD=""
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] "
- echo
- echo "Create a well formed user in a cloud."
- echo "A tenant with the same name as the user is automatically created unless"
- echo "it already exists."
- echo
- echo "The admin user is added to the tenant in the admin role."
- echo
- echo "Options:"
- echo " -p, --password -- the password for the user."
- echo
- echo "For instance: $SCRIPT_NAME joe joe@example.com"
- echo "would create a tenant 'joe', a user 'joe' with email joe@example.com"
- echo "and a random password."
- exit $1
-}
-
-TEMP=`getopt -o p: -l password: -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -p | --password) export PASSWORD="$2"; shift 2 ;;
- -h) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-NAME=${1:-""}
-EMAIL=${2:-""}
-
-if [ -z "$NAME" -o -z "$EMAIL" ]; then
- show_options 1
-fi
-
-PASSWORD=${PASSWORD:-$(os-make-password)}
-
-ADMIN_ROLE=$(openstack role show admin| awk '$2=="id" {print $4}')
-if [ -z "$ADMIN_ROLE" ]; then
- echo "Could not find admin role" >&2
- exit 1
-fi
-MEMBER_ROLE=$(openstack role show _member_| awk '$2=="id" {print $4}')
-# Role _member_ is implicitly created by Keystone only while creating a new user
-# If no users were created, need to create a role explicitly
-if [ -z "$MEMBER_ROLE" ]; then
- MEMBER_ROLE=$(openstack role create _member_ | awk '$2=="id" {print $4}')
- echo "Created role _member_ with id ${MEMBER_ROLE}" >&2
-fi
-ADMIN_USER_ID=$(openstack user show admin | awk '$2=="id" {print $4}')
-if [ -z "$ADMIN_USER_ID" ]; then
- echo "Could not find admin user" >&2
- exit 1
-fi
-
-if ! openstack project show $NAME 1>/dev/null 2>&1 ; then
- USER_TENANT_ID=$(openstack project create $NAME | awk '$2=="id" {print $4}')
- if [ -z "$USER_TENANT_ID" ]; then
- echo "Failed to create tenant $NAME" >&2
- exit 1
- fi
-else
- USER_TENANT_ID=$(openstack project show $NAME 2>/dev/null| awk '$2=="id" {print $4}')
- if [ -z "$USER_TENANT_ID" ]; then
- echo "Failed to retrieve existing tenant $NAME" >&2
- exit 1
- fi
-fi
-
-USER_ID=$(openstack user show $NAME | awk '$2=="id" {print $4}')
-if [ -z "$USER_ID" ]; then
- USER_ID=$(openstack user create \
- --password "$PASSWORD" \
- --email $EMAIL $NAME | awk '$2=="id" {print $4}')
- if [ -z "$USER_ID" ]; then
- echo "Failed to create user $NAME" >&2
- exit 1
- else
- echo "Created user $NAME with password '$PASSWORD'"
- fi
-else
- echo "User $NAME with id $USER_ID already exists"
-fi
-
-if openstack role list --user $USER_ID --project $USER_TENANT_ID | grep -q "\s$MEMBER_ROLE\s"; then
- echo "Role $MEMBER_ROLE is already granted for user $USER_ID with tenant $USER_TENANT_ID"
-else
- openstack role add --user $USER_ID --project $USER_TENANT_ID $MEMBER_ROLE
-fi
-
-if openstack role list --user $ADMIN_USER_ID --project $USER_TENANT_ID | grep -q "\s$ADMIN_ROLE\s"; then
- echo "Role $ADMIN_ROLE is already granted for user $ADMIN_USER_ID with tenant $USER_TENANT_ID"
-else
- openstack role add --user $ADMIN_USER_ID --project $USER_TENANT_ID $ADMIN_ROLE
-fi
diff --git a/scripts/os-make-password b/scripts/os-make-password
deleted file mode 100755
index 8764355a..00000000
--- a/scripts/os-make-password
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-set -o pipefail
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME"
- echo
- echo "Create a random password."
- echo
- echo "This outputs a random password."
- echo
- echo "The password is made by taking a uuid and passing it though sha1sum."
- echo "We may change this in future to gain more entropy."
- echo
- exit $1
-}
-
-TEMP=`getopt -o h -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-EXTRA=${1:-""}
-
-if [ -n "$EXTRA" ]; then
- show_options 1
-fi
-
-uuidgen | sha1sum | awk '{print $1}'
diff --git a/scripts/outage-bot b/scripts/outage-bot
deleted file mode 100755
index dde1427b..00000000
--- a/scripts/outage-bot
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env bash
-#
-# Copyright 2014 Red Hat
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-# Script to spam tripleo-cd-admin on #tripleo while there is a outage of
-# the tripleo-ci cloud. Send messages to irc with irc messages from
-# https://etherpad.openstack.org/p/cloud-outage, each time the irc message
-# changes or every 30 minutes if no changes occurs.
-
-
-if [ -z "$1" ] ; then
- echo "Supply channel name"
- exit 1
-fi
-
-SCRIPTDIR=$(dirname $0)
-CURRENT=/var/tmp/outage-bot.current
-LAST=/var/tmp/outage-bot.last
-NEXTMESSAGE=0
-CHANNEL=$1
-
-touch $LAST
-
-function sendmessage {
- PEOPLE=$(cut -d , -f 1 $SCRIPTDIR/../tripleo-cloud/tripleo-cd-admins | xargs echo)
- $SCRIPTDIR/send-irc $CHANNEL CLOUDOUTAGE "$PEOPLE $(sed -e 's/^ircmessage: \?//g' $CURRENT | xargs -0 -I LINE echo -n " --" LINE)"
- NEXTMESSAGE=$(( $(date +%s) + 1800 ))
-}
-
-while true ; do
- sleep 60
- curl https://etherpad.openstack.org/p/cloud-outage/export/txt | grep "^ircmessage:" > $CURRENT
-
- if [ ! -s $CURRENT ] ; then
- continue
- fi
-
- if ! diff $CURRENT $LAST &> /dev/null ; then
- sendmessage
- fi
-
- if [ $NEXTMESSAGE -lt $(date +%s) ] ; then
- sendmessage
- fi
-
- cp $CURRENT $LAST
-done
diff --git a/scripts/overcloud_disk_images.yaml b/scripts/overcloud_disk_images.yaml
deleted file mode 100644
index b384b121..00000000
--- a/scripts/overcloud_disk_images.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-# A default disk images YAML file that will load images
-# created with devtest_overcloud_images.sh. The
-# heat_parameters sections are used to output a heat
-# environment file that maps heat parameter
-# names to the Glance image IDs from each upload.
-disk_images:
- -
- imagename: overcloud-control
- heat_parameters:
- - controllerImage
- -
- imagename: overcloud-compute
- heat_parameters:
- - NovaImage
- -
- imagename: overcloud-cinder-volume
- heat_parameters:
- - BlockStorageImage
diff --git a/scripts/overcloud_puppet_disk_images.yaml b/scripts/overcloud_puppet_disk_images.yaml
deleted file mode 100644
index 1dd9150e..00000000
--- a/scripts/overcloud_puppet_disk_images.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-# A puppet images YAML file that will build and
-# load a single puppet base image to be used for
-# all roles.
-#
-# The heat_parameter section is used to output a heat
-# environment file that maps heat parameter
-# names to the Glance image IDs.
-disk_images:
- -
- imagename: overcloud
- arch: amd64
- type: qcow2
- elements:
- - hosts baremetal dhcp-all-interfaces os-collect-config heat-config-puppet heat-config-script puppet-modules hiera overcloud-compute overcloud-controller stackuser os-net-config delorean-repo rdo-release
- heat_parameters:
- - controllerImage
- - NovaImage
- - CephStorageImage
- - BlockStorageImage
diff --git a/scripts/pull-tools b/scripts/pull-tools
deleted file mode 100755
index a6f29a91..00000000
--- a/scripts/pull-tools
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-
-# This is a cheap mr/cm-alike. Perhaps we should use mr/cm.
-
-TRIPLEO_ADDITIONAL_PULL_TOOLS=${TRIPLEO_ADDITIONAL_PULL_TOOLS:-}
-TOOLS="https://git.openstack.org/openstack/diskimage-builder
-https://git.openstack.org/openstack/dib-utils
-https://git.openstack.org/openstack/heat-templates
-https://git.openstack.org/openstack/tripleo-image-elements
-https://git.openstack.org/openstack/tripleo-puppet-elements
-https://git.openstack.org/openstack/tripleo-heat-templates
-https://git.openstack.org/openstack/tripleo-incubator
-https://git.openstack.org/openstack-infra/tripleo-ci
-https://git.openstack.org/openstack/os-cloud-config ${TRIPLEO_ADDITIONAL_PULL_TOOLS}"
-
-ZUUL_REF=${ZUUL_REF:-''}
-
-if [ -n "$ZUUL_REF" ]; then
- echo "SKIPPING pull-tools as ZUUL_REF is present."
- exit 0
-fi
-
-# Create a manifest of tools that are in use
-GIT_MANIFEST=$TRIPLEO_ROOT/dib-manifest-git-pull_tools
-rm -f $GIT_MANIFEST
-
-for TOOL in $TOOLS; do
- TOOL_BASE=$(basename $TOOL)
- echo pulling/updating $TOOL_BASE
- LOCATION_OVERRIDE=DIB_REPOLOCATION_${TOOL_BASE//[^A-Za-z0-9]/_}
- LOCATION=${!LOCATION_OVERRIDE:-$TOOL}
- REF=master
- REF_OVERRIDE=DIB_REPOREF_${TOOL_BASE//[^A-Za-z0-9]/_}
- REF=${!REF_OVERRIDE:-$REF}
- if [ ! -d $TRIPLEO_ROOT/$TOOL_BASE ] ; then
- cd $TRIPLEO_ROOT
- git clone $LOCATION
- pushd $TOOL_BASE
- git checkout $REF # for a branch or SHA1
- popd
- else
- cd $TRIPLEO_ROOT/$TOOL_BASE
- if echo "/$(git symbolic-ref -q HEAD)" | grep -q "/${REF}\$" ; then
- if ! git pull --ff-only ; then
- echo "***************************************************"
- echo "* Perhaps you want to 'git rebase origin/$REF'? *"
- echo "***************************************************"
- exit 1
- fi
- else
- echo "***************************************"
- echo "* $TOOL_BASE is not on branch $REF; skipping pull *"
- echo "***************************************"
- fi
- fi
- echo -n $TRIPLEO_ROOT/$TOOL_BASE:
- cd $TRIPLEO_ROOT/$TOOL_BASE
- git --no-pager log -1 --pretty=oneline
-
- # Write the manifest entry
- # Make a best guess at the branch to get the remote in use
- if ! branch=$(git symbolic-ref -q HEAD) ; then
- # We are on a non-symbolic reference - try the first branch containing this ref
- branch=$(git branch --contains HEAD | grep -v '(no branch)' | head -1 | tr -d ' ')
- else
- # Strip the leading refs/heads
- branch=${branch##refs/heads/}
- fi
- [[ -z "$(git config branch.${branch}.remote)" ]] ||\
- branch_remote=$(git config remote.$(git config branch.${branch}.remote).url)
- branch_remote=${branch_remote:-"unknown"}
- echo "$TOOL_BASE git $TRIPLEO_ROOT/$TOOL_BASE $branch_remote $(git rev-parse HEAD)" >> $GIT_MANIFEST
-done
diff --git a/scripts/refresh-env b/scripts/refresh-env
deleted file mode 100644
index 0b9ce82a..00000000
--- a/scripts/refresh-env
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013-2014 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-__tripleo_refresh_env() {
- export TRIPLEO_ROOT=$1
-
- export PATH=$TRIPLEO_ROOT/tripleo-incubator/scripts:$PATH
- source $(dirname $BASH_SOURCE)/set-os-type
- export NODE_DIST=${NODE_DIST:-"$TRIPLEO_OS_DISTRO"}
- pull-tools
- setup-clienttools
- export ELEMENTS_PATH=$TRIPLEO_ROOT/tripleo-image-elements/elements
-
- echo "Make sure to source your stackrc file"
-}
-
-# Setup/update your undercloud environment to run devtest_overcloud.sh
-#
-if [ -z "${1:-}" ] ; then
- echo "Usage:"
- echo "source refresh-env TRIPLEO_ROOT"
- echo "Ex:"
- echo "source refresh-env ~/tripleo"
-else
- if [ -d "$1/tripleo-incubator/scripts" ] ; then
- __tripleo_refresh_env $1
- else
- echo "TRIPLEO_ROOT must contain tripleo-incubator/scripts"
- fi
-fi
diff --git a/scripts/register-endpoint b/scripts/register-endpoint
deleted file mode 100755
index 190e2efe..00000000
--- a/scripts/register-endpoint
+++ /dev/null
@@ -1,188 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-DESCRIPTION=""
-ADMIN_URL=""
-INTERNAL_URL=""
-REGION="regionOne" # NB: This is the default keystone uses.
-DEBUG=""
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] "
- echo
- echo "Register a service and create an endpoint for it."
- echo "The script assumes that the service tenant is called 'service' and "
- echo "the admin role is called 'admin'."
- echo
- echo "Supported types are ec2, image, orchestration, identity,"
- echo "network, compute, baremetal, dashboard and metering."
- echo
- echo "Options:"
- echo " -d, --description -- the description for the service."
- echo " -a, --admin -- the admin URL prefix for this endpoint. If"
- echo " not supplied, defaults to the internal url."
- echo " -i, --internal -- the internal URL prefix for this endpoint."
- echo " If not supplied, defaults to the public url."
- echo " -r, --region -- Override the default region 'regionOne'."
- echo " --debug -- Debug API calls made."
- echo
- echo "For instance: $SCRIPT_NAME nova compute https://api.cloud.com/nova/"
- echo "would create a nova service and register"
- echo "https://api.cloud.com/nova/v2/\$(tenant_id)s for all three endpoints."
- exit 0
-}
-
-TEMP=`getopt -o d:a:i:r: -l debug,description:,admin:,internal:,region: -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -d | --description) export DESCRIPTION="$2"; shift 2 ;;
- --debug) export DEBUG="--debug"; shift 1 ;;
- -a | --admin) export ADMIN_URL="$2"; shift 2 ;;
- -i | --internal) export INTERNAL_URL="$2"; shift 2 ;;
- -r | --region) export REGION="$2"; shift 2 ;;
- -h) show_options;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-NAME=${1:-""}
-TYPE=${2:-""}
-PUBLIC_URL=${3:-""}
-EXTRA=${4:-""}
-
-if [ -z "NAME" -o -z "$TYPE" -o -z "$PUBLIC_URL" -o -n "$EXTRA" ]; then
- show_options
-fi
-
-ADMIN_SUFFIX=
-case "$TYPE" in
- ec2)
- SUFFIX="/services/Cloud"
- ADMIN_SUFFIX="/services/Admin"
- ;;
- image|baremetal|network|metering)
- SUFFIX="/"
- ;;
- orchestration|volume)
- SUFFIX="/v1/%(tenant_id)s"
- ;;
- volumev2)
- SUFFIX="/v2/%(tenant_id)s"
- ;;
- identity)
- SUFFIX="/v2.0"
- ;;
- compute)
- SUFFIX="/v2/\$(tenant_id)s"
- ;;
- computev3)
- SUFFIX="/v3"
- ;;
- object-store)
- SUFFIX="/v1/AUTH_%(tenant_id)s"
- ADMIN_SUFFIX="/v1"
- ;;
- dashboard)
- SUFFIX="/"
- ADMIN_SUFFIX="/admin"
- ;;
- management)
- SUFFIX="/v2"
- ;;
- *)
- echo "Unknown service type" >&2
- exit 1
-esac
-
-if [ -z "$ADMIN_SUFFIX" ]; then
- ADMIN_SUFFIX="$SUFFIX"
-fi
-
-if [ -n "$DESCRIPTION" ]; then
- DESCRIPTION="--description=$DESCRIPTION"
-fi
-
-if [ -z "$INTERNAL_URL" ]; then
- INTERNAL_URL="$PUBLIC_URL"
-fi
-
-if [ -z "$ADMIN_URL" ]; then
- ADMIN_URL="$INTERNAL_URL"
-fi
-
-ADMIN_ROLE=$(openstack $DEBUG role list | awk '/ admin / {print $2}')
-if [ -z "$ADMIN_ROLE" ]; then
- echo "Could not find admin role" >&2
- exit 1
-fi
-
-# Some services don't need a user
-if [ "dashboard" != "$TYPE" ]; then
- SERVICE_TENANT=$(openstack $DEBUG project list | awk '/ service / {print $2}')
- PASSWORD=${PASSWORD:-$(os-make-password)}
-
- # Some services have multiple endpoints, the user doesn't need to be recreated
- USER_ID=$(openstack $DEBUG user show $NAME | awk '$2=="id" { print $4 }')
- if [ -z "$USER_ID" ]; then
- USER_ID=$(openstack $DEBUG user create --password $PASSWORD --project $SERVICE_TENANT --email=nobody@example.com $NAME | awk ' / id / {print $4}')
- fi
- if ! openstack role list --project $SERVICE_TENANT --user $USER_ID | grep -q " $ADMIN_ROLE "; then
- echo "Creating user-role assignment for user $NAME, role admin, tenant service"
- openstack role add $DEBUG \
- --project $SERVICE_TENANT \
- --user $USER_ID \
- $ADMIN_ROLE
- fi
- #Add the admin tenant role for ceilometer user to enable polling services
- if [ "metering" == "$TYPE" ]; then
- ADMIN_TENANT=$(openstack $DEBUG project list | awk '/ admin / {print $2}')
- if ! openstack role list --project $ADMIN_TENANT --user $USER_ID | grep -q " $ADMIN_ROLE "; then
- echo "Creating user-role assignment for user $NAME, role admin, tenant admin"
- openstack role add $DEBUG \
- --project $ADMIN_TENANT \
- --user $USER_ID \
- $ADMIN_ROLE
- #swift polling requires ResellerAdmin role to be added to the Ceilometer user
- RESELLER_ADMIN_ROLE=$(openstack $DEBUG role list | awk '/ ResellerAdmin / {print $2}')
- openstack role add $DEBUG \
- --project $ADMIN_TENANT \
- --user $USER_ID \
- $RESELLER_ADMIN_ROLE
- fi
- fi
-
-fi
-SERVICE_ID=$(openstack $DEBUG service create --name $NAME "$DESCRIPTION" $TYPE | awk '/ id / {print $4}')
-openstack endpoint create $DEBUG \
- --publicurl "${PUBLIC_URL}${SUFFIX}" \
- --adminurl "${ADMIN_URL}${ADMIN_SUFFIX}" \
- --internalurl "${INTERNAL_URL}${SUFFIX}" --region "$REGION" $SERVICE_ID
-echo "Service $TYPE created"
diff --git a/scripts/select-cloud b/scripts/select-cloud
deleted file mode 100755
index bb8c9de2..00000000
--- a/scripts/select-cloud
+++ /dev/null
@@ -1,134 +0,0 @@
-#!/bin/bash
-# Copyright 2014 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-#
-# Script to make cloud selection simple
-#
-set -eu
-set -o pipefail
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(cd $(dirname $0); pwd)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME "
- echo
- echo "Options:"
- echo " -h, --help -- print this help."
- echo " --root -- Use as TRIPLEO_ROOT"
- echo
- echo "Echos the appropriate setup to interact with the requested cloud."
- echo "Choices for are:"
- echo " seed or s"
- echo " undercloud or under or u"
- echo " overcloud or over or o"
- echo
- echo "Run as follows to source the undercloud variables into the current shell:"
- echo " source <( $SCRIPT_HOME/$SCRIPT_NAME undercloud )"
- echo
- exit $1
-}
-
-TEMP=`getopt -o h -l help,root: -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h|--help) show_options 0 >&2;;
- --root) TRIPLEO_ROOT=$2 ; shift 2;;
- --) shift ; break;;
- *) echo "Error: unsupported option $1." ; exit 1;;
- esac
-done
-
-if [[ -z "${TRIPLEO_ROOT:-}" ]] ; then
- echo "Error: You must have TRIPLEO_ROOT set in the environment, or specify it with --root" >&2
- show_options 1 >&2
-fi
-
-if (( $# != 1 )); then echo "Cloud to interact with is required" >&2; show_options 1 >&2; fi
-
-set_common() {
- cat << EOF
-source_config_file() {
- filename=\$1
- if [[ -e \$filename ]] ; then
- source \$filename
- elif [[ -e \${TRIPLEO_ROOT}/\$filename ]] ; then
- source \${TRIPLEO_ROOT}/\$filename
- else
- echo "Could not find \$filename - sourcing may not work" >&2
- fi
-}
-update_tripleo_no_proxy() {
- add=\$1
- echo \$no_proxy | grep -wq \$1 || export no_proxy=\$no_proxy,\$1
-}
-EOF
- # This file may not be there, depending on if the undercloud/overcloud are started yet
- echo "[ -f ${TRIPLEO_ROOT}/tripleorc ] && source ${TRIPLEO_ROOT}/tripleorc"
- # Need to reset TRIPLEO_ROOT after sourcing tripleorc
- echo "export TRIPLEO_ROOT=$TRIPLEO_ROOT"
- echo "source ${TRIPLEO_ROOT}/tripleo-incubator/scripts/devtest_variables.sh"
-}
-
-set_seed() {
- cat << EOF
-source ${TRIPLEO_ROOT}/tripleo-incubator/seedrc
-export SEED_IP=\$(os-apply-config -m \$TE_DATAFILE --type raw --key seed-ip)
-export OS_AUTH_URL=http://\${SEED_IP}:5000/v2.0
-update_tripleo_no_proxy \${SEED_IP}
-export UNDERCLOUD_ID=\$(glance image-list | grep undercloud | grep qcow2 | awk '{print \$2}' | head -1)
-EOF
- # Don't proxy to the seeds IP on the baremetal network
- echo "update_tripleo_no_proxy \$(OS_CONFIG_FILES=\$TE_DATAFILE os-apply-config \
- --key baremetal-network.seed.ip --type raw --key-default '192.0.2.1')"
-}
-
-set_undercloud() {
- cat << EOF
-source_config_file tripleo-undercloud-passwords
-source ${TRIPLEO_ROOT}/tripleo-incubator/undercloudrc
-export UNDERCLOUD_IP=\$(os-apply-config -m \$TE_DATAFILE --type raw --key undercloud.endpointhost)
-update_tripleo_no_proxy \$UNDERCLOUD_IP
-EOF
-}
-
-set_overcloud() {
- cat << EOF
-source_config_file tripleo-overcloud-passwords
-source ${TRIPLEO_ROOT}/tripleo-incubator/overcloudrc-user
-export OVERCLOUD_IP=\$(os-apply-config -m \$TE_DATAFILE --type raw --key overcloud.endpointhost)
-update_tripleo_no_proxy \$OVERCLOUD_IP
-EOF
-}
-
-# Get the argument to show what cloud to interact with
-case "$1" in
- s|seed) cloud=seed;;
- u|under|undercloud) cloud=undercloud;;
- o|over|overcloud) cloud=overcloud;;
- *) echo "Error: unsupported cloud $1." ; exit 1 ;;
-esac
-
-# Call the appropriate functions
-set_common
-set_${cloud}
diff --git a/scripts/send-irc b/scripts/send-irc
deleted file mode 100755
index 70366a0a..00000000
--- a/scripts/send-irc
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Red Hat
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-
-SCRIPT_NAME=$(basename $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME IRC_CHANNEL IRC_USERNAME MESSAGE..."
- echo
- echo "Send a MESSAGE to a freenode channel IRC_CHANNEL from"
- echo "the user IRC_USERNAME"
- echo "Examples:"
- echo " $SCRIPT_NAME tripleo toci "WARNING : The build failed""
- exit 1
-}
-
-[ $# -lt 3 ] && show_options
-
-exec 3<>/dev/tcp/irc.freenode.net/6667
-
-IRC_CHANNEL=$1
-IRC_USERNAME=$2
-shift 2
-MESSAGE=$@
-
-echo "Nick $IRC_USERNAME" >&3
-echo "User $IRC_USERNAME -i * : hi" >&3
-sleep 2
-echo "JOIN #$IRC_CHANNEL" >&3
-echo "PRIVMSG #$IRC_CHANNEL :$@" >&3
-echo "QUIT" >&3
-
-cat <&3 > /dev/null
-
diff --git a/scripts/set-os-type b/scripts/set-os-type
deleted file mode 100755
index 305a0864..00000000
--- a/scripts/set-os-type
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-
-TRIPLEO_OS_FAMILY='unsupported' # Generic OS Family: debian, redhat, suse
-TRIPLEO_OS_DISTRO='unsupported' # Specific distro: centos, fedora, rhel,
- # opensuse, sles, ubuntu
-
-if [ -f /etc/redhat-release ]; then
- TRIPLEO_OS_FAMILY='redhat'
- if $(grep -Eqs 'Red Hat Enterprise Linux' /etc/redhat-release); then
- TRIPLEO_OS_DISTRO='rhel'
- fi
- if $(grep -Eqs 'CentOS' /etc/redhat-release); then
- TRIPLEO_OS_DISTRO='centos'
- fi
- if $(grep -Eqs 'Fedora' /etc/redhat-release); then
- TRIPLEO_OS_DISTRO='fedora'
- fi
-fi
-
-if [ -f /etc/debian_version ]; then
- TRIPLEO_OS_FAMILY='debian'
- if $(grep -Eqs 'Ubuntu' /etc/lsb-release); then
- TRIPLEO_OS_DISTRO='ubuntu'
- fi
- if $(grep -Eqs 'Debian' /etc/os-release); then
- TRIPLEO_OS_DISTRO='debian'
- fi
-fi
-
-function get_os_release {
- (
- source /etc/os-release
- echo $ID
- )
-}
-
-if [ -f /etc/os-release ]; then
- if [ "$(get_os_release)" = "opensuse" ]; then
- TRIPLEO_OS_FAMILY='suse'
- TRIPLEO_OS_DISTRO='opensuse'
- fi
- if [ "$(get_os_release)" = "sles" ]; then
- TRIPLEO_OS_FAMILY='suse'
- TRIPLEO_OS_DISTRO='sles'
- fi
-fi
-
-export TRIPLEO_OS_FAMILY
-export TRIPLEO_OS_DISTRO
diff --git a/scripts/set-pip-vars b/scripts/set-pip-vars
deleted file mode 100755
index 4309757a..00000000
--- a/scripts/set-pip-vars
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash
-# Copyright 2014 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-# Script to setup pip manifest file location environment variables from a
-# given directory tree
-
-set -eu
-set -o pipefail
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(cd $(dirname $0); pwd)
-
-function show_options {
- echo
- echo "Usage: $SCRIPT_NAME file|directory ..[file|directory]"
- echo
- echo " This script takes a list of manifest files and or directory"
- echo " trees and sets the matching DIB_PIP_MANIFEST_ environment"
- echo " variable to the full path of any matching manifest"
- echo " dib-pip-manifest* files found"
- echo
- echo " To source the export commands produced by running this script"
- echo " and set the variables for the current shell,"
- echo " you can run the script as follows:"
- echo
- echo " source <( $SCRIPT_NAME /path/to/pip-manifests )"
- echo
- echo "Options:"
- echo " -h, --help -- print this help."
- echo
- echo "Echo the appropriate environment variables to use a pip manifest"
- echo "for input into image building with the pip-manifest element."
- echo
- echo "e.g. $SCRIPT_NAME ~/myTripleo/seed-manifests"
- echo
- exit $1
-}
-
-TEMP=`getopt -o h -l help -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h|--help) show_options 0 >&2;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-if (( $# <= 0 )); then
- echo "One or more pip manifest directory or file name required" >&2;
- show_options 1 >&2
-fi
-
-for target in $*; do
- for ent in $(find ${target} -type f -name dib-pip-manifest\* ); do
- echo DIB_PIP_MANIFEST_${ent##*dib-pip-manifest-}=${ent};
- done
-done 2>/dev/null | sort -t = -k1 -u
-
-
-
diff --git a/scripts/set-source-vars b/scripts/set-source-vars
deleted file mode 100755
index d6fb2ab8..00000000
--- a/scripts/set-source-vars
+++ /dev/null
@@ -1,170 +0,0 @@
-#!/bin/bash
-# Copyright 2014 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-#
-# Script to make git repository selection simple
-set -eu
-set -o pipefail
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(cd $(dirname $0); pwd)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] local_repo [...]"
- echo " e.g. use locally cloned repositories as input:"
- echo " $SCRIPT_NAME -l /my/local/neutron /a/local/nova"
- echo " e.g. use the url of remote \"origin\" of the locally cloned repositories as input:"
- echo " $SCRIPT_NAME -r origin /my/local/neutron /a/local/nova"
- echo " e.g. use the values from a git manifest generated by disk-image-builder:"
- echo " $SCRIPT_NAME -m tripleo-git-manifest"
- echo " The above examples will set the location and reference to use."
- echo " The reference will be set to the current HEAD reference of the local repository"
- echo
- echo " To source the export commands produced by running this script and set the variables"
- echo " for the current shell you can run the script as follows:"
- echo " source <( $SCRIPT_NAME -l /path/to/repo )"
- echo
- echo "Display source-repositories element environment variables"
- echo
- echo "Options:"
- echo " -h, --help -- print this help."
- echo " -l, --local -- use the local path location of the repository"
- echo " -r , --remote -- remote of the local repo to use to get the repo url"
- echo " -m , --manifest -- git manifest file as produced by running devtest"
- echo
- echo "Echo the appropriate environment variables to use a local git repository"
- echo "for input into image building via the source-repositories element"
- echo
- echo "The \"local_repo\" argment is the path to a locally cloned git repository from which to"
- echo "take the settings. The name of the remote \"origin\" will be used to determine the name"
- echo "of the repository (nova, etc) for use in the diskimage-builder environment variables."
- echo
- echo "Using the -l flag will result in the full path to the local repository being used"
- echo "as the location to clone from for that repository in diskimage-builder"
- echo
- echo "Specifying a remote via the -r flag will result in the url associated with that remote"
- echo "in the local repository being used for the location to clone from for that repository"
- echo "in diskimage-builder"
- echo
- exit $1
-}
-
-TEMP=`getopt -o h,l,n,r:,m: -l help,local,no-echo,no_echo,remote:,manifest: -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h|--help) show_options 0 >&2;;
- -l|--local) USE_LOCAL=1; shift 1;;
- -r|--remote) USE_REMOTE=1; REMOTE=$2; shift 2;;
- -m|--manifest) USE_MANIFEST=1; MANIFEST=$2; shift 2;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-USE_LOCAL=${USE_LOCAL:-0}
-USE_REMOTE=${USE_REMOTE:-0}
-REMOTE=${REMOTE:-""}
-USE_MANIFEST=${USE_MANIFEST:-0}
-
-if [[ "$((USE_LOCAL + USE_REMOTE + USE_MANIFEST))" != "1" ]]; then
- echo "Choose to either clone the local path (-l)" >&2
- echo "OR" >&2
- echo "to use the remote (-r ) defined in the local repo to lookup the repo URL" >&2
- echo "OR" >&2
- echo "to parse repos and SHA1s from a manifest file (-m )" >&2
- show_options 1 >&2
-fi
-
-function transform_manifest {
- while read name _type _dest loc ref; do
- name_transformed=$(echo "$name" | tr '[:upper:]-' '[:lower:]_')
- echo "export DIB_REPOLOCATION_${name_transformed}=$loc"
- echo "export DIB_REPOREF_${name_transformed}=$ref"
- done
-}
-
-function use_manifest {
- for manifest in "${MANIFEST}"; do
- transform_manifest < ${manifest}
- done | sort -ut _ -k3
-}
-
-
-function get_location {
- local remote_name=${1:-""}
- if [[ -n "${remote_name}" ]] ; then
- git config --get remote.${remote_name}.url
- elif [[ "${USE_LOCAL}" == "1" ]]; then
- # Find the .git directory
- local dir="$(pwd)"
- while [[ "${dir}" != "/" ]]; do
- if [[ -d "${dir}/.git" ]]; then
- echo ${dir}
- break
- fi
- dir="$(dirname $dir})"
- done
- else
- echo -n "Internal Error: get_location called with [${remote_name}]" >&2
- echo " and USE_LOCAL is ${USE_LOCAL}" >&2
- exit 1
- fi
-}
-
-function get_ref {
- git rev-parse HEAD
-}
-
-function get_name {
- local remote_name=${1:-""}
- name=$(get_location ${remote_name})
- echo $(basename ${name##*:} .git)
-}
-
-function use_repos {
- declare -A a
- for dir in "${REPOS[@]}"; do
- if [[ ! -d ${dir} ]] ; then
- echo "Not a directory: ${dir}" >&2
- exit 1
- fi
- pushd ${dir} > /dev/null 2>&1
- REPONAME=$(get_name ${REMOTE})
- REPONAME_VAR=${REPONAME//[^a-zA-Z0-9]/_}
- a[DIB_REPOLOCATION_${REPONAME_VAR}]=$(get_location ${REMOTE})
- a[DIB_REPOREF_${REPONAME_VAR}]=$(get_ref)
- echo "export DIB_REPOLOCATION_${REPONAME_VAR}=${a[DIB_REPOLOCATION_${REPONAME_VAR}]}"
- echo "export DIB_REPOREF_${REPONAME_VAR}=${a[DIB_REPOREF_${REPONAME_VAR}]}"
- popd > /dev/null 2>&1
- done
-}
-
-
-if [[ "${USE_MANIFEST}" == "1" ]] ; then
- use_manifest
-else
- if (( $# <= 0 )); then echo "Local repository location is required" >&2; show_options 1 >&2; fi
- REPOS=( "${@}" )
- use_repos
-fi
-
diff --git a/scripts/set-usergroup-membership b/scripts/set-usergroup-membership
deleted file mode 100755
index 733916dc..00000000
--- a/scripts/set-usergroup-membership
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-set -eu
-
-# libvirtd group
-case "$TRIPLEO_OS_DISTRO" in
- 'debian' | 'opensuse' | 'sles')
- LIBVIRTD_GROUP='libvirt'
- ;;
- *)
- LIBVIRTD_GROUP='libvirtd'
- ;;
-esac
-getent group $LIBVIRTD_GROUP || sudo groupadd $LIBVIRTD_GROUP
-
-if [ "$TRIPLEO_OS_FAMILY" = "suse" ]; then
- # kvm_intel/amd is autoloaded on SUSE, but without
- # proper permissions. the kvm package will install an udev rule,
- # so lets activate that one:
- if [ "$(sudo readlink -f /proc/1/root)" = "/" ]; then
- sudo /sbin/udevadm control --reload-rules || :
- sudo /sbin/udevadm trigger || :
- fi
-fi
-
-if [ "$TRIPLEO_OS_FAMILY" = "redhat" ]; then
- libvirtd_file=/etc/libvirt/libvirtd.conf
- if ! sudo grep -q "^unix_sock_group" $libvirtd_file; then
- sudo sed -i "s/^#unix_sock_group.*/unix_sock_group = \"$LIBVIRTD_GROUP\"/g" $libvirtd_file
- sudo sed -i 's/^#auth_unix_rw.*/auth_unix_rw = "none"/g' $libvirtd_file
- sudo sed -i 's/^#unix_sock_rw_perms.*/unix_sock_rw_perms = "0770"/g' $libvirtd_file
- sudo service libvirtd restart
- fi
-fi
-
-REMOTE_OPERATIONS=${REMOTE_OPERATIONS:-0}
-if [ "$REMOTE_OPERATIONS" != 1 -a -n "$TE_DATAFILE" -a -e "$TE_DATAFILE" ]; then
- REMOTE_OPERATIONS=$(jq '.["remote-operations"]' $TE_DATAFILE)
- REMOTE_OPERATIONS=${REMOTE_OPERATIONS//\"}
-fi
-
-if [ $REMOTE_OPERATIONS != 1 ]; then
- if ! id | grep -qw $LIBVIRTD_GROUP; then
- echo "adding $USER to group $LIBVIRTD_GROUP"
- sudo usermod -a -G $LIBVIRTD_GROUP $USER
-
- echo "$USER was just added to the $LIBVIRTD_GROUP. Devtest will not"
- echo "be able to continue until you start a new session to pick up the"
- echo "new group membership. This can be done by either logging out and"
- echo "back in, or running:"
- echo
- echo "sudo su -l $USER"
- echo
- echo "To verify that your group membership is correct, you can use the"
- echo "following command:"
- echo
- echo "id | grep $LIBVIRTD_GROUP"
- echo
- echo "Once you have verified your group membership, you should be able to"
- echo "re-run devtest successfully or continue with devtest_testenv."
- # We have to exit non-zero so the calling script knows to stop.
- exit 1
- fi
-else
- echo $TE_DATAFILE says to use remote operations\; not adding $USER to $LIBVIRTD_GROUP
-fi
diff --git a/scripts/setup-baremetal b/scripts/setup-baremetal
deleted file mode 100755
index 20bc0004..00000000
--- a/scripts/setup-baremetal
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013-2014 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-set -o pipefail
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options]"
- echo
- echo "Reads a JSON file describing machines for a baremetal cluster and"
- echo "registers them all with Nova baremetal. Excess machines are removed"
- echo "and flavors are created to match the machines that have been"
- echo "registered using the local deploy-ramdisk and kernel, which are also"
- echo "loaded into glance."
- echo
- echo "Options:"
- echo " -h -- this help"
- echo " --service-host -- nova bm service host to register nodes with"
- echo " --nodes -- JSON list of nodes to register"
- echo
- exit $1
-}
-
-SERVICE_HOST=""
-JSON_PATH=
-
-TEMP=$(getopt -o h -l help,service-host:,nodes: -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h | --help) show_options 0;;
- --service-host) SERVICE_HOST="$2"; shift 2 ;;
- --nodes) JSON_PATH="$2"; shift 2 ;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-if [ -z "$SERVICE_HOST" ]; then
- echo "Ironic not supported, please specify --service-host."
- exit 1
-fi
-if [ -z "$JSON_PATH" ]; then
- echo "A node list is required."
- exit 1
-fi
-
-deploy_kernel=$TRIPLEO_ROOT/deploy-ramdisk-ironic.kernel
-deploy_ramdisk=$TRIPLEO_ROOT/deploy-ramdisk-ironic.initramfs
-if ! nova image-show bm-deploy-kernel > /dev/null ; then
- deploy_kernel_id=$(glance image-create --name bm-deploy-kernel --visibility public \
- --disk-format aki --container-format aki < "$deploy_kernel" | awk ' / id / {print $4}')
- deploy_ramdisk_id=$(glance image-create --name bm-deploy-ramdisk --visibility public \
- --disk-format ari --container-format ari < "$deploy_ramdisk" | awk ' / id / {print $4}')
-fi
-
-NODES=$(cat $JSON_PATH)
-register-nodes -s $SERVICE_HOST -n <(echo $NODES) -k bm-deploy-kernel -d bm-deploy-ramdisk
-
-function cleanup_flavor {
- local FLAVOR_NAME=${1:?"cleanup_flavor requires a flavor name"}
- if nova flavor-show "$FLAVOR_NAME" &> /dev/null; then
- nova flavor-delete "$FLAVOR_NAME"
- fi
-}
-
-# While we can't mix hypervisors, having non-baremetal flavors will just
-# confuse things.
-cleanup_flavor 'm1.tiny'
-cleanup_flavor 'm1.small'
-cleanup_flavor 'm1.medium'
-cleanup_flavor 'm1.large'
-cleanup_flavor 'm1.xlarge'
-
-cleanup_flavor 'baremetal'
-# XXX(lifeless) this should be a loop making sure every node is represented
-# with a flavor.
-MEM=$(jq -r ".[0][\"memory\"]" <<< $NODES)
-DISK=$(jq -r ".[0][\"disk\"]" <<< $NODES)
-CPU=$(jq -r ".[0][\"cpu\"]" <<< $NODES)
-ARCH=$(jq -r ".[0][\"arch\"]" <<< $NODES)
-
-EPHEMERAL_DISK=$(( $DISK - $ROOT_DISK ))
-if (( $EPHEMERAL_DISK < 0 )); then
- echo "Error: NODE_DISK - ROOT_DISK must be >= 0 to specify size of ephemeral disk"
- exit 1
-fi
-
-nova flavor-create baremetal \
- --ephemeral $EPHEMERAL_DISK auto $MEM $ROOT_DISK $CPU
-nova flavor-key baremetal set "cpu_arch"="$ARCH"
diff --git a/scripts/setup-clienttools b/scripts/setup-clienttools
deleted file mode 100755
index ef6bfdf9..00000000
--- a/scripts/setup-clienttools
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-set -eu
-
-BASE=$(readlink -f $(dirname $0)/..)
-VENV_HOME=$BASE/openstack-tools
-
-if [ ! -f $VENV_HOME/bin/activate ]; then
- virtualenv --setuptools $VENV_HOME
-fi
-
-# NOTE(derekh): we need to use +u to workaround an issue with the activate script
-# /opt/stack/new/tripleo-incubator/openstack-tools/bin/activate: line 8: _OLD_VIRTUAL_PATH: unbound variable
-set +u
-source $VENV_HOME/bin/activate
-set -u
-
-# Use latest versions of build/environment tooling.
-pip install -U pip
-pip install -U wheel setuptools pbr
-
-pip install -U \
- os-apply-config \
- os-cloud-config \
- python-barbicanclient \
- python-ceilometerclient \
- python-cinderclient \
- python-glanceclient \
- python-heatclient \
- python-ironicclient \
- python-neutronclient \
- python-novaclient \
- python-openstackclient \
- python-swiftclient
-
-for tool in os-apply-config cinder nova glance heat neutron swift ironic ceilometer openstack init-keystone generate-keystone-pki register-nodes setup-neutron; do
- ln -sf $VENV_HOME/bin/$tool $BASE/scripts/$tool ;
-done
-echo "Installed openstack client tool symlinks in $BASE/scripts"
diff --git a/scripts/setup-endpoints b/scripts/setup-endpoints
deleted file mode 100755
index 9e86d7e6..00000000
--- a/scripts/setup-endpoints
+++ /dev/null
@@ -1,176 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] "
- echo
- echo "Perform initial setup of a cloud running on "
- echo
- echo "This will register ec2, image, orchestration, identity, network, "
- echo "volume (optional), dashboard (optional), metering (optional) and "
- echo "compute services as running on the default ports on controlplane-ip."
- echo
- echo "Options:"
- echo " -r, --region -- Override the default region 'regionOne'."
- echo " --ceilometer-password -- Specify a password for ceilometer"
- echo " --cinder-password -- Specify a password for cinder."
- echo " --glance-password -- Specify a password for glance."
- echo " --heat-password -- Specify a password for heat."
- echo " --ironic-password -- Specify a password for ironic."
- echo " --neutron-password -- Specify a password for neutron."
- echo " --nova-password -- Specify a password for nova."
- echo " --swift-password -- Specify a password for swift"
- echo " --tuskar-password -- Specify a password for tuskar"
- echo " --enable-horizon -- Enable horizon"
- echo " --debug -- Debug the API calls made."
- echo " --ssl -- Use SSL public endpoints. Takes the hostname to"
- echo " use for the public endpoints."
- echo " --public -- Use non-SSL public endpoints. Takes the ip/hostname"
- echo " to use for the public endpoints."
- echo
- echo "For instance: $SCRIPT_NAME 192.0.2.1"
- echo "For instance(ssl): $SCRIPT_NAME --ssl mysite.org 192.0.2.1"
- exit $1
-}
-
-DEBUG=""
-CEILOMETER_PASSWORD=""
-CINDER_PASSWORD=""
-GLANCE_PASSWORD=""
-HEAT_PASSWORD=""
-IRONIC_PASSWORD=""
-NEUTRON_PASSWORD=""
-NOVA_PASSWORD=""
-SWIFT_PASSWORD=""
-TUSKAR_PASSWORD=""
-ENABLE_HORIZON=""
-SSL=""
-PUBLIC=""
-REGION="regionOne" #NB: This is the keystone default.
-
-TEMP=`getopt -o r: -l region:,debug,ceilometer-password:,cinder-password:,glance-password:,heat-password:,ironic-password:,public:,neutron-password:,nova-password:,swift-password:,tuskar-password:,enable-horizon,ssl: -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -r|--region) export REGION=$2; shift 2 ;;
- --debug) export DEBUG=--debug; set -x; shift 1;;
- --ceilometer-password) export CEILOMETER_PASSWORD=$2; shift 2 ;;
- --cinder-password) export CINDER_PASSWORD=$2; shift 2 ;;
- --glance-password) export GLANCE_PASSWORD=$2; shift 2 ;;
- --heat-password) export HEAT_PASSWORD=$2; shift 2 ;;
- --ironic-password) export IRONIC_PASSWORD=$2; shift 2 ;;
- --neutron-password) export NEUTRON_PASSWORD=$2; shift 2 ;;
- --nova-password) export NOVA_PASSWORD=$2; shift 2 ;;
- --public) export PUBLIC=$2; shift 2 ;;
- --swift-password) export SWIFT_PASSWORD=$2; shift 2 ;;
- --tuskar-password) export TUSKAR_PASSWORD=$2; shift 2 ;;
- --enable-horizon) export ENABLE_HORIZON=--enable-horizon; shift 1;;
- --ssl) export SSL=$2; shift 2 ;;
- -h) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-HOST=${1:-""}
-EXTRA=${2:-""}
-
-if [ -z "$HOST" -o -n "$EXTRA" ]; then
- show_options 1
-fi
-
-INTERNAL_HOST=http://${HOST}:
-
-if [ -n "$SSL" ]; then
- PUBLIC_HOST=https://${SSL}:
-elif [ -n "$PUBLIC" ]; then
- PUBLIC_HOST=http://${PUBLIC}:
-else
- PUBLIC_HOST=$INTERNAL_HOST
-fi
-
-NORMAL_PORT=8004
-SSL_PORT=${SSL:+13004}
-SSL_PORT=${SSL_PORT:-$NORMAL_PORT}
-PASSWORD=$HEAT_PASSWORD register-endpoint $DEBUG -r $REGION -d "Heat Service" heat orchestration -i ${INTERNAL_HOST}${NORMAL_PORT} ${PUBLIC_HOST}${SSL_PORT}
-
-NORMAL_PORT=9696
-SSL_PORT=${SSL:+13696}
-SSL_PORT=${SSL_PORT:-$NORMAL_PORT}
-PASSWORD=$NEUTRON_PASSWORD register-endpoint $DEBUG -r $REGION -d "Neutron Service" neutron network -i ${INTERNAL_HOST}${NORMAL_PORT} ${PUBLIC_HOST}${SSL_PORT}
-
-NORMAL_PORT=9292
-SSL_PORT=${SSL:+13292}
-SSL_PORT=${SSL_PORT:-$NORMAL_PORT}
-PASSWORD=$GLANCE_PASSWORD register-endpoint $DEBUG -r $REGION -d "Glance Image Service" glance image -i ${INTERNAL_HOST}${NORMAL_PORT} ${PUBLIC_HOST}${SSL_PORT}
-
-NORMAL_PORT=8773
-SSL_PORT=${SSL:+13773}
-SSL_PORT=${SSL_PORT:-$NORMAL_PORT}
-register-endpoint $DEBUG -r $REGION -d "EC2 Compatibility Layer" ec2 ec2 -i ${INTERNAL_HOST}${NORMAL_PORT} ${PUBLIC_HOST}${SSL_PORT}
-
-NORMAL_PORT=8774
-SSL_PORT=${SSL:+13774}
-SSL_PORT=${SSL_PORT:-$NORMAL_PORT}
-PASSWORD=$NOVA_PASSWORD register-endpoint $DEBUG -r $REGION -d "Nova Compute Service" nova compute -i ${INTERNAL_HOST}${NORMAL_PORT} ${PUBLIC_HOST}${SSL_PORT}
-PASSWORD=$NOVA_PASSWORD register-endpoint $DEBUG -r $REGION -d "Nova Compute Service v3" nova computev3 -i ${INTERNAL_HOST}${NORMAL_PORT} ${PUBLIC_HOST}${SSL_PORT}
-
-if [ -n "$CEILOMETER_PASSWORD" ]; then
- # Updating Ceilometer to be like other services
- NORMAL_PORT=8777
- SSL_PORT=${SSL:+13777}
- SSL_PORT=${SSL_PORT:-$NORMAL_PORT}
- PASSWORD=$CEILOMETER_PASSWORD register-endpoint $DEBUG -r $REGION -d "Ceilometer Service" ceilometer metering -i ${INTERNAL_HOST}${NORMAL_PORT} ${PUBLIC_HOST}${SSL_PORT}
-fi
-if [ -n "$CINDER_PASSWORD" ]; then
- NORMAL_PORT=8776
- SSL_PORT=${SSL:+13776}
- SSL_PORT=${SSL_PORT:-$NORMAL_PORT}
- PASSWORD=$CINDER_PASSWORD register-endpoint $DEBUG -r $REGION -d "Cinder Volume Service" cinder volume -i ${INTERNAL_HOST}${NORMAL_PORT} ${PUBLIC_HOST}${SSL_PORT}
- PASSWORD=$CINDER_PASSWORD register-endpoint $DEBUG -r $REGION -d "Cinder Volume Service V2" cinderv2 volumev2 -i ${INTERNAL_HOST}${NORMAL_PORT} ${PUBLIC_HOST}${SSL_PORT}
-fi
-if [ -n "$SWIFT_PASSWORD" ]; then
- NORMAL_PORT=8080
- SSL_PORT=${SSL:+13080}
- SSL_PORT=${SSL_PORT:-$NORMAL_PORT}
- PASSWORD=$SWIFT_PASSWORD register-endpoint $DEBUG -r $REGION -d "Swift Object Storage Service" swift object-store -i ${INTERNAL_HOST}${NORMAL_PORT} ${PUBLIC_HOST}${SSL_PORT}
-fi
-if [ -n "$ENABLE_HORIZON" ]; then
- # XXX: SSL not wired up yet.
- register-endpoint $DEBUG -r $REGION -d "OpenStack Dashboard" horizon dashboard -i ${INTERNAL_HOST} ${INTERNAL_HOST}
-fi
-if [ -n "$IRONIC_PASSWORD" ]; then
- # XXX: SSL not wired up yet.
- PASSWORD=$IRONIC_PASSWORD register-endpoint $DEBUG -r $REGION -d "Ironic Service" ironic baremetal -i ${INTERNAL_HOST}6385 ${PUBLIC_HOST}6385
-fi
-
-if [ -n "$TUSKAR_PASSWORD" ]; then
- # XXX: SSL not wired up yet.
- PASSWORD=$TUSKAR_PASSWORD register-endpoint $DEBUG -r $REGION -d "Tuskar Service" tuskar management -i ${INTERNAL_HOST}8585 ${PUBLIC_HOST}8585
-fi
diff --git a/scripts/setup-env b/scripts/setup-env
deleted file mode 120000
index 2d21e0e7..00000000
--- a/scripts/setup-env
+++ /dev/null
@@ -1 +0,0 @@
-refresh-env
\ No newline at end of file
diff --git a/scripts/setup-network b/scripts/setup-network
deleted file mode 100755
index 41e6c431..00000000
--- a/scripts/setup-network
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/bash
-set -eu
-
-BASE=$(dirname $0)/../
-BRIDGE_SUFFIX=${1:-''} # support positional arg for legacy support
-BRIDGE_NAMES='brbm'
-VLAN_TRUNK_IDS=''
-
-SCRIPT_NAME=$(basename $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [-n num] [-b space delimited bridge names ]"
- echo
- echo "Setup libvirt networking and OVS bridges for TripleO."
- echo
- echo " -n -- Bridge number/suffix. Added to all bridges."
- echo " Useful when creating multiple environments"
- echo " on the same machine."
- echo " -b -- Space delimited list of baremetal bridge"
- echo " name(s). Defaults to brbm."
- echo
- exit 1
-}
-
-TEMP=$(getopt -o h,n:,b: -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- show_options;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h) show_options ;;
- -n) BRIDGE_SUFFIX="$2" ; shift 2 ;;
- -b) BRIDGE_NAMES="$2" ; shift 2 ;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; show_options ;;
- esac
-done
-
-function create_bridge {
- local BRIDGE_NAME=$1
-
- # Only add bridge if missing
- (sudo ovs-vsctl list-br | grep ${BRIDGE_NAME}$) || sudo ovs-vsctl add-br ${BRIDGE_NAME}
-
- # remove bridge before replacing it.
- (virsh net-list --persistent | grep "${BRIDGE_NAME} ") && virsh net-destroy ${BRIDGE_NAME}
- (virsh net-list --inactive --persistent | grep "${BRIDGE_NAME} ") && virsh net-undefine ${BRIDGE_NAME}
-
- virsh net-define <(sed -e "s/%NETWORK_NAME%/$BRIDGE_NAME/" $BASE/templates/net.xml)
- virsh net-autostart ${BRIDGE_NAME}
- virsh net-start ${BRIDGE_NAME}
-
-}
-
-for NAME in $BRIDGE_NAMES; do
- create_bridge "$NAME$BRIDGE_SUFFIX"
-done
-
-# start default if needed and configure it to autostart
-default_net=$(sudo virsh net-list --all --persistent | grep default | awk 'BEGIN{OFS=":";} {print $2,$3}')
-state=${default_net%%:*}
-autostart=${default_net##*:}
-
-if [ "$state" != "active" ]; then
- virsh net-start default
-fi
-
-if [ "$autostart" != "yes" ]; then
- virsh net-autostart default
-fi
diff --git a/scripts/setup-overcloud-passwords b/scripts/setup-overcloud-passwords
deleted file mode 100755
index e9904da2..00000000
--- a/scripts/setup-overcloud-passwords
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Red Hat, Inc.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -e
-set -o pipefail
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] FILENAME"
- echo
- echo "Generate passwords for devtest and write them out to a file"
- echo "that can be sourced."
- echo
- echo "Options:"
- echo " -f, --file -- Noop. For backwards compatibility only"
- echo " -o, --overwrite -- Overwrite file if it already exists."
- exit $1
-}
-
-FILE=
-
-TEMP=`getopt -o hof -l help,overwrite,file -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -f | --file) shift 1 ;;
- -o | --overwrite) OVERWRITE=--overwrite; shift 1 ;;
- -h | --help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-FILE=${FILE:-$1}
-
-if [ -z "$FILE" ]; then
- echo "ERROR: Must provide a filename"
- exit 1
-fi
-
-OVERWRITE=${OVERWRITE:-""}
-
-touch $FILE
-# Make the file secure as reasonably possible.
-chmod 0600 $FILE
-if [ -n "$OVERWRITE" ]; then
- echo -n "" > $FILE
-fi
-
-function generate_password {
- local name=$1
- if [ -z "$(grep "^$name=" $FILE)" ]; then
- echo "$name=$(os-make-password)" >> $FILE
- else
- echo "Password $name in $FILE already exists, not overwriting."
- echo "To overwrite all passwords in $FILE specify -o."
- fi
-}
-
-PASSWORD_LIST="OVERCLOUD_ADMIN_PASSWORD
-OVERCLOUD_ADMIN_TOKEN
-OVERCLOUD_CEILOMETER_PASSWORD
-OVERCLOUD_CEILOMETER_SECRET
-OVERCLOUD_CINDER_PASSWORD
-OVERCLOUD_DEMO_PASSWORD
-OVERCLOUD_GLANCE_PASSWORD
-OVERCLOUD_HEAT_PASSWORD
-OVERCLOUD_HEAT_STACK_DOMAIN_PASSWORD
-OVERCLOUD_NEUTRON_PASSWORD
-OVERCLOUD_NOVA_PASSWORD
-OVERCLOUD_SWIFT_HASH
-OVERCLOUD_SWIFT_PASSWORD"
-
-for name in $PASSWORD_LIST; do
- generate_password $name
-done
diff --git a/scripts/setup-seed-vm b/scripts/setup-seed-vm
deleted file mode 100755
index e6c14808..00000000
--- a/scripts/setup-seed-vm
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -e
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-PATH=$PATH:/usr/sbin:/sbin
-
-# Some defaults
-ARCH=i386
-BRIDGE=brbm
-OVSBRIDGE=
-MEMORY=2097152
-CPUS=1
-export IMAGE_NAME=seed
-LIBVIRT_NIC_DRIVER=${LIBVIRT_NIC_DRIVER:-"virtio"}
-LIBVIRT_DISK_BUS_TYPE=${LIBVIRT_DISK_BUS_TYPE:-"sata"}
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] [ ...]"
- echo
- echo "Create a VM definition for the seed VM."
- echo "See ../scripts/devtest.sh"
- echo
- echo "Options:"
- echo " -a i386|amd64 -- set the architecture of the VM (i386)"
- echo " -o name -- set the name of the VM and image file"
- echo " (seed) - must match that from boot-seed-vm"
- echo " -m memory -- define amount of memory to use"
- echo " -c cpus -- define number of CPUs to use"
- echo " -b bridge -- define a baremetal bridge to use"
- echo " -p bridge -- define an ovs bridge to use for the public interface"
- echo " -e engine -- set the virt engine to use"
- echo " (defaults to kvm if available, otherwise"
- echo " qemu)"
- echo
- exit $1
-}
-
-TEMP=`getopt -o ha:o:m:c:b:p:e: -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -a) export ARCH=$2; shift 2 ;;
- -o) export IMAGE_NAME=$2; shift 2 ;;
- -m) export MEMORY=$2; shift 2 ;;
- -c) export CPUS=$2; shift 2 ;;
- -b) export BRIDGE=$2; shift 2 ;;
- -p) export OVSBRIDGE=$2; shift 2 ;;
- -e) export ENGINE=$2; shift 2 ;;
- -h) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-EXTRA_ARGS=${1:-''}
-
-if [ -n "$EXTRA_ARGS" ]; then
- show_options 1
-fi
-
-if [[ -z "$ENGINE" ]]; then
- if [ -d /sys/module/kvm ]; then
- ENGINE=kvm
- else
- ENGINE=qemu
- if test -r /proc/cpuinfo && grep -q "vmx\|svm" /proc/cpuinfo; then
- echo 'CPU supports virtualization but the kvm module is not loaded.'
- fi
- echo 'Using qemu as virtualization engine. Warning!: things will be extremely slow.'
- fi
-fi
-
-SEED_ARCH=
-
-case $ARCH in
- i386) SEED_ARCH='i686'; ;;
- amd64|x86_64) SEED_ARCH='x86_64'; ;;
- *) echo "Unsupported arch $ARCH!" ; exit 1 ;;
-esac
-
-which virsh >/dev/null || die "Error: virsh not found in path"
-sudo virsh destroy $IMAGE_NAME 2>/dev/null || echo "$IMAGE_NAME VM not running"
-sudo virsh undefine $IMAGE_NAME --managed-save 2>/dev/null || echo "$IMAGE_NAME VM not defined"
-sudo touch /var/lib/libvirt/images/$IMAGE_NAME.qcow2
-
-EXTRAOPTS=
-if [ -n "$OVSBRIDGE" ] ; then
- EXTRAOPTS="--ovsbridge $OVSBRIDGE"
-fi
-
-if [[ $DIB_COMMON_ELEMENTS == *enable-serial-console* ]]; then
- EXTRAOPTS="${EXTRAOPTS} --enable-serial-console"
-fi
-
-configure-vm $EXTRAOPTS \
- --name $IMAGE_NAME \
- --image /var/lib/libvirt/images/$IMAGE_NAME.qcow2 \
- --diskbus $LIBVIRT_DISK_BUS_TYPE \
- --baremetal-interface $BRIDGE \
- --engine $ENGINE \
- --arch $SEED_ARCH \
- --memory $MEMORY \
- --cpus $CPUS \
- --libvirt-nic-driver $LIBVIRT_NIC_DRIVER \
- --seed
-
-MAC=$(sudo virsh dumpxml $IMAGE_NAME | grep "mac address" | head -1 | awk -F "'" '{print $2}')
-echo "Seed VM created with MAC ${MAC}"
diff --git a/scripts/setup-undercloud-passwords b/scripts/setup-undercloud-passwords
deleted file mode 100755
index d088c39a..00000000
--- a/scripts/setup-undercloud-passwords
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Red Hat, Inc.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -e
-set -o pipefail
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] FILENAME"
- echo
- echo "Generate passwords for devtest and write them out to a file"
- echo "that can be sourced."
- echo
- echo "Options:"
- echo " -f, --file -- Noop. For backwards compatibility only"
- echo " -o, --overwrite -- Overwrite file if it already exists."
- exit $1
-}
-
-FILE=
-
-TEMP=`getopt -o hof -l help,overwrite,file -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -f | --file) shift 1 ;;
- -o | --overwrite) OVERWRITE=--overwrite; shift 1 ;;
- -h | --help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-FILE=${FILE:-$1}
-
-if [ -z "$FILE" ]; then
- echo "ERROR: Must provide a filename"
- exit 1
-fi
-
-OVERWRITE=${OVERWRITE:-""}
-
-touch $FILE
-# Make the file secure as reasonably possible.
-chmod 0600 $FILE
-if [ -n "$OVERWRITE" ]; then
- echo -n "" > $FILE
-fi
-
-function generate_password {
- local name=$1
- if [ -z "$(grep "^$name=" $FILE)" ]; then
- echo "$name=$(os-make-password)" >> $FILE
- else
- echo "Password $name in $FILE already exists, not overwriting."
- echo "To overwrite all passwords in $FILE specify -o."
- fi
-}
-
-PASSWORD_LIST="UNDERCLOUD_ADMIN_TOKEN
-UNDERCLOUD_ADMIN_PASSWORD
-UNDERCLOUD_CEILOMETER_PASSWORD
-UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD
-UNDERCLOUD_GLANCE_PASSWORD
-UNDERCLOUD_HEAT_PASSWORD
-UNDERCLOUD_NEUTRON_PASSWORD
-UNDERCLOUD_NOVA_PASSWORD
-UNDERCLOUD_IRONIC_PASSWORD
-UNDERCLOUD_TUSKAR_PASSWORD"
-
-for name in $PASSWORD_LIST; do
- generate_password $name
-done
diff --git a/scripts/takeovernode b/scripts/takeovernode
deleted file mode 100755
index e130c2ca..00000000
--- a/scripts/takeovernode
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/bash
-
-#
-# Copyright 2012 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-# Initial cut - no functions, JFDI.
-
-if [ -z "$1" ]; then
- echo "No host supplied" >&2
- exit 1
-fi
-if [ -z "$2" ]; then
- echo "No image id supplied" >&2
- exit 1
-fi
-#ref image=481ddf40-8f9c-4175-a993-c11b070d6653
-# NOT SAFE against /etc races.
-commands="sudo su -
-apt-get -y install python-pip qemu-utils
-pip install python-glanceclient
-rm /tmp/image.qcow2
-http_proxy= /usr/local/bin/glance -v --os-username demo --os-password nomoresecrete --os-tenant-name demo --os-auth-url http://glance.tripleo.org:5000/v2.0 --os-image-url http://glance.tripleo.org:9292/ image-download $2 --file /tmp/image.qcow2
-ls -lh /tmp/
-modprobe nbd max_part=16
-rmdir /tmp/newimage
-mkdir -p /tmp/newimage
-qemu-nbd -c /dev/nbd1 /tmp/image.qcow2
-mount /dev/nbd1 /tmp/newimage
-rm -rf /tmp/recover
-mkdir -p /tmp/recover/ssh
-cp -ta /tmp/recover /etc/mtab /etc/hosts
-cp -a /etc/ssh/ssh_host_*key* /tmp/recover/ssh/
-[ -e "/tmp/newimage/boot" ] && rsync -axHAXv /tmp/newimage/ / --exclude=/tmp --delete-after | tee -a /tmp/rsync.log
-cp -at /etc /tmp/recover/*
-# Rewrites e.g. /dev/nbd0 -> a FS UUID from the taken over system
-# XXX: TODO: Relabel the taken over system rootfs label to match root=LABEL=cloudimg-rootfs
-# XXX: TODO: make the built images use the label, not the device.
-update-grub
-grub-install /dev/vda
-reboot -n
-"
-# Rewrites e.g. /dev/nbd0 -> a FS UUID from the taken over system
-echo "$commands" | ssh ubuntu@$1
-# TODO:
-# permit either:
-# reboot -n
-# or (staying online)
-# retrigger cloud-init
-# then free up the device....
-# apt-get install qemu-utils
-# sudo umount /tmp/newimage
-# sudo qemu-nbd -d /dev/nbd1
-#
-#ssh stack@host / ubuntu@host?
-# for the bootstrap image:
-# Add eth1 via modprobe dummy && dummy0 - edit localrc and /etc/network/interfaces
-#sudo ifup dummy0
-#tripleo-incubator/scripts/demo
-#$profit
-
diff --git a/scripts/undercloud-debug b/scripts/undercloud-debug
deleted file mode 100755
index 09ff4653..00000000
--- a/scripts/undercloud-debug
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/bash
-# Copyright 2015 Red Hat, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eux
-
-LOGFILE=undercloud-debug.log
-
-exec > >(tee $LOGFILE)
-exec 2>&1
-
-OS_AUTH_URL=${OS_AUTH_URL:-""}
-if [ -z "$OS_AUTH_URL" ]; then
- echo "You must source a stackrc file for the Undercloud."
- exit 1
-fi
-
-nova list
-for i in $(nova list | head -n -1 | tail -n +4 | awk '{print $2}'); do nova show $i; done
-nova flavor-list
-for f in $(nova flavor-list | head -n -1 | tail -n +4 | awk '{print $2}'); do nova flavor-show $f; done
-nova quota-show
-nova hypervisor-list
-nova hypervisor-stats
-nova service-list
-
-ironic node-list
-for n in $(ironic node-list | head -n -1 | tail -n +4 | awk '{print $2}'); do ironic node-show $n; done
-for n in $(ironic node-list | head -n -1 | tail -n +4 | awk '{print $2}'); do ironic node-port-list $n; done
-
-glance image-list
-for i in $(glance image-list | head -n -1 | tail -n +4 | awk '{print $2}'); do glance image-show $i; done
-
-heat stack-list
-if heat stack-list | grep overcloud; then
- heat stack-show overcloud
- heat resource-list -n 10 overcloud
- for failed_deployment in $(heat resource-list --nested-depth 5 overcloud | grep FAILED | grep -E 'OS::Heat::SoftwareDeployment |OS::Heat::StructuredDeployment ' | cut -d '|' -f 3); do
- echo $failed_deployment;
- heat deployment-show $failed_deployment;
- done
-fi
-
-keystone endpoint-list
-keystone catalog
-
-neutron quota-list
-neutron net-list
-neutron port-list
-neutron agent-list
-
-sudo ovs-vsctl show
-sudo ovs-ofctl dump-flows br-ctlplane
-
-set +x
-echo
-echo
-echo "###############################################################"
-echo "# All output saved to undercloud-debug.log"
-echo "# Finished."
-echo "###############################################################"
-
-exit
diff --git a/scripts/update-admin-ssh-keys b/scripts/update-admin-ssh-keys
deleted file mode 100755
index bff095b2..00000000
--- a/scripts/update-admin-ssh-keys
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/bash
-set -eu
-set -o pipefail
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME"
- echo
- echo "Pull the latest tripleo-cd-admin ssh keys into a user account."
- echo
- echo "Assumes it is running as that user."
- echo
- echo "Options:"
- echo " -u|--users -- Update passwords for individual user accounts"
- echo " instead of the root account."
- echo " -h|--help -- This help."
- echo
- exit $1
-}
-
-
-TEMP=$(getopt -o hu -l help,users -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-INDIVIDUAL_USERS=
-
-while true ; do
- case "$1" in
- -h|--help) show_options 0;;
- -u|--users) shift ; INDIVIDUAL_USERS=1;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-if [ -n "${1:-}" ]; then
- show_options 1
-fi
-
-cd ~
-mkdir -p .ssh
-chmod 0700 .ssh
-mkdir -p .cache/tripleo-cd
-
-# Get the keys
-cd .cache/tripleo-cd
-if [ ! -d tripleo-incubator ]; then
- git clone https://git.openstack.org/openstack/tripleo-incubator
- cd tripleo-incubator
-else
- cd tripleo-incubator
- git pull
-fi
-TMP_SSH_KEYS=$(mktemp)
-for FILE in tripleo-cloud/ssh-keys/*; do
- if [ -n "$INDIVIDUAL_USERS" ]; then
- USER=$(basename $FILE)
- if ! getent passwd $USER &>/dev/null; then
- useradd --create-home --user-group $USER
- fi
- eval mkdir -p ~$USER/.ssh
- eval chown -R $USER:$USER ~$USER/.ssh
- eval chmod 700 ~$USER/.ssh
- eval cp -f $FILE ~$USER/.ssh/authorized_keys
- eval chmod 600 ~$USER/.ssh/authorized_keys
- touch /etc/sudoers.d/$USER
- chmod 0440 /etc/sudoers.d/$USER
- echo "$USER ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/$USER
- else
- cat $FILE >> $TMP_SSH_KEYS
- fi
-done
-
-if [ -z "$INDIVIDUAL_USERS" ]; then
- # Allow tripleo-incubator stuff that wants to add local keys...
- # they'll get wiped on the next run (and obviously aren't relevant for bm
- # access).
- chmod 0600 $TMP_SSH_KEYS
- mv $TMP_SSH_KEYS ~/.ssh/authorized_keys
-else
- # in individual users mode lets... lets check sudo syntax
- visudo -c -q
- rm $TMP_SSH_KEYS
-fi
diff --git a/scripts/user-config b/scripts/user-config
deleted file mode 100755
index 5fa2b2d2..00000000
--- a/scripts/user-config
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-set -eu
-
-# Assumes nova etc are on PATH.
-nova keypair-add --pub-key ~/.ssh/id_rsa.pub default
diff --git a/scripts/wait_for b/scripts/wait_for
deleted file mode 100755
index 82fe763e..00000000
--- a/scripts/wait_for
+++ /dev/null
@@ -1,179 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Red Hat
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -e # exit on the first non-zero status
-set -u # exit on unset variables
-set -o pipefail
-
-SCRIPT_NAME=$(basename $0)
-
-
-function show_options {
- EXITVAL=${1:-1}
- echo "Usage: $SCRIPT_NAME [-h] [-w TIMEOUT] [-l LOOP_COUNT] [-f FAIL_MATCH] [-s SUCCESS_MATCH] --delay SLEEP_TIME -- COMMAND"
- echo
- echo "Waits for a command to fail, succeed, or timeout."
- echo
- echo "Options:"
- echo " -h,--help -- this help"
- echo " -w,--walltime TIMEOUT -- Timeout after TIMEOUT seconds."
- echo " -l,--looptimeout LOOP_COUNT -- Timeout after checking COMMAND LOOP_COUNT times."
- echo " -d,--delay SLEEP_TIME -- Seconds to sleep between checks of COMMAND."
- echo " -s,--success-match -- Output that indicates a success."
- echo " -f,--fail-match -- Output that indicates a short-circuit failure."
- echo
- echo "Execute the command in a loop until it succeeds, a timeout is reached, or"
- echo "a short-circuit failure occurs. Between each check of the command sleep for"
- echo "the number of seconds specified by SLEEP_TIME."
- echo
- echo "Examples:"
- echo " wait_for -w 300 --delay 10 -- ping -c 1 192.0.2.2"
- echo " wait_for -w 10 --delay 1 -- ls file_we_are_waiting_for"
- echo " wait_for -w 30 --delay 3 -- date \| grep 8"
- echo " wait_for -w 300 --delay 10 --fail-match CREATE_FAILED -- heat stack-show undercloud"
- echo " wait_for -w 300 --delay 10 --success-match CREATE_COMPLETE -- heat stack-show undercloud"
- exit $EXITVAL
-}
-
-USE_WALLTIME=
-TIMEOUT=
-DELAY=
-
-if [ -n "${SUCCESSFUL_MATCH_OUTPUT:-}" ]; then
- echo "DEPRECATION WARNING: Using env vars for specifying SUCCESSFUL_MATCH_OUTPUT is deprecated."
-fi
-SUCCESSFUL_MATCH_OUTPUT=${SUCCESSFUL_MATCH_OUTPUT:-""}
-if [ -n "${FAIL_MATCH_OUTPUT:-}" ]; then
- echo "DEPRECATION WARNING: Using env vars for specifying FAIL_MATCH_OUTPUT is deprecated."
-fi
-FAIL_MATCH_OUTPUT=${FAIL_MATCH_OUTPUT:-""}
-
-USE_ARGPARSE=0
-# We have to support positional arguments for backwards compat
-if [ -n "$1" -a "${1:0:1}" == "-" ]; then
- USE_ARGPARSE=1
-else
- echo "DEPRECATION WARNING: Using positional arguments for wait_for is deprecated."
-fi
-
-if [ $USE_ARGPARSE -eq 1 ]; then
- set +e
- TEMP=$(getopt -o h,w:,l:,d:,s:,f: -l help,walltime:,looptimeout:,delay:,success-match:,fail-match: -n $SCRIPT_NAME -- "$@")
- if [ $? != 0 ]; then
- show_options;
- fi
- set -e
-
- # Note the quotes around `$TEMP': they are essential!
- eval set -- "$TEMP"
-
- while true ; do
- case "$1" in
- -h) show_options 0;;
- --help) show_options 0;;
- -w|--walltime) [ -n "$USE_WALLTIME" ] && show_options
- USE_WALLTIME=1
- TIMEOUT="$2"
- shift 2
- ;;
- -l|--looptimeout) [ -n "$USE_WALLTIME" ] && show_options
- USE_WALLTIME=0
- TIMEOUT="$2"
- shift 2
- ;;
- -d|--delay) DELAY="$2"; shift 2;;
- -s|--success-match) SUCCESSFUL_MATCH_OUTPUT="$2"; shift 2;;
- -f|--fail-match) FAIL_MATCH_OUTPUT="$2"; shift 2;;
- --) shift ; break ;;
- esac
- done
-else
- TIMEOUT=${1:-""}
- DELAY=${2:-""}
- USE_WALLTIME=0
- shift 2 || true
-fi
-
-COMMAND="$@"
-
-if [ -z "$TIMEOUT" -o -z "$DELAY" -o -z "$COMMAND" ]; then
- show_options
-fi
-
-
-ENDTIME=$(($(date +%s) + $TIMEOUT))
-TIME_REMAINING=0
-function update_time_remaining {
- CUR_TIME="$(date +%s)"
- TIME_REMAINING=$(($ENDTIME - $CUR_TIME))
-}
-
-
-OUTPUT=
-
-function check_cmd {
- STATUS=0
- OUTPUT=$(eval $COMMAND 2>&1) || STATUS=$?
- if [[ -n "$SUCCESSFUL_MATCH_OUTPUT" ]] \
- && [[ $OUTPUT =~ $SUCCESSFUL_MATCH_OUTPUT ]]; then
- exit 0
- elif [[ -n "$FAIL_MATCH_OUTPUT" ]] \
- && [[ $OUTPUT =~ $FAIL_MATCH_OUTPUT ]]; then
- echo "Command output matched '$FAIL_MATCH_OUTPUT'. Exiting..."
- exit 1
- elif [[ -z "$SUCCESSFUL_MATCH_OUTPUT" ]] && [[ $STATUS -eq 0 ]]; then
- # The command successfully completed and we aren't testing against
- # it's output so we have finished waiting.
- exit 0
- fi
-}
-
-i=0
-while [ $USE_WALLTIME -eq 1 -o $i -lt $TIMEOUT ]; do
- if [ $USE_WALLTIME -eq 1 ]; then
- update_time_remaining
- if [ $TIME_REMAINING -le 0 ]; then
- break
- fi
- else
- i=$((i + 1))
- fi
-
- check_cmd
-
- if [ $USE_WALLTIME -eq 1 ]; then
- update_time_remaining
- if [ $TIME_REMAINING -lt $DELAY ]; then
- if [ $TIME_REMAINING -gt 0 ]; then
- sleep $TIME_REMAINING
- check_cmd
- fi
- else
- sleep $DELAY
- fi
- else
- sleep $DELAY
- fi
-done
-if [ $USE_WALLTIME -eq 1 ]; then
- SECONDS=$TIMEOUT
-else
- SECONDS=$((TIMEOUT * DELAY))
-fi
-printf 'Timing out after %d seconds:\nCOMMAND=%s\nOUTPUT=%s\n' \
- "$SECONDS" "$COMMAND" "$OUTPUT"
-exit 1
diff --git a/scripts/wait_for_hypervisor_stats b/scripts/wait_for_hypervisor_stats
deleted file mode 100755
index 2d4806ff..00000000
--- a/scripts/wait_for_hypervisor_stats
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/bash
-
-set -eu
-set -o pipefail
-
-SCRIPT_NAME=$(basename $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [] [options]"
- echo
- echo "Waits for \`nova hypervisor-stats\` to show some memory + vcpus are available."
- echo
- echo "Positional arguments:"
- echo " nodes -- The number of nodes to wait for, defaults to 1."
- echo " memory -- The amount of memory to wait for in MB,"
- echo " defaults to the amount of memory for the"
- echo " baremetal flavor times the number of nodes."
- echo " vcpus -- The number of vcpus to wait for,"
- echo " defaults to the number of vcpus for the"
- echo " baremtal flavor times the number of nodes."
- echo
- echo "Options:"
- echo " -h / --help -- this help"
- echo
- exit $1
-}
-
-TEMP=$(getopt -o h -l help -n $SCRIPT_NAME -- "$@")
-if [ $? != 0 ]; then
- echo "Terminating..." >&2
- exit 1
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -h | --help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-EXPECTED_NODES=${1:-1}
-EXPECTED_MEM=${2:-""}
-EXPECTED_VCPUS=${3:-""}
-
-# NOTE(bnemec): If/when we have more flavors, this will need
-# to be expanded.
-if [ -z "$EXPECTED_VCPUS" ]; then
- FLAVOR=$(nova flavor-show baremetal)
- VCPUS=$(echo "$FLAVOR" | awk '$2=="vcpus" { print $4 }')
- EXPECTED_VCPUS=$(($VCPUS*$EXPECTED_NODES))
-fi
-
-if [ -z "$EXPECTED_MEM" ]; then
- FLAVOR=$(nova flavor-show baremetal)
- MEM=$(echo "$FLAVOR" | awk '$2=="ram" { print $4 }')
- EXPECTED_MEM=$(($MEM*$EXPECTED_NODES))
-fi
-
-nova hypervisor-stats | awk '
-$2=="count" && $4 >= '"$EXPECTED_NODES"' { c++ };
-$2=="memory_mb" && $4 >= '"$EXPECTED_MEM"' { c++ };
-$2=="vcpus" && $4 >= '"$EXPECTED_VCPUS"' { c++ };
-END { if (c != 3) exit 1 }'
diff --git a/scripts/wait_for_stack_ready b/scripts/wait_for_stack_ready
deleted file mode 100755
index 74050aff..00000000
--- a/scripts/wait_for_stack_ready
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2014 Hewlett-Packard Development Company, L.P.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -eu
-
-SCRIPT_NAME=$(basename $0)
-
-USE_WALLTIME="-l"
-if [ -n "$1" -a "$1" = "-w" ]; then
- USE_WALLTIME="-w"
- shift 1
-fi
-
-LOOPS=${1:-""}
-SLEEPTIME=${2:-""}
-STACK_NAME=${3:-""}
-if [ -z "$LOOPS" -o -z "$SLEEPTIME" -o -z "$STACK_NAME" ]; then
- echo "Usage: $SCRIPT_NAME [-w] LOOPS_NUMBER SLEEP_TIME STACK_NAME"
- exit 1
-fi
-
-SUCCESSFUL_MATCH_OUTPUT="(CREATE|UPDATE)_COMPLETE"
-FAIL_MATCH_OUTPUT="(CREATE|UPDATE)_FAILED"
-
-
-wait_for $USE_WALLTIME $1 --delay $2 \
- --success-match $SUCCESSFUL_MATCH_OUTPUT \
- --fail-match $FAIL_MATCH_OUTPUT -- \
- "heat stack-show $STACK_NAME | awk '/stack_status / { print \$4 }'"
diff --git a/scripts/write-tripleorc b/scripts/write-tripleorc
deleted file mode 100755
index 351171f8..00000000
--- a/scripts/write-tripleorc
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2013 Red Hat, Inc.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-set -e
-set -o pipefail
-
-SCRIPT_NAME=$(basename $0)
-SCRIPT_HOME=$(dirname $0)
-
-function show_options {
- echo "Usage: $SCRIPT_NAME [options] FILENAME"
- echo
- echo "Write devtest defined environment variables to a file."
- echo
- echo "Creates a tripleorc file that can be sourced later to restore"
- echo "environment variables that are defined by devtest.md"
- echo
- echo "Options:"
- echo " -f, --file -- Noop. For backwards compatibility only"
- echo " -o, --overwrite -- Overwrite file if it already exists."
- exit $1
-}
-
-FILE=
-
-TEMP=`getopt -o hof -l help,overwrite,file -n $SCRIPT_NAME -- "$@"`
-if [ $? != 0 ]; then
- echo "Terminating..." >&2;
- exit 1;
-fi
-
-# Note the quotes around `$TEMP': they are essential!
-eval set -- "$TEMP"
-
-while true ; do
- case "$1" in
- -f | --file) shift 1 ;;
- -o | --overwrite) OVERWRITE=--overwrite; shift 1 ;;
- -h | --help) show_options 0;;
- --) shift ; break ;;
- *) echo "Error: unsupported option $1." ; exit 1 ;;
- esac
-done
-
-FILE=${FILE:-$1}
-
-if [ -z "$FILE" ]; then
- echo "ERROR: Must provide a filename"
- exit 1
-fi
-
-OVERWRITE=${OVERWRITE:-""}
-
-# Don't overwrite $FILE if it already exists and the overwrite option
-# wasn't provided.
-if [ -f $FILE -a -z "$OVERWRITE" ]; then
- echo $FILE exists, not overwriting.
- echo Either delete the file first, or specify -o
- exit 1
-fi
-
-rm -f $FILE
-touch $FILE
-
-ENV_VARS="
-DEPLOY_IMAGE_ELEMENT
-DEPLOY_NAME
-DIB_COMMON_ELEMENTS
-ELEMENTS_PATH
-LIBVIRT_DEFAULT_URI
-LIBVIRT_DISK_BUS_TYPE
-LIBVIRT_NIC_DRIVER
-LIBVIRT_VOL_POOL
-NODE_CNT
-NODE_DIST
-OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS
-OVERCLOUD_BLOCKSTORAGESCALE
-OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS
-OVERCLOUD_COMPUTESCALE
-OVERCLOUD_CONTROL_DIB_EXTRA_ARGS
-OVERCLOUD_CONTROLSCALE
-OVERCLOUD_LIBVIRT_TYPE
-ROOT_DISK
-SEED_DIB_EXTRA_ARGS
-TE_DATAFILE
-TRIPLEO_ROOT
-UNDERCLOUD_DIB_EXTRA_ARGS
-USE_UNDERCLOUD_UI"
-
-for env_var in $ENV_VARS; do
- if [ ! -z "${!env_var}" ]; then
- echo export $env_var=\"${!env_var}\" >> $FILE
- fi
-done
-
-# Also write out updated $PATH and $ELEMENTS_PATH
-if [ -n "$TRIPLEO_ROOT" ]; then
-
- # Add a newline for some clarity in the tripleorc file.
- echo >> $FILE
-
- # When tripleorc is later sourced, we only want to update $PATH and
- # $ELEMENTS_PATH if they haven't already been updated. Otherwise, we will
- # keep making them longer each time tripleorc is sourced.
- cat >> $FILE <
- %(name)s
- %(memory)s
- %(cpus)s
-
-
- hvm
-
-
-
-
-
-
-
-
-
- destroy
- restart
- restart
-
-
-
-
-
-
-
- %(network)s
- %(bm_network)s
- %(enable_serial_console)s
-
-
-
-
-
-
diff --git a/templates/net.xml b/templates/net.xml
deleted file mode 100644
index f995cfcc..00000000
--- a/templates/net.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
- %NETWORK_NAME%
-
-
-
-
diff --git a/test-requirements.txt b/test-requirements.txt
deleted file mode 100644
index cb3a3e7d..00000000
--- a/test-requirements.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-oslosphinx
-sphinx>=1.5.1
diff --git a/tox.ini b/tox.ini
deleted file mode 100644
index 2fa3c6f3..00000000
--- a/tox.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-[tox]
-minversion = 1.6
-skipsdist = True
-envlist = docs,pep8
-
-[testenv]
-usedevelop = True
-install_command = pip install {opts} {packages}
-setenv = VIRTUAL_ENV={envdir}
-deps = -r{toxinidir}/test-requirements.txt
-
-[testenv:venv]
-commands = {posargs}
-
-[testenv:docs]
-commands = python setup.py build_sphinx
-
-[testenv:pep8]
-deps = bashate
-whitelist_externals = bash
-commands = bash -c "./run-bashate.sh"
-
-[flake8]
-exclude = .tox
diff --git a/tripleo-cloud/README.md b/tripleo-cloud/README.md
deleted file mode 100644
index 37e4d016..00000000
--- a/tripleo-cloud/README.md
+++ /dev/null
@@ -1,41 +0,0 @@
-This is a staging area for tools and information related to the
-[https://wiki.openstack.org/wiki/TripleO/TripleOCloud production quality cloud]
-the TripleO program is running in a continuous delivery fashion.
-
-Currently found here:
-
-* tripleo-cd-admins: A list (ircname/username,email,human name,comment)
- of people permitted root access to the tripleo cloud. This is used for
- recording details and for automatically creating admin (and regular user)
- accounts. Our convention is use the IRC name as the username for ssh
- access.
-
-* ssh-keys: (directory) SSH keys for TripleO CD Admins. The file names
- in this directory correspond to the IRC/username in the tripleo-cd-admins
- file. Multiple SSH keys may be listed in each file for a given user.
-
-* tripleo-cd-users: A list of users of the TripleO CD overcloud - either
- TripleO ATC's or other folk which the TripleO PTL has granted access to the
- cloud. This is used to populate users on the cloud automatically, and new
- ATC's should ask for access by submitting a review to add their details.
- The comment field should list why non-ATC's have access.
-
-The script update-admin-ssh-keys will copy the tripleo-cd-ssh-keys file on top
-of the authorized\_keys file for the current user - making it an easy way to
-self-maintain (as long as you trust the SSL infrastructure to ensure the right
-repo is being copied :)).
-
-Policy on adding / removing people:
- - get consensus/supermajority for adds from existing triple-cd-admins members.
- - remove folk at own request or if idle for extended period.
-
-Implementation of adding / removing people:
- - Ssh into the seed VM host and add / remove a user for them.
- - Ssh into the seed VM and update the root authorized-keys likewise.
- - Update the 'default' keyring on the CD seed 'admin' user to the current
- keyring here.
- - Ssh into cd-undercloud.tripleo.org and update the heat-admin authorized-keys
- file.
- - Update the 'default' keyring on the CD undercloud 'admin' user to the
- current keyring here.
- - Add them to https://docs.google.com/spreadsheet/ccc?key=0AlLkXwa7a4bpdERqN0p5RjNMQUJJeDdhZ05fRVUxUnc&usp=sharing
diff --git a/tripleo-cloud/ssh-keys/GheRivero b/tripleo-cloud/ssh-keys/GheRivero
deleted file mode 100644
index 1883e171..00000000
--- a/tripleo-cloud/ssh-keys/GheRivero
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDB4ARQm2NlwqBvegBEQuFNEFnlydjwyQJzLbkxPcUTqBDBtqUvsCsRyxkJOgJZoXr/jNPGBxTaw7hLojdGVfS24U0Av2iS9Gq1wteDW271dI5hfTPgiawaSsbaz5sd07LwdfbcXg+TO1cdWRuA33bH5mNtUP7A3VTSHJ3hXO0LHwjM+jUbdmRdUEtu8IKtKZoVXOOYY9FOb0xPNbxaex0WZV70KOrbZiV5+0DkTXIyw+MLE2TZWUun7VLpaQ5qgprUx7zGe54JWv5QUWkFPx0dWy0T3hNOD3r9TKf8ieESiguQK28AXtagEqbXLQx15zfKGHF3VAn2Wcn11+KMBalD GheRivero
diff --git a/tripleo-cloud/ssh-keys/Ng b/tripleo-cloud/ssh-keys/Ng
deleted file mode 100644
index d9b3587a..00000000
--- a/tripleo-cloud/ssh-keys/Ng
+++ /dev/null
@@ -1,3 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAmFHTRSHk22jdaXQTObJRSon+4X34c4+usib9H7MnCrXFNQCxEhZ3icA5rYFJtPZ6psQgB3LfdIbiQ8/nc4Cf6zpcBMbogs8tVk2E9I5t4TUtQqj66lx8QgXMNHbzBSjdP8vENfWeus7Q4vR71F3J2JWOG/rU54MwVZBu+wLedsYes6ghsK3jutwM+BS9Q7IZNSU0tJ/C03XjieImcZL7uicNSc0aSywKDE2QoTUkbJVkcCfdXAE1W1S9JlEb/CTEis2lIX8MTDb11i5XouReR0l9Wrg1I0XBtGqOKlDdloUJTe5IXsxRbt8oQq26/ntl9Y/rFX8E4MNflhK5UgOKNQ== ng-mackbook15
-ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuVwKv6mO6kIdrzm+3/FdgkBwDOG1eoQfcy0UIBA0nVpsdyu3RRHu5xmeaZeveRV8bYONIX6tF3k4JuxARgVXcE5e3DLh+ONH8LHyg+sOLW2zAInxghi9yCR6G0vT9MzbiUlNOFt7j4r5fgg5aJTX937oPRNaJmv5f6NQs7fy4TfVU1Ma4X5KZreNEylk7Jyocj7otYDkHnwRj1BdzgTJPL8As+5Mj/2OyKsS6ayAd0cZCFzeWnoTVIZBIo4r37o3mFxzNDSBQ2XI7disXvr5Xr5FDFR6TDOdgcs4gabhNUhch196DBjmTxJ3bTKAMy//Sz9e7dOd7pQDfn4lBJo0JQ== ng-kodachi
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFEQtLAva4QFGKWm1jVhkh1g0V3pXEOgSYSA1r/lnswQb1VxdumaWWHXEE8TKYR6YIPfOaD/VHIC1p1cYYrfhbVInradqjOPVZM96lM8b8UhbANsLH3C9+tP0Pb63HarEVXlS+HZxDIQ8UVrUw/EstSFUILHWY7DgLKUF3vVvtKM0VEaOdOix60FaCj/2sXlQ7dz5Xz3cQKKM7lszwzNiNlpSO+BxoK7U+t0I4ZL8SQJLiHvY7GoBFaPmzEg2dz6YmM/r2PXaxbcYCwO/JZ0Wi2jy1NCtVI6zcbfBOqDbcQcS9MR2F2MNKfI1qb8kFyW+fXttTLNQIhsAY9nr9I7rl ng-pixukipa.local
diff --git a/tripleo-cloud/ssh-keys/SpamapS b/tripleo-cloud/ssh-keys/SpamapS
deleted file mode 100644
index 6bdb6487..00000000
--- a/tripleo-cloud/ssh-keys/SpamapS
+++ /dev/null
@@ -1,2 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/zTl8QCACJjPqAvm0CRji2fyLEEkJYbfZIIrOngdc1hjrVd9yNFcZvWlwH3zfdTZhosVjv64Ol5O6Vc7gfJG4RCrdyBOuve4oUpARha/yUTbmPunQUaHEHofG1b7AIaAUWlVS6Z+NRXbzX5EmZ64C4BON/1UA3CMnemLpR2v3VwaxuUuKlB0oyvkvmcamQh+QUaHmlH1AYVd/5R+0yABQXqE+Elt+M8qc2vdHbLv6p3AEBnWXc0iV7wGZ0TcfdRjN2xBNrG79I2nB0btvfd396jpnA3TP1t8BnuyOVR5xYdKPc5fLEaAkpVm4OGH24/hdMUfSA03QZ13k1Ml1nvM9 spamaps-MacBookAir
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCd2K5esFjcXSCZ9m0sboBB+87kgRpQw075HhD9AvAmkljcX2acGy1+1UtWlMcuL0MPVVFAeQVr6f94kSSuXtQZY4CmSU0O14rLaBfAiFwpLuWDqRFkQWYx3nSduGlVC8YfI5fva9vbfV25NT+YqUykLaPt5LYtq4MGhQav7BxBdalHBhtLd/gcD5auF6/GJhG9XDXvWkI1P8oOEscf4KIxgyaj/E5RPUmSn1TxNyLfYoYfEwH3JXEwQ7LcNcUCJi1lDw45SENesjXvG9uwinbZVTYmXLLtvYim/MrmUXJGjU58T/V9lgzvJYKge9lWwlQxXMGircEvCyGwQ2ep6jV3 spamaps-clint-HP
diff --git a/tripleo-cloud/ssh-keys/StevenK b/tripleo-cloud/ssh-keys/StevenK
deleted file mode 100644
index 0fe83485..00000000
--- a/tripleo-cloud/ssh-keys/StevenK
+++ /dev/null
@@ -1,2 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1AyLa6DapyvGUfpxUiILcViOF9hKSA3VvEBeIS1PDVhcC/oYoz/xUlbMAeiKth1VkJ8jjJ5cZLvS1OVK+v/f83r702d9VREUqBuvY7EgS4tU7LqInVLB8+PTTPiMnF1v7M7RX26gKUDohLmB6TbfuyDqQ52i1JH4vOgZCpj2E5gfjlomRv24nhfGZ2A9Ut8IFkwdkDH566CBFExTKARp9Gmetb1PX7yHVKjYg/7C3pVLADqkE0x9qQIALtZJ9iWe5I6UP9H0q2CS+t2T2KHNtxrWCNhxtnWJxph8kIj2njhxKTEoTeXMNSMQG06INzwRD2E7nYnzwhmXvBK95qW0F steven@liquified
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDV0+uAoHs08Sq+Q3bIczy19aYcPs9U60BPUPaVSqPBt0tZghabdvTuEsArJESXl7MEAIo2S6FC+w7VJ8Pka1CPOk2jOvQ697kvAGOxEH5rV5xauBMpjFVjaPxn7FEhJ+C63tqHU5ZWK0B5Hqt3mSkXJRrId+TDNbqDo8wKrslw1YNClypNA8gzDyAc0m1oSvGUOwLUC8q1rNWfx5qNqrg0325G/dp5IQtkdCoNig8TQBzFyRtbygVVj2PAbGvaqr11ZsUN9TzeW4nQRXMQ0tDw/w4s2TVS9UBJLl3+eVMJLvqf++5dczaBtBlPQmk4Xw+3Y44PW3NNr7MOyQl4FSWR steven@sandblasted
diff --git a/tripleo-cloud/ssh-keys/bnemec b/tripleo-cloud/ssh-keys/bnemec
deleted file mode 100644
index a2f5242b..00000000
--- a/tripleo-cloud/ssh-keys/bnemec
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDv9l/F0vq7nzAT5hdrBfqDv0rD76nHNn+siS6s5gaFyAuvXJG808pqFk5bJLbRdRIA1/cLxIQeB+bB7IjeTS7Afbz/baAOPTtoumwEU8wLPzR7IyTg60R4o7pKOJG2cP45s3TGODsYt5eEAr96EGp9ayyanfuJZZf2wQWdNp1+vQXain8WHv9KIKI5XmcKI80x8RBWV86OKKsmbqV4yYxAkuLitq4h3Bhw3LP+VOxaqApevnpt7fcrvn8QR3XMsLKNZsJhT9r1qeLEZisundZPN+0EuiC7seu5zAuCBcKjRrBo7Ime8TYn5sjz9DTMcWvY3xHF2DZN2YdVxp4O8/iD bnemec@localhost.localdomain
diff --git a/tripleo-cloud/ssh-keys/derekh b/tripleo-cloud/ssh-keys/derekh
deleted file mode 100644
index 6fdac2ad..00000000
--- a/tripleo-cloud/ssh-keys/derekh
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdK/KnJPXaycb8hOX9j1f/lU1HuB9GMUhCN7of4KrRs3OjzCtMUNZJSTCQaeUlR6VijNvUIe6Wx5zWCDR1DgNv/InQjr+7RhSgMofStz1TfJrlkGBfZw2mrhpPnX3fLaCf9Dyl+8+cuTjxGTMtYngJx2/9aNpgl75hMgaM6BRh/ULM+lLBDlCI+r9dFSsVx9UKTQUyenDh4A3J3eszP1CTT1sBWDKU5zz39MqWpzIxRaBgk+nI8+Uxbih7FUPaLLqlrl4Nxdr9A/Aul9pB8OSk/BK1oX/8mYW5mDE3usbeXIVU53ojEG0pkKaq4N9oeMorGB65xG7uAf845Av0qOpr derekh
diff --git a/tripleo-cloud/ssh-keys/dmanchad b/tripleo-cloud/ssh-keys/dmanchad
deleted file mode 100644
index 04de44ce..00000000
--- a/tripleo-cloud/ssh-keys/dmanchad
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDkdinmthPdZuLNKNgC3Rx2u26hAYq6AbehS9b7u7x8pjcu6YmOClp844qQJmpxkiwNMbKpCz1618QCcCz10LU7Wn+9IjJWdTkvOf69AohU/fZMb3kXO5K0IPojlloNkkKTM8gRjmzD/uuwwbZ3BU+x0Kfo/0hePOzcK+Rd/6xEB6LM9xerOo3ZQVv5UGuG7XdCFOjbJkAFciuLWiHQZPmguvDDTRby16SuZI8xWJzssHpOhUIK510M1frk/GtYuHcNZQD38BHBmzyxaw/vQiwDgajXGjgOGz3HZ6jFfeXdeMHToeX6ZbCoQ8521JAvaEMEUmpPx23MFC59M42DLGdp5pyHLSeHZx5fBTXLXb5oMKXtlRp94MAasmJ025unG8O7IWsAdFOq9Aad3qaaKNAbZLCVNhrw4XyXy5vWjdNfKipwdhG8TYBOjYecVX7EzJmM8lWDJgNuDOmzLA/Qpu0rsMtrrI+6BcA9j7xh9YC5cT3rQLNCpghCcWjIdWfxcKsirnt4vXbDWaGSt4x38Gn1Pif/XCmLE7hnseERf5ac5Gp+Uf28zyOSpdE6YXFE93bCLz8BsUAKhZVS4zc0eayY2WFgXxpBPEvfprp8v1EZeJksaZQEnV1FCSl4TBSDE5ie3v8jPKEgNjUmu/y8VsdYbqTxQyAC+hajgq8ONl+bHw== dmanchad@redhat.com
diff --git a/tripleo-cloud/ssh-keys/dprince b/tripleo-cloud/ssh-keys/dprince
deleted file mode 100644
index 3aeb5c78..00000000
--- a/tripleo-cloud/ssh-keys/dprince
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA+yNMzUrQXa0EOfv+WJtfmLO1WdoOaD47G9qwllSUc4GPRkYzkTNdxcEPrR3XBR94ctOeWOHZ/w7ymhvwK5LLsoNBK+WgRz/mg8oHcii2GoL0fNojdwUMyFMIJxJT+iwjF/omyhyrW/aLAztAKRO7BdOkNlXMAAcMxKzQtFqdZm09ghoImu3BPYUTyDKHMp+t0P1d7mkHdd719oDfMf+5miHxQeJZJCWAsGwroN7k8a46rvezDHEygBsDAF2ZpS2iGMABos/vTp1oyHkCgCqc3rM0OoKqcKB5iQ9Qaqi5ung08BXP/PHfVynXzdGMjTh4w+6jiMw7Dx2GrQIJsDolKQ== dan.prince@dovetail
diff --git a/tripleo-cloud/ssh-keys/emacchi b/tripleo-cloud/ssh-keys/emacchi
deleted file mode 100644
index 548bf779..00000000
--- a/tripleo-cloud/ssh-keys/emacchi
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYt5FqMTz91Mbctj7wWg2tAkzwMDwDFtvw0l/6SGPqV+w84SxM1sRmCm1iGdjCk7Rhy3493yRMrA6RT02yTQnXyXG5xC9stspWku9GPNNXyg83SvC/iz53E5SWwYQISmgBK+dYNwzjiN8C8ohxmT8elV1ElckgGvzTOk80KygUzpf+KOfezQcSXZWxBbYsK/8FamPBoWGLCByv+zVX+dSjNgraqdGZDlXns+NiZAeEHeBwKTufFpN//1xm4lG+ah4g5oqaXNf1M7LApPSSm4r5VdFp0+S5SbcPocu+ztwttstnLI0fgJ5XUyqUJM0fZbaj1qkhFeG7bCi/75XIjnkp emilien@redhat.com
diff --git a/tripleo-cloud/ssh-keys/greghaynes b/tripleo-cloud/ssh-keys/greghaynes
deleted file mode 100644
index 4f627d6e..00000000
--- a/tripleo-cloud/ssh-keys/greghaynes
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC67ZgJPR8opztfyyPApZLu3mk+BlGa16WBFyCUknPSotGxyaryD1qH3HpNobPH5Ggdf9rxEHRGQhSWEaPjn4IZVxVwnLLQqIrMqvL/6zQtfVlOkXIJX/ieicRISzDuefi7Ocq9L6IpCNmvWZGUWmYwU8qOfL5HPp9eZNtV3VDw4c497SV3tSaq+kmV+0Hux0PZt7k47enKI30Kc6AHP82XRhg7OPivdebgiAU+WDrvJ47z5y+wHQ638vDRTYiKelhjRFopppbxnMOK+26/ndq7to/WkOcXxN27U6VvDMuFyCmZnN5LbOX19l2UG3RpObR1xUceHC53BaBtOeVe+jaP greghaynes-hp
diff --git a/tripleo-cloud/ssh-keys/jog0 b/tripleo-cloud/ssh-keys/jog0
deleted file mode 100644
index a5233864..00000000
--- a/tripleo-cloud/ssh-keys/jog0
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0Tyk2WgL7C5Bd0/up44EmSmYpbMV+sEl8zqznsTl4L83aDiWoQe5tov9BkRr8kVfcq81w2DoFn6oIa7rx51fG79cAwk42hDfBqscL/LvLaomjgP1T0GwO+tpHEUwVS9xQqOTjc/gTJDDOAHCg+73XW2y0gZw0ML/+wUyDDjJEvtnpXUQhmzzYkDQ2xneNx0Xu68iCue0MnYnAbk4qxF2ds4i34u3tfCHZUYNKGLEOM7Y9BEqlLtqXALuj42xhEj4PPD0quRI2ysgIl1OAbfnJJRA379IrDTHoHRIPdmIuPL9LSF+/2lEwZwwjKYxdnuRgsY/fEH4n0dCSm57pgnuH jog0
diff --git a/tripleo-cloud/ssh-keys/kforde b/tripleo-cloud/ssh-keys/kforde
deleted file mode 100644
index 202d49d4..00000000
--- a/tripleo-cloud/ssh-keys/kforde
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6uMKlcBZv+eZn7sRgSXNeVM70v/SPw00+jS89Py3XFBDGk/D3wkjFiNi/rPHnx62B0yyYB5yUBw27tzXVWlCglB1GcL9gx3mRDLwFxPuSX7gAwfB/fHP8WEZGVP1ueoDNrqztUxzsDHOOuWZOecCrh16gWhM+9AHD4GWZJjgM5Y9QbwytWsSbVExj6Ci6ZkDs3ikc0Xc5qIni7tdfH5JO1iA+Zt5VKAx0yirYA/SZHaeonKuwaYFFI+dQqbRBaR5E8/mrWMfDmbaP2j01hyh4SPUXncTgh9Q6ZbOYcwlza0Vi7xfaewNi8a4M/p/8oHOC/BYdJpj3WH0FIdcAxRB3 kforde@redhat.com
diff --git a/tripleo-cloud/ssh-keys/slagle b/tripleo-cloud/ssh-keys/slagle
deleted file mode 100644
index b2ba5c37..00000000
--- a/tripleo-cloud/ssh-keys/slagle
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSP0DZRAwaTAvHk7mHlLfSwVq6QCRqKn8mE6nwW1UzBmTzKdq9pK5XPqEAQgUKoarl+M+QhCNrBaNKpUqPF1dH76S0+2k2HARrxubTlXsQ9UDQQHQZxGjsrYW9sZ/F7yh4Yac7HW4pZANumyAxt0yKE0BLTZX9JojaiBn7bMzw1i5BS6qXIyH7oohd3YThxkpMCqP4O6W6wX90FSDYPtbSaZ1Q+9hzNkS29bXcsoy6uwTixkfedsCgkLb2wa9jcDHCely94Tn/oR+JjT9OQ19Tq8p/rjL8lullIrkHsEEsQ/4sIlB6441DgbeLtQAPPA7pyw50KfBCyTfHQZWPsacN jslagle@redhat.com
diff --git a/tripleo-cloud/ssh-keys/sshnaidm b/tripleo-cloud/ssh-keys/sshnaidm
deleted file mode 100644
index ae7af6fe..00000000
--- a/tripleo-cloud/ssh-keys/sshnaidm
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDhi/BqsZibuAPiUjJe7b3Dqe5nyI7BckOwfGwJYg436+bFQMoR/7RKmtPe+ISVQ04lwIriIPwKGaSHj5mbEe4LsCLZ5jAUHxvWfgHitqS5ln295zU7vp1z28o7e6LQNplgExyqQlxUPdOU48tmlz93F6szSYkNYvZnhzMn9syrajC74qPuKsmHTeYFLEcxesb7/u+BtxCk8WdjYTb//sk038NEtIsNhrGtAOV3WcDpXnA5mNMpUfeoQ4yiN9LqtreXr7Zeo587LV3T2QL+huAE0J7EuCzHAKk6TIzJqjLidg0SYwZZwfbxgviU66QLkeyzh9oiovwskelvOQCBFq3 sshnaidm@sshnaidm.remote.csb.new
\ No newline at end of file
diff --git a/tripleo-cloud/ssh-keys/tchaypo b/tripleo-cloud/ssh-keys/tchaypo
deleted file mode 100644
index 030572f4..00000000
--- a/tripleo-cloud/ssh-keys/tchaypo
+++ /dev/null
@@ -1,2 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHTSWqWdk6eVfp0LFl9jnuDt6EJczYPDShofoVLWmssWFWFvpTHnqivg6rUdBoPSdpto9SY9iY45CNtdhiBb5DjN2I9N7cuE5lMwGTBmE4+TWh5bke3k/ncovP94SZVMoszU2UahiWCCanm9gw7LjOHH0KEBMQrHQVec5lof0P4EuxpygMWSwbtZ+0f1DGvqGdXAV847vzqGq56WyX2SvdxvpRzaWDxsAbGRamnwk6XxCYVJMuvXy23EmYww5g4rgUT26WPImTerjziM+21m9mVDMDFAhmfqIo/HaULjUyT9rOqUfP61ixCPNp5yw7R9ndl0sIIX1b5Xo4Q3y0hMHZ jp@jamezpolley.com
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyQ/30x6T5OWt9R0BcfYkaTwSEf27K+vGcqnAhs7DIGg1SfVkC+6azuoRG9olbvRpPP1y0yVGkfjLSF+3fsT0tJjNUnBmdSPHD5FVgzW+gOdUNwgTjP+FL4JUoHiSFmUbrQVhbiNu1cqLgJjMzllVfkNevHnMSjU//b9BOB3vnempcAc45eqcDiLTdjL6OMtq31nO/EnERU8j8bKuutnohNxUGMyliNtgvnRPdI0V/SL3i/IqFJp1F3nlUJmzg6kuKFb76pezlHeHesHSJYx598PK6h8cydmfmOvbxpu5jwsDJ/TlCkt9FQLBepaViHM7kaTeHrsAjxq6pOw2y/ETJ jp@jamezpolley.com
diff --git a/tripleo-cloud/tripleo-cd-admins b/tripleo-cloud/tripleo-cd-admins
deleted file mode 100644
index fc8574bb..00000000
--- a/tripleo-cloud/tripleo-cd-admins
+++ /dev/null
@@ -1,8 +0,0 @@
-derekh,derekh@redhat.com,Derek Higgins
-dprince,dprince@redhat.com,Dan Prince
-slagle,jslagle@redhat.com,James Slagle
-bnemec,bnemec@redhat.com,Ben Nemec
-sshnaidm,sshnaidm@redhat.com,Sagi Shnaidman
-emacchi,emilien@redhat.com,Emilien Macchi
-dmanchad,dmanchad@redhat.com,David Manchado Cuesta
-kforde,kforde@redhat.com,Kieran Forde
diff --git a/tripleo-cloud/tripleo-cd-users b/tripleo-cloud/tripleo-cd-users
deleted file mode 100644
index 7cdb1b3b..00000000
--- a/tripleo-cloud/tripleo-cd-users
+++ /dev/null
@@ -1,7 +0,0 @@
-openstack-infra,infra-root@openstack.org,OpenStack CI Service hosts,PTL - used by openstack infra for long lived hosts
-openstack-nodepool,jenkins@openstack.org,OpenStack CI nodepool hosts,PTL - used by openstack infra for test hosts
-tripleo-ci,ci@tripleo.org,OpenStack CI Test Environment hosts,PTL - used by tripleo ci for obtaining IPs from neutron
-rpodolyaka,rpodolyaka@mirantis.com,Roman Podoliaka,ATC
-elizabeth,lyz@princessleia.com,Elizabeth Krumbach Joseph,ATC
-stevenk,steven@wedontsleep.org,Steve Kowalik,ATC
-polleyj,jp@jamezpolley.com,James Polley,ATC
diff --git a/undercloudrc b/undercloudrc
deleted file mode 100644
index ab1ce201..00000000
--- a/undercloudrc
+++ /dev/null
@@ -1,8 +0,0 @@
-export NOVA_VERSION=1.1
-export OS_PASSWORD=$(os-apply-config -m $TE_DATAFILE --type raw --key undercloud.password)
-export OS_AUTH_URL=$(os-apply-config -m $TE_DATAFILE --type raw --key undercloud.endpoint)
-export OS_USERNAME=admin
-export OS_TENANT_NAME=admin
-export COMPUTE_API_VERSION=1.1
-export OS_NO_CACHE=True
-export OS_CLOUDNAME=undercloud