diff --git a/ara/cli/generate.py b/ara/cli/generate.py
index c2363e74..71d562a4 100644
--- a/ara/cli/generate.py
+++ b/ara/cli/generate.py
@@ -15,12 +15,14 @@
# You should have received a copy of the GNU General Public License
# along with ARA. If not, see .
+import datetime
import logging
import os
import six
import sys
from ara import models
+from ara import utils
from cliff.command import Command
from flask_frozen import Freezer, walk_directory
from flask_frozen import MissingURLGeneratorWarning
@@ -28,6 +30,8 @@ from junit_xml import TestCase
from junit_xml import TestSuite
from oslo_utils import encodeutils
from oslo_serialization import jsonutils
+from subunit import iso8601
+from subunit.v2 import StreamResultToBytes
from warnings import filterwarnings
@@ -152,3 +156,121 @@ class GenerateJunit(Command):
else:
with open(args.output_file, 'wb') as f:
f.write(encodeutils.safe_encode(xml_string))
+
+
+class GenerateSubunit(Command):
+ """ Generate subunit binary stream from ARA data """
+ log = logging.getLogger(__name__)
+
+ def get_parser(self, prog_name):
+ parser = super(GenerateSubunit, self).get_parser(prog_name)
+ parser.add_argument(
+ 'output_file',
+ metavar='