Build failed in Jenkins: jujugui-test-charm #377

Jenkins Notification devnull at canonical.com
Wed May 1 16:21:07 UTC 2013


See <http://10.189.74.2:8080/job/jujugui-test-charm/377/changes>

Changes:

[Brad Crittenden] Port resizing_textarea from Launchpad.

Original is found at:
http://bit.ly/18oTkNi
And test at:
http://bit.ly/159qJzt

R=gary.poster, rharding
CC=
https://codereview.appspot.com/9077043

[Rick Harding] Design updates fixes #1174764 #1174382 #1169196

This is a combo branch of design updates to fix things in the UX.

I've combined and landed as one since they've been reviewed and running lbox
-cr and submit 4 times isn't attractive this morning.

R=
CC=
https://codereview.appspot.com/9075043

[Rick Harding] Adjust fonts to use the predefined families

Ubuntu Medium has an issue on OSX so the familes were updated to also include
Ubuntu-Medium. Other locations were missed.

R=
CC=
https://codereview.appspot.com/9056043

[Gary Poster] Tweak help text to not obscure charm browser

R=
CC=
https://codereview.appspot.com/9036047

[Rick Harding] Show spinny indicator in browser when loading

- add indicator support to sidebar/fullscreen landing pages
- add indicator support to the search loading
- add indicator support to loading a charm details view

R=matthew.scott, gary.poster
CC=
https://codereview.appspot.com/9052043

[Jeff Pihach] Created a model controller with promises

This branch takes the work from a number of previous branches
and combined the work under a single ModelController class which
will be used from now on to interact with the models and db
to avoid having to pass the env and db into them.

This also implements a sandbox fix from Gary.

Individual unit tests will be coming in a follow-up but in the
mean time all of this code is tested indirectly by the endpoints
tests.

R=gary.poster, rharding
CC=
https://codereview.appspot.com/8686047

[Benji York] Add a Makefile npm-cache target to upload to LP

There is a parallel charm branch that uses the cache file to speed deploying
of branch builds.

R=rharding, gary.poster
CC=
https://codereview.appspot.com/8686048

[Rick Harding] TRIVIAL - google fonts over https

- One letter diff ftw.

R=
CC=
https://codereview.appspot.com/9046043

------------------------------------------
Started by an SCM change
[EnvInject] - Loading node environment variables.
Building remotely on lp-quantal-server-amd64
$ bzr revision-info -d <http://10.189.74.2:8080/job/jujugui-test-charm/ws/>
info result: bzr revision-info -d <http://10.189.74.2:8080/job/jujugui-test-charm/ws/> returned 0. Command output: "625 rick.harding at canonical.com-20130429211830-5ypm38kofirda2pn
" stderr: ""
[jujugui-test-charm] $ bzr pull --overwrite lp:juju-gui
You have not informed bzr of your Launchpad ID, and you must do this to
write to Launchpad or access private data.  See "bzr help launchpad-login".
http://bazaar.launchpad.net/~juju-gui/juju-gui/trunk is permanently redirected to http://bazaar.launchpad.net/~juju-gui/juju-gui/trunk/changes
You have not informed bzr of your Launchpad ID, and you must do this to
write to Launchpad or access private data.  See "bzr help launchpad-login".
+N  app/assets/javascripts/resizing_textarea.js
+N  app/models/model-controller.js
+N  test/test_resizing_textarea.js
 M  Makefile
 M  app/app.js
 M  app/config-prod.js
 M  app/index.html
 M  app/models/charm.js
 M  app/models/models.js
 M  app/modules-debug.js
 M  app/store/endpoints.js
 M  app/store/env/fakebackend.js
 M  app/store/env/sandbox.js
 M  app/store/notifications.js
 M  app/subapps/browser/templates/browser_charm.handlebars
 M  app/subapps/browser/views/charm.js
 M  app/subapps/browser/views/editorial.js
 M  app/subapps/browser/views/search.js
 M  app/views/utils.js
 M  bin/merge-files
 M  docs/process.rst
 M  lib/views/browser/charm-full.less
 M  lib/views/browser/charm-token.less
 M  lib/views/browser/main.less
 M  lib/views/stylesheet.less
 M  test/index.html
 M  test/test_app.js
 M  test/test_browser_charm_details.js
 M  test/test_browser_editorial.js
 M  test/test_browser_search_view.js
 M  test/test_endpoints.js
 M  test/test_fakebackend.js
