Merge lp:charms/kusabax into lp:~shazzner/charms/precise/kusabax/trunk

Proposed by Chris Hardee
Status: Work in progress
Proposed branch: lp:charms/kusabax
Merge into: lp:~shazzner/charms/precise/kusabax/trunk
Diff against target: 578 lines (+455/-69)
7 files modified
README.md (+101/-0)
config.yaml (+2/-2)
icon.svg (+292/-0)
metadata.yaml (+3/-0)
readme (+0/-67)
tests/00-setup (+5/-0)
tests/99-autogen (+52/-0)
To merge this branch: bzr merge lp:charms/kusabax
Reviewer Review Type Date Requested Status
Clint Byrum (community) Needs Resubmitting
Benjamin Kerensa (community) Needs Fixing
Chris Hardee Pending
Review via email: mp+111982@code.launchpad.net

Description of the change

To be set as maintainer.

To post a comment you must log in.
Revision history for this message
Benjamin Kerensa (bkerensa) wrote :

Can you double check to ensure you pushed because there are no changes in the diff.

review: Needs Fixing
Revision history for this message
Clint Byrum (clint-fewbar) wrote :

Aye, this merge is backwards (merging the official charm into yours) and yours does not seem to have a maintainer change.

review: Needs Resubmitting
Revision history for this message
Chris Hardee (shazzner) wrote :

I have no idea what I'm doing :(

How do I add the maintainer change?

On Wed, Aug 8, 2012 at 1:55 PM, Clint Byrum <email address hidden> wrote:
> Review: Resubmit
>
> Aye, this merge is backwards (merging the official charm into yours) and yours does not seem to have a maintainer change.
> --
> https://code.launchpad.net/~charmers/charms/precise/kusabax/trunk/+merge/111982
> You proposed lp:charms/kusabax for merging.

--
Chris Hardee
10BitWorks
San Antonio Hackerspace
<email address hidden>
http://10bitworks.com/

lp:charms/kusabax updated
9. By Charles Butler

[jose] Charmworld reports the following errors:

    err: Charms need a maintainer (See RFC2822) - Name <email>
    warn: Metadata is missing categories.
    warn: No icon.svg file.
    warn: config.yaml: option style-switcher does not have the keys: default
    warn: config.yaml: option style-switcher has unknown keys: defualt

    Fixed all of them. Set the charm author as maintainer as he showed the wish to be so, but didn't know how to fix it (see MP #111982, https://code.launchpad.net/~charmers/charms/precise/kusabax/trunk/+merge/111982). Also reformatted README to Markdown.

10. By Jorge Castro

[aisrael] Add icon.

11. By Tim Van Steenburgh

[mbruzek] Added tests

Unmerged revisions

11. By Tim Van Steenburgh

[mbruzek] Added tests

10. By Jorge Castro

[aisrael] Add icon.

9. By Charles Butler

[jose] Charmworld reports the following errors:

    err: Charms need a maintainer (See RFC2822) - Name <email>
    warn: Metadata is missing categories.
    warn: No icon.svg file.
    warn: config.yaml: option style-switcher does not have the keys: default
    warn: config.yaml: option style-switcher has unknown keys: defualt

    Fixed all of them. Set the charm author as maintainer as he showed the wish to be so, but didn't know how to fix it (see MP #111982, https://code.launchpad.net/~charmers/charms/precise/kusabax/trunk/+merge/111982). Also reformatted README to Markdown.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'README.md'
