Skip to content

Commit 9571561

Browse files
committed
Merge pull request #1 from dickon/master
OXT-168: add a brief README file. With a diagram!
2 parents 8e81151 + 52dbd6d commit 9571561

File tree

3 files changed

+231
-0
lines changed

3 files changed

+231
-0
lines changed

README.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
The OpenXT synchronizers
2+
3+
![Block diagram of the OpenXT Synchonizer](diagrams/Syncstruct.png)
4+
5+
Synchronizer XT enables sysadmins and IT professionals to securely and
6+
easily manage a large number of XenClient laptops and the Windows VMs
7+
that run on them.
8+
9+
This contains the client part of the OpenXT synchronizer. The code here (mainly
10+
sync_client/client.py) is a python program that runs in a low privilege service VM,
11+
makes an HTTPS to a synchronizer web server which tells it what VMs it should be running.
12+
client.py then compares this to the current state of the machine, downloads disks, configures
13+
and starts VM as appropriate.
14+
15+
Note that client.py is a short running process which maintains no state. It runs once
16+
to completion and then exits. Normally client.py is started by launcher.py which handles
17+
getting the configuring information for client.py and running it regularly, and handling exits.
18+
19+
## Dependencies
20+
21+
sync-client requires:
22+
23+
* a synchronizer server to get target state and VHDs from (see https://github.com/openxt/sync-server/). In
24+
turn the synchronizer server will require:
25+
** sync-database, a schema and stored procedures
26+
** sync-cli, commnad line tools to access that database
27+
** sync-wui, an optional web user interface for administrators
28+
* icbinn (https://github.com/openxt/icbinn) to provide specific filesystem access to dom0 to write VHD files
29+
* Python 2, (http://python.org)
30+
* dbus-python (https://pypi.python.org/pypi/pydbus/0.2)
31+
32+
Normally sync-client is built as part of an OpenXT build via the recipe (OpenEmbedded makefile) at:
33+
34+
https://github.com/OpenXT/xenclient-oe/blob/master/recipes-openxt/xenclient/sync-client_git.bb
35+
36+
## Getting help
37+
38+
Start at:
39+
40+
http://www.openxt.org/
41+
42+
for details of reaching the OpenXT community.
43+
44+
45+
## Authors
46+
47+
This document was written by Dickon Reed, dickon@cantab.net, 20th
48+
February 2015.
49+
50+
The OpenXT synchronizer was written by a wider team, who may wish to add
51+
themselves to this README file.
52+

diagrams/Syncstruct.dia

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
<!DOCTYPE html>
2+
<html lang="en" dir="ltr" class="client-nojs">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<title>File:Syncstruct.dia - XenClient</title>
6+
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
7+
<meta name="generator" content="MediaWiki 1.23.3" />
8+
<link rel="shortcut icon" href="/favicon.ico" />
9+
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch_desc.php" title="XenClient (en)" />
10+
<link rel="EditURI" type="application/rsd+xml" href="http://wiki.cam.xci-test.com/api.php?action=rsd" />
11+
<link rel="alternate" type="application/atom+xml" title="XenClient Atom feed" href="/index.php?title=Special:RecentChanges&amp;feed=atom" />
12+
<link rel="stylesheet" href="http://wiki.cam.xci-test.com/load.php?debug=false&amp;lang=en&amp;modules=ext.visualEditor.viewPageTarget.noscript%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.skinning.interface%7Cmediawiki.ui.button%7Cskins.monobook.styles&amp;only=styles&amp;skin=monobook&amp;*" />
13+
<!--[if IE 6]><link rel="stylesheet" href="/skins/monobook/IE60Fixes.css?303" media="screen" /><![endif]-->
14+
<!--[if IE 7]><link rel="stylesheet" href="/skins/monobook/IE70Fixes.css?303" media="screen" /><![endif]--><meta name="ResourceLoaderDynamicStyles" content="" />
15+
<link rel="stylesheet" href="http://wiki.cam.xci-test.com/load.php?debug=false&amp;lang=en&amp;modules=site&amp;only=styles&amp;skin=monobook&amp;*" />
16+
<style>a:lang(ar),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}
17+
/* cache key: wikidb:resourceloader:filter:minify-css:7:b36fd1c042133c9c9b60260f7c29b237 */</style>
18+
<script src="http://wiki.cam.xci-test.com/load.php?debug=false&amp;lang=en&amp;modules=startup&amp;only=scripts&amp;skin=monobook&amp;*"></script>
19+
<script>if(window.mw){
20+
mw.config.set({"wgCanonicalNamespace":"File","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":6,"wgPageName":"File:Syncstruct.dia","wgTitle":"Syncstruct.dia","wgCurRevisionId":4564,"wgRevisionId":4564,"wgArticleId":321,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"File:Syncstruct.dia","wgIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgRestrictionUpload":[],"wgVisualEditor":{"isPageWatched":false,"magnifyClipIconURL":"/skins/common/images/magnify-clip.png","pageLanguageCode":"en","pageLanguageDir":"ltr","svgMaxSize":2048}});
21+
}</script><script>if(window.mw){
22+
mw.loader.implement("user.options",function($,jQuery){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"editfont":"default","editondblclick":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":1,"extendwatchlist":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nickname":"","norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"rcdays":7,"rclimit":50,"rows":25,"showhiddencats":0,"shownumberswatching":1,"showtoolbar":1,"skin":"monobook","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":1,"watchdefault":1,"watchdeletion":0,"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,
23+
"useeditwarning":1,"prefershttps":1,"visualeditor-enable":1,"visualeditor-enable-experimental":0,"visualeditor-betatempdisable":0,"language":"en","variant-gan":"gan","variant-iu":"iu","variant-kk":"kk","variant-ku":"ku","variant-shi":"shi","variant-sr":"sr","variant-tg":"tg","variant-uz":"uz","variant-zh":"zh","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"variant":"en"});},{},{});mw.loader.implement("user.tokens",function($,jQuery){mw.user.tokens.set({"editToken":"+\\","patrolToken":false,"watchToken":false});},{},{});
24+
/* cache key: wikidb:resourceloader:filter:minify-js:7:fe59e018522293342af3473987427bd6 */
25+
}</script>
26+
<script>if(window.mw){
27+
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax","ext.visualEditor.viewPageTarget.init"]);
28+
}</script>
29+
<script src="/extensions/UmlCanvas/Canvas2D.standalone.min.js" type="text/javascript"></script><script src="/extensions/UmlCanvas/UmlCanvas.shared.min.js" type="text/javascript"></script><link href="/extensions/UmlCanvas/UmlCanvas.css" rel="stylesheet" type="text/css" /></head>
30+
<body class="mediawiki ltr sitedir-ltr ns-6 ns-subject page-File_Syncstruct_dia skin-monobook action-view">
31+
<div id="globalWrapper">
32+
<div id="column-content"><div id="content" class="mw-body-primary" role="main">
33+
<a id="top"></a>
34+
35+
<h1 id="firstHeading" class="firstHeading" lang="en"><span dir="auto">File:Syncstruct.dia</span></h1>
36+
<div id="bodyContent" class="mw-body">
37+
<div id="siteSub">From XenClient</div>
38+
<div id="contentSub"></div>
39+
<div id="jump-to-nav" class="mw-jump">Jump to: <a href="#column-one">navigation</a>, <a href="#searchInput">search</a></div>
40+
41+
<!-- start content -->
42+
<div id="mw-content-text"><ul id="filetoc"><li><a href="#file">File</a></li>
43+
<li><a href="#filehistory">File history</a></li>
44+
<li><a href="#filelinks">File usage</a></li></ul><div class="fullMedia"><span class="dangerousLink"><a href="/images/1/1a/Syncstruct.dia" class="internal" title="Syncstruct.dia">Syncstruct.dia</a></span> &#8206;<span class="fileInfo">(file size: 4 KB, MIME type: application/x-gzip)</span></div>
45+
<div class="mediaWarning"><strong>Warning:</strong> This file type may contain malicious code.
46+
By executing it, your system may be compromised.</div>
47+
<div id="mw-imagepage-content" lang="en" dir="ltr" class="mw-content-ltr"><p>dia source
48+
</p>
49+
<!--
50+
NewPP limit report
51+
CPU time usage: 0.000 seconds
52+
Real time usage: 0.001 seconds
53+
Preprocessor visited node count: 1/1000000
54+
Preprocessor generated node count: 4/1000000
55+
Post‐expand include size: 0/2097152 bytes
56+
Template argument size: 0/2097152 bytes
57+
Highest expansion depth: 1/40
58+
Expensive parser function count: 0/100
59+
-->
60+
61+
<!-- Saved in parser cache with key wikidb:pcache:idhash:321-0!*!*!*!*!*!* and timestamp 20150220164157 and revision id 4564
62+
-->
63+
</div><h2 id="filehistory">File history</h2>
64+
<div id="mw-imagepage-section-filehistory">
65+
<p>Click on a date/time to view the file as it appeared at that time.
66+
</p>
67+
<table class="wikitable filehistory">
68+
<tr><td></td><th>Date/Time</th><th>Dimensions</th><th>User</th><th>Comment</th></tr>
69+
<tr><td>current</td><td class='filehistory-selected' style='white-space: nowrap;'><a href="/images/1/1a/Syncstruct.dia">17:10, 11 April 2012</a></td><td> <span style="white-space: nowrap;">(4 KB)</span></td><td><a href="/index.php?title=User:Dickonr&amp;action=edit&amp;redlink=1" class="new mw-userlink" title="User:Dickonr (page does not exist)">Dickonr</a> <span style="white-space: nowrap;"> <span class="mw-usertoollinks">(<a href="/index.php?title=User_talk:Dickonr&amp;action=edit&amp;redlink=1" class="new" title="User talk:Dickonr (page does not exist)">Talk</a> | <a href="/index.php/Special:Contributions/Dickonr" title="Special:Contributions/Dickonr">contribs</a>)</span></span></td><td dir="ltr"></td></tr>
70+
<tr><td></td><td style='white-space: nowrap;'><a href="/images/archive/1/1a/20120411171057%21Syncstruct.dia">14:26, 17 January 2012</a></td><td> <span style="white-space: nowrap;">(4 KB)</span></td><td><a href="/index.php?title=User:Apeace&amp;action=edit&amp;redlink=1" class="new mw-userlink" title="User:Apeace (page does not exist)">Apeace</a> <span style="white-space: nowrap;"> <span class="mw-usertoollinks">(<a href="/index.php?title=User_talk:Apeace&amp;action=edit&amp;redlink=1" class="new" title="User talk:Apeace (page does not exist)">Talk</a> | <a href="/index.php/Special:Contributions/Apeace" title="Special:Contributions/Apeace">contribs</a>)</span></span></td><td dir="ltr">Minor changes; change BED to Python.</td></tr>
71+
<tr><td></td><td style='white-space: nowrap;'><a href="/images/archive/1/1a/20120117142602%21Syncstruct.dia">16:44, 11 January 2012</a></td><td> <span style="white-space: nowrap;">(4 KB)</span></td><td><a href="/index.php?title=User:Dickonr&amp;action=edit&amp;redlink=1" class="new mw-userlink" title="User:Dickonr (page does not exist)">Dickonr</a> <span style="white-space: nowrap;"> <span class="mw-usertoollinks">(<a href="/index.php?title=User_talk:Dickonr&amp;action=edit&amp;redlink=1" class="new" title="User talk:Dickonr (page does not exist)">Talk</a> | <a href="/index.php/Special:Contributions/Dickonr" title="Special:Contributions/Dickonr">contribs</a>)</span></span></td><td dir="ltr">change language for sync-client </td></tr>
72+
<tr><td></td><td style='white-space: nowrap;'><a href="/images/archive/1/1a/20120111164404%21Syncstruct.dia">16:06, 10 January 2012</a></td><td> <span style="white-space: nowrap;">(4 KB)</span></td><td><a href="/index.php?title=User:Dickonr&amp;action=edit&amp;redlink=1" class="new mw-userlink" title="User:Dickonr (page does not exist)">Dickonr</a> <span style="white-space: nowrap;"> <span class="mw-usertoollinks">(<a href="/index.php?title=User_talk:Dickonr&amp;action=edit&amp;redlink=1" class="new" title="User talk:Dickonr (page does not exist)">Talk</a> | <a href="/index.php/Special:Contributions/Dickonr" title="Special:Contributions/Dickonr">contribs</a>)</span></span></td><td dir="ltr">relabel database </td></tr>
73+
<tr><td></td><td style='white-space: nowrap;'><a href="/images/archive/1/1a/20120110160626%21Syncstruct.dia">14:34, 10 January 2012</a></td><td> <span style="white-space: nowrap;">(4 KB)</span></td><td><a href="/index.php?title=User:Dickonr&amp;action=edit&amp;redlink=1" class="new mw-userlink" title="User:Dickonr (page does not exist)">Dickonr</a> <span style="white-space: nowrap;"> <span class="mw-usertoollinks">(<a href="/index.php?title=User_talk:Dickonr&amp;action=edit&amp;redlink=1" class="new" title="User talk:Dickonr (page does not exist)">Talk</a> | <a href="/index.php/Special:Contributions/Dickonr" title="Special:Contributions/Dickonr">contribs</a>)</span></span></td><td dir="ltr"></td></tr>
74+
<tr><td></td><td style='white-space: nowrap;'><a href="/images/archive/1/1a/20120110143401%21Syncstruct.dia">14:27, 10 January 2012</a></td><td> <span style="white-space: nowrap;">(4 KB)</span></td><td><a href="/index.php?title=User:Dickonr&amp;action=edit&amp;redlink=1" class="new mw-userlink" title="User:Dickonr (page does not exist)">Dickonr</a> <span style="white-space: nowrap;"> <span class="mw-usertoollinks">(<a href="/index.php?title=User_talk:Dickonr&amp;action=edit&amp;redlink=1" class="new" title="User talk:Dickonr (page does not exist)">Talk</a> | <a href="/index.php/Special:Contributions/Dickonr" title="Special:Contributions/Dickonr">contribs</a>)</span></span></td><td dir="ltr">dia source</td></tr>
75+
</table>
76+
77+
</div>
78+
<ul>
79+
<li id="mw-imagepage-upload-disallowed">You cannot overwrite this file.</li>
80+
</ul>
81+
<h2 id="filelinks">File usage</h2>
82+
<div id='mw-imagepage-section-linkstoimage'>
83+
<p>The following page links to this file:
84+
</p><ul class="mw-imagepage-linkstoimage">
85+
<li class="mw-imagepage-linkstoimage-ns0"><a href="/index.php/Synchronizer_XT_Overview" title="Synchronizer XT Overview">Synchronizer XT Overview</a></li>
86+
</ul>
87+
</div>
88+
</div><div class="printfooter">
89+
Retrieved from "<a href="http://wiki.cam.xci-test.com/index.php?title=File:Syncstruct.dia&amp;oldid=4564">http://wiki.cam.xci-test.com/index.php?title=File:Syncstruct.dia&amp;oldid=4564</a>"</div>
90+
<div id='catlinks' class='catlinks catlinks-allhidden'></div> <!-- end content -->
91+
<div class="visualClear"></div>
92+
</div>
93+
</div></div>
94+
<div id="column-one">
95+
<h2>Navigation menu</h2>
96+
<div id="p-cactions" class="portlet" role="navigation">
97+
<h3>Views</h3>
98+
<div class="pBody">
99+
<ul>
100+
<li id="ca-nstab-image" class="selected"><a href="/index.php/File:Syncstruct.dia" title="View the file page [c]" accesskey="c">File</a></li>
101+
<li id="ca-talk" class="new"><a href="/index.php?title=File_talk:Syncstruct.dia&amp;action=edit&amp;redlink=1" title="Discussion about the content page [t]" accesskey="t">Discussion</a></li>
102+
<li id="ca-viewsource"><a href="/index.php?title=File:Syncstruct.dia&amp;action=edit" title="This page is protected.&#10;You can view its source [e]" accesskey="e">View source</a></li>
103+
<li id="ca-history"><a href="/index.php?title=File:Syncstruct.dia&amp;action=history" rel="archives" title="Past revisions of this page [h]" accesskey="h">History</a></li>
104+
</ul>
105+
</div>
106+
</div>
107+
<div class="portlet" id="p-personal" role="navigation">
108+
<h3>Personal tools</h3>
109+
<div class="pBody">
110+
<ul>
111+
<li id="pt-login"><a href="/index.php?title=Special:UserLogin&amp;returnto=File%3ASyncstruct.dia" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li>
112+
</ul>
113+
</div>
114+
</div>
115+
<div class="portlet" id="p-logo" role="banner">
116+
<a href="/index.php/Main_Page" style="background-image: url(http://www.cam.xci-test.com/xc_dist/xen_logo.gif);" title="Visit the main page"></a>
117+
</div>
118+
<div class="generated-sidebar portlet" id="p-navigation" role="navigation">
119+
<h3>Navigation</h3>
120+
<div class='pBody'>
121+
<ul>
122+
<li id="n-mainpage-description"><a href="/index.php/Main_Page" title="Visit the main page [z]" accesskey="z">Main page</a></li>
123+
<li id="n-recentchanges"><a href="/index.php/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li>
124+
<li id="n-randompage"><a href="/index.php/Special:Random" title="Load a random page [x]" accesskey="x">Random page</a></li>
125+
<li id="n-help"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents" title="The place to find out">Help</a></li>
126+
</ul>
127+
</div>
128+
</div>
129+
<div id="p-search" class="portlet" role="search">
130+
<h3><label for="searchInput">Search</label></h3>
131+
<div id="searchBody" class="pBody">
132+
<form action="/index.php" id="searchform">
133+
<input type='hidden' name="title" value="Special:Search"/>
134+
<input type="search" name="search" placeholder="Search" title="Search XenClient [f]" accesskey="f" id="searchInput" />
135+
<input type="submit" name="go" value="Go" title="Go to a page with this exact name if exists" id="searchGoButton" class="searchButton" />&#160;
136+
<input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton" />
137+
</form>
138+
139+
</div>
140+
</div>
141+
<div class="portlet" id="p-tb" role="navigation">
142+
<h3>Tools</h3>
143+
<div class="pBody">
144+
<ul>
145+
<li id="t-whatlinkshere"><a href="/index.php/Special:WhatLinksHere/File:Syncstruct.dia" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li>
146+
<li id="t-recentchangeslinked"><a href="/index.php/Special:RecentChangesLinked/File:Syncstruct.dia" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li>
147+
<li id="t-specialpages"><a href="/index.php/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q">Special pages</a></li>
148+
<li id="t-print"><a href="/index.php?title=File:Syncstruct.dia&amp;printable=yes" rel="alternate" title="Printable version of this page [p]" accesskey="p">Printable version</a></li>
149+
<li id="t-permalink"><a href="/index.php?title=File:Syncstruct.dia&amp;oldid=4564" title="Permanent link to this revision of the page">Permanent link</a></li>
150+
<li id="t-info"><a href="/index.php?title=File:Syncstruct.dia&amp;action=info">Page information</a></li>
151+
<li id="t-pdf">
152+
<a href="/index.php?title=Special:PdfPrint&amp;page=File:Syncstruct.dia">Print as PDF</a></li> </ul>
153+
</div>
154+
</div>
155+
</div><!-- end of the left (by default at least) column -->
156+
<div class="visualClear"></div>
157+
<div id="footer" role="contentinfo">
158+
<div id="f-poweredbyico">
159+
<a href="//www.mediawiki.org/"><img src="/skins/common/images/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" width="88" height="31" /></a>
160+
</div>
161+
<ul id="f-list">
162+
<li id="lastmod"> This page was last modified on 11 April 2012, at 17:10.</li>
163+
<li id="viewcount">This page has been accessed 353 times.</li>
164+
<li id="privacy"><a href="/index.php/XenClient:Privacy_policy" title="XenClient:Privacy policy">Privacy policy</a></li>
165+
<li id="about"><a href="/index.php/XenClient:About" title="XenClient:About">About XenClient</a></li>
166+
<li id="disclaimer"><a href="/index.php/XenClient:General_disclaimer" title="XenClient:General disclaimer">Disclaimers</a></li>
167+
</ul>
168+
</div>
169+
</div>
170+
<script>/*<![CDATA[*/window.jQuery && jQuery.ready();/*]]>*/</script><script>if(window.mw){
171+
mw.loader.state({"site":"loading","user":"ready","user.groups":"ready"});
172+
}</script>
173+
<script>if(window.mw){
174+
mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.searchSuggest"],null,true);
175+
}</script>
176+
<script src="http://wiki.cam.xci-test.com/load.php?debug=false&amp;lang=en&amp;modules=site&amp;only=scripts&amp;skin=monobook&amp;*"></script>
177+
<script>if(window.mw){
178+
mw.config.set({"wgBackendResponseTime":274});
179+
}</script></body></html>

diagrams/Syncstruct.png

53.8 KB
Loading

0 commit comments

Comments
 (0)