All changes applied successfully.
Now on revision 633.
[jujugui-test-charm] $ bzr revert
$ bzr revision-info -d <http://10.189.74.2:8080/job/jujugui-test-charm/ws/>
info result: bzr revision-info -d <http://10.189.74.2:8080/job/jujugui-test-charm/ws/> returned 0. Command output: "633 bac at canonical.com-20130501150722-dg46h4lzav13vbmc
" stderr: ""
[jujugui-test-charm] $ bzr log -v -r revid:rick.harding at canonical.com-20130429211830-5ypm38kofirda2pn..revid:bac at canonical.com-20130501150722-dg46h4lzav13vbmc --long --show-ids
Getting local revision...
$ bzr revision-info -d <http://10.189.74.2:8080/job/jujugui-test-charm/ws/>
info result: bzr revision-info -d <http://10.189.74.2:8080/job/jujugui-test-charm/ws/> returned 0. Command output: "633 bac at canonical.com-20130501150722-dg46h4lzav13vbmc
" stderr: ""
RevisionState revno:633 revid:bac at canonical.com-20130501150722-dg46h4lzav13vbmc
[EnvInject] - Injecting environment variables from a build step.
[EnvInject] - Injecting as environment variables the properties content 
JUJU_INSTANCE_IP=91.189.93.93
JUJU_BRANCH=lp:juju-gui
JUJU_CHARM=cs:~juju-gui/precise/juju-gui
FAIL_FAST=1
JUJU_GUI_TEST_BROWSERS=ie chrome firefox

