From d560b1c46566c67275a9b1d33afe8a9894812eaf Mon Sep 17 00:00:00 2001
From: Victoria Martinez de la Cruz <victoria@redhat.com>
Date: Wed, 7 Dec 2016 16:49:30 -0300
Subject: [PATCH] Setting up a development env with devstack instructions

Adds instructions on how to set up a fully functional manila
development environment using Devstack to the Developers Reference.

Partially-implements bp improve-manila-developer-docs

Change-Id: Id9781046716af2e04a0aea2734fbe4590bfd28dc
---
 .../development-environment-devstack.rst      | 100 ++++++++++++++++++
 doc/source/devref/development.environment.rst |  12 ++-
 doc/source/devref/index.rst                   |   1 +
 3 files changed, 109 insertions(+), 4 deletions(-)
 create mode 100644 doc/source/devref/development-environment-devstack.rst

diff --git a/doc/source/devref/development-environment-devstack.rst b/doc/source/devref/development-environment-devstack.rst
new file mode 100644
index 0000000000..ee0900404c
--- /dev/null
+++ b/doc/source/devref/development-environment-devstack.rst
@@ -0,0 +1,100 @@
+..
+      Copyright 2016 Red Hat, Inc.
+      All Rights Reserved.
+      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.
+
+Setting up a development environment with devstack
+==================================================
+
+This page describes how to setup a working development
+environment that can be used in deploying manila on latest releases
+of Ubuntu or Fedora. These instructions assume you are already familiar
+with git. Refer to `Getting the code`_ for additional information.
+
+.. _Getting the code: http://wiki.openstack.org/GettingTheCode
+
+Following these instructions will allow you to have a fully functional manila
+environment using the devstack project (a shell script to build
+complete OpenStack development environments).
+
+Configuring devstack with manila
+--------------------------------
+
+Manila
+``````
+
+Manila can be enabled in devstack by using the plug-in based interface it
+offers.
+
+Start by cloning the devstack repository:
+
+::
+
+    git clone https://github.com/openstack-dev/devstack
+
+Change to devstack directory:
+
+::
+
+    cd devstack/
+
+Copy the local.conf sample file to the upper level directory:
+
+::
+
+    cp sample/local.conf ../
+
+Enable the manila plugin adding the following line to the end of the local.conf file:
+
+::
+
+    enable_plugin manila https://github.com/openstack/manila
+
+Manila UI
+`````````
+
+In order to use the manila UI you will need to enable the UI plugin separately.
+
+This is done in a similar fashion than enabling manila for devstack.
+
+Make sure you have horizon enabled (enabled by default in current devstack).
+
+Then, enable the manila UI plugin adding the following line to the end of the local.conf file,
+just after manila plugin enablement:
+
+::
+
+    enable_plugin manila-ui https://github.com/openstack/manila-ui
+
+Running devstack
+----------------
+
+Run the stack.sh script:
+
+::
+
+    ./stack.sh
+
+After it completes, you should have manila services running.
+You can check if they are running by attaching to the screen:
+
+::
+
+    screen -r stack
+
+And navigating to the manila service tabs (use ctrl+a n, ctrl+a p,
+ctrl+a " <screen number> to navigate,
+ctrl+a esc to enter scrollback mode
+and ctrl+a d to detach from the screen).
+
+If you enabled manila UI as well, you should be able to access manila UI
+from the dashboard.
diff --git a/doc/source/devref/development.environment.rst b/doc/source/devref/development.environment.rst
index 1c8675a904..91c25ce459 100644
--- a/doc/source/devref/development.environment.rst
+++ b/doc/source/devref/development.environment.rst
@@ -21,15 +21,19 @@ Setting Up a Development Environment
 This page describes how to setup a working Python development
 environment that can be used in developing manila on Ubuntu, Fedora or
 Mac OS X. These instructions assume you're already familiar with
-git. Refer to GettingTheCode_ for additional information.
+git. Refer to `Getting the code`_ for additional information.
 
-.. _GettingTheCode: http://wiki.openstack.org/GettingTheCode
+.. _Getting the code: http://wiki.openstack.org/GettingTheCode
 
 Following these instructions will allow you to run the manila unit
 tests. If you want to be able to run manila (i.e., create NFS/CIFS shares),
-you will also need to install dependent projects: Nova, Neutron, Cinder and Glance.
-For this purpose 'devstack' project can be used (A documented shell script to build complete OpenStack development environments).
+you will also need to install dependent projects: nova, neutron, cinder and glance.
+For this purpose 'devstack' project can be used (A documented shell script to build
+complete OpenStack development environments).
+You can check out `Setting up a development environment with devstack`_ for instructions
+on how to enable manila on devstack.
 
+.. _Setting up a development environment with devstack: http://docs.openstack.org/developer/manila/devref/development_environment_devstack.html
 
 Virtual environments
 --------------------
diff --git a/doc/source/devref/index.rst b/doc/source/devref/index.rst
index b46e8a99cd..8cf57c7917 100644
--- a/doc/source/devref/index.rst
+++ b/doc/source/devref/index.rst
@@ -27,6 +27,7 @@ Programming HowTos and Tutorials
     :maxdepth: 3
 
     development.environment
+    development-environment-devstack
     unit_tests
     tempest_tests
     addmethod.openstackapi