Update overview documents

This patch updates overview documents. It also adds settings required
for publishing documents under doc directory on the readthedocs.io.

Change-Id: I89fd24cc538d09cdcfbe9a1cfb9986a4bf724266
Closes-Bug: #1662739
This commit is contained in:
Hiroaki Kobayashi 2017-02-16 18:41:25 +09:00
parent 7ccbc74eca
commit 707452ea73
15 changed files with 48 additions and 1051 deletions

View File

@ -1,416 +0,0 @@
/**
* Sphinx stylesheet -- basic theme
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/* -- main layout ----------------------------------------------------------- */
div.clearer {
clear: both;
}
/* -- relbar ---------------------------------------------------------------- */
div.related {
width: 100%;
font-size: 90%;
}
div.related h3 {
display: none;
}
div.related ul {
margin: 0;
padding: 0 0 0 10px;
list-style: none;
}
div.related li {
display: inline;
}
div.related li.right {
float: right;
margin-right: 5px;
}
/* -- sidebar --------------------------------------------------------------- */
div.sphinxsidebarwrapper {
padding: 10px 5px 0 10px;
}
div.sphinxsidebar {
float: left;
width: 230px;
margin-left: -100%;
font-size: 90%;
}
div.sphinxsidebar ul {
list-style: none;
}
div.sphinxsidebar ul ul,
div.sphinxsidebar ul.want-points {
margin-left: 20px;
list-style: square;
}
div.sphinxsidebar ul ul {
margin-top: 0;
margin-bottom: 0;
}
div.sphinxsidebar form {
margin-top: 10px;
}
div.sphinxsidebar input {
border: 1px solid #98dbcc;
font-family: sans-serif;
font-size: 1em;
}
img {
border: 0;
}
/* -- search page ----------------------------------------------------------- */
ul.search {
margin: 10px 0 0 20px;
padding: 0;
}
ul.search li {
padding: 5px 0 5px 20px;
background-image: url(file.png);
background-repeat: no-repeat;
background-position: 0 7px;
}
ul.search li a {
font-weight: bold;
}
ul.search li div.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
}
ul.keywordmatches li.goodmatch a {
font-weight: bold;
}
/* -- index page ------------------------------------------------------------ */
table.contentstable {
width: 90%;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
/* -- general index --------------------------------------------------------- */
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable dl, table.indextable dd {
margin-top: 0;
margin-bottom: 0;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
/* -- general body styles --------------------------------------------------- */
a.headerlink {
visibility: hidden;
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
div.body p.caption {
text-align: inherit;
}
div.body td {
text-align: left;
}
.field-list ul {
padding-left: 1em;
}
.first {
}
p.rubric {
margin-top: 30px;
font-weight: bold;
}
/* -- sidebars -------------------------------------------------------------- */
div.sidebar {
margin: 0 0 0.5em 1em;
border: 1px solid #ddb;
padding: 7px 7px 0 7px;
background-color: #ffe;
width: 40%;
float: right;
}
p.sidebar-title {
font-weight: bold;
}
/* -- topics ---------------------------------------------------------------- */
div.topic {
border: 1px solid #ccc;
padding: 7px 7px 0 7px;
margin: 10px 0 10px 0;
}
p.topic-title {
font-size: 1.1em;
font-weight: bold;
margin-top: 10px;
}
/* -- admonitions ----------------------------------------------------------- */
div.admonition {
margin-top: 10px;
margin-bottom: 10px;
padding: 7px;
}
div.admonition dt {
font-weight: bold;
}
div.admonition dl {
margin-bottom: 0;
}
p.admonition-title {
margin: 0px 10px 5px 0px;
font-weight: bold;
}
div.body p.centered {
text-align: center;
margin-top: 25px;
}
/* -- tables ---------------------------------------------------------------- */
table.docutils {
border: 0;
border-collapse: collapse;
}
table.docutils td, table.docutils th {
padding: 1px 8px 1px 0;
border-top: 0;
border-left: 0;
border-right: 0;
border-bottom: 1px solid #aaa;
}
table.field-list td, table.field-list th {
border: 0 !important;
}
table.footnote td, table.footnote th {
border: 0 !important;
}
th {
text-align: left;
padding-right: 5px;
}
/* -- other body styles ----------------------------------------------------- */
dl {
margin-bottom: 15px;
}
dd p {
margin-top: 0px;
}
dd ul, dd table {
margin-bottom: 10px;
}
dd {
margin-top: 3px;
margin-bottom: 10px;
margin-left: 30px;
}
dt:target, .highlight {
background-color: #fbe54e;
}
dl.glossary dt {
font-weight: bold;
font-size: 1.1em;
}
.field-list ul {
margin: 0;
padding-left: 1em;
}
.field-list p {
margin: 0;
}
.refcount {
color: #060;
}
.optional {
font-size: 1.3em;
}
.versionmodified {
font-style: italic;
}
.system-message {
background-color: #fda;
padding: 5px;
border: 3px solid red;
}
.footnote:target {
background-color: #ffa
}
.line-block {
display: block;
margin-top: 1em;
margin-bottom: 1em;
}
.line-block .line-block {
margin-top: 0;
margin-bottom: 0;
margin-left: 1.5em;
}
/* -- code displays --------------------------------------------------------- */
pre {
overflow: auto;
}
td.linenos pre {
padding: 5px 0px;
border: 0;
background-color: transparent;
color: #aaa;
}
table.highlighttable {
margin-left: 0.5em;
}
table.highlighttable td {
padding: 0 0.5em 0 0.5em;
}
tt.descname {
background-color: transparent;
font-weight: bold;
font-size: 1.2em;
}
tt.descclassname {
background-color: transparent;
}
tt.xref, a tt {
background-color: transparent;
font-weight: bold;
}
h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
background-color: transparent;
}
/* -- math display ---------------------------------------------------------- */
img.math {
vertical-align: middle;
}
div.body div.math p {
text-align: center;
}
span.eqno {
float: right;
}
/* -- printout stylesheet --------------------------------------------------- */
@media print {
div.document,
div.documentwrapper,
div.bodywrapper {
margin: 0 !important;
width: 100%;
}
div.sphinxsidebar,
div.related,
div.footer,
#top-link {
display: none;
}
}

View File

@ -1,230 +0,0 @@
/**
* Sphinx stylesheet -- default theme
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
@import url("basic.css");
/* -- page layout ----------------------------------------------------------- */
body {
font-family: sans-serif;
font-size: 100%;
background-color: #11303d;
color: #000;
margin: 0;
padding: 0;
}
div.document {
background-color: #1c4e63;
}
div.documentwrapper {
float: left;
width: 100%;
}
div.bodywrapper {
margin: 0 0 0 230px;
}
div.body {
background-color: #ffffff;
color: #000000;
padding: 0 20px 30px 20px;
}
div.footer {
color: #ffffff;
width: 100%;
padding: 9px 0 9px 0;
text-align: center;
font-size: 75%;
}
div.footer a {
color: #ffffff;
text-decoration: underline;
}
div.related {
background-color: #133f52;
line-height: 30px;
color: #ffffff;
}
div.related a {
color: #ffffff;
}
div.sphinxsidebar {
}
div.sphinxsidebar h3 {
font-family: 'Trebuchet MS', sans-serif;
color: #ffffff;
font-size: 1.4em;
font-weight: normal;
margin: 0;
padding: 0;
}
div.sphinxsidebar h3 a {
color: #ffffff;
}
div.sphinxsidebar h4 {
font-family: 'Trebuchet MS', sans-serif;
color: #ffffff;
font-size: 1.3em;
font-weight: normal;
margin: 5px 0 0 0;
padding: 0;
}
div.sphinxsidebar p {
color: #ffffff;
}
div.sphinxsidebar p.topless {
margin: 5px 10px 10px 10px;
}
div.sphinxsidebar ul {
margin: 10px;
padding: 0;
color: #ffffff;
}
div.sphinxsidebar a {
color: #98dbcc;
}
div.sphinxsidebar input {
border: 1px solid #98dbcc;
font-family: sans-serif;
font-size: 1em;
}
/* -- body styles ----------------------------------------------------------- */
a {
color: #355f7c;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
div.body p, div.body dd, div.body li {
text-align: left;
line-height: 130%;
}
div.body h1,
div.body h2,
div.body h3,
div.body h4,
div.body h5,
div.body h6 {
font-family: 'Trebuchet MS', sans-serif;
background-color: #f2f2f2;
font-weight: normal;
color: #20435c;
border-bottom: 1px solid #ccc;
margin: 20px -20px 10px -20px;
padding: 3px 0 3px 10px;
}
div.body h1 { margin-top: 0; font-size: 200%; }
div.body h2 { font-size: 160%; }
div.body h3 { font-size: 140%; }
div.body h4 { font-size: 120%; }
div.body h5 { font-size: 110%; }
div.body h6 { font-size: 100%; }
a.headerlink {
color: #c60f0f;
font-size: 0.8em;
padding: 0 4px 0 4px;
text-decoration: none;
}
a.headerlink:hover {
background-color: #c60f0f;
color: white;
}
div.body p, div.body dd, div.body li {
text-align: left;
line-height: 130%;
}
div.admonition p.admonition-title + p {
display: inline;
}
div.admonition p {
margin-bottom: 5px;
}
div.admonition pre {
margin-bottom: 5px;
}
div.admonition ul, div.admonition ol {
margin-bottom: 5px;
}
div.note {
background-color: #eee;
border: 1px solid #ccc;
}
div.seealso {
background-color: #ffc;
border: 1px solid #ff6;
}
div.topic {
background-color: #eee;
}
div.warning {
background-color: #ffe4e4;
border: 1px solid #f66;
}
p.admonition-title {
display: inline;
}
p.admonition-title:after {
content: ":";
}
pre {
padding: 5px;
background-color: #eeffcc;
color: #333333;
line-height: 120%;
border: 1px solid #ac9;
border-left: none;
border-right: none;
}
tt {
background-color: #ecf0f3;
padding: 0 1px 0 1px;
font-size: 0.95em;
}
.warning tt {
background: #efc2c2;
}
.note tt {
background: #d6d6d6;
}

View File

@ -1,245 +0,0 @@
/*
* nature.css_t
* ~~~~~~~~~~~~
*
* Sphinx stylesheet -- nature theme.
*
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@import url("basic.css");
/* -- page layout ----------------------------------------------------------- */
body {
font-family: Arial, sans-serif;
font-size: 100%;
background-color: #111;
color: #555;
margin: 0;
padding: 0;
}
div.documentwrapper {
float: left;
width: 100%;
}
div.bodywrapper {
margin: 0 0 0 {{ theme_sidebarwidth|toint }}px;
}
hr {
border: 1px solid #B1B4B6;
}
div.document {
background-color: #eee;
}
div.body {
background-color: #ffffff;
color: #3E4349;
padding: 0 30px 30px 30px;
font-size: 0.9em;
}
div.footer {
color: #555;
width: 100%;
padding: 13px 0;
text-align: center;
font-size: 75%;
}
div.footer a {
color: #444;
text-decoration: underline;
}
div.related {
background-color: #6BA81E;
line-height: 32px;
color: #fff;
text-shadow: 0px 1px 0 #444;
font-size: 0.9em;
}
div.related a {
color: #E2F3CC;
}
div.sphinxsidebar {
font-size: 0.75em;
line-height: 1.5em;
}
div.sphinxsidebarwrapper{
padding: 20px 0;
}
div.sphinxsidebar h3,
div.sphinxsidebar h4 {
font-family: Arial, sans-serif;
color: #222;
font-size: 1.2em;
font-weight: normal;
margin: 0;
padding: 5px 10px;
background-color: #ddd;
text-shadow: 1px 1px 0 white
}
div.sphinxsidebar h4{
font-size: 1.1em;
}
div.sphinxsidebar h3 a {
color: #444;
}
div.sphinxsidebar p {
color: #888;
padding: 5px 20px;
}
div.sphinxsidebar p.topless {
}
div.sphinxsidebar ul {
margin: 10px 20px;
padding: 0;
color: #000;
}
div.sphinxsidebar a {
color: #444;
}
div.sphinxsidebar input {
border: 1px solid #ccc;
font-family: sans-serif;
font-size: 1em;
}
div.sphinxsidebar input[type=text]{
margin-left: 20px;
}
/* -- body styles ----------------------------------------------------------- */
a {
color: #005B81;
text-decoration: none;
}
a:hover {
color: #E32E00;
text-decoration: underline;
}
div.body h1,
div.body h2,
div.body h3,
div.body h4,
div.body h5,
div.body h6 {
font-family: Arial, sans-serif;
background-color: #BED4EB;
font-weight: normal;
color: #212224;
margin: 30px 0px 10px 0px;
padding: 5px 0 5px 10px;
text-shadow: 0px 1px 0 white
}
div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; }
div.body h2 { font-size: 150%; background-color: #C8D5E3; }
div.body h3 { font-size: 120%; background-color: #D8DEE3; }
div.body h4 { font-size: 110%; background-color: #D8DEE3; }
div.body h5 { font-size: 100%; background-color: #D8DEE3; }
div.body h6 { font-size: 100%; background-color: #D8DEE3; }
a.headerlink {
color: #c60f0f;
font-size: 0.8em;
padding: 0 4px 0 4px;
text-decoration: none;
}
a.headerlink:hover {
background-color: #c60f0f;
color: white;
}
div.body p, div.body dd, div.body li {
line-height: 1.5em;
}
div.admonition p.admonition-title + p {
display: inline;
}
div.highlight{
background-color: white;
}
div.note {
background-color: #eee;
border: 1px solid #ccc;
}
div.seealso {
background-color: #ffc;
border: 1px solid #ff6;
}
div.topic {
background-color: #eee;
}
div.warning {
background-color: #ffe4e4;
border: 1px solid #f66;
}
p.admonition-title {
display: inline;
}
p.admonition-title:after {
content: ":";
}
pre {
padding: 10px;
background-color: White;
color: #222;
line-height: 1.2em;
border: 1px solid #C6C9CB;
font-size: 1.1em;
margin: 1.5em 0 1.5em 0;
-webkit-box-shadow: 1px 1px 1px #d8d8d8;
-moz-box-shadow: 1px 1px 1px #d8d8d8;
}
tt {
background-color: #ecf0f3;
color: #222;
/* padding: 1px 2px; */
font-size: 1.1em;
font-family: monospace;
}
.viewcode-back {
font-family: Arial, sans-serif;
}
div.viewcode-block:target {
background-color: #f4debf;
border-top: 1px solid #ac9;
border-bottom: 1px solid #ac9;
}

View File

@ -1,9 +0,0 @@
dl.toggle dt {
background-color: #eeffcc;
border: 1px solid #ac9;
display: inline;
}
dl.toggle dd {
display: none;
}

View File

@ -1,9 +0,0 @@
/*global $,document*/
$(document).ready(function () {
"use strict";
$("dl.toggle > dt").click(
function (event) {
$(this).next().toggle(250);
}
);
});

View File

@ -1,87 +0,0 @@
body {
background: #fff;
}
#header {
width: 950px;
margin: 0 auto;
height: 102px;
}
#navigation {
display: block;
float: left;
margin: 27px 0 0 25px;
padding: 0;
}
#navigation li{
float: left;
display: block;
margin-right: 25px;
}
#navigation li a {
display: block;
font-weight: normal;
text-decoration: none;
background-position: 50% 0;
padding: 20px 0 5px;
color: #353535;
font-size: 14px;
}
#navigation li a.current, #navigation li a.section {
border-bottom: 3px solid #cf2f19;
color: #cf2f19;
}
div.related {
background-color: #cde2f8;
border: 1px solid #b0d3f8;
}
div.related a {
color: #4078ba;
text-shadow: none;
}
div.sphinxsidebarwrapper {
padding-top: 0;
}
pre {
color: #555;
}
div.documentwrapper h1, div.documentwrapper h2, div.documentwrapper h3, div.documentwrapper h4, div.documentwrapper h5, div.documentwrapper h6 {
font-family: 'PT Sans', sans-serif !important;
color: #264D69;
border-bottom: 1px dotted #C5E2EA;
padding: 0;
background: none;
padding-bottom: 5px;
}
div.documentwrapper h3 {
color: #CF2F19;
}
a.headerlink {
color: #fff !important;
margin-left: 5px;
background: #CF2F19 !important;
}
div.body {
margin-left: 230px;
}
div.document {
width: 960px;
margin: 0 auto;
}
a.reference.internal em {
font-style: normal;
}

View File

@ -1,4 +0,0 @@
<h3>Useful Links</h3>
<ul>
<li><a href="https://launchpad.net/blazar">Blazar @ Launchpad</a></li>
</ul>

View File

@ -1,4 +0,0 @@
{% extends "basic/layout.html" %}
{% set css_files = css_files + ['_static/tweaks.css'] %}
{% block relbar1 %}{% endblock relbar1 %}

View File

@ -1,4 +0,0 @@
[theme]
inherit = nature
stylesheet = nature.css
pygments_style = tango

View File

@ -21,8 +21,7 @@ structure of connected leases, reservations (both physical and virtual) and
events. blazar-manager service is responsible for running events created for
lease and process all actions that should be done this moment. Manager uses
resource-plugins to work with concrete resources (instances, volumes, compute
hosts). blazar-manager uses Keystone trusts to commit actions on behalf of
user who has created lease before.
hosts).
**resource-plugin** - responsible for exact actions to do with reserved
resources (VMs, volumes, etc.) When working knows only about resource ID and
@ -31,6 +30,10 @@ token to use. All resource plugins work in the same process as blazar-manager.
Virtual instance reservation
----------------------------
**Note** virtual instance reservation feature is not available in current
release. Expected to be available in the future (`bug tracker`_).
.. _bug tracker: https://blueprints.launchpad.net/blazar/+spec/new-instance-reservation
Virtual instance reservation mostly looks like usual instance booting for user
- he/she only passes special hints to Nova containing information about future
lease - lease start and end dates, its name, etc. Special Nova API extensions