[EnvInject] - Variables injected successfully.
[jujugui-test-charm] $ /bin/sh -xe /tmp/hudson8536241912780280176.sh
+ set -ex
+ cat
+ chmod +x /tmp/test-runner
+ sudo -E su -p -c /tmp/test-runner - jujugui-merger
Clean and Prep
2013-05-01 16:20:22,353 INFO Destroying environment 'juju-gui-testing' (type: openstack)...
2013-05-01 16:20:25,117 INFO 'destroy_environment' command finished successfully
WARNING: this command will destroy the 'juju-gui-testing' environment (type: openstack).
This includes all machines, services, data, and other resources. Continue [y/N] 
Lightweight Checkout of lp:juju-gui
You have not informed bzr of your Launchpad ID, and you must do this to
write to Launchpad or access private data.  See "bzr help launchpad-login".
JUJU_INSTANCE_IP=91.189.93.93
Running Tests
Bootstrapping...
Error running 'bootstrap --environment juju-gui-testing --constraints instance-type=m1.small'
2013-05-01 16:20:57,645 DEBUG Initializing juju bootstrap runtime
2013-05-01 16:20:57,654 DEBUG openstack: using auth-mode 'userpass' with https://keystone.canonistack.canonical.com:443/v2.0/
2013-05-01 16:20:58,118 DEBUG openstack: authenticated til u'2013-05-02T16:20:58Z'
2013-05-01 16:20:58,119 DEBUG openstack: GET 'https://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/flavors'
2013-05-01 16:20:58,521 DEBUG openstack: 200 '{"flavors": [{"id": "1", "links": [{"href": "http://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/flavors/1", "rel": "self"}, {"href": "http://nova-lcy01.canonistack.canonical.com/199db4f89161432fadbf71977bba81ce/flavors/1", "rel": "bookmark"}], "name": "m1.tiny"}, {"id": "2", "links": [{"href": "http://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/flavors/2", "rel": "self"}, {"href": "http://nova-lcy01.canonistack.canonical.com/199db4f89161432fadbf71977bba81ce/flavors/2", "rel": "bookmark"}], "name": "m1.small"}, {"id": "3", "links": [{"href": "http://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/flavors/3", "rel": "self"}, {"href": "http://nova-lcy01.canonistack.canonical.com/199db4f89161432fadbf71977bba81ce/flavors/3", "rel": "bookmark"}], "name": "m1.medium"}, {"id": "4", "links": [{"href": "http://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/flavors/4", "rel": "self"}, {"href": "http://nova-lcy01.canonistack.canonical.com/199db4f89161432fadbf71977bba81ce/flavors/4", "rel": "bookmark"}], "name": "m1.large"}]}'
2013-05-01 16:20:58,522 INFO Bootstrapping environment 'juju-gui-testing' (origin: ppa type: openstack)...
2013-05-01 16:20:58,522 DEBUG access object-store @ https://swift.canonistack.canonical.com/v1/AUTH_199db4f89161432fadbf71977bba81ce/622e3564a2e151a774479192ca89719b690a348b/provider-state
2013-05-01 16:20:58,522 DEBUG openstack: GET 'https://swift.canonistack.canonical.com/v1/AUTH_199db4f89161432fadbf71977bba81ce/622e3564a2e151a774479192ca89719b690a348b/provider-state'
2013-05-01 16:20:58,922 DEBUG openstack: 200 '{}\n'
2013-05-01 16:20:58,923 DEBUG Verifying writable storage
2013-05-01 16:20:58,924 DEBUG access object-store @ https://swift.canonistack.canonical.com/v1/AUTH_199db4f89161432fadbf71977bba81ce/622e3564a2e151a774479192ca89719b690a348b/bootstrap-verify
2013-05-01 16:20:58,924 DEBUG openstack: PUT 'https://swift.canonistack.canonical.com/v1/AUTH_199db4f89161432fadbf71977bba81ce/622e3564a2e151a774479192ca89719b690a348b/bootstrap-verify'
2013-05-01 16:20:59,366 DEBUG openstack: 201 '201 Created\n\n\n\n   '
2013-05-01 16:20:59,367 DEBUG Launching juju bootstrap instance.
2013-05-01 16:20:59,886 DEBUG access object-store @ https://swift.canonistack.canonical.com/v1/AUTH_199db4f89161432fadbf71977bba81ce/622e3564a2e151a774479192ca89719b690a348b/juju_master_id
2013-05-01 16:20:59,890 DEBUG access compute @ https://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/os-security-groups
2013-05-01 16:20:59,890 DEBUG openstack: GET 'https://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/os-security-groups'
2013-05-01 16:21:00,613 DEBUG openstack: 200 '{"security_groups": [{"rules": [], "tenant_id": "199db4f89161432fadbf71977bba81ce", "id": 114524, "name": "default", "description": "default"}, {"rules": [{"from_port": 22, "group": {}, "ip_protocol": "tcp", "to_port": 22, "parent_group_id": 114525, "ip_range": {"cidr": "0.0.0.0/0"}, "id": 4124}, {"from_port": 1, "group": {"tenant_id": "199db4f89161432fadbf71977bba81ce", "name": "juju-juju-gui-testing"}, "ip_protocol": "tcp", "to_port": 65535, "parent_group_id": 114525, "ip_range": {}, "id": 4125}, {"from_port": 1, "group": {"tenant_id": "199db4f89161432fadbf71977bba81ce", "name": "juju-juju-gui-testing"}, "ip_protocol": "udp", "to_port": 65535, "parent_group_id": 114525, "ip_range": {}, "id": 4126}], "tenant_id": "199db4f89161432fadbf71977bba81ce", "id": 114525, "name": "juju-juju-gui-testing", "description": "juju group for juju-gui-testing"}, {"rules": [], "tenant_id": "199db4f89161432fadbf71977bba81ce", "id": 116206, "name": "juju-juju-gui-testing-0", "description": "juju group for juju-gui-testing machine 0"}, {"rules": [{"from_port": 80, "group": {}, "ip_protocol": "tcp", "to_port": 80, "parent_group_id": 116179, "ip_range": {"cidr": "0.0.0.0/0"}, "id": 4814}, {"from_port": 443, "group": {}, "ip_protocol": "tcp", "to_port": 443, "parent_group_id": 116179, "ip_range": {"cidr": "0.0.0.0/0"}, "id": 4815}], "tenant_id": "199db4f89161432fadbf71977bba81ce", "id": 116179, "name": "juju-juju-gui-testing-1", "description": "juju group for juju-gui-testing machine 1"}]}'
2013-05-01 16:21:00,614 DEBUG access compute @ https://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/os-security-groups/116206
2013-05-01 16:21:00,614 DEBUG openstack: DELETE 'https://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/os-security-groups/116206'
2013-05-01 16:21:01,298 DEBUG openstack: 202 ''
2013-05-01 16:21:01,298 DEBUG Creating machine security group juju-juju-gui-testing-0
2013-05-01 16:21:01,299 DEBUG openstack: POST 'https://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/os-security-groups'
2013-05-01 16:21:02,085 DEBUG openstack: 200 '{"security_group": {"rules": [], "tenant_id": "199db4f89161432fadbf71977bba81ce", "id": 116218, "name": "juju-juju-gui-testing-0", "description": "juju group for juju-gui-testing machine 0"}}'
2013-05-01 16:21:02,086 WARNING default-instance-type is deprecated, use cli --constraints
2013-05-01 16:21:02,086 DEBUG access compute @ https://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/flavors/detail
2013-05-01 16:21:02,086 DEBUG openstack: GET 'https://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/flavors/detail'
2013-05-01 16:21:02,489 DEBUG openstack: 200 '{"flavors": [{"name": "m1.tiny", "links": [{"href": "http://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/flavors/1", "rel": "self"}, {"href": "http://nova-lcy01.canonistack.canonical.com/199db4f89161432fadbf71977bba81ce/flavors/1", "rel": "bookmark"}], "ram": 512, "OS-FLV-DISABLED:disabled": false, "vcpus": 1, "swap": "", "os-flavor-access:is_public": true, "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 0, "id": "1"}, {"name": "m1.small", "links": [{"href": "http://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/flavors/2", "rel": "self"}, {"href": "http://nova-lcy01.canonistack.canonical.com/199db4f89161432fadbf71977bba81ce/flavors/2", "rel": "bookmark"}], "ram": 2048, "OS-FLV-DISABLED:disabled": false, "vcpus": 1, "swap": "", "os-flavor-access:is_public": true, "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 20, "disk": 10, "id": "2"}, {"name": "m1.medium", "links": [{"href": "http://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/flavors/3", "rel": "self"}, {"href": "http://nova-lcy01.canonistack.canonical.com/199db4f89161432fadbf71977bba81ce/flavors/3", "rel": "bookmark"}], "ram": 4096, "OS-FLV-DISABLED:disabled": false, "vcpus": 2, "swap": "", "os-flavor-access:is_public": true, "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 40, "disk": 10, "id": "3"}, {"name": "m1.large", "links": [{"href": "http://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/flavors/4", "rel": "self"}, {"href": "http://nova-lcy01.canonistack.canonical.com/199db4f89161432fadbf71977bba81ce/flavors/4", "rel": "bookmark"}], "ram": 8192, "OS-FLV-DISABLED:disabled": false, "vcpus": 4, "swap": "", "os-flavor-access:is_public": true, "rxtx_factor": 1.0, "OS-FLV-EXT-DATA:ephemeral": 80, "disk": 10, "id": "4"}]}'
2013-05-01 16:21:02,489 DEBUG access compute @ https://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/servers
2013-05-01 16:21:02,489 DEBUG openstack: POST 'https://nova-lcy01.canonistack.canonical.com/v2/199db4f89161432fadbf71977bba81ce/servers'
2013-05-01 16:21:03,222 DEBUG openstack: 400 '{"badRequest": {"message": "Can not find requested image", "code": 400}}'
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 397, in errback
    self._startRunCallbacks(fail)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 464, in _startRunCallbacks
    self._runCallbacks()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 551, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1101, in gotResult
    _inlineCallbacks(r, g, deferred)
