Move oslo config generator config inside package

This commit moves the oslo config generator config file from living as
a data file, which makes it very difficult to rely on, to just living
in the package. By including it in the package we have a guaranteed
relative path we can rely on for building utilities on it, like the
tempest init command.

Change-Id: I5b9deae733f42fe3ed39418103304f71b43dccb3
Partially-implements: bp tempest-run-cmd
diff --git a/tempest/cmd/init.py b/tempest/cmd/init.py
index 77d62d3..ddd5542 100644
--- a/tempest/cmd/init.py
+++ b/tempest/cmd/init.py
@@ -18,6 +18,7 @@
 import sys
 
 from cliff import command
+from oslo_config import generator
 from oslo_log import log as logging
 from six import moves
 
@@ -125,17 +126,16 @@
         else:
             LOG.warning("Global config dir %s can't be found" % config_dir)
 
-    def generate_sample_config(self, local_dir, config_dir):
-        if os.path.isdir(config_dir):
-            conf_generator = os.path.join(config_dir,
-                                          'config-generator.tempest.conf')
-
-            subprocess.call(['oslo-config-generator', '--config-file',
-                             conf_generator],
-                            cwd=local_dir)
+    def generate_sample_config(self, local_dir):
+        conf_generator = os.path.join(os.path.dirname(__file__),
+                                      'config-generator.tempest.conf')
+        output_file = os.path.join(local_dir, 'etc/tempest.conf.sample')
+        if os.path.isfile(conf_generator):
+            generator.main(['--config-file', conf_generator, '--output-file',
+                            output_file])
         else:
             LOG.warning("Skipping sample config generation because global "
-                        "config dir %s can't be found" % config_dir)
+                        "config file %s can't be found" % conf_generator)
 
     def create_working_dir(self, local_dir, config_dir):
         # Create local dir if missing
@@ -162,7 +162,7 @@
         # Create and copy local etc dir
         self.copy_config(etc_dir, config_dir)
         # Generate the sample config file
-        self.generate_sample_config(local_dir, config_dir)
+        self.generate_sample_config(local_dir)
         # Update local confs to reflect local paths
         self.update_local_conf(config_path, lock_dir, log_dir)
         # Generate a testr conf file