2--- README.md 1970-01-01 00:00:00 +0000
3+++ README.md 2014-11-19 18:57:15 +0000
4@@ -0,0 +1,101 @@
5+Kusaba X Juju Charm
6+Copyright 2012 by Chris Hardee
7+
8+# About
9+This charm is used to deploy a fully usable Kusaba X imageboard instance without
10+any user interaction. This is a great charm to deploy if you want a
11+2ch/4chan-style imageboard but are not up to speed on server installation etc.
12+
13+# Tutorial
14+First make sure your environment is setup and you have juju installed, please
15+see the [juju documentation](https://juju.ubuntu.com/docs/) for help on this.
16+
17+Edit the config.yaml, and change anything you'd like. Please be careful when
18+changing the slogan value, as some characters will break the scripts. As of now,
19+don't use pipes '|' or single-quotes.
20+
21+After juju has been configured, bootstrap it:
22+
23+ juju bootstrap
24+
25+(if running a local instance you might need sudo privileges)
26+
27+Then deploy kusabax, you should do this from the root charm directory
28+(ie charmroot/*distros*/kusabax)
29+
30+ juju deploy --repository=. local:kusabax
31+
32+Then deploy mysql:
33+
34+ juju deploy --repository=. local:mysql
35+
36+Check on the status:
37+
38+ juju status
39+
40+When both nodes are up and running, add the relation:
41+
42+ juju add-relation kusabax mysql
43+
44+Then expose kusabax:
45+
46+ juju expose kusabax
47+
48+Check on that status until the relation is set and everything is running.
49+
50+Grab the public address from the status output and paste it into your browser.
51+If everything went ok, then you should see the basic kusaba x imageboard ready
52+to go.
53+
54+## We're not done yet though!
55+
56+Navigate to manage.php by appending it to the public address
57+(e.g. http://23.42.52.232/manage.php).
58+
59+Login with username: admin password: admin
60+
61+ 1. On the left side, under Site Administration, click on Staff.
62+ 2. Add a new administrator by giving a username, password, leaving the type to
63+ administrator, and clicking Add Staff Member.
64+ 3. Log off, then renavigate to the manage.php site and log in with the new
65+ user. If everything went ok, then Delete the old default Admin user.
66+
67+You are now ready!
68+
69+Remember to add a board under Boards Administration, then go to Edit Section and
70+Add Section, then finally under Board options select the new board you just made
71+and change the Section drop-down to the new section.
72+
73+When you navigate to the home page, you should see your new board and should be
74+able to post. Repeat for other boards/sections.
75+
76+## Known limitations and issues
77+
78+This charm will checkout the latest stable release from
79+http://kusabax.cultnet.net/svn/ and installs it to the root /var/www directory.
80+
81+Currently the script uses the current hostname for all configuration, you might
82+get some errors if you want to move to a proper domain (e.g. example.com).
83+
84+Keep in mind imageboards like these are notorious for cross-site scripting
85+attacks, so keep note of current vulnerabilities from the kusabax home page.
86+
87+# Support
88+
89+For support on kusabax itself, checked out the
90+[support board](http://kusabax.cultnet.net/sup/) and the
91+[wiki](http://kusabax.cultnet.net/wiki/).
92+
93+# Contact Information
94+
95+Maintainer: Chris Hardee <shazzner@gmail.com>
96+Report bugs at: https://bugs.launchpad.net/charms
97+
98+# TODOs
99+
100+ * More config options
101+ * Add postgresql support
102+ * Double-check what exactly needs permissions to avoid www-root chmod 777
103+ * Add a way to change db relations
104+ * Would probably be a good candidate for
105+ [apparmor support](https://juju.ubuntu.com/AppArmor)
106
107=== modified file 'config.yaml'
108--- config.yaml 2012-04-06 00:57:35 +0000
109+++ config.yaml 2014-11-19 18:57:15 +0000
110@@ -2,7 +2,7 @@
111 domain-name:
112 default: 'blank'
113 type: string
114- descript: Website domain name, ie imageboard.com or overninethousand.net. If left 'blank', the ip address will be used. Can be changed after deployment
115+ description: Website domain name, ie imageboard.com or overninethousand.net. If left 'blank', the ip address will be used. Can be changed after deployment
116 board-name:
117 default: 'juju kusaba x'
118 type: string
119@@ -12,6 +12,6 @@
120 type: string
121 description: Site slogan, set to nothing to disable its display
122 style-switcher:
123- defualt: 'true'
124+ default: true
125 type: boolean
126 description: If true, will allow users to change style
127
128=== added file 'icon.svg'
129--- icon.svg 1970-01-01 00:00:00 +0000
130+++ icon.svg 2014-11-19 18:57:15 +0000
131@@ -0,0 +1,292 @@
132+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
133+<!-- Created with Inkscape (http://www.inkscape.org/) -->
134+
135+<svg
136+ xmlns:dc="http://purl.org/dc/elements/1.1/"
137+ xmlns:cc="http://creativecommons.org/ns#"
138+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
139+ xmlns:svg="http://www.w3.org/2000/svg"
140+ xmlns="http://www.w3.org/2000/svg"
141+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
142+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
143+ width="96"
144+ height="96"
145+ id="svg6517"
146+ version="1.1"
147+ inkscape:version="0.48.4 r9939"
148+ sodipodi:docname="juju-icon-placeholder-k.svg">
149+ <defs
150+ id="defs6519">
151+ <linearGradient
152+ id="Background">
153+ <stop
154+ id="stop4178"
155+ offset="0"
156+ style="stop-color:#b8b8b8;stop-opacity:1" />
157+ <stop
158+ id="stop4180"
159+ offset="1"
160+ style="stop-color:#c9c9c9;stop-opacity:1" />
161+ </linearGradient>
162+ <filter
163+ style="color-interpolation-filters:sRGB;"
164+ inkscape:label="Inner Shadow"
165+ id="filter1121">
166+ <feFlood
167+ flood-opacity="0.59999999999999998"
168+ flood-color="rgb(0,0,0)"
169+ result="flood"
170+ id="feFlood1123" />
171+ <feComposite
172+ in="flood"
173+ in2="SourceGraphic"
174+ operator="out"
175+ result="composite1"
176+ id="feComposite1125" />
177+ <feGaussianBlur
178+ in="composite1"
179+ stdDeviation="1"
180+ result="blur"
181+ id="feGaussianBlur1127" />
182+ <feOffset
183+ dx="0"
184+ dy="2"
185+ result="offset"
186+ id="feOffset1129" />
187+ <feComposite
188+ in="offset"
189+ in2="SourceGraphic"
190+ operator="atop"
191+ result="composite2"
192+ id="feComposite1131" />
193+ </filter>
194+ <filter
195+ style="color-interpolation-filters:sRGB;"
196+ inkscape:label="Drop Shadow"
197+ id="filter950">
198+ <feFlood
199+ flood-opacity="0.25"
200+ flood-color="rgb(0,0,0)"
201+ result="flood"
202+ id="feFlood952" />
203+ <feComposite
204+ in="flood"
205+ in2="SourceGraphic"
206+ operator="in"
207+ result="composite1"
208+ id="feComposite954" />
209+ <feGaussianBlur
210+ in="composite1"
211+ stdDeviation="1"
212+ result="blur"
213+ id="feGaussianBlur956" />
214+ <feOffset
215+ dx="0"
216+ dy="1"
217+ result="offset"
218+ id="feOffset958" />
219+ <feComposite
220+ in="SourceGraphic"
221+ in2="offset"
222+ operator="over"
223+ result="composite2"
224+ id="feComposite960" />
225+ <feBlend
226+ blend="normal"
227+ id="feBlend3895"
228+ in2="composite2" />
229+ </filter>
230+ <clipPath
231+ clipPathUnits="userSpaceOnUse"
232+ id="clipPath873">
233+ <g
234+ transform="matrix(0,-0.66666667,0.66604479,0,-258.25992,677.00001)"
235+ id="g875"
236+ inkscape:label="Layer 1"
237+ style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline">
238+ <path
239+ style="fill:#ff00ff;fill-opacity:1;stroke:none;display:inline"
240+ d="m 46.702703,898.22775 50.594594,0 C 138.16216,898.22775 144,904.06497 144,944.92583 l 0,50.73846 c 0,40.86071 -5.83784,46.69791 -46.702703,46.69791 l -50.594594,0 C 5.8378378,1042.3622 0,1036.525 0,995.66429 L 0,944.92583 C 0,904.06497 5.8378378,898.22775 46.702703,898.22775 Z"
241+ id="path877"
242+ inkscape:connector-curvature="0"
243+ sodipodi:nodetypes="sssssssss" />
244+ </g>
245+ </clipPath>
246+ <filter
247+ inkscape:collect="always"
248+ id="filter891"
249+ inkscape:label="Badge Shadow">
250+ <feGaussianBlur
251+ inkscape:collect="always"
252+ stdDeviation="0.71999962"
253+ id="feGaussianBlur893" />
254+ </filter>
255+ </defs>
256+ <sodipodi:namedview
257+ id="base"
258+ pagecolor="#ffffff"
259+ bordercolor="#666666"
260+ borderopacity="1.0"
261+ inkscape:pageopacity="0.0"
262+ inkscape:pageshadow="2"
263+ inkscape:zoom="8.1490724"
264+ inkscape:cx="6.3116087"
265+ inkscape:cy="46.975739"
266+ inkscape:document-units="px"
267+ inkscape:current-layer="layer3"
268+ showgrid="true"
269+ fit-margin-top="0"
270+ fit-margin-left="0"
271+ fit-margin-right="0"
272+ fit-margin-bottom="0"
273+ inkscape:window-width="1849"
274+ inkscape:window-height="1218"
275+ inkscape:window-x="123"
276+ inkscape:window-y="68"
277+ inkscape:window-maximized="0"
278+ showborder="true"
279+ showguides="true"
280+ inkscape:guide-bbox="true"
281+ inkscape:showpageshadow="false">
282+ <inkscape:grid
283+ type="xygrid"
284+ id="grid821" />
285+ <sodipodi:guide
286+ orientation="1,0"
287+ position="16,48"
288+ id="guide823" />
289+ <sodipodi:guide
290+ orientation="0,1"
291+ position="64,80"
292+ id="guide825" />
293+ <sodipodi:guide
294+ orientation="1,0"
295+ position="80,40"
296+ id="guide827" />
297+ <sodipodi:guide
298+ orientation="0,1"
299+ position="64,16"
300+ id="guide829" />
301+ </sodipodi:namedview>
302+ <metadata
303+ id="metadata6522">
304+ <rdf:RDF>
305+ <cc:Work
306+ rdf:about="">
307+ <dc:format>image/svg+xml</dc:format>
308+ <dc:type
309+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
310+ <dc:title />
311+ </cc:Work>
312+ </rdf:RDF>
313+ </metadata>
314+ <g
315+ inkscape:label="BACKGROUND"
316+ inkscape:groupmode="layer"
317+ id="layer1"
318+ transform="translate(268,-635.29076)"
319+ style="display:inline">
320+ <path
321+ style="fill:#333333;fill-opacity:0.93333334000000001;stroke:none;display:inline;filter:url(#filter1121);opacity:0.7"
322+ d="m -268,700.15563 0,-33.72973 c 0,-27.24324 3.88785,-31.13513 31.10302,-31.13513 l 33.79408,0 c 27.21507,0 31.1029,3.89189 31.1029,31.13513 l 0,33.72973 c 0,27.24325 -3.88783,31.13514 -31.1029,31.13514 l -33.79408,0 C -264.11215,731.29077 -268,727.39888 -268,700.15563 Z"
323+ id="path6455"
324+ inkscape:connector-curvature="0"
325+ sodipodi:nodetypes="sssssssss" />
326+ </g>
327+ <g
328+ inkscape:groupmode="layer"
329+ id="layer3"
330+ inkscape:label="PLACEHOLDER LETTER"
331+ style="display:inline">
332+ <text
333+ xml:space="preserve"
334+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter950);font-family:Sans"
335+ x="30.724001"
336+ y="69.1772"
337+ id="text3891"
338+ sodipodi:linespacing="125%"><tspan
339+ sodipodi:role="line"
340+ id="tspan3893"
341+ x="30.724001"
342+ y="69.1772"
343+ style="font-size:56px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;fill:#ffffff;fill-opacity:1;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Medium">k</tspan></text>
344+ <rect
345+ style="opacity:0.7;fill:none;stroke:none"
346+ id="rect3021"
347+ width="64"
348+ height="64"
349+ x="16"
350+ y="15.449201" />
351+ </g>
352+ <g
353+ inkscape:groupmode="layer"
354+ id="layer2"
355+ inkscape:label="BADGE"
356+ style="display:none"
357+ sodipodi:insensitive="true">
358+ <g
359+ style="display:inline"
360+ transform="translate(-340.00001,-581)"
361+ id="g4394"
362+ clip-path="none">
363+ <g
364+ id="g855">
365+ <g
366+ inkscape:groupmode="maskhelper"
367+ id="g870"
368+ clip-path="url(#clipPath873)"
369+ style="opacity:0.6;filter:url(#filter891)">
370+ <path
371+ transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-237.54282)"
372+ d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z"
373+ sodipodi:ry="12"
374+ sodipodi:rx="12"
375+ sodipodi:cy="552.36218"
376+ sodipodi:cx="252"
377+ id="path844"
378+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
379+ sodipodi:type="arc" />
380+ </g>
381+ <g
382+ id="g862">
383+ <path
384+ sodipodi:type="arc"
385+ style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
386+ id="path4398"
387+ sodipodi:cx="252"
388+ sodipodi:cy="552.36218"
389+ sodipodi:rx="12"
390+ sodipodi:ry="12"
391+ d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z"
392+ transform="matrix(1.4999992,0,0,1.4999992,-29.999795,-238.54282)" />
393+ <path
394+ transform="matrix(1.25,0,0,1.25,33,-100.45273)"
395+ d="m 264,552.36218 c 0,6.62742 -5.37258,12 -12,12 -6.62742,0 -12,-5.37258 -12,-12 0,-6.62741 5.37258,-12 12,-12 6.62742,0 12,5.37259 12,12 z"
396+ sodipodi:ry="12"
397+ sodipodi:rx="12"
398+ sodipodi:cy="552.36218"
399+ sodipodi:cx="252"
400+ id="path4400"
401+ style="color:#000000;fill:#dd4814;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
402+ sodipodi:type="arc" />
403+ <path
404+ sodipodi:type="star"
405+ style="color:#000000;fill:#f5f5f5;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
406+ id="path4459"
407+ sodipodi:sides="5"
408+ sodipodi:cx="666.19574"
409+ sodipodi:cy="589.50385"
410+ sodipodi:r1="7.2431178"
411+ sodipodi:r2="4.3458705"
412+ sodipodi:arg1="1.0471976"
413+ sodipodi:arg2="1.6755161"
414+ inkscape:flatsided="false"
415+ inkscape:rounded="0.1"
416+ inkscape:randomized="0"
417+ d="m 669.8173,595.77657 c -0.39132,0.22593 -3.62645,-1.90343 -4.07583,-1.95066 -0.44938,-0.0472 -4.05653,1.36297 -4.39232,1.06062 -0.3358,-0.30235 0.68963,-4.03715 0.59569,-4.47913 -0.0939,-0.44198 -2.5498,-3.43681 -2.36602,-3.8496 0.18379,-0.41279 4.05267,-0.59166 4.44398,-0.81759 0.39132,-0.22593 2.48067,-3.48704 2.93005,-3.4398 0.44938,0.0472 1.81505,3.67147 2.15084,3.97382 0.3358,0.30236 4.08294,1.2817 4.17689,1.72369 0.0939,0.44198 -2.9309,2.86076 -3.11469,3.27355 -0.18379,0.41279 0.0427,4.27917 -0.34859,4.5051 z"
418+ transform="matrix(1.511423,-0.16366377,0.16366377,1.511423,-755.37346,-191.93651)" />
419+ </g>
420+ </g>
421+ </g>
422+ </g>
423+</svg>
424
425=== modified file 'metadata.yaml'
426--- metadata.yaml 2012-03-27 18:53:41 +0000
427+++ metadata.yaml 2014-11-19 18:57:15 +0000
428@@ -1,7 +1,10 @@
429 name: kusabax
430+maintainer: Chris Hardee <shazzner@gmail.com>
431 summary: "Kusaba X is a continuation of the Imageboard software Kusaba"
432 description: |
433 Deploys KusabaX
434+categories:
435+ - applications
436 requires:
437 db:
438 interface: mysql
439
440=== removed file 'readme'
441--- readme 2012-04-02 08:52:39 +0000
442+++ readme 1970-01-01 00:00:00 +0000
443@@ -1,67 +0,0 @@
444-Kusaba X Juju Charm
445-Copyright 2012 by Chris Hardee
446-
447-About:
448-This charm is used to deploy a fully usable Kusaba X imageboard instance without any user interaction. This is a great charm to deploy if you want a 2ch/4chan-style imageboard but are not up to speed on server installation etc.
449-
450-Tutorial:
451-First make sure your environment is setup and you have juju installed, please see the juju documentation for help on this:
452-https://juju.ubuntu.com/docs/index.html
453-
454-Edit the config.yaml, and change anything you'd like. Please be careful when changing the slogan value, as some characters will break the scripts. As of now, don't use pipes '|' or single-quotes.
455-
456-After juju has been configured, bootstrap it:
457- juju bootstrap
458-(if running a local instance you might need sudo privileges)
459-
460-Then deploy kusabax, you should do this from the root charm directory (ie charmroot/*distros*/kusabax)
461- juju deploy --repository=. local:kusabax
462-Then deploy mysql:
463- juju deploy --repository=. local:mysql
464-
465-Check on the status:
466- juju status
467-When both nodes are up and running, add the relation:
468- juju add-relation kusabax mysql
469-Then expose kusabax:
470- juju expose kusabax
471-
472-Check on that status until the relation is set and everything is running.
473-
474-Grab the public address from the status output and paste it into your browser. If everything went ok, then you should see the basic kusaba x imageboard ready to go.
475-
476-We're not done yet though!
477-
478-Naviagate to manage.php by appending it to the public address (ie http://23.42.52.232/manage.php).
479-
480-Login with username: admin password: admin
481-
482-On the left side, under Site Administration, click on Staff
483-Add a new administrator by giving a username, password, leaving the type to administrator, and clicking Add Staff Member.
484-Log off, then renavigate to the manage.php site and log in with the new user. If everything went ok, then Delete the old default Admin user.
485-
486-You are now ready!
487-
488-Remember to add a board under Boards Administration, then go to Edit Section and Add Section, then finally under Board options select the new board you just made and change the Section drop-down to the new section.
489-When you navigate to the home page, you should see your new board and should be able to post. Repeat for other boards/sections.
490-
491-Notes:
492-This charm will checkout the latest stable release from http://kusabax.cultnet.net/svn/ and install it to the root /var/www directory.
493-Currently the script uses the current hostname for all configuration, you might get some errors if you want to move to a proper domain ie. example.com.
494-Keep in mind imageboards like these are notorious for cross-site scripting attacks, so keep note of current vulnerabilities from the kusabax home page.
495-
496-Support:
497-For support on kusabax itself, checked out the support board:
498-http://kusabax.cultnet.net/sup/
499-and the wiki:
500-http://kusabax.cultnet.net/wiki/
501-
502-For issues with the charm itself, please contact me at:
503-shazzner@gmail.com
504-
505-TODOs:
506-More config options
507-Add postgresql support
508-Double-check what exactly needs permissions to avoid www-root chmod 777
509-Add a way to change db relations
510-Would probably be a good candidate for apparmor support: https://juju.ubuntu.com/AppArmor
511
512=== added directory 'tests'
513=== added file 'tests/00-setup'
514--- tests/00-setup 1970-01-01 00:00:00 +0000
515+++ tests/00-setup 2014-11-19 18:57:15 +0000
516@@ -0,0 +1,5 @@
517+#!/bin/bash
518+
519+sudo add-apt-repository ppa:juju/stable -y
520+sudo apt-get update
521+sudo apt-get install amulet python3-requests -y
522
523=== added file 'tests/99-autogen'
524--- tests/99-autogen 1970-01-01 00:00:00 +0000
525+++ tests/99-autogen 2014-11-19 18:57:15 +0000
526@@ -0,0 +1,52 @@
527+#!/usr/bin/env python3
528+
529+import amulet
530+import requests
531+import unittest
532+
533+
534+class TestDeployment(unittest.TestCase):
535+ @classmethod
536+ def setUpClass(cls):
537+ cls.deployment = amulet.Deployment(series='precise')
538+
539+ cls.deployment.add('kusabax')
540+ cls.deployment.add('mysql')
541+ cls.deployment.relate('kusabax:db', 'mysql:db')
542+ cls.deployment.expose('kusabax')
543+
544+ try:
545+ cls.deployment.setup(timeout=900)
546+ cls.deployment.sentry.wait()
547+ except amulet.helpers.TimeoutError:
548+ amulet.raise_status(amulet.SKIP, msg="Environment wasn't stood up in time")
549+ except:
550+ raise
551+
552+ def test_case(self):
553+ # Now you can use self.deployment.sentry.unit[UNIT] to address each of
554+ # the units and perform more in-depth steps. You can also reference
555+ # the first unit as self.unit.
556+ # There are three test statuses that can be triggered with
557+ # amulet.raise_status():
558+ # - amulet.PASS
559+ # - amulet.FAIL
560+ # - amulet.SKIP
561+ # Each unit has the following methods:
562+ # - .info - An array of the information of that unit from Juju
563+ # - .file(PATH) - Get the details of a file on that unit
564+ # - .file_contents(PATH) - Get plain text output of PATH file from that unit
565+ # - .directory(PATH) - Get details of directory
566+ # - .directory_contents(PATH) - List files and folders in PATH on that unit
567+ # - .relation(relation, service:rel) - Get relation data from return service
568+ # add tests here to confirm service is up and working properly
569+ # For example, to confirm that it has a functioning HTTP server:
570+ # page = requests.get('http://{}'.format(self.unit.info['public-address']))
571+ # page.raise_for_status()
572+ # More information on writing Amulet tests can be found at:
573+ # https://juju.ubuntu.com/docs/tools-amulet.html
574+ pass
575+
576+
577+if __name__ == '__main__':
578+ unittest.main()

Subscribers

People subscribed via source and target branches

to all changes: