Revision 7d350685

/dev/null
1
# Makefile for Sphinx documentation
2
#
3

  
4
# You can set these variables from the command line.
5
SPHINXOPTS    =
6
SPHINXBUILD   = sphinx-build
7
PAPER         =
8
BUILDDIR      = _build
9

  
10
# Internal variables.
11
PAPEROPT_a4     = -D latex_paper_size=a4
12
PAPEROPT_letter = -D latex_paper_size=letter
13
ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
14
# the i18n builder cannot share the environment and doctrees with the others
15
I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
16

  
17
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
18

  
19
help:
20
	@echo "Please use \`make <target>' where <target> is one of"
21
	@echo "  html       to make standalone HTML files"
22
	@echo "  dirhtml    to make HTML files named index.html in directories"
23
	@echo "  singlehtml to make a single large HTML file"
24
	@echo "  pickle     to make pickle files"
25
	@echo "  json       to make JSON files"
26
	@echo "  htmlhelp   to make HTML files and a HTML help project"
27
	@echo "  qthelp     to make HTML files and a qthelp project"
28
	@echo "  devhelp    to make HTML files and a Devhelp project"
29
	@echo "  epub       to make an epub"
30
	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
31
	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
32
	@echo "  text       to make text files"
33
	@echo "  man        to make manual pages"
34
	@echo "  texinfo    to make Texinfo files"
35
	@echo "  info       to make Texinfo files and run them through makeinfo"
36
	@echo "  gettext    to make PO message catalogs"
37
	@echo "  changes    to make an overview of all changed/added/deprecated items"
38
	@echo "  linkcheck  to check all external links for integrity"
39
	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
