diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 0000000..1c272e1
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,6 @@
+[run]
+branch = True
+source = telemetry_tempest_plugin
+
+[report]
+ignore_errors = True
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..59b35f5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,59 @@
+*.py[cod]
+
+# C extensions
+*.so
+
+# Packages
+*.egg*
+*.egg-info
+dist
+build
+eggs
+parts
+bin
+var
+sdist
+develop-eggs
+.installed.cfg
+lib
+lib64
+
+# Installer logs
+pip-log.txt
+
+# Unit test / coverage reports
+cover/
+.coverage*
+!.coveragerc
+.tox
+nosetests.xml
+.testrepository
+.stestr
+.venv
+
+# Translations
+*.mo
+
+# Mr Developer
+.mr.developer.cfg
+.project
+.pydevproject
+
+# Complexity
+output/*.html
+output/*/index.html
+
+# Sphinx
+doc/build
+
+# pbr generates these
+AUTHORS
+ChangeLog
+
+# Editors
+*~
+.*.swp
+.*sw?
+
+# Files created by releasenotes build
+releasenotes/build
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..3f8b45f
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,4 @@
+[gerrit]
+host=review.openstack.org
+port=29418
+project=openstack/ceilometer-tempest-plugin.git
diff --git a/.mailmap b/.mailmap
new file mode 100644
index 0000000..516ae6f
--- /dev/null
+++ b/.mailmap
@@ -0,0 +1,3 @@
+# Format is:
+# <preferred e-mail> <other e-mail 1>
+# <preferred e-mail> <other e-mail 2>
diff --git a/.stestr.conf b/.stestr.conf
new file mode 100644
index 0000000..0a7eb58
--- /dev/null
+++ b/.stestr.conf
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./telemetry_tempest_plugin/tests
+top_dir=./
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
new file mode 100644
index 0000000..94e0794
--- /dev/null
+++ b/CONTRIBUTING.rst
@@ -0,0 +1,17 @@
+If you would like to contribute to the development of OpenStack, you must
+follow the steps in this page:
+
+   http://docs.openstack.org/infra/manual/developers.html
+
+If you already have a good understanding of how the system works and your
+OpenStack accounts are set up, you can skip to the development workflow
+section of this documentation to learn how changes to OpenStack should be
+submitted for review via the Gerrit tool:
+
+   http://docs.openstack.org/infra/manual/developers.html#development-workflow
+
+Pull requests submitted through GitHub will be ignored.
+
+Bugs should be filed on Launchpad, not GitHub:
+
+   https://bugs.launchpad.net/telemetry_tempest_plugin
diff --git a/HACKING.rst b/HACKING.rst
new file mode 100644
index 0000000..cd3c49c
--- /dev/null
+++ b/HACKING.rst
@@ -0,0 +1,4 @@
+openstack Style Commandments
+===============================================
+
+Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..68c771a
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,176 @@
+
+                                 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.
+
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..43087dc
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,12 @@
+========================
+Telemetry Tempest Plugin
+========================
+
+Tempest plugin for Telemetry Project.
+
+It contains tempest tests for Aodh, Ceilometer, Gnocchi and Panko Projects.
+
+* Free software: Apache license
+* Documentation: https://docs.openstack.org/developer/ceilometer
+* Source: https://git.openstack.org/cgit/openstack/telemetry-tempest-plugin
+* Bugs: https://bugs.launchpad.net/ceilometer
diff --git a/babel.cfg b/babel.cfg
new file mode 100644
index 0000000..15cd6cb
--- /dev/null
+++ b/babel.cfg
@@ -0,0 +1,2 @@
+[python: **.py]
+
diff --git a/doc/source/conf.py b/doc/source/conf.py
new file mode 100755
index 0000000..3d9b56e
--- /dev/null
+++ b/doc/source/conf.py
@@ -0,0 +1,81 @@
+# -*- coding: utf-8 -*-
+# 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
+import sys
+
+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',
+    'openstackdocstheme',
+    #'sphinx.ext.intersphinx',
+]
+
+# autodoc generation is a bit aggressive and a nuisance when doing heavy
+# text edit cycles.
+# execute "export SPHINX_DEBUG=1" in your terminal to disable
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'openstack'
+copyright = u'2017, OpenStack Developers'
+
+# openstackdocstheme options
+repository_name = 'openstack/openstack'
+bug_project = 'telemetry_tempest_plugin'
+bug_tag = ''
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+add_module_names = True
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# -- Options for HTML output --------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  Major themes that come with
+# Sphinx are currently 'default' and 'sphinxdoc'.
+# html_theme_path = ["."]
+# html_theme = '_theme'
+# html_static_path = ['static']
+html_theme = 'openstackdocs'
+
+# 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 Developers', 'manual'),
+]
+
+# Example configuration for intersphinx: refer to the Python standard library.
+#intersphinx_mapping = {'http://docs.python.org/': None}
diff --git a/doc/source/contributing.rst b/doc/source/contributing.rst
new file mode 100644
index 0000000..2aa0707
--- /dev/null
+++ b/doc/source/contributing.rst
@@ -0,0 +1,4 @@
+============
+Contributing
+============
+.. include:: ../../../CONTRIBUTING.rst
diff --git a/doc/source/index.rst b/doc/source/index.rst
new file mode 100644
index 0000000..cc2c1aa
--- /dev/null
+++ b/doc/source/index.rst
@@ -0,0 +1,24 @@
+.. openstack documentation master file, created by
+   sphinx-quickstart on Tue Jul  9 22:26:36 2013.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+=========================================================
+Welcome to the documentation of telemetry_tempest_plugin
+=========================================================
+
+Contents:
+
+.. toctree::
+   :maxdepth: 2
+
+   readme
+   installation
+   contributor
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
diff --git a/doc/source/installation.rst b/doc/source/installation.rst
new file mode 100644
index 0000000..28c6297
--- /dev/null
+++ b/doc/source/installation.rst
@@ -0,0 +1,13 @@
+============
+Installation
+============
+
+Tempest automatically discovers installed plugins. That's why you just need
+to install the Python packages that contains the Telemetry Tempest plugin in
+the same environment where Tempest is installed.
+
+At the command line::
+
+    $ git clone https://git.openstack.org/openstack/telemetry-tempest-plugin
+    $ cd telemetry-tempest-plugin/
+    $ pip install telemetry-tempest-plugin
diff --git a/doc/source/readme.rst b/doc/source/readme.rst
new file mode 100644
index 0000000..a6210d3
--- /dev/null
+++ b/doc/source/readme.rst
@@ -0,0 +1 @@
+.. include:: ../../README.rst
diff --git a/ceilometer/tests/tempest/__init__.py b/releasenotes/notes/.placeholder
similarity index 100%
rename from ceilometer/tests/tempest/__init__.py
rename to releasenotes/notes/.placeholder
diff --git a/ceilometer/tests/integration/__init__.py b/releasenotes/source/_static/.placeholder
similarity index 100%
copy from ceilometer/tests/integration/__init__.py
copy to releasenotes/source/_static/.placeholder
diff --git a/ceilometer/tests/integration/__init__.py b/releasenotes/source/_templates/.placeholder
similarity index 100%
copy from ceilometer/tests/integration/__init__.py
copy to releasenotes/source/_templates/.placeholder
diff --git a/releasenotes/source/conf.py b/releasenotes/source/conf.py
new file mode 100644
index 0000000..24e5e0e
--- /dev/null
+++ b/releasenotes/source/conf.py
@@ -0,0 +1,280 @@
+# -*- coding: utf-8 -*-
+# 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.
+
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+# sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'openstackdocstheme',
+    'reno.sphinxext',
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+# source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'telemetry_tempest_plugin Release Notes'
+copyright = u'2017, OpenStack Developers'
+
+# openstackdocstheme options
+repository_name = 'openstack/openstack'
+bug_project = 'telemetry_tempest_plugin'
+bug_tag = ''
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+# The full version, including alpha/beta/rc tags.
+release = ''
+# The short X.Y version.
+version = ''
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+# language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+# today = ''
+# Else, today_fmt is used as the format for a strftime call.
+# today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = []
+
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
+# default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+# add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+# add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+# show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+# modindex_common_prefix = []
+
+# If true, keep warnings as "system message" paragraphs in the built documents.
+# keep_warnings = False
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+html_theme = 'openstackdocs'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+# html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+# html_theme_path = []
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+# html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+# html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+# html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+# html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Add any extra paths that contain custom files (such as robots.txt or
+# .htaccess) here, relative to this directory. These files are copied
+# directly to the root of the documentation.
+# html_extra_path = []
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+# html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+# html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+# html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+# html_additional_pages = {}
+
+# If false, no module index is generated.
+# html_domain_indices = True
+
+# If false, no index is generated.
+# html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+# html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+# html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+# html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+# html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+# html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+# html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'telemetry_tempest_pluginReleaseNotesdoc'
+
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    # 'preamble': '',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    ('index', 'telemetry_tempest_pluginReleaseNotes.tex',
+     u'telemetry_tempest_plugin  Release Notes Documentation',
+     u'OpenStack Foundation', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+# latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+# latex_use_parts = False
+
+# If true, show page references after internal links.
+# latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+# latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+# latex_appendices = []
+
+# If false, no module index is generated.
+# latex_domain_indices = True
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    ('index', 'telemetry_tempest_pluginrereleasenotes',
+     u'telemetry_tempest_plugin  Release Notes Documentation',
+     [u'OpenStack Foundation'], 1)
+]
+
+# If true, show URL addresses after external links.
+# man_show_urls = False
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    ('index', 'telemetry_tempest_plugin ReleaseNotes',
+     u'telemetry_tempest_plugin Release Notes Documentation',
+     u'OpenStack Foundation', 'telemetry_tempest_pluginReleaseNotes',
+     'One line description of project.',
+     'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+# texinfo_appendices = []
+
+# If false, no module index is generated.
+# texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+# texinfo_show_urls = 'footnote'
+
+# If true, do not generate a @detailmenu in the "Top" node's menu.
+# texinfo_no_detailmenu = False
+
+# -- Options for Internationalization output ------------------------------
+locale_dirs = ['locale/']
diff --git a/releasenotes/source/index.rst b/releasenotes/source/index.rst
new file mode 100644
index 0000000..cfefd10
--- /dev/null
+++ b/releasenotes/source/index.rst
@@ -0,0 +1,8 @@
+============================================
+ telemetry_tempest_plugin Release Notes
+============================================
+
+.. toctree::
+   :maxdepth: 1
+
+   unreleased
diff --git a/releasenotes/source/unreleased.rst b/releasenotes/source/unreleased.rst
new file mode 100644
index 0000000..cd22aab
--- /dev/null
+++ b/releasenotes/source/unreleased.rst
@@ -0,0 +1,5 @@
+==============================
+ Current Series Release Notes
+==============================
+
+.. release-notes::
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..e966767
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,11 @@
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
+
+pbr>=2.0 # Apache-2.0
+oslo.config>=5.1.0 # Apache-2.0
+oslo.utils>=3.31.0 # Apache-2.0
+six>=1.10.0 # MIT
+tempest>=17.1.0 # Apache-2.0
+ujson
+gabbi>=1.30.0 # Apache-2.0
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..31fc568
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,51 @@
+[metadata]
+name = telemetry_tempest_plugin
+summary = Tempest plugin for Telemetry Projects
+description-file =
+    README.rst
+author = OpenStack
+author-email = openstack-dev@lists.openstack.org
+home-page = http://www.openstack.org/
+classifier =
+    Environment :: OpenStack
+    Intended Audience :: Information Technology
+    Intended Audience :: System Administrators
+    License :: OSI Approved :: Apache Software License
+    Operating System :: POSIX :: Linux
+    Programming Language :: Python
+    Programming Language :: Python :: 2
+    Programming Language :: Python :: 2.7
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3.3
+    Programming Language :: Python :: 3.4
+
+[files]
+packages =
+    telemetry_tempest_plugin
+
+[entry_points]
+tempest.test_plugins =
+    telemetry_tests = telemetry_tempest_plugin.plugin:TelemetryTempestPlugin
+
+[build_sphinx]
+all-files = 1
+warning-is-error = 1
+source-dir = doc/source
+build-dir = doc/build
+
+[upload_sphinx]
+upload-dir = doc/build/html
+
+[compile_catalog]
+directory = telemetry_tempest_plugin/locale
+domain = telemetry_tempest_plugin
+
+[update_catalog]
+domain = telemetry_tempest_plugin
+output_dir = telemetry_tempest_plugin/locale
+input_file = telemetry_tempest_plugin/locale/telemetry_tempest_plugin.pot
+
+[extract_messages]
+keywords = _ gettext ngettext l_ lazy_gettext
+mapping_file = babel.cfg
+output_file = telemetry_tempest_plugin/locale/telemetry_tempest_plugin.pot
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..056c16c
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,29 @@
+# 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.
+
+# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
+import setuptools
+
+# In python < 2.7.4, a lazy loading of package `pbr` will break
+# setuptools if some other modules registered functions in `atexit`.
+# solution from: http://bugs.python.org/issue15881#msg170215
+try:
+    import multiprocessing  # noqa
+except ImportError:
+    pass
+
+setuptools.setup(
+    setup_requires=['pbr'],
+    pbr=True)
diff --git a/ceilometer/tests/integration/__init__.py b/telemetry_tempest_plugin/__init__.py
similarity index 100%
copy from ceilometer/tests/integration/__init__.py
copy to telemetry_tempest_plugin/__init__.py
diff --git a/ceilometer/tests/tempest/aodh/__init__.py b/telemetry_tempest_plugin/aodh/__init__.py
similarity index 100%
rename from ceilometer/tests/tempest/aodh/__init__.py
rename to telemetry_tempest_plugin/aodh/__init__.py
diff --git a/ceilometer/tests/tempest/aodh/api/__init__.py b/telemetry_tempest_plugin/aodh/api/__init__.py
similarity index 100%
rename from ceilometer/tests/tempest/aodh/api/__init__.py
rename to telemetry_tempest_plugin/aodh/api/__init__.py
diff --git a/ceilometer/tests/tempest/aodh/api/base.py b/telemetry_tempest_plugin/aodh/api/base.py
similarity index 96%
rename from ceilometer/tests/tempest/aodh/api/base.py
rename to telemetry_tempest_plugin/aodh/api/base.py
index e31e4a1..92339b7 100644
--- a/ceilometer/tests/tempest/aodh/api/base.py
+++ b/telemetry_tempest_plugin/aodh/api/base.py
@@ -15,7 +15,7 @@
 from tempest.lib import exceptions as lib_exc
 import tempest.test
 
-from ceilometer.tests.tempest.aodh.service import client
+from telemetry_tempest_plugin.aodh.service import client
 
 CONF = config.CONF
 
diff --git a/ceilometer/tests/tempest/aodh/api/test_alarming_api.py b/telemetry_tempest_plugin/aodh/api/test_alarming_api.py
similarity index 98%
rename from ceilometer/tests/tempest/aodh/api/test_alarming_api.py
rename to telemetry_tempest_plugin/aodh/api/test_alarming_api.py
index e485d8d..bb486e5 100644
--- a/ceilometer/tests/tempest/aodh/api/test_alarming_api.py
+++ b/telemetry_tempest_plugin/aodh/api/test_alarming_api.py
@@ -14,7 +14,7 @@
 from tempest.lib import decorators
 from tempest.lib import exceptions as lib_exc
 
-from ceilometer.tests.tempest.aodh.api import base
+from telemetry_tempest_plugin.aodh.api import base
 
 
 class TelemetryAlarmingAPITest(base.BaseAlarmingTest):
diff --git a/ceilometer/tests/tempest/aodh/api/test_alarming_api_negative.py b/telemetry_tempest_plugin/aodh/api/test_alarming_api_negative.py
similarity index 97%
rename from ceilometer/tests/tempest/aodh/api/test_alarming_api_negative.py
rename to telemetry_tempest_plugin/aodh/api/test_alarming_api_negative.py
index 6795672..0707f67 100644
--- a/ceilometer/tests/tempest/aodh/api/test_alarming_api_negative.py
+++ b/telemetry_tempest_plugin/aodh/api/test_alarming_api_negative.py
@@ -17,7 +17,7 @@
 from tempest.lib import decorators
 from tempest.lib import exceptions as lib_exc
 
-from ceilometer.tests.tempest.aodh.api import base
+from telemetry_tempest_plugin.aodh.api import base
 
 
 class TelemetryAlarmingNegativeTest(base.BaseAlarmingTest):
diff --git a/ceilometer/tests/tempest/aodh/service/__init__.py b/telemetry_tempest_plugin/aodh/service/__init__.py
similarity index 100%
rename from ceilometer/tests/tempest/aodh/service/__init__.py
rename to telemetry_tempest_plugin/aodh/service/__init__.py
diff --git a/ceilometer/tests/tempest/aodh/service/client.py b/telemetry_tempest_plugin/aodh/service/client.py
similarity index 100%
rename from ceilometer/tests/tempest/aodh/service/client.py
rename to telemetry_tempest_plugin/aodh/service/client.py
diff --git a/ceilometer/tests/tempest/config.py b/telemetry_tempest_plugin/config.py
similarity index 100%
rename from ceilometer/tests/tempest/config.py
rename to telemetry_tempest_plugin/config.py
diff --git a/ceilometer/tests/tempest/exceptions.py b/telemetry_tempest_plugin/exceptions.py
similarity index 100%
rename from ceilometer/tests/tempest/exceptions.py
rename to telemetry_tempest_plugin/exceptions.py
diff --git a/ceilometer/tests/integration/__init__.py b/telemetry_tempest_plugin/integration/__init__.py
similarity index 100%
rename from ceilometer/tests/integration/__init__.py
rename to telemetry_tempest_plugin/integration/__init__.py
diff --git a/ceilometer/tests/integration/gabbi/__init__.py b/telemetry_tempest_plugin/integration/gabbi/__init__.py
similarity index 100%
rename from ceilometer/tests/integration/gabbi/__init__.py
rename to telemetry_tempest_plugin/integration/gabbi/__init__.py
diff --git a/ceilometer/tests/integration/gabbi/gabbits-live/aodh-gnocchi-threshold-alarm.yaml b/telemetry_tempest_plugin/integration/gabbi/gabbits-live/aodh-gnocchi-threshold-alarm.yaml
similarity index 100%
rename from ceilometer/tests/integration/gabbi/gabbits-live/aodh-gnocchi-threshold-alarm.yaml
rename to telemetry_tempest_plugin/integration/gabbi/gabbits-live/aodh-gnocchi-threshold-alarm.yaml
diff --git a/ceilometer/tests/integration/gabbi/gabbits-live/autoscaling.yaml b/telemetry_tempest_plugin/integration/gabbi/gabbits-live/autoscaling.yaml
similarity index 100%
rename from ceilometer/tests/integration/gabbi/gabbits-live/autoscaling.yaml
rename to telemetry_tempest_plugin/integration/gabbi/gabbits-live/autoscaling.yaml
diff --git a/ceilometer/tests/integration/gabbi/gabbits-live/create_stack.json b/telemetry_tempest_plugin/integration/gabbi/gabbits-live/create_stack.json
similarity index 100%
rename from ceilometer/tests/integration/gabbi/gabbits-live/create_stack.json
rename to telemetry_tempest_plugin/integration/gabbi/gabbits-live/create_stack.json
diff --git a/ceilometer/tests/integration/gabbi/gabbits-live/update_stack.json b/telemetry_tempest_plugin/integration/gabbi/gabbits-live/update_stack.json
similarity index 100%
rename from ceilometer/tests/integration/gabbi/gabbits-live/update_stack.json
rename to telemetry_tempest_plugin/integration/gabbi/gabbits-live/update_stack.json
diff --git a/ceilometer/tests/integration/gabbi/test_gabbi_live.py b/telemetry_tempest_plugin/integration/gabbi/test_gabbi_live.py
similarity index 100%
rename from ceilometer/tests/integration/gabbi/test_gabbi_live.py
rename to telemetry_tempest_plugin/integration/gabbi/test_gabbi_live.py
diff --git a/ceilometer/tests/integration/hooks/post_test_hook.sh b/telemetry_tempest_plugin/integration/hooks/post_test_hook.sh
similarity index 97%
rename from ceilometer/tests/integration/hooks/post_test_hook.sh
rename to telemetry_tempest_plugin/integration/hooks/post_test_hook.sh
index 37a4e2b..ca3f5be 100755
--- a/ceilometer/tests/integration/hooks/post_test_hook.sh
+++ b/telemetry_tempest_plugin/integration/hooks/post_test_hook.sh
@@ -84,7 +84,7 @@
 sudo chown -R tempest:stack $BASE/data/tempest
 cd $BASE/new/tempest
 set +e
-sudo -H -u tempest OS_TEST_TIMEOUT=$TEMPEST_OS_TEST_TIMEOUT tox -eall-plugin -- ceilometer.tests.tempest.scenario.test_telemetry_integration --concurrency=$TEMPEST_CONCURRENCY
+sudo -H -u tempest OS_TEST_TIMEOUT=$TEMPEST_OS_TEST_TIMEOUT tox -eall-plugin -- telemetry_tempest_plugin.scenario.test_telemetry_integration --concurrency=$TEMPEST_CONCURRENCY
 EXIT_CODE=$?
 set -e
 export_subunit_data "all-plugin"
diff --git a/ceilometer/tests/tempest/plugin.py b/telemetry_tempest_plugin/plugin.py
similarity index 88%
rename from ceilometer/tests/tempest/plugin.py
rename to telemetry_tempest_plugin/plugin.py
index e529011..0d8fdfd 100644
--- a/ceilometer/tests/tempest/plugin.py
+++ b/telemetry_tempest_plugin/plugin.py
@@ -18,16 +18,15 @@
 from tempest import config
 from tempest.test_discover import plugins
 
-import ceilometer
-from ceilometer.tests.tempest import config as tempest_config
+from telemetry_tempest_plugin import config as tempest_config
 
 
-class CeilometerTempestPlugin(plugins.TempestPlugin):
+class TelemetryTempestPlugin(plugins.TempestPlugin):
 
     def load_tests(self):
         base_path = os.path.split(os.path.dirname(
-            os.path.abspath(ceilometer.__file__)))[0]
-        test_dir = "ceilometer/tests/tempest"
+            os.path.abspath(__file__)))[0]
+        test_dir = "telemetry_tempest_plugin"
         full_test_dir = os.path.join(base_path, test_dir)
         return full_test_dir, base_path
 