View File

@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2013 Mirantis Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@ -16,9 +14,15 @@
# limitations under the License.
import sys
import os
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.insert(0, os.path.abspath('../../'))
sys.path.insert(0, os.path.abspath('../'))
sys.path.insert(0, os.path.abspath('./'))
# -- General configuration -----------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
@ -33,14 +37,12 @@ extensions = ['sphinx.ext.autodoc',
'sphinx.ext.viewcode',
'sphinxcontrib.httpdomain',
'sphinxcontrib.pecanwsme.rest',
'oslosphinx',
'wsmeext.sphinxext',
]
wsme_protocols = ['restjson', 'restxml']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix of source filenames.
source_suffix = '.rst'
@ -52,7 +54,7 @@ master_doc = 'index'
# General information about the project.
project = u'Blazar'
copyright = u'2013, Mirantis Inc.;2014, Bull.'
copyright = u'2013-present, OpenStack Foundation'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@ -103,8 +105,8 @@ pygments_style = 'sphinx'
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme_path = ['.']
html_theme = '_theme'
# html_theme_path = ["."]
# html_theme = '_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
@ -133,7 +135,7 @@ html_title = 'Blazar'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
#html_static_path = ['_static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
@ -146,11 +148,7 @@ html_last_updated_fmt = os.popen(git_cmd).read()
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
html_sidebars = {
'index': ['sidebarlinks.html', 'localtoc.html', 'searchbox.html', 'sourcelink.html'],
'**': ['localtoc.html', 'relations.html',
'searchbox.html', 'sourcelink.html']
}
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
@ -203,7 +201,7 @@ latex_elements = {
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
('index', 'blazardoc.tex', u'Blazar',
u'Mirantis Inc.', 'manual'),
u'OpenStack Foundation', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@ -233,7 +231,7 @@ latex_documents = [
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'blazar', u'Blazar',
[u'Mirantis Inc.'], 1)
[u'OpenStack Foundation'], 1)
]
# If true, show URL addresses after external links.
@ -247,7 +245,7 @@ man_pages = [
# dir menu entry, description, category)
texinfo_documents = [
('index', 'Blazar', u'Blazar',
u'Mirantis Inc.', 'Blazar', 'Blazar',
u'OpenStack Foundation', 'Blazar', 'Blazar',
'Miscellaneous'),
]

View File

@ -13,7 +13,6 @@ Overview
introduction
architecture
Roadmap <https://wiki.openstack.org/wiki/Blazar/Roadmap>
User guide
----------
@ -39,4 +38,9 @@ Development guide
:maxdepth: 1
devref/how.to.contribute
devref/development.guidelines
devref/development.guidelines
Release note
------------
`Release note <https://wiki.openstack.org/wiki/Blazar/Release_Notes>`_

View File

@ -6,14 +6,14 @@ Idea of creating Blazar originated with two different use cases:
* Compute host reservation (when user with admin privileges can reserve
hardware resources that are dedicated to the sole use of a project)
* Virtual machine (instance) reservation (when user may ask reservation service
to provide him working VM not necessary now, but also in the future)
to provide him working VM not necessarily now, but also in the future)
Now these ideas have been transformed to more general view: with Blazar user
Now these ideas have been transformed to more general view: with Blazar, user
can request the resources of cloud environment to be provided (“leased”) to his
project for specific amount on time, immediately or in future.
project for specific amount of time, immediately or in the future.
Both virtual (Instances, Volumes, Networks) and hardware (full hosts with
specific characteristics of RAM, CPU and etc) resources can be allocated via
specific characteristics of RAM, CPU, etc) resources can be allocated via
“lease”.
In terms of benefits added, Resource Reservation Service will:
@ -25,30 +25,30 @@ In terms of benefits added, Resource Reservation Service will:
* automate the processes of resource allocation and reclaiming;
* provide energy efficiency for physical hosts (both compute and storage ones);
* potentially provide leases as billable items for which customers can be
charged a flat fee or a premium price depending on amount of reserved cloud
charged a flat fee or a premium price depending on the amount of reserved cloud
resources and their usage.
Glossary of terms
-----------------
**Reservation** is an allocation of certain cloud resource (Nova instance, Cinder
volume, compute host, etc.) to particular project. Speaking about virtual
volume, compute host, etc.) to a particular project. Speaking about virtual
reservations, we may have not only simple, solid ones (like already mentioned
instances and volumes), but also complex ones - like Heat stacks and Savanna
clusters. Reservation is characterized by status, resource type and identifier
clusters. Reservation is characterized by status, resource type, identifier
and lease it belongs to.
**Lease** is a negotiation agreement between the provider (Blazar, using OpenStack
resources) and the consumer (user) where the former agrees to make some kind of
resources (both virtual and physical) available to latter, based on a set of
lease terms presented by the consumer. Here lease may be described as contract
resources (both virtual and physical) available to the latter, based on a set of
lease terms presented by the consumer. Here lease may be described as a contract
between user and reservation service about cloud resources to be provided right
now or later. Technically speaking, lease is a group of reservations granted to
particular project upon request. Lease is characterized by start time, end
a particular project upon request. Lease is characterized by start time, end
time, set of individual reservations and associated events.
**Event** is simply something that may happen to lease. In most simple case event
might describe lease start and lease end. Also it might be notification to user
**Event** is simply something that may happen to a lease. In most simple case, event
might describe lease start and lease end. Also it might be a notification to user
(e.g. about soon lease expiration) and some extra actions.
Rationale
@ -57,9 +57,9 @@ Rationale
Blazar is created to:
* manage cloud resources not only right now, but also in the future;
* have dedicated recourses on certain amount of time;
* have dedicated resources for a certain amount of time;
* prepare for the peak loads and perform capacity planning;
* optimise energy consumption.
* optimize energy consumption.
Lease types (concepts)
----------------------
@ -91,14 +91,14 @@ Lease types (concepts)
timeout has passed, lease should be marked as **active**, otherwise its
status is set to **timedout**.
* **Delayed resource acquiring** or **scheduled reservation**. In this
reservation type lease is created successfully if Blazar thinks there will
reservation type, lease is created successfully if Blazar thinks there will
be enough resources to process provisioning later (otherwise this request
returns **failure** status). Lease is marked as **inactive** till all
resources will be actually provisioned. That works pretty nice and
predictable speaking about compute hosts reservation (because hosts as
resources are got not from common cloud pool, but from admin defined pool).
So Blazar is possible to predict these physical resources usage and use that
information during lease creation. If we speak about virtual reservations,
So it is possible for Blazar to predict these physical resources usage and use
that information during lease creation. If we speak about virtual reservations,
here situation is more complicated, because all resources are got from common
cloud resources pool, and Blazar cannot guarantee there will be enough
resources to provision them. In this failure case lease state will be marked

