Retire Tripleo: remove repo content
TripleO project is retiring - https://review.opendev.org/c/openstack/governance/+/905145 this commit remove the content of this project repo Change-Id: Ie970f3f04c78e9bfcd9212bfa97a9cc9ee376b0c
This commit is contained in:
parent
09e3ef837b
commit
d67a6ebe02
17
.gitignore
vendored
17
.gitignore
vendored
@ -1,17 +0,0 @@
|
||||
*.swp
|
||||
*~
|
||||
*.qcow2
|
||||
|
||||
.DS_Store
|
||||
|
||||
*.egg*
|
||||
*.pyc
|
||||
|
||||
.tox
|
||||
doc/build
|
||||
deploy-guide/source/_build
|
||||
build
|
||||
|
||||
# pbr generates these
|
||||
AUTHORS
|
||||
ChangeLog
|
@ -1,4 +0,0 @@
|
||||
- project:
|
||||
templates:
|
||||
- publish-openstack-docs-pti
|
||||
- deploy-guide-jobs
|
57
README.rst
57
README.rst
@ -1,51 +1,10 @@
|
||||
========================
|
||||
Team and repository tags
|
||||
========================
|
||||
This project is no longer maintained.
|
||||
|
||||
.. image:: https://governance.openstack.org/tc/badges/tripleo-docs.svg
|
||||
:target: https://governance.openstack.org/tc/reference/tags/index.html
|
||||
The contents of this repository are still available in the Git
|
||||
source code management system. To see the contents of this
|
||||
repository before it reached its end of life, please check out the
|
||||
previous commit with "git checkout HEAD^1".
|
||||
|
||||
.. Change things from this point on
|
||||
|
||||
TripleO Documentation
|
||||
=====================
|
||||
|
||||
This is the documentation source for the TripleO project. You can read
|
||||
the generated documentation at `TripleO
|
||||
Docs <https://docs.openstack.org/tripleo-docs/latest/>`__.
|
||||
|
||||
You can find out more about TripleO at the `TripleO
|
||||
Wiki <https://wiki.openstack.org/wiki/TripleO>`__.
|
||||
|
||||
Getting Started
|
||||
---------------
|
||||
|
||||
Documentation for the TripleO project is hosted on the OpenStack Gerrit
|
||||
site. You can view all open and resolved issues in the
|
||||
``openstack/tripleo-docs`` project at `TripleO
|
||||
Reviews <https://review.opendev.org/#/q/project:openstack/tripleo-docs>`__.
|
||||
|
||||
General information about contributing to the OpenStack documentation
|
||||
available at `OpenStack Documentation Contributor
|
||||
Guide <https://docs.openstack.org/doc-contrib-guide/>`__
|
||||
|
||||
Quick Start
|
||||
-----------
|
||||
|
||||
The following is a quick set of instructions to get you up and running
|
||||
by building the TripleO documentation locally. The first step is to get
|
||||
your Python environment configured. Information on configuring is
|
||||
available at `Python Project
|
||||
Guide <https://docs.openstack.org/project-team-guide/project-setup/python.html>`__
|
||||
|
||||
Next you can generate the documentation using the following command. Be
|
||||
sure to run all the commands from within the recently checked out
|
||||
repository.
|
||||
|
||||
::
|
||||
|
||||
tox -edocs,pdf-docs,deploy-guide
|
||||
|
||||
Now you have the documentation generated for the various available
|
||||
formats from the local source. The resulting documentation will be
|
||||
available within the ``doc/build/`` directory.
|
||||
For any further questions, please email
|
||||
openstack-discuss@lists.openstack.org or join #openstack-dev on
|
||||
OFTC.
|
||||
|
@ -1,58 +0,0 @@
|
||||
/*
|
||||
This function will search for all classes matching all IDs which are under
|
||||
#admonition_selector element and display/hide their content.
|
||||
|
||||
State is saved in cookies so user doesn't lose his settings after page
|
||||
reload or changing pages.
|
||||
|
||||
To make this feature work, you need to:
|
||||
- add checkbox to _templates/layout.html file with proper ID
|
||||
- in admonitions use proper class which matches above mentioned ID
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// after document is loaded
|
||||
$(document).ready(function() {
|
||||
|
||||
// for each checkbox in #admonition_selector do
|
||||
$('#admonition_selector :checkbox').each(function() {
|
||||
|
||||
// check value of cookies and set state to the related element
|
||||
if ($.cookie($(this).attr("id")) == "true") {
|
||||
$(this).prop("checked", true);
|
||||
} else {
|
||||
$(this).prop("checked", false);
|
||||
}
|
||||
|
||||
// show/hide elements after page loaded
|
||||
toggle_admonition($(this).attr("id"));
|
||||
});
|
||||
|
||||
// when user clicks on the checkbox, react
|
||||
$('#admonition_selector :checkbox').change(function() {
|
||||
|
||||
// show/hide related elements
|
||||
toggle_admonition($(this).attr("id"));
|
||||
|
||||
// save the state in the cookies
|
||||
$.cookie($(this).attr("id"), $(this).is(':checked'), { path: '/' });
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// function to show/hide elements based on checkbox state
|
||||
// checkbox has ID and it toggles elements having class named same way as the ID
|
||||
function toggle_admonition(admonition) {
|
||||
|
||||
// for each element having class as the checkbox's ID
|
||||
$(".admonition." + admonition).each(function() {
|
||||
|
||||
// set show/hide
|
||||
if($("#" + admonition).is(':checked')) {
|
||||
$(this).show();
|
||||
} else {
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
}
|
@ -1,117 +0,0 @@
|
||||
/*!
|
||||
* jQuery Cookie Plugin v1.4.1
|
||||
* https://github.com/carhartl/jquery-cookie
|
||||
*
|
||||
* Copyright 2013 Klaus Hartl
|
||||
* Released under the MIT license
|
||||
*/
|
||||
(function (factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD
|
||||
define(['jquery'], factory);
|
||||
} else if (typeof exports === 'object') {
|
||||
// CommonJS
|
||||
factory(require('jquery'));
|
||||
} else {
|
||||
// Browser globals
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function ($) {
|
||||
|
||||
var pluses = /\+/g;
|
||||
|
||||
function encode(s) {
|
||||
return config.raw ? s : encodeURIComponent(s);
|
||||
}
|
||||
|
||||
function decode(s) {
|
||||
return config.raw ? s : decodeURIComponent(s);
|
||||
}
|
||||
|
||||
function stringifyCookieValue(value) {
|
||||
return encode(config.json ? JSON.stringify(value) : String(value));
|
||||
}
|
||||
|
||||
function parseCookieValue(s) {
|
||||
if (s.indexOf('"') === 0) {
|
||||
// This is a quoted cookie as according to RFC2068, unescape...
|
||||
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
||||
}
|
||||
|
||||
try {
|
||||
// Replace server-side written pluses with spaces.
|
||||
// If we can't decode the cookie, ignore it, it's unusable.
|
||||
// If we can't parse the cookie, ignore it, it's unusable.
|
||||
s = decodeURIComponent(s.replace(pluses, ' '));
|
||||
return config.json ? JSON.parse(s) : s;
|
||||
} catch(e) {}
|
||||
}
|
||||
|
||||
function read(s, converter) {
|
||||
var value = config.raw ? s : parseCookieValue(s);
|
||||
return $.isFunction(converter) ? converter(value) : value;
|
||||
}
|
||||
|
||||
var config = $.cookie = function (key, value, options) {
|
||||
|
||||
// Write
|
||||
|
||||
if (value !== undefined && !$.isFunction(value)) {
|
||||
options = $.extend({}, config.defaults, options);
|
||||
|
||||
if (typeof options.expires === 'number') {
|
||||
var days = options.expires, t = options.expires = new Date();
|
||||
t.setTime(+t + days * 864e+5);
|
||||
}
|
||||
|
||||
return (document.cookie = [
|
||||
encode(key), '=', stringifyCookieValue(value),
|
||||
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
|
||||
options.path ? '; path=' + options.path : '',
|
||||
options.domain ? '; domain=' + options.domain : '',
|
||||
options.secure ? '; secure' : ''
|
||||
].join(''));
|
||||
}
|
||||
|
||||
// Read
|
||||
|
||||
var result = key ? undefined : {};
|
||||
|
||||
// To prevent the for loop in the first place assign an empty array
|
||||
// in case there are no cookies at all. Also prevents odd result when
|
||||
// calling $.cookie().
|
||||
var cookies = document.cookie ? document.cookie.split('; ') : [];
|
||||
|
||||
for (var i = 0, l = cookies.length; i < l; i++) {
|
||||
var parts = cookies[i].split('=');
|
||||
var name = decode(parts.shift());
|
||||
var cookie = parts.join('=');
|
||||
|
||||
if (key && key === name) {
|
||||
// If second argument (value) is a function it's a converter...
|
||||
result = read(cookie, value);
|
||||
break;
|
||||
}
|
||||
|
||||
// Prevent storing a cookie that we couldn't decode.
|
||||
if (!key && (cookie = read(cookie)) !== undefined) {
|
||||
result[name] = cookie;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
config.defaults = {};
|
||||
|
||||
$.removeCookie = function (key, options) {
|
||||
if ($.cookie(key) === undefined) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Must not alter options, thus extending a fresh object...
|
||||
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
|
||||
return !$.cookie(key);
|
||||
};
|
||||
|
||||
}));
|
@ -1,146 +0,0 @@
|
||||
/* CUSTOM CSS OVERRIDES GO HERE */
|
||||
/* ============================ */
|
||||
|
||||
/* remove backgrounds */
|
||||
#admonition_selector {
|
||||
background: none !important;
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
/* admonition selector */
|
||||
#admonition_selector {
|
||||
border-top: 0 none !important;
|
||||
}
|
||||
|
||||
#admonition_selector .title {
|
||||
color: rgba(0, 0, 0, 0.6) !important;
|
||||
}
|
||||
|
||||
.trigger {
|
||||
color: rgba(0, 0, 0, 0.7) !important;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.2);
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.trigger:hover {
|
||||
color: rgba(0, 0, 0, 0.9) !important;
|
||||
}
|
||||
|
||||
/* NOTES, ADMONITIONS AND TAGS */
|
||||
.admonition {
|
||||
font-size: 85%; /* match code size */
|
||||
background: rgb(240, 240, 240);
|
||||
color: rgba(0, 0, 0, 0.55);
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
padding: 0.5em 1em 0.75em 1em;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.admonition .admonition {
|
||||
/* Don't keep shrinking the font for nested admonitions. */
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.admonition p {
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
.admonition p.last {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.admonition p.first.admonition-title {
|
||||
display: inline;
|
||||
background: none;
|
||||
font-weight: bold;
|
||||
color: rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
/* notes */
|
||||
.rst-content .note {
|
||||
background: rgb(240, 240, 240);
|
||||
}
|
||||
|
||||
/* tags */
|
||||
.fedora28 {background: #aee;}
|
||||
.centos7 {background: #cea;}
|
||||
.centos8 {background: #cae;}
|
||||
.rhel {background: #fee;}
|
||||
.portal {background-color: #ded;}
|
||||
.satellite {background-color: #dee;}
|
||||
.stable {background: #eed;}
|
||||
.newton {background: #ede;}
|
||||
.ocata {background: #edd;}
|
||||
.pike {background: #dfb;}
|
||||
.queens {background: #afd;}
|
||||
.rocky {background: #aee;}
|
||||
.stein {background: #ade;}
|
||||
.centos {background: #fef;}
|
||||
.baremetal {background: #eef;}
|
||||
.virtual {background: #efe;}
|
||||
.ceph {background: #eff;}
|
||||
.mton {background: #ded;}
|
||||
.ntoo {background: #edd;}
|
||||
.otop {background: #dfb;}
|
||||
.ptoq {background: #afd;}
|
||||
.qtor {background: #aee;}
|
||||
.rtos {background: #ade;}
|
||||
.validations {background: #fdd;}
|
||||
.optional {background: #ffe;}
|
||||
.tls {background: #ded;}
|
||||
|
||||
/* admonition selector */
|
||||
#admonition_selector {
|
||||
color: white;
|
||||
font-size: 85%;
|
||||
line-height: 1.4;
|
||||
background: #2980b9;
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.4);
|
||||
}
|
||||
|
||||
.trigger {
|
||||
color: rgba(255, 255, 255, 0.75);
|
||||
line-height: 2.5;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
padding: 0 1.618em;
|
||||
}
|
||||
|
||||
.trigger:after {
|
||||
content: '▾';
|
||||
font-family: FontAwesome;
|
||||
}
|
||||
|
||||
.trigger:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.content {
|
||||
display: none;
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
padding: 0.5em 1.618em;
|
||||
}
|
||||
|
||||
.displayed .trigger:after {
|
||||
content: '▴';
|
||||
}
|
||||
|
||||
#admonition_selector .title {
|
||||
color: rgba(255, 255, 255, 0.45);
|
||||
}
|
||||
|
||||
#admonition_selector ul {
|
||||
margin-bottom: 0.75em;
|
||||
}
|
||||
|
||||
#admonition_selector ul li {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#admonition_selector label {
|
||||
display: inline;
|
||||
color: inherit;
|
||||
text-decoration: underline dotted;
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
$(document).ready(function() {
|
||||
|
||||
// for each trigger
|
||||
$('.trigger').each(function() {
|
||||
|
||||
// check if cookie has value on true
|
||||
if ($.cookie($(this).parent().prop('id')) == "true") {
|
||||
// add displayed class and show the content
|
||||
$(this).parent().addClass("displayed");
|
||||
$(this).next('.content').show();
|
||||
|
||||
} else {
|
||||
// remove displayed class and hide the content
|
||||
$(this).parent().removeClass("displayed");
|
||||
$(this).next('.content').hide();
|
||||
}
|
||||
});
|
||||
|
||||
// if user clicked trigger element
|
||||
$('.trigger').click(function() {
|
||||
|
||||
// toggle parent's class and animate the content
|
||||
$(this).parent().toggleClass('displayed');
|
||||
$(this).next('.content').slideToggle("fast");
|
||||
|
||||
// save the state to cookies
|
||||
$.cookie($(this).parent().prop('id'),
|
||||
$(this).parent().hasClass('displayed'),
|
||||
{ path: '/' });
|
||||
});
|
||||
});
|
@ -1,223 +0,0 @@
|
||||
/*
|
||||
* jQuery One Page Nav Plugin
|
||||
* http://github.com/davist11/jQuery-One-Page-Nav
|
||||
*
|
||||
* Copyright (c) 2010 Trevor Davis (http://trevordavis.net)
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* Uses the same license as jQuery, see:
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* @version 3.0.0
|
||||
*
|
||||
* Example usage:
|
||||
* $('#nav').onePageNav({
|
||||
* currentClass: 'current',
|
||||
* changeHash: false,
|
||||
* scrollSpeed: 750
|
||||
* });
|
||||
*/
|
||||
|
||||
;(function($, window, document, undefined){
|
||||
|
||||
// our plugin constructor
|
||||
var OnePageNav = function(elem, options){
|
||||
this.elem = elem;
|
||||
this.$elem = $(elem);
|
||||
this.options = options;
|
||||
this.metadata = this.$elem.data('plugin-options');
|
||||
this.$win = $(window);
|
||||
this.sections = {};
|
||||
this.didScroll = false;
|
||||
this.$doc = $(document);
|
||||
this.docHeight = this.$doc.height();
|
||||
};
|
||||
|
||||
// the plugin prototype
|
||||
OnePageNav.prototype = {
|
||||
defaults: {
|
||||
navItems: 'a',
|
||||
currentClass: 'active',
|
||||
changeHash: false,
|
||||
easing: 'swing',
|
||||
filter: '',
|
||||
scrollSpeed: 750,
|
||||
scrollThreshold: 0.2,
|
||||
begin: false,
|
||||
end: false,
|
||||
scrollChange: false
|
||||
},
|
||||
|
||||
init: function() {
|
||||
// Introduce defaults that can be extended either
|
||||
// globally or using an object literal.
|
||||
this.config = $.extend({}, this.defaults, this.options, this.metadata);
|
||||
|
||||
this.$nav = this.$elem.find(this.config.navItems);
|
||||
|
||||
//Filter any links out of the nav
|
||||
if(this.config.filter !== '') {
|
||||
this.$nav = this.$nav.filter(this.config.filter);
|
||||
}
|
||||
|
||||
//Handle clicks on the nav
|
||||
this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));
|
||||
|
||||
//Get the section positions
|
||||
this.getPositions();
|
||||
|
||||
//Handle scroll changes
|
||||
this.bindInterval();
|
||||
|
||||
//Update the positions on resize too
|
||||
this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
adjustNav: function(self, $parent) {
|
||||
self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);
|
||||
$parent.addClass(self.config.currentClass);
|
||||
},
|
||||
|
||||
bindInterval: function() {
|
||||
var self = this;
|
||||
var docHeight;
|
||||
|
||||
self.$win.on('scroll.onePageNav', function() {
|
||||
self.didScroll = true;
|
||||
});
|
||||
|
||||
self.t = setInterval(function() {
|
||||
docHeight = self.$doc.height();
|
||||
|
||||
//If it was scrolled
|
||||
if(self.didScroll) {
|
||||
self.didScroll = false;
|
||||
self.scrollChange();
|
||||
}
|
||||
|
||||
//If the document height changes
|
||||
if(docHeight !== self.docHeight) {
|
||||
self.docHeight = docHeight;
|
||||
self.getPositions();
|
||||
}
|
||||
}, 250);
|
||||
},
|
||||
|
||||
getHash: function($link) {
|
||||
return $link.attr('href').split('#')[1];
|
||||
},
|
||||
|
||||
getPositions: function() {
|
||||
var self = this;
|
||||
var linkHref;
|
||||
var topPos;
|
||||
var $target;
|
||||
|
||||
self.$nav.each(function() {
|
||||
linkHref = self.getHash($(this));
|
||||
$target = $('#' + linkHref);
|
||||
|
||||
if($target.length) {
|
||||
topPos = $target.offset().top;
|
||||
self.sections[linkHref] = Math.round(topPos);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
getSection: function(windowPos) {
|
||||
var returnValue = null;
|
||||
var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);
|
||||
|
||||
for(var section in this.sections) {
|
||||
if((this.sections[section] - windowHeight) < windowPos) {
|
||||
returnValue = section;
|
||||
}
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
},
|
||||
|
||||
handleClick: function(e) {
|
||||
var self = this;
|
||||
var $link = $(e.currentTarget);
|
||||
var $parent = $link.parent();
|
||||
var newLoc = '#' + self.getHash($link);
|
||||
|
||||
if(!$parent.hasClass(self.config.currentClass)) {
|
||||
//Start callback
|
||||
if(self.config.begin) {
|
||||
self.config.begin();
|
||||
}
|
||||
|
||||
//Change the highlighted nav item
|
||||
self.adjustNav(self, $parent);
|
||||
|
||||
//Removing the auto-adjust on scroll
|
||||
self.unbindInterval();
|
||||
|
||||
//Scroll to the correct position
|
||||
self.scrollTo(newLoc, function() {
|
||||
//Do we need to change the hash?
|
||||
if(self.config.changeHash) {
|
||||
window.location.hash = newLoc;
|
||||
}
|
||||
|
||||
//Add the auto-adjust on scroll back in
|
||||
self.bindInterval();
|
||||
|
||||
//End callback
|
||||
if(self.config.end) {
|
||||
self.config.end();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
},
|
||||
|
||||
scrollChange: function() {
|
||||
var windowTop = this.$win.scrollTop();
|
||||
var position = this.getSection(windowTop);
|
||||
var $parent;
|
||||
|
||||
//If the position is set
|
||||
if(position !== null) {
|
||||
$parent = this.$elem.find('a[href$="#' + position + '"]').parent();
|
||||
|
||||
//If it's not already the current section
|
||||
if(!$parent.hasClass(this.config.currentClass)) {
|
||||
//Change the highlighted nav item
|
||||
this.adjustNav(this, $parent);
|
||||
|
||||
//If there is a scrollChange callback
|
||||
if(this.config.scrollChange) {
|
||||
this.config.scrollChange($parent);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
scrollTo: function(target, callback) {
|
||||
var offset = $(target).offset().top;
|
||||
|
||||
$('html, body').animate({
|
||||
scrollTop: offset
|
||||
}, this.config.scrollSpeed, this.config.easing, callback);
|
||||
},
|
||||
|
||||
unbindInterval: function() {
|
||||
clearInterval(this.t);
|
||||
this.$win.unbind('scroll.onePageNav');
|
||||
}
|
||||
};
|
||||
|
||||
OnePageNav.defaults = OnePageNav.prototype.defaults;
|
||||
|
||||
$.fn.onePageNav = function(options) {
|
||||
return this.each(function() {
|
||||
new OnePageNav(this, options).init();
|
||||
});
|
||||
};
|
||||
|
||||
})( jQuery, window , document );
|
@ -1,208 +0,0 @@
|
||||
/*!
|
||||
* jQuery.scrollTo
|
||||
* Copyright (c) 2007-2015 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
|
||||
* Licensed under MIT
|
||||
* http://flesler.blogspot.com/2007/10/jqueryscrollto.html
|
||||
* @projectDescription Easy element scrolling using jQuery.
|
||||
* @author Ariel Flesler
|
||||
* @version 2.1.0
|
||||
*/
|
||||
;(function(define) {
|
||||
'use strict';
|
||||
|
||||
define(['jquery'], function($) {
|
||||
var $scrollTo = $.scrollTo = function(target, duration, settings) {
|
||||
return $(window).scrollTo(target, duration, settings);
|
||||
};
|
||||
|
||||
$scrollTo.defaults = {
|
||||
axis:'xy',
|
||||
duration: 0,
|
||||
limit:true
|
||||
};
|
||||
|
||||
function isWin(elem) {
|
||||
return !elem.nodeName ||
|
||||
$.inArray(elem.nodeName.toLowerCase(), ['iframe','#document','html','body']) !== -1;
|
||||
}
|
||||
|
||||
$.fn.scrollTo = function(target, duration, settings) {
|
||||
if (typeof duration === 'object') {
|
||||
settings = duration;
|
||||
duration = 0;
|
||||
}
|
||||
if (typeof settings === 'function') {
|
||||
settings = { onAfter:settings };
|
||||
}
|
||||
if (target === 'max') {
|
||||
target = 9e9;
|
||||
}
|
||||
|
||||
settings = $.extend({}, $scrollTo.defaults, settings);
|
||||
// Speed is still recognized for backwards compatibility
|
||||
duration = duration || settings.duration;
|
||||
// Make sure the settings are given right
|
||||
var queue = settings.queue && settings.axis.length > 1;
|
||||
if (queue) {
|
||||
// Let's keep the overall duration
|
||||
duration /= 2;
|
||||
}
|
||||
settings.offset = both(settings.offset);
|
||||
settings.over = both(settings.over);
|
||||
|
||||
return this.each(function() {
|
||||
// Null target yields nothing, just like jQuery does
|
||||
if (target === null) return;
|
||||
|
||||
var win = isWin(this),
|
||||
elem = win ? this.contentWindow || window : this,
|
||||
$elem = $(elem),
|
||||
targ = target,
|
||||
attr = {},
|
||||
toff;
|
||||
|
||||
switch (typeof targ) {
|
||||
// A number will pass the regex
|
||||
case 'number':
|
||||
case 'string':
|
||||
if (/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)) {
|
||||
targ = both(targ);
|
||||
// We are done
|
||||
break;
|
||||
}
|
||||
// Relative/Absolute selector
|
||||
targ = win ? $(targ) : $(targ, elem);
|
||||
if (!targ.length) return;
|
||||
/* falls through */
|
||||
case 'object':
|
||||
// DOMElement / jQuery
|
||||
if (targ.is || targ.style) {
|
||||
// Get the real position of the target
|
||||
toff = (targ = $(targ)).offset();
|
||||
}
|
||||
}
|
||||
|
||||
var offset = $.isFunction(settings.offset) && settings.offset(elem, targ) || settings.offset;
|
||||
|
||||
$.each(settings.axis.split(''), function(i, axis) {
|
||||
var Pos = axis === 'x' ? 'Left' : 'Top',
|
||||
pos = Pos.toLowerCase(),
|
||||
key = 'scroll' + Pos,
|
||||
prev = $elem[key](),
|
||||
max = $scrollTo.max(elem, axis);
|
||||
|
||||
if (toff) {// jQuery / DOMElement
|
||||
attr[key] = toff[pos] + (win ? 0 : prev - $elem.offset()[pos]);
|
||||
|
||||
// If it's a dom element, reduce the margin
|
||||
if (settings.margin) {
|
||||
attr[key] -= parseInt(targ.css('margin'+Pos), 10) || 0;
|
||||
attr[key] -= parseInt(targ.css('border'+Pos+'Width'), 10) || 0;
|
||||
}
|
||||
|
||||
attr[key] += offset[pos] || 0;
|
||||
|
||||
if (settings.over[pos]) {
|
||||
// Scroll to a fraction of its width/height
|
||||
attr[key] += targ[axis === 'x'?'width':'height']() * settings.over[pos];
|
||||
}
|
||||
} else {
|
||||
var val = targ[pos];
|
||||
// Handle percentage values
|
||||
attr[key] = val.slice && val.slice(-1) === '%' ?
|
||||
parseFloat(val) / 100 * max
|
||||
: val;
|
||||
}
|
||||
|
||||
// Number or 'number'
|
||||
if (settings.limit && /^\d+$/.test(attr[key])) {
|
||||
// Check the limits
|
||||
attr[key] = attr[key] <= 0 ? 0 : Math.min(attr[key], max);
|
||||
}
|
||||
|
||||
// Don't waste time animating, if there's no need.
|
||||
if (!i && settings.axis.length > 1) {
|
||||
if (prev === attr[key]) {
|
||||
// No animation needed
|
||||
attr = {};
|
||||
} else if (queue) {
|
||||
// Intermediate animation
|
||||
animate(settings.onAfterFirst);
|
||||
// Don't animate this axis again in the next iteration.
|
||||
attr = {};
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
animate(settings.onAfter);
|
||||
|
||||
function animate(callback) {
|
||||
var opts = $.extend({}, settings, {
|
||||
// The queue setting conflicts with animate()
|
||||
// Force it to always be true
|
||||
queue: true,
|
||||
duration: duration,
|
||||
complete: callback && function() {
|
||||
callback.call(elem, targ, settings);
|
||||
}
|
||||
});
|
||||
$elem.animate(attr, opts);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Max scrolling position, works on quirks mode
|
||||
// It only fails (not too badly) on IE, quirks mode.
|
||||
$scrollTo.max = function(elem, axis) {
|
||||
var Dim = axis === 'x' ? 'Width' : 'Height',
|
||||
scroll = 'scroll'+Dim;
|
||||
|
||||
if (!isWin(elem))
|
||||
return elem[scroll] - $(elem)[Dim.toLowerCase()]();
|
||||
|
||||
var size = 'client' + Dim,
|
||||
doc = elem.ownerDocument || elem.document,
|
||||
html = doc.documentElement,
|
||||
body = doc.body;
|
||||
|
||||
return Math.max(html[scroll], body[scroll]) - Math.min(html[size], body[size]);
|
||||
};
|
||||
|
||||
function both(val) {
|
||||
return $.isFunction(val) || $.isPlainObject(val) ? val : { top:val, left:val };
|
||||
}
|
||||
|
||||
// Add special hooks so that window scroll properties can be animated
|
||||
$.Tween.propHooks.scrollLeft =
|
||||
$.Tween.propHooks.scrollTop = {
|
||||
get: function(t) {
|
||||
return $(t.elem)[t.prop]();
|
||||
},
|
||||
set: function(t) {
|
||||
var curr = this.get(t);
|
||||
// If interrupt is true and user scrolled, stop animating
|
||||
if (t.options.interrupt && t._last && t._last !== curr) {
|
||||
return $(t.elem).stop();
|
||||
}
|
||||
var next = Math.round(t.now);
|
||||
// Don't waste CPU
|
||||
// Browsers don't render floating point scroll
|
||||
if (curr !== next) {
|
||||
$(t.elem)[t.prop](next);
|
||||
t._last = this.get(t);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// AMD requirement
|
||||
return $scrollTo;
|
||||
});
|
||||
}(typeof define === 'function' && define.amd ? define : function(deps, factory) {
|
||||
'use strict';
|
||||
if (typeof module !== 'undefined' && module.exports) {
|
||||
// Node
|
||||
module.exports = factory(require('jquery'));
|
||||
} else {
|
||||
factory(jQuery);
|
||||
}
|
||||
}));
|
@ -1,3 +0,0 @@
|
||||
$(document).ready(function() {
|
||||
$('.wy-menu').onePageNav();
|
||||
});
|
@ -1,65 +0,0 @@
|
||||
{% extends "!layout.html" %}
|
||||
|
||||
{% set script_files = script_files + ["_static/cookies.js"] %}
|
||||
{% set script_files = script_files + ["_static/expandable.js"] %}
|
||||
{% set script_files = script_files + ["_static/admonition_selector.js"] %}
|
||||
{% set script_files = script_files + ["_static/jquery.scrollTo.js"] %}
|
||||
{% set script_files = script_files + ["_static/jquery.nav.js"] %}
|
||||
{% set script_files = script_files + ["_static/menu.js"] %}
|
||||
|
||||
{% set css_files = css_files + ['_static/custom.css'] %}
|
||||
|
||||
{% block otherversions %}
|
||||
<div id="admonition_selector">
|
||||
<span class="trigger">Limit Environment Specific Content</span>
|
||||
|
||||
<div class="content">
|
||||
<span class="title">Operating Systems</span>
|
||||
<ul>
|
||||
<li><input type="checkbox" id="centos" checked="checked"><label for="centos" title="Step that should only be run when using CentOS.">CentOS</label></li>
|
||||
<li><input type="checkbox" id="rhel" checked="checked"><label for="rhel" title="Step that should only be run when using RHEL.">RHEL</label></li>
|
||||
</ul>
|
||||
|
||||
<span class="title">Branches</span>
|
||||
<ul>
|
||||
<li><input type="checkbox" id="stable" checked=""><label for="stable" title="Step that should only be run when choosing to use components from their stable branches rather than using packages/source based on current master.">Install from stable branch</label></li>
|
||||
<li><input type="checkbox" id="newton" checked=""><label for="newton" title="Step that should only be run when installing from the Newton stable branch.">Install from Newton branch</label></li>
|
||||
<li><input type="checkbox" id="ocata" checked=""><label for="ocata" title="Step that should only be run when installing from the Ocata stable branch.">Install from Ocata branch</label></li>
|
||||
</ul>
|
||||
|
||||
<span class="title">RHEL Registration Types</span>
|
||||
<ul>
|
||||
<li><input type="checkbox" id="portal" checked="checked"><label for="portal" title="Step that should only be run when registering to the Red Hat Portal.">Portal</label></li>
|
||||
<li><input type="checkbox" id="satellite" checked="checked"><label for="satellite" title="Step that should only be run when registering to Red Hat Satellite.">Satellite</label></li>
|
||||
</ul>
|
||||
|
||||
<span class="title">Environments</span>
|
||||
<ul>
|
||||
<li><input type="checkbox" id="baremetal" checked="checked"><label for="baremetal" title="Step that should only be run when deploying to baremetal.">Baremetal</label></li>
|
||||
<li><input type="checkbox" id="virtual" checked="checked"><label for="virtual" title="Step that should only be run when deploying to virtual machines.">Virtual</label></li>
|
||||
</ul>
|
||||
|
||||
<span class="title">Features</span>
|
||||
<ul>
|
||||
<li><input type="checkbox" id="validations" checked="checked"><label for="validations" title="Step that should only be run when deploying with validations.">Validations</label></li>
|
||||
<li><input type="checkbox" id="optional" checked="checked"><label for="optional" title="Step that is optional. A deployment can be done without these steps, but they may provide useful additional functionality.">Optional</label></li>
|
||||
</ul>
|
||||
|
||||
<span class="title">Additional Overcloud Roles</span>
|
||||
<ul>
|
||||
<li><input type="checkbox" id="ceph" checked="checked"><label for="ceph" title="Step that should only be run when deploying Ceph for use by the Overcloud.">Ceph</label></li>
|
||||
</ul>
|
||||
|
||||
<span class="title">Upgrade Version</span>
|
||||
<ul>
|
||||
<li><input type="checkbox" id="mton" checked="checked"><label for="mton" title="Step that should only be run for upgrading from Mitaka to Newton">Upgrading Mitaka to Newton</label></li>
|
||||
<li><input type="checkbox" id="ntoo" checked="checked"><label for="ntoo" title="Step that should only be run for upgrading from Newton to Ocata">Upgrading Newton to Ocata</label></li>
|
||||
<li><input type="checkbox" id="otop" checked="checked"><label for="otop" title="Step that should only be run for upgrading from Ocata to Pike">Upgrading Ocata to Pike</label></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ super() }}
|
||||
{% endblock %}
|
@ -1,2 +0,0 @@
|
||||
librsvg2-tools [doc platform:rpm]
|
||||
librsvg2-bin [doc platform:dpkg]
|
Binary file not shown.
Before Width: | Height: | Size: 92 KiB |
@ -1,938 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.2"
|
||||
width="221.28786mm"
|
||||
height="95.618492mm"
|
||||
viewBox="0 0 22128.785 9561.849"
|
||||
preserveAspectRatio="xMidYMid"
|
||||
clip-path="url(#presentation_clip_path)"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
|
||||
sodipodi:docname="spine_and_leaf.svg"
|
||||
inkscape:export-filename="/home/remote/hjensas/Documents/Projects/FKassan/spine_and_leaf_grey.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata
|
||||
id="metadata2202"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
id="namedview2200"
|
||||
showgrid="true"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="325.01545"
|
||||
inkscape:cy="362.39456"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
showguides="false"
|
||||
inkscape:snap-grids="true"
|
||||
inkscape:snap-bbox="true"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2162"
|
||||
originx="-3557.8186"
|
||||
originy="-465.85891" /></sodipodi:namedview><defs
|
||||
class="ClipPathGroup"
|
||||
id="defs4"><clipPath
|
||||
id="presentation_clip_path"
|
||||
clipPathUnits="userSpaceOnUse"><rect
|
||||
x="0"
|
||||
y="0"
|
||||
width="21000"
|
||||
height="14800"
|
||||
id="rect7" /></clipPath></defs><defs
|
||||
class="TextShapeIndex"
|
||||
id="defs9" /><defs
|
||||
class="EmbeddedBulletChars"
|
||||
id="defs13" /><defs
|
||||
class="TextEmbeddedBitmaps"
|
||||
id="defs42" /><rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;fill-rule:evenodd;stroke:none;stroke-width:99.59664917;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect7472-1-4"
|
||||
width="21068.076"
|
||||
height="3327.2278"
|
||||
x="1060.71"
|
||||
y="5783.6973"
|
||||
ry="493.24051" /><rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;stroke:none;stroke-width:70.56232452;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect7472"
|
||||
width="21172.889"
|
||||
height="1661.8187"
|
||||
x="955.89368"
|
||||
y="0"
|
||||
ry="246.35416" /><rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;stroke-width:23.36642456;stroke-miterlimit:4;stroke-dasharray:186.93141099, 93.46570549;stroke-dashoffset:0"
|
||||
id="rect7187"
|
||||
width="4004.1733"
|
||||
height="5368.9526"
|
||||
x="1060.71"
|
||||
y="4192.897"
|
||||
ry="244.64894" /><g
|
||||
id="g44"
|
||||
transform="translate(-3557.8188,-1102.0474)"><g
|
||||
id="id2"
|
||||
class="Master_Slide"><g
|
||||
id="bg-id2"
|
||||
class="Background" /><g
|
||||
id="bo-id2"
|
||||
class="BackgroundObjects" /></g></g><path
|
||||
style="fill:none;stroke:#000000;stroke-width:13.56770134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:108.54160421, 54.2708021;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 925.65479,5022.3992 c -60.51808,14.927 -121.17892,9.0977 -181.76702,9.0977 -172.42701,0 -344.8541,0 -517.28111,0 -45.48585,0 -53.55151,0 -91.5542,0 -9.15541,0 -18.31082,0 -27.46622,0 -3.05182,0 -6.10366,0 -9.155409,0 -1.525908,0 -6.103651,0 -4.577737,0 3.051829,0 12.207226,0 9.155406,0 -6.103577,0 -12.207234,0 -18.31081,0 -19.836723,0 -39.673445,0 -59.510248,0 -4.577662,0 -9.155405,0 -13.733067,0 -1.5259141,0 -5.2813943,5.859 -4.5777418,0 0.9296198,-7.7403 3.7802008,-6.065 5.6703408,-9.0977"
|
||||
id="path6251"
|
||||
inkscape:connector-curvature="0" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:329.94973755px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:232.79600525"
|
||||
x="227.58598"
|
||||
y="4397.6118"
|
||||
id="text6255"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan6253"
|
||||
x="227.58598"
|
||||
y="4397.6118"
|
||||
style="stroke-width:232.79600525">L3</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:367.5909729px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:259.3538208"
|
||||
x="211.54889"
|
||||
y="4957.1426"
|
||||
id="text6259"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan6257"
|
||||
x="211.54889"
|
||||
y="4957.1426"
|
||||
style="stroke-width:259.3538208">L2</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:386.90072632px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:272.9777832"
|
||||
x="2280.334"
|
||||
y="5325.6221"
|
||||
id="text7127"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7125"
|
||||
x="2280.334"
|
||||
y="5667.9385"
|
||||
style="stroke-width:272.9777832" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:386.90075684px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:272.97781372;stroke-linejoin:round"
|
||||
x="4539.1108"
|
||||
y="5329.9927"
|
||||
id="text7127-0"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7125-3"
|
||||
x="4539.1108"
|
||||
y="5672.3091"
|
||||
style="stroke-width:272.97781372" /></text>
|
||||
<rect
|
||||
id="rect2109-6-5-9-0"
|
||||
width="5118.355"
|
||||
height="946.78052"
|
||||
x="1670.5643"
|
||||
y="305.97485"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:66.52793121;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="240.99867" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:1058.33337402px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:746.70709229"
|
||||
x="3481.3599"
|
||||
y="1986.9637"
|
||||
id="text7185"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7183"
|
||||
x="3481.3599"
|
||||
y="2923.3408"
|
||||
style="stroke-width:746.70709229" /></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 1675.6302,4832.0574 2442.6235,1252.7555"
|
||||
id="path7189"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 2212.0703,4727.9807 15737.173,1252.7555"
|
||||
id="path7191"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 3465.2812,4832.0574 2442.6235,1252.7555"
|
||||
id="path7193"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 3899.7681,4727.9805 15737.173,1252.7555"
|
||||
id="path7195"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;fill-rule:evenodd;stroke-width:23.40653419;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:187.25226202, 93.62613113;stroke-dashoffset:0"
|
||||
id="rect7187-4"
|
||||
width="3990.1204"
|
||||
height="5406.373"
|
||||
x="5995.4189"
|
||||
y="4155.4761"
|
||||
ry="246.35411" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 16759.831,1252.7555 6825.6059,4704.2258 2953.9523,1252.7555"
|
||||
id="path7446"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 2953.9523,1252.7555 5852.4337,3475.225 7953.445,-3475.225"
|
||||
id="path7448"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:304.87020874px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:215.10116577"
|
||||
x="2737.1526"
|
||||
y="8551.4111"
|
||||
id="text7452"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7450"
|
||||
x="2737.1526"
|
||||
y="8551.4111"
|
||||
style="stroke-width:215.10116577">Rack A</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:304.87023926px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:215.10118103;stroke-linejoin:round"
|
||||
x="8249.8623"
|
||||
y="8547.1641"
|
||||
id="text7452-0"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7450-5"
|
||||
x="8249.8623"
|
||||
y="8547.1641"
|
||||
style="stroke-width:215.10118103">Rack B</tspan></text>
|
||||
<rect
|
||||
id="rect2109-6-5-9-8-0-5"
|
||||
width="3458.9375"
|
||||
height="639.16052"
|
||||
x="1270.3427"
|
||||
y="6059.2471"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14209747;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69539" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-0"
|
||||
width="3458.9377"
|
||||
height="639.16058"
|
||||
x="1270.3418"
|
||||
y="6877.374"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210129;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.6954" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-6"
|
||||
width="3458.9377"
|
||||
height="639.16058"
|
||||
x="1270.3427"
|
||||
y="7644.3667"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210129;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.6954" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-4"
|
||||
width="3458.9377"
|
||||
height="639.16058"
|
||||
x="1270.3427"
|
||||
y="8411.3604"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210129;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.6954" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00549316px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:259.64627075"
|
||||
x="2238.1521"
|
||||
y="5906.1802"
|
||||
id="text7569"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567"
|
||||
x="2238.1521"
|
||||
y="5906.1802"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64627075">Undercloud</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00552368px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64630127;stroke-linejoin:round"
|
||||
x="2230.365"
|
||||
y="6600.7021"
|
||||
id="text7569-6"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-2"
|
||||
x="2230.365"
|
||||
y="6600.7021"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64630127">Controller-0</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00552368px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64630127;stroke-linejoin:round"
|
||||
x="2283.1382"
|
||||
y="7295.2236"
|
||||
id="text7569-5"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-8"
|
||||
x="2283.1382"
|
||||
y="7295.2236"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64630127">Controller-1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00552368px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64630127;stroke-linejoin:round"
|
||||
x="2293.3462"
|
||||
y="7989.7456"
|
||||
id="text7569-62"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-84"
|
||||
x="2293.3462"
|
||||
y="7989.7456"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64630127">Controller-2</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 6993.313,5343.3869 v 766.9932"
|
||||
id="path7762"
|
||||
inkscape:connector-curvature="0" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-3"
|
||||
width="3458.9377"
|
||||
height="639.16058"
|
||||
x="6301.5244"
|
||||
y="6033.6812"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210129;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.6954" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-0-1"
|
||||
width="3458.938"
|
||||
height="639.16064"
|
||||
x="6301.5239"
|
||||
y="6851.8071"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.1421051;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69542" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-6-1"
|
||||
width="3458.938"
|
||||
height="639.16064"
|
||||
x="6301.5244"
|
||||
y="7618.8003"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.1421051;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69542" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-4-0"
|
||||
width="3458.938"
|
||||
height="639.16064"
|
||||
x="6301.5244"
|
||||
y="8385.7939"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.1421051;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69542" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00552368px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64630127;stroke-linejoin:round"
|
||||
x="7794.3252"
|
||||
y="5883.0293"
|
||||
id="text7569-3"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-4"
|
||||
x="7794.3252"
|
||||
y="5883.0293"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64630127">Compute-1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.0055542px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64633179;stroke-linejoin:round"
|
||||
x="7786.5371"
|
||||
y="6577.5518"
|
||||
id="text7569-6-0"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-2-3"
|
||||
x="7786.5371"
|
||||
y="6577.5518"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64633179">Compute-2</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.0055542px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64633179;stroke-linejoin:round"
|
||||
x="7839.311"
|
||||
y="7272.0737"
|
||||
id="text7569-5-9"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-8-1"
|
||||
x="7839.311"
|
||||
y="7272.0737"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64633179">Compute-3</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.0055542px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64633179;stroke-linejoin:round"
|
||||
x="7849.5195"
|
||||
y="7966.5952"
|
||||
id="text7569-62-9"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-84-6"
|
||||
x="7849.5195"
|
||||
y="7966.5952"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64633179">Compute-4</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:479.77911377px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;stroke:none;stroke-width:338.50814819"
|
||||
x="3706.873"
|
||||
y="825.29425"
|
||||
id="text7700"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7698"
|
||||
x="3706.873"
|
||||
y="825.29425"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:338.50814819">Spine 1</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 1899.2403,5343.3869 v 766.9932"
|
||||
id="path7758"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 3869.7864,5343.3869 v 766.9932"
|
||||
id="path7760"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 9005.7841,5343.3869 v 766.9932"
|
||||
id="path7764"
|
||||
inkscape:connector-curvature="0" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:347.70367432px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:231.50720215;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
x="21719.07"
|
||||
y="849.41766"
|
||||
id="text7772"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7770"
|
||||
x="21719.07"
|
||||
y="849.41766"
|
||||
style="stroke-width:231.50720215;stroke-miterlimit:4;stroke-dasharray:none">Spine Switches</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:350.77200317px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:247.48719788;stroke-linejoin:round"
|
||||
x="21927.396"
|
||||
y="6772.7363"
|
||||
id="text7776-0"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7774-0"
|
||||
x="21927.396"
|
||||
y="6772.7363"
|
||||
style="stroke-width:247.48719788">Servers</tspan></text>
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;fill-rule:evenodd;stroke-width:23.40653419;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:187.25228269, 93.62614135;stroke-dashoffset:0"
|
||||
id="rect7187-4-2"
|
||||
width="3990.1208"
|
||||
height="5406.3735"
|
||||
x="10816.969"
|
||||
y="4129.9087"
|
||||
ry="246.35414" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:304.87026978px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:215.10121155;stroke-linejoin:round"
|
||||
x="13574.528"
|
||||
y="8524.0117"
|
||||
id="text7452-0-3"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7450-5-7"
|
||||
x="13574.528"
|
||||
y="8524.0117"
|
||||
style="stroke-width:215.10121155">Rack C</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:23.15072632px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 11814.863,5317.8196 v 766.9932"
|
||||
id="path7762-9"
|
||||
inkscape:connector-curvature="0" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-3-2"
|
||||
width="3458.938"
|
||||
height="639.16064"
|
||||
x="11123.074"
|
||||
y="6008.1138"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.1421051;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69542" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-0-1-2"
|
||||
width="3458.9385"
|
||||
height="639.16071"
|
||||
x="11123.072"
|
||||
y="6826.2402"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210892;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69543" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-6-1-8"
|
||||
width="3458.9385"
|
||||
height="639.16071"
|
||||
x="11123.074"
|
||||
y="7593.2339"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210892;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69543" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-4-0-9"
|
||||
width="3458.9385"
|
||||
height="639.16071"
|
||||
x="11123.074"
|
||||
y="8360.2266"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210892;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69543" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00558472px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64633179;stroke-linejoin:round"
|
||||
x="13118.99"
|
||||
y="5859.8784"
|
||||
id="text7569-3-7"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-4-3"
|
||||
x="13118.99"
|
||||
y="5859.8784"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64633179">Compute-5</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00558472px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.6463623;stroke-linejoin:round"
|
||||
x="13111.204"
|
||||
y="6554.4009"
|
||||
id="text7569-6-0-6"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-2-3-1"
|
||||
x="13111.204"
|
||||
y="6554.4009"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.6463623">Compute-6</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00558472px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.6463623;stroke-linejoin:round"
|
||||
x="13163.978"
|
||||
y="7248.9224"
|
||||
id="text7569-5-9-2"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-8-1-9"
|
||||
x="13163.978"
|
||||
y="7248.9224"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.6463623">Compute-7</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00558472px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.6463623;stroke-linejoin:round"
|
||||
x="13174.185"
|
||||
y="7943.4443"
|
||||
id="text7569-62-9-3"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-84-6-1"
|
||||
x="13174.185"
|
||||
y="7943.4443"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.6463623">Compute-8</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:23.15072632px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 13827.334,5317.8196 v 766.9932"
|
||||
id="path7764-4"
|
||||
inkscape:connector-curvature="0" /><rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;fill-rule:evenodd;stroke-width:23.4065361;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:187.2523033, 93.62615153;stroke-dashoffset:0"
|
||||
id="rect7187-4-2-0"
|
||||
width="3990.1216"
|
||||
height="5406.374"
|
||||
x="15470.81"
|
||||
y="4155.4756"
|
||||
ry="246.35416" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:304.87030029px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:215.10124207;stroke-linejoin:round"
|
||||
x="18713.99"
|
||||
y="8547.1641"
|
||||
id="text7452-0-3-6"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7450-5-7-1"
|
||||
x="18713.99"
|
||||
y="8547.1641"
|
||||
style="stroke-width:215.10124207">Rack D</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:23.15072823px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 16468.705,5343.3865 v 766.9938"
|
||||
id="path7762-9-6"
|
||||