--- <exception caught here> ---
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1043, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/usr/lib/python2.7/dist-packages/juju/control/bootstrap.py", line 39, in command
    yield provider.bootstrap(constraints)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1043, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/usr/lib/python2.7/dist-packages/juju/providers/common/bootstrap.py", line 57, in _launch_machine
    {"machine-id": "0", "constraints": self._constraints}, master=True)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1043, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/usr/lib/python2.7/dist-packages/juju/providers/common/launch.py", line 64, in run
    machines = yield self.start_machine(machine_id, zookeepers)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1043, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/usr/lib/python2.7/dist-packages/juju/providers/openstack/launch.py", line 104, in start_machine
    scheduler_hints=hints,
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 551, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/juju/providers/openstack/client.py", line 325, in _json
    response.code, body))
juju.errors.ProviderInteractionError: Unexpected 400: '{"badRequest": {"message": "Can not find requested image", "code": 400}}'
2013-05-01 16:21:03,269 ERROR Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 397, in errback
    self._startRunCallbacks(fail)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 464, in _startRunCallbacks
    self._runCallbacks()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 551, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1101, in gotResult
    _inlineCallbacks(r, g, deferred)
--- <exception caught here> ---
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1043, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/usr/lib/python2.7/dist-packages/juju/control/bootstrap.py", line 39, in command
    yield provider.bootstrap(constraints)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1043, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/usr/lib/python2.7/dist-packages/juju/providers/common/bootstrap.py", line 57, in _launch_machine
    {"machine-id": "0", "constraints": self._constraints}, master=True)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1043, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/usr/lib/python2.7/dist-packages/juju/providers/common/launch.py", line 64, in run
    machines = yield self.start_machine(machine_id, zookeepers)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1043, in _inlineCallbacks
    result = result.throwExceptionIntoGenerator(g)
  File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
    return g.throw(self.type, self.value, self.tb)
  File "/usr/lib/python2.7/dist-packages/juju/providers/openstack/launch.py", line 104, in start_machine
    scheduler_hints=hints,
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 551, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/juju/providers/openstack/client.py", line 325, in _json
    response.code, body))