View File

@ -32,3 +32,7 @@ SQLAlchemy<1.1.0,>=1.0.10 # MIT
stevedore>=1.17.1 # Apache-2.0
WebOb>=1.6.0 # MIT
WSME>=0.8 # MIT
sphinx>=1.5.1 # BSD
sphinxcontrib-httpdomain # BSD
sphinxcontrib-pecanwsme>=0.8 # Apache-2.0
oslosphinx>=4.7.0 # Apache-2.0

View File

@ -6,8 +6,6 @@ hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
nose # LGPL
mock>=2.0 # BSD
mox>=0.5.3 # Apache-2.0
sphinx!=1.3b1,<1.4,>=1.2.1 # BSD
sphinxcontrib-httpdomain # BSD
lockfile>=0.8
discover # BSD
fixtures>=3.0.0 # Apache-2.0/BSD
@ -16,10 +14,8 @@ testscenarios>=0.4 # Apache-2.0/BSD
testtools>=1.4.0 # MIT
coverage>=4.0 # Apache-2.0
pylint==1.4.5 # GPLv2
sphinxcontrib-pecanwsme>=0.8 # Apache-2.0
oslotest>=1.10.0 # Apache-2.0
oslo.context>=2.12.0 # Apache-2.0
# Documentation
oslosphinx>=4.7.0 # Apache-2.0
reno>=1.8.0 # Apache-2.0