Add scripts to generate doc with examples
This commit is contained in:
parent
690018818e
commit
95a52712ec
93
doc_generate_static.py
Normal file
93
doc_generate_static.py
Normal file
@ -0,0 +1,93 @@
|
||||
# Copyright 2016 Mirantis, 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 then
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import six
|
||||
import os
|
||||
|
||||
from glob import glob
|
||||
|
||||
from bareon_dynamic_allocator import utils
|
||||
from bareon_dynamic_allocator import viewer
|
||||
from bareon_dynamic_allocator.allocators import DynamicAllocator
|
||||
|
||||
|
||||
doc_schemas_path = os.path.join(os.path.dirname(os.path.realpath(__file__)) , 'doc', 'source', 'schemas')
|
||||
doc_schemas_rst_path = os.path.join(os.path.dirname(os.path.realpath(__file__)) , 'doc', 'source', 'examples.rst')
|
||||
|
||||
|
||||
def generate_svg_files():
|
||||
|
||||
result = {}
|
||||
|
||||
for dynamic_schema_path in sorted(glob(os.path.join(doc_schemas_path, '*_ds.yaml'))):
|
||||
print 'Read file {0}'.format(dynamic_schema_path)
|
||||
dynamic_schema = utils.parse_yaml(dynamic_schema_path)
|
||||
dynamic_schema_file_name = os.path.basename(dynamic_schema_path)
|
||||
dynamic_schema_name = os.path.splitext(dynamic_schema_file_name)[0]
|
||||
for hw_info_path in sorted(glob(os.path.join(doc_schemas_path, '*_disk.yaml'))):
|
||||
print 'Read file {0}'.format(hw_info_path)
|
||||
hw_info_file_name = os.path.basename(hw_info_path)
|
||||
hw_info_name = os.path.splitext(hw_info_file_name)[0]
|
||||
hw_info = utils.parse_yaml(hw_info_path)
|
||||
static_schema = DynamicAllocator(hw_info, dynamic_schema).generate_static()
|
||||
|
||||
static_schema_name = '{0}_{1}.svg'.format(dynamic_schema_name, hw_info_name)
|
||||
result[static_schema_name[:-4]] = {
|
||||
'dynamic_schema': os.path.join('schemas', dynamic_schema_file_name),
|
||||
'hw_info': os.path.join('schemas', hw_info_file_name),
|
||||
'image': os.path.join('schemas', static_schema_name)}
|
||||
|
||||
viewer.SVGViewer(static_schema, file_path=os.path.join(doc_schemas_path, static_schema_name), fit=True).show_me()
|
||||
|
||||
rst_doc = """
|
||||
===================
|
||||
Allocation Examples
|
||||
===================
|
||||
|
||||
"""
|
||||
for name, value in sorted(six.iteritems(result)):
|
||||
rst_doc += """
|
||||
|
||||
{topic}
|
||||
-----------------
|
||||
|
||||
Hardware information
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. literalinclude:: {hw_info}
|
||||
:language: yaml
|
||||
|
||||
Dynamic schema
|
||||
~~~~~~~~~~~~~~
|
||||
.. literalinclude:: {dynamic_schema}
|
||||
:language: yaml
|
||||
|
||||
Allocation result
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. image:: {image}
|
||||
:width: 100%
|
||||
|
||||
""".format(
|
||||
topic=name,
|
||||
image=value['image'],
|
||||
hw_info=value['hw_info'],
|
||||
dynamic_schema=value['dynamic_schema'])
|
||||
|
||||
with open(doc_schemas_rst_path, 'w') as f:
|
||||
f.write(rst_doc)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
generate_svg_files()
|
10
examples_gen.sh
Normal file
10
examples_gen.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eux
|
||||
|
||||
export LC_ALL=en_US.UTF-8
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
rm -rf build/doc || true
|
||||
python doc_generate_static.py
|
||||
python setup.py build_sphinx
|
Loading…
Reference in New Issue
Block a user