40

  
41
clean:
42
	-rm -rf $(BUILDDIR)/*
43

  
44
html:
45
	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
46
	@echo
47
	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
48

  
49
dirhtml:
50
	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
51
	@echo
52
	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
53

  
54
singlehtml:
55
	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
56
	@echo
57
	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
58

  
59
pickle:
60
	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
61
	@echo
62
	@echo "Build finished; now you can process the pickle files."
63

  
64
json:
65
	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
66
	@echo
67
	@echo "Build finished; now you can process the JSON files."
68

  
69
htmlhelp:
70
	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
71
	@echo
72
	@echo "Build finished; now you can run HTML Help Workshop with the" \
73
	      ".hhp project file in $(BUILDDIR)/htmlhelp."
74

  
75
qthelp:
76
	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
77
	@echo
78
	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
79
	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
80
	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/snf-occi.qhcp"
81
	@echo "To view the help file:"
82
	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/snf-occi.qhc"
83

  
84
devhelp:
85
	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
86
	@echo
87
	@echo "Build finished."
88
	@echo "To view the help file:"
89
	@echo "# mkdir -p $$HOME/.local/share/devhelp/snf-occi"
90
	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/snf-occi"
91
	@echo "# devhelp"
92

  
93
epub:
94
	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
95
	@echo
96
	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
97

  
98
latex:
99
	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
100
	@echo
101
	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
102
	@echo "Run \`make' in that directory to run these through (pdf)latex" \
103
	      "(use \`make latexpdf' here to do that automatically)."
104

  
105
latexpdf:
106
	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
107
	@echo "Running LaTeX files through pdflatex..."
108
	$(MAKE) -C $(BUILDDIR)/latex all-pdf
109
	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
110

  
111
text:
112
	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
113
	@echo
114
	@echo "Build finished. The text files are in $(BUILDDIR)/text."
115

  
116
man:
117
	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
118
	@echo
119
	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
120

  
121
texinfo:
122
	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
123
	@echo
124
	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
125
	@echo "Run \`make' in that directory to run these through makeinfo" \
126
	      "(use \`make info' here to do that automatically)."
127

  
128
info:
129
	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
130
	@echo "Running Texinfo files through makeinfo..."
131
	make -C $(BUILDDIR)/texinfo info
132
	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
133

  
134
gettext:
135
	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
136
	@echo
137
	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
138

  
139
changes:
140
	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
141
	@echo
142
	@echo "The overview file is in $(BUILDDIR)/changes."
143

  
144
linkcheck:
145
	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
146
	@echo
147
	@echo "Link check complete; look for any errors in the above output " \
148
	      "or in $(BUILDDIR)/linkcheck/output.txt."
149

  
150
doctest:
151
	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
152
	@echo "Testing of doctests in the sources finished, look at the " \
153
	      "results in $(BUILDDIR)/doctest/output.txt."
/dev/null
1
import sys, os
2

  
3
sys.path.insert(0, os.path.abspath('../'))
4
from synnefo_tools.version import __version__
5

  
6
extensions = []
7

  
8
# Add any paths that contain templates here, relative to this directory.
9
templates_path = ['_templates']
10

  
11
# The suffix of source filenames.
12
source_suffix = '.rst'
13

  
14
# The encoding of source files.
15
#source_encoding = 'utf-8-sig'
16

  
17
# The master toctree document.
18
master_doc = 'index'
19

  
20
# General information about the project.
21
project = u'snf-occi'
22
copyright = u'2012-2013, GRNET'
23

  
24
# The version info for the project you're documenting, acts as replacement for
25
# |version| and |release|, also used in various other places throughout the
26
# built documents.
27
#
28
# The short X.Y version.
29
version = __version__
30
# The full version, including alpha/beta/rc tags.
31
release = __version__
32

  
33
# The language for content autogenerated by Sphinx. Refer to documentation
34
# for a list of supported languages.
35
#language = None
36

  
37
# There are two options for replacing |today|: either, you set today to some
38
# non-false value, then it is used:
39
#today = ''
40
# Else, today_fmt is used as the format for a strftime call.
41
#today_fmt = '%B %d, %Y'
42

  
43
# List of patterns, relative to source directory, that match files and
44
# directories to ignore when looking for source files.
45
exclude_patterns = ['_build']
46

  
47
# The reST default role (used for this markup: `text`) to use for all documents.
48
#default_role = None
49

  
50
# If true, '()' will be appended to :func: etc. cross-reference text.
51
#add_function_parentheses = True
52

  
53
# If true, the current module name will be prepended to all description
54
# unit titles (such as .. function::).
55
#add_module_names = True
56

  
57
# If true, sectionauthor and moduleauthor directives will be shown in the
58
# output. They are ignored by default.
59
#show_authors = False
60

  
61
# The name of the Pygments (syntax highlighting) style to use.
62
pygments_style = 'sphinx'
63

  
64
# A list of ignored prefixes for module index sorting.
65
#modindex_common_prefix = []
66

  
67

  
68
# -- Options for HTML output ---------------------------------------------------
69

  
70
# The theme to use for HTML and HTML Help pages.  See the documentation for
71
# a list of builtin themes.
72
html_theme = 'default'
73
html_theme_options = {
74
        'collapsiblesidebar': 'true',
75
        'footerbgcolor':    '#55b577',
76
        'footertextcolor':  '#000000',
77
        'sidebarbgcolor':   '#ffffff',
78
        'sidebarbtncolor':  '#f2f2f2',
79
        'sidebartextcolor': '#000000',
80
        'sidebarlinkcolor': '#328e4a',
81
        'relbarbgcolor':    '#55b577',
82
        'relbartextcolor':  '#ffffff',
83
        'relbarlinkcolor':  '#ffffff',
84
        'bgcolor':          '#ffffff',
85
        'textcolor':        '#000000',
86
        'headbgcolor':      '#ffffff',
87
        'headtextcolor':    '#000000',
88
        'headlinkcolor':    '#c60f0f',
89
        'linkcolor':        '#328e4a',
90
        'visitedlinkcolor': '#63409b',
91
        'codebgcolor':      '#eeffcc',
92
        'codetextcolor':    '#333333'
93
}
94

  
95
# Theme options are theme-specific and customize the look and feel of a theme
96
# further.  For a list of options available for each theme, see the
97
# documentation.
98
#html_theme_options = {}
99

  
100
# Add any paths that contain custom themes here, relative to this directory.
101
#html_theme_path = []
102

  
103
# The name for this set of Sphinx documents.  If None, it defaults to
104
# "<project> v<release> documentation".
105
#html_title = None
106

  
107
# A shorter title for the navigation bar.  Default is the same as html_title.
108
#html_short_title = None
109

  
110
# The name of an image file (relative to this directory) to place at the top
111
# of the sidebar.
112
#html_logo = None
113

  
114
# The name of an image file (within the static path) to use as favicon of the
115
# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
116
# pixels large.
117
#html_favicon = None
118

  
119
# Add any paths that contain custom static files (such as style sheets) here,
120
# relative to this directory. They are copied after the builtin static files,
121
# so a file named "default.css" will overwrite the builtin "default.css".
122
html_static_path = ['_static']
123

  
124
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
125
# using the given strftime format.
126
#html_last_updated_fmt = '%b %d, %Y'
127

  
128
# If true, SmartyPants will be used to convert quotes and dashes to
129
# typographically correct entities.
130
#html_use_smartypants = True
131

  
132
# Custom sidebar templates, maps document names to template names.
133
#html_sidebars = {}
134

  
135
# Additional templates that should be rendered to pages, maps page names to
136
# template names.
137
#html_additional_pages = {}
138

  
139
# If false, no module index is generated.
140
#html_domain_indices = True
141

  
142
# If false, no index is generated.
143
#html_use_index = True
144

  
145
# If true, the index is split into individual pages for each letter.
146
#html_split_index = False
147

  
148
# If true, links to the reST sources are added to the pages.
149
#html_show_sourcelink = True
150

  
151
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
152
#html_show_sphinx = True
153

  
154
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
155
#html_show_copyright = True
156

  
157
# If true, an OpenSearch description file will be output, and all pages will
158
# contain a <link> tag referring to it.  The value of this option must be the
159
# base URL from which the finished HTML is served.
160
#html_use_opensearch = ''
161

  
162
# This is the file name suffix for HTML files (e.g. ".xhtml").
163
#html_file_suffix = None
164

  
165
# Output file base name for HTML help builder.
166
htmlhelp_basename = 'snf-occidoc'
167

  
168

  
169
# -- Options for LaTeX output --------------------------------------------------
170

  
171
latex_elements = {
172
# The paper size ('letterpaper' or 'a4paper').
173
#'papersize': 'letterpaper',
174

  
175
# The font size ('10pt', '11pt' or '12pt').
176
#'pointsize': '10pt',
177

  
178
# Additional stuff for the LaTeX preamble.
179
#'preamble': '',
180
}
181

  
182
# Grouping the document tree into LaTeX files. List of tuples
183
# (source start file, target name, title, author, documentclass [howto/manual]).
184
latex_documents = [
185
  ('index', 'snf-occi.tex', u'snf-occi Documentation',
186
   u'John Giannelos', 'manual'),
187
]
188

  
189
# The name of an image file (relative to this directory) to place at the top of
190
# the title page.
191
#latex_logo = None
192

  
193
# For "manual" documents, if this is true, then toplevel headings are parts,
194
# not chapters.
195
#latex_use_parts = False
196

  
197
# If true, show page references after internal links.
198
#latex_show_pagerefs = False
199

  
200
# If true, show URL addresses after external links.
201
#latex_show_urls = False
202

  
203
# Documents to append as an appendix to all manuals.
204
#latex_appendices = []
205

  
206
# If false, no module index is generated.
207
#latex_domain_indices = True
208

  
209

  
210
# -- Options for manual page output --------------------------------------------
211

  
212
# One entry per manual page. List of tuples
213
# (source start file, name, description, authors, manual section).
214
man_pages = [
215
    ('index', 'snf-occi', u'snf-occi Documentation',
216
     [u'John Giannelos'], 1)
217
]
218

  
219
# If true, show URL addresses after external links.
220
#man_show_urls = False
221

  
222

  
223
# -- Options for Texinfo output ------------------------------------------------
224

  
225
# Grouping the document tree into Texinfo files. List of tuples
226
# (source start file, target name, title, author,
227
#  dir menu entry, description, category)
228
texinfo_documents = [
229
  ('index', 'snf-occi', u'snf-occi Documentation',
230
   u'John Giannelos', 'snf-occi', 'One line description of project.',
231
   'Miscellaneous'),
232
]
233

  
234
# Documents to append as an appendix to all manuals.
235
#texinfo_appendices = []
236

  
237
# If false, no module index is generated.
238
#texinfo_domain_indices = True
239

  
240
# How to display URL addresses: 'footnote', 'no', or 'inline'.
241
#texinfo_show_urls = 'footnote'
242

  
243
intersphinx_mapping = {
244
    'python': ('http://docs.python.org/', None),
245
    'django': ('https://docs.djangoproject.com/en/dev/',
246
               'https://docs.djangoproject.com/en/dev/_objects/')
247
}
/dev/null
1
snf-burnin documentation
2
=========================
3

  
4
**snf-burnin** is an integration testing tool for a running Synnefo deployment. It runs test scenarios from the following categories:
5

  
6
* Authentication 
7
* Images
8
* Flavors
9
* Servers
10
* Networking
11

  
12
.. toctree::
13
   :maxdepth: 2
14

  
15
Usage
16
=====
17
**Example:**
18

  
19
::
20

  
21
   snf-burnin --api=API_URL --token=TOKEN --image-id=IMAGE-ID --log-folder=LOG_FOLDER --plankton=PLANKTON_API --plankton-user=PLANKTON_SYSTEM_USER
22

  
23
For more info 
24

  
25
::
26

  
27

  
28
   snf-burnin --help
29

  
30
::
31

  
32

  
33
  Options:
34
  
35
  -h, --help                        show this help message and exit
36
  --api=API             	    The API URI to use to reach the Synnefo API
37
  --plankton=PLANKTON   	    The API URI to use to reach the Plankton API
38
  --plankton-user=PLANKTON_USER	    Owner of system images
39
  --token=TOKEN                     The token to use for authentication to the API
40
  --nofailfast          	    Do not fail immediately if one of the tests fails (EXPERIMENTAL)
41
  --no-ipv6             	    Disables ipv6 related tests
42
  --action-timeout=TIMEOUT	    Wait SECONDS seconds for a server action to complete, then the test is considered failed
43
  --build-warning=TIMEOUT           Warn if TIMEOUT seconds have passed and a build operation is still pending
44
  --build-fail=BUILD_TIMEOUT  	    Fail the test if TIMEOUT seconds have passed and a build operation is still incomplete
45
  --query-interval=INTERVAL 	    Query server status when requests are pending every INTERVAL seconds
46
  --fanout=COUNT             	    Spawn up to COUNT child processes to execute in parallel, essentially have up to COUNT server build requests outstanding (EXPERIMENTAL)
47
  --force-flavor=FLAVOR ID	    Force all server creations to use the specified FLAVOR ID instead of a randomly chosen one, useful if disk space is scarce 
48
  --image-id=IMAGE ID               Test the specified image id, use 'all' to test all available images (mandatory argument)
49
  --show-stale          	    Show stale servers from previous runs, whose name starts with `snf-test-'
50
  --delete-stale        	    Delete stale servers from previous runs, whose name starts with `snf-test-'
51
  --force-personality=PERSONALITY_PATH
52
                                    Force a personality file injection. File path required.
53
  --log-folder=LOG_FOLDER           Define the absolute path where the output log is stored.
54

  
55

  
56

  
57

  
58
Detailed description of testcases
59
=================================
60

  
61
ImagesTestCase
62
---------------
63
* Test image list actually returns images
64
* Test detailed image list actually returns images
65
* Test simple and detailed image lists have the same length
66
* Test simple and detailed images have the same names
67
* Test system images have the same name
68
* Test system images have unique names
69
* Test every image has specific metadata
70

  
71
FlavorsTestCase
72
----------------
73
* Test flavor list actually returns flavors
74
* Test simple and detailed flavor lists have the same length
75
* Test simple and detailed flavors have the same names
76
* Test flavors have unique names
77
* Test flavor names have correct format 
78

  
79
ServersTestCase
80
----------------
81
* Test simple and detailed server list have the same length
82
* Test simple and detailed servers have the same names
83

  
84
SpawnServerTestcase
85
--------------------
86
* Submit create server
87
* Test server is in BUILD state in server list
88
* Test server is in BUILD state in details
89
* Change server metadata
90
* Verify the changed metadata are correct
91
* Verify server metadata are set based on image metadata
92
* Wait until server change state to ACTIVE, and verify state
93
* Test if OOB server console works
94
* Test server has IPv4
95
* Test server has IPv6
96
* Test server responds to ping on IPv4 address
97
* Test server responds to ping on IPv6 address
98
* Submit shutdown request
99
* Verify server status is STOPPED
100
* Submit start request 
101
* Test server status is ACTIVE
102
* Test server responds to ping on IPv4 address (verify if is actually up and running)
103
* Test server responds to ping on IPv6 address (verify if is actually up and running)
104
* Test SSH to server and verify hostname (IPv4)
105
* Test SSH to server and verify hostname (IPv6)
106
* Test RDP connection to server (only available to Windows Images) (IPv4)
107
* Test RDP connection to server (only available to Windows Images) (IPv6)
108
* Test file injection for personality enforcement
109
* Submit server delete request
110
* Test server becomes DELETED
111
* Test server is no longer in server list
112

  
113
NetworkTestCase
114
===============
115
* Submit create server A request
116
* Test server A becomes ACTIVE
117
* Submit create server B request
118
* Test server B becomes ACTIVE
119
* Submit create private network request
120
* Connect VMs to private network
121
* Test if VMs are connected to network
122
* Submit reboot request to server A
123
* Test server A responds to ping on IPv4 address (verify if is actually up and running)
124
* Submit reboot request to server B
125
* Test server B responds to ping on IPv4 address (verify if is actually up and running)
126
* Connect via SSH and setup the new network interface in server A
127
* Connect via SSH and setup the new network interface in server B
128
* Connect via SSH to server A and test if server B responds to ping on IPv4 address
129
* Disconnect servers from network and verify the network details
130
* Send delete network request and verify that the network is deleted from the list
131
* Send request to delete servers and wait until they are actually deleted
132

  
133

  
134

  
135

  
136
Indices and tables
137
==================
138

  
139
* :ref:`genindex`
140
* :ref:`search`
141

  

Also available in: Unified diff