juju.errors.ProviderInteractionError: Unexpected 400: '{"badRequest": {"message": "Can not find requested image", "code": 400}}'

2013-05-01 16:21:03,269 ERROR Unexpected 400: '{"badRequest": {"message": "Can not find requested image", "code": 400}}'

Traceback (most recent call last):
  File "lib/deploy_charm_for_testing.py", line 155, in <module>
    sys.exit(main())
  File "lib/deploy_charm_for_testing.py", line 114, in main
    juju('bootstrap --environment juju-gui-testing '
  File "lib/deploy_charm_for_testing.py", line 23, in juju
    return juju_command(*s.split())
  File "/usr/lib/python2.7/dist-packages/shelltoolbox/__init__.py", line 133, in callable_command
    return run(*all_args)
  File "/usr/lib/python2.7/dist-packages/shelltoolbox/__init__.py", line 452, in run
    raise exception
subprocess.CalledProcessError: Command '['juju', '-v', 'bootstrap', '--environment', 'juju-gui-testing', '--constraints', 'instance-type=m1.small']' returned non-zero exit status 1
Unable to deploy Charm
Collected exit code 1
Final instance state

+ cat /home/jujugui-merger/exit-status
+ ec=1
+ [ 0 -eq 1 ]
+ wc -l
+ cat /home/jujugui-merger/instance-state
+ [ 0 -lt 2 ]
+ echo RETRY THIS TEST RUN!
RETRY THIS TEST RUN!
+ exit 1
Build step 'Execute shell' marked build as failure



More information about the Juju-GUI mailing list