diff --git a/ceilometer/tests/tempest/scenario/__init__.py b/telemetry_tempest_plugin/scenario/__init__.py
similarity index 100%
rename from ceilometer/tests/tempest/scenario/__init__.py
rename to telemetry_tempest_plugin/scenario/__init__.py
diff --git a/ceilometer/tests/tempest/scenario/test_telemetry_integration.py b/telemetry_tempest_plugin/scenario/test_telemetry_integration.py
similarity index 98%
rename from ceilometer/tests/tempest/scenario/test_telemetry_integration.py
rename to telemetry_tempest_plugin/scenario/test_telemetry_integration.py
index 87b17e3..aba412f 100644
--- a/ceilometer/tests/tempest/scenario/test_telemetry_integration.py
+++ b/telemetry_tempest_plugin/scenario/test_telemetry_integration.py
@@ -19,7 +19,7 @@
 from tempest import config
 from tempest.scenario import manager
 
-TEST_DIR = os.path.join(os.path.dirname(__file__), '..', '..',
+TEST_DIR = os.path.join(os.path.dirname(__file__), '..',
                         'integration', 'gabbi', 'gabbits-live')
 
 
diff --git a/test-requirements.txt b/test-requirements.txt
new file mode 100644
index 0000000..e363ddc
--- /dev/null
+++ b/test-requirements.txt
@@ -0,0 +1,10 @@
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
+
+hacking>=0.12.0,<0.13 # Apache-2.0
+
+sphinx>=1.6.2 # BSD
+openstackdocstheme>=1.11.0  # Apache-2.0
+# releasenotes
+reno>=1.8.0 # Apache-2.0
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..77f1cb8
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,50 @@
+[tox]
+minversion = 2.0
+envlist = py34,py27,pypy,pep8
+skipsdist = True
+
+[testenv]
+usedevelop = True
+install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
+setenv =
+   VIRTUAL_ENV={envdir}
+   PYTHONWARNINGS=default::DeprecationWarning
+   OS_STDOUT_CAPTURE=1
+   OS_STDERR_CAPTURE=1
+   OS_TEST_TIMEOUT=60
+deps = -r{toxinidir}/test-requirements.txt
+commands = stestr run {posargs}
+
+[testenv:pep8]
+commands = flake8 {posargs}
+
+[testenv:venv]
+commands = {posargs}
+
+[testenv:cover]
+setenv =
+    VIRTUAL_ENV={envdir}
+    PYTHON=coverage run --source telemetry_tempest_plugin --parallel-mode
+commands =
+    stestr run {posargs}
+    coverage combine
+    coverage html -d cover
+    coverage xml -o cover/coverage.xml
+
+[testenv:docs]
+commands = python setup.py build_sphinx
+
+[testenv:releasenotes]
+commands =
+  sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
+
+[testenv:debug]
+commands = oslo_debug_helper {posargs}
+
+[flake8]
+# E123, E125 skipped as they are invalid PEP-8.
+
+show-source = True
+ignore = E123,E125
+builtins = _
+exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
