Re: Juju 2.0.1 is here!​

2016-11-01 Thread Malte Menkhoff
Dear Juju-dev list,

I am currently testing the different between Juju 2.0.0 and Juju 2.0.1 examplen 
an OpenStack provider which is based on Huawei FusionSphere.
Juju 2.0.0 was able to get to the status of “Waiting for address” because we 
are using nova API calls instead of neutron API calls - this is known.
But Juju 2.0.1 is now not able to come to that state while bootstrapping.

The actual bootstrap output is:
JUJU_STARTUP_LOGGING_CONFIG=TRACE juju bootstrap example --debug --verbose  
--metadata-source /home/ubuntu/simplestreams --config bootstrap-timeout=300 
--config use-floating-ip=false
11:57:00 TRACE juju.apiserver.common registry.go:47 Registered facade 
"CharmRevisionUpdater" v2
11:57:00 TRACE juju.apiserver.common registry.go:47 Registered facade "Backups" 
v1
11:57:00 DEBUG juju.environs imagemetadata.go:62 new model image datasource 
registered: cloud sigma image source
11:57:00 DEBUG juju.environs imagemetadata.go:62 new model image datasource 
registered: keystone catalog
11:57:00 TRACE cmd aliasfile.go:23 unable to read alias file 
"/home/ubuntu/.local/share/juju/aliases": open 
/home/ubuntu/.local/share/juju/aliases: no such file or directory
11:57:00 INFO  juju.cmd supercommand.go:63 running juju [2.0.1 gc go1.6.2]
11:57:00 DEBUG juju.cmd supercommand.go:64   args: []string{"juju", 
"bootstrap", "example", "--debug", "--verbose", "--metadata-source", 
"/home/ubuntu/simplestreams", "--config", "bootstrap-timeout=300", "--config", 
"use-floating-ip=false"}
11:57:00 DEBUG juju.cmd.juju.commands bootstrap.go:834 provider attrs: 
map[network: use-floating-ip:false use-default-secgroup:false]
11:57:00 INFO  cmd cmd.go:141 Adding contents of 
"/home/ubuntu/.local/share/juju/ssh/juju_id_rsa.pub" to authorized-keys
11:57:00 DEBUG juju.cmd.juju.commands bootstrap.go:890 preparing controller 
with config: map[apt-mirror: name:controller test-mode:false apt-https-proxy: 
type:openstack logging-config: enable-os-refresh-update:true 
provisioner-harvest-mode:destroyed agent-metadata-url: 
use-default-secgroup:false apt-http-proxy: agent-stream:released 
firewall-mode:instance image-stream:released use-floating-ip:false 
disable-network-management:false default-series:xenial development:false 
https-proxy: ssl-hostname-verification:true resource-tags: network: 
proxy-ssh:false transmit-vendor-metrics:true automatically-retry-hooks:true 
uuid:691a5ca9-76b7-4503-8158-6dc341fdb32f ignore-machine-addresses:false 
apt-ftp-proxy: enable-os-upgrade:true http-proxy: no-proxy: 
logforward-enabled:false ftp-proxy: image-metadata-url: authorized-keys:ssh-rsa 
B3NzaC1yc2EDAQABAAABAQC6vSnam5/qIFGSs7T1zSj2qamU+dOxMnpt9m+sGdXpkeuHYYbEDdmzWdPQCGCniUfMm9ffWl3KkOqMDsoRjFfcPaRITc3USKgzkR+zKDTxvoTaDaL3gcg3eNiZGrPYFZ1J49uV4Oo3Y913zbbTyj6ViyHE8ILqO4SssfNBRiWMdbJbrmOGJeVZkJyKt2xTkmOZ8Ne1KB34q66TNCMP81z1DdaDA/YiMseqnGH+c/39Qd/0MoASNQua5qLnaNN6FyHgeme3dhaQpzcYnH2vBIf0UMA+aFYyUrm7y5lhDrcI9FRLWYfyqZz0Y/qdzS6J48nSov5P22yDF8/9RZkzIVUH
 juju-client-key
]
11:57:00 INFO  juju.provider.openstack provider.go:76 opening model "controller"
11:57:00 INFO  cmd cmd.go:129 Creating Juju controller "example-eu-de" on 
example/eu-de
11:57:00 INFO  juju.provider.common destroy.go:20 destroying model "controller"
11:57:00 INFO  juju.provider.common destroy.go:31 destroying instances
11:57:00 ERROR juju.cmd.juju.commands bootstrap.go:1021 error cleaning up: 
destroying controller model: destroying instances: failed to get list of server 
details
caused by: Resource at https://ecs.eu-de.example.com/ not found
caused by: request (https://ecs.eu-de.example.com/) returned unexpected status: 
404; error info: {"message":"Api does not 
exist","request_id":"281C2FBB-0D3A-4676-BAA5-3CC91C9ADED6"}
11:57:00 ERROR cmd supercommand.go:458 failed to get list of flavour details
caused by: Resource at https://ecs.eu-de.example.com/ not found
caused by: request (https://ecs.eu-de.example.com/) returned unexpected status: 
404; error info: {"message":"Api does not 
exist","request_id":"83A781AE-9A0C-43C7-B405-310A5A94566E"}
11:57:00 DEBUG cmd supercommand.go:459 (error details: 
[{github.com/juju/juju/cmd/juju/commands/bootstrap.go:499: } {failed to get 
list of flavour details
caused by: Resource at https://ecs.eu-de.example.com/ not found
caused by: request (https://ecs.eu-de.example.com/) returned unexpected status: 
404; error info: {"message":"Api does not 
exist","request_id":"83A781AE-9A0C-43C7-B405-310A5A94566E"}}])

Could this occur due to the new version of goose according to:
Merge pull request #6501  from 
axw/lp1636648-openstack-update-goose

provider/openstack: update goose

Use new version of goose, to omit the device
field on volume attachment requests when no
device is specified.

This branch also uses the new OpenStack API
version discovery code in goose.

Fixes https://bugs.launchpad.net/juju/+bug/1636648 


Any advice or help here how to debug it 

[ANN] Updated Python Juju Client

2016-11-01 Thread Tim Van Steenburgh
Hi everyone,

We've been working on a new python client for Juju. It's still in
development,
but we wanted to share the first bits to illicit feedback:
https://github.com/juju/python-libjuju

Features of this library include:

 * fully asynchronous - uses asyncio and async/await features of python 3.5
 * websocket-level bindings are programmatically generated (indirectly)
from the
   Juju golang code, ensuring full api coverage
 * provides an OO layer which encapsulates much of the websocket api and
   provides familiar nouns and verbs (e.g. Model.deploy(),
Application.add_unit(),
   etc.)

Caveats:

 * Juju 2+ only. Juju 1 support may be added in the future.
 * Requires Python 3.5+
 * Currently async-only. A synchronous wrapper will be provided in the
future.

If you want to try it out, take a look at the examples/ directory.
https://github.com/juju/python-libjuju/blob/master/examples/unitrun.py is a
fairly simple one that deploys a unit, runs a command on that unit, waits
for
and prints the results, then exits.

Any and all comments, questions, and contributions are welcomed.

Thanks,

Tim
-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev


Re: [ANN] Updated Python Juju Client

2016-11-01 Thread Ryan Beisner
This is good stuff.  I think keeping it focused on Juju 2.0 and later,
completely free of legacy shims, is a good thing.  I'd love to be using
this natively instead of the collective stack of [Amulet + Juju-deployer +
python-jujuclient], and plan to take it for a spin.

Cheers,

Ryan

On Tue, Nov 1, 2016 at 8:49 AM, Tim Van Steenburgh <
tim.van.steenbu...@canonical.com> wrote:

> Hi everyone,
>
> We've been working on a new python client for Juju. It's still in
> development,
> but we wanted to share the first bits to illicit feedback:
> https://github.com/juju/python-libjuju
>
> Features of this library include:
>
>  * fully asynchronous - uses asyncio and async/await features of python 3.5
>  * websocket-level bindings are programmatically generated (indirectly)
> from the
>Juju golang code, ensuring full api coverage
>  * provides an OO layer which encapsulates much of the websocket api and
>provides familiar nouns and verbs (e.g. Model.deploy(),
> Application.add_unit(),
>etc.)
>
> Caveats:
>
>  * Juju 2+ only. Juju 1 support may be added in the future.
>  * Requires Python 3.5+
>  * Currently async-only. A synchronous wrapper will be provided in the
> future.
>
> If you want to try it out, take a look at the examples/ directory.
> https://github.com/juju/python-libjuju/blob/master/examples/unitrun.py is
> a
> fairly simple one that deploys a unit, runs a command on that unit, waits
> for
> and prints the results, then exits.
>
> Any and all comments, questions, and contributions are welcomed.
>
> Thanks,
>
> Tim
>
> --
> Juju-dev mailing list
> Juju-dev@lists.ubuntu.com
> Modify settings or unsubscribe at: https://lists.ubuntu.com/
> mailman/listinfo/juju-dev
>
>
-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev


Re: [ANN] Updated Python Juju Client

2016-11-01 Thread Marco Ceppi
This is really one of the goals. python-jujuclient, amulet, and even to an
extent deployer all poorly implement an abstraction to Juju. These will all
eventually fall away in favor of a consolidated, focused, well built Object
Oriented Python library.

Marco

On Tue, Nov 1, 2016, 4:25 PM Ryan Beisner 
wrote:

> This is good stuff.  I think keeping it focused on Juju 2.0 and later,
> completely free of legacy shims, is a good thing.  I'd love to be using
> this natively instead of the collective stack of [Amulet + Juju-deployer +
> python-jujuclient], and plan to take it for a spin.
>
> Cheers,
>
> Ryan
>
> On Tue, Nov 1, 2016 at 8:49 AM, Tim Van Steenburgh <
> tim.van.steenbu...@canonical.com> wrote:
>
> Hi everyone,
>
> We've been working on a new python client for Juju. It's still in
> development,
> but we wanted to share the first bits to illicit feedback:
> https://github.com/juju/python-libjuju
>
> Features of this library include:
>
>  * fully asynchronous - uses asyncio and async/await features of python 3.5
>  * websocket-level bindings are programmatically generated (indirectly)
> from the
>Juju golang code, ensuring full api coverage
>  * provides an OO layer which encapsulates much of the websocket api and
>provides familiar nouns and verbs (e.g. Model.deploy(),
> Application.add_unit(),
>etc.)
>
> Caveats:
>
>  * Juju 2+ only. Juju 1 support may be added in the future.
>  * Requires Python 3.5+
>  * Currently async-only. A synchronous wrapper will be provided in the
> future.
>
> If you want to try it out, take a look at the examples/ directory.
> https://github.com/juju/python-libjuju/blob/master/examples/unitrun.py is
> a
> fairly simple one that deploys a unit, runs a command on that unit, waits
> for
> and prints the results, then exits.
>
> Any and all comments, questions, and contributions are welcomed.
>
> Thanks,
>
> Tim
>
> --
> Juju-dev mailing list
> Juju-dev@lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/juju-dev
>
>
> --
> Juju-dev mailing list
> Juju-dev@lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/juju-dev
>
-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev


Re: [ANN] Updated Python Juju Client

2016-11-01 Thread Ryan Beisner
On Tue, Nov 1, 2016 at 9:30 AM, Marco Ceppi 
wrote:

> This is really one of the goals. python-jujuclient, amulet, and even to an
> extent deployer all poorly implement an abstraction to Juju. These will all
> eventually fall away in favor of a consolidated, focused, well built Object
> Oriented Python library.
>
+1000 :-)


> Marco
>
> On Tue, Nov 1, 2016, 4:25 PM Ryan Beisner 
> wrote:
>
>> This is good stuff.  I think keeping it focused on Juju 2.0 and later,
>> completely free of legacy shims, is a good thing.  I'd love to be using
>> this natively instead of the collective stack of [Amulet + Juju-deployer +
>> python-jujuclient], and plan to take it for a spin.
>>
>> Cheers,
>>
>> Ryan
>>
>> On Tue, Nov 1, 2016 at 8:49 AM, Tim Van Steenburgh <
>> tim.van.steenbu...@canonical.com> wrote:
>>
>> Hi everyone,
>>
>> We've been working on a new python client for Juju. It's still in
>> development,
>> but we wanted to share the first bits to illicit feedback:
>> https://github.com/juju/python-libjuju
>>
>> Features of this library include:
>>
>>  * fully asynchronous - uses asyncio and async/await features of python
>> 3.5
>>  * websocket-level bindings are programmatically generated (indirectly)
>> from the
>>Juju golang code, ensuring full api coverage
>>  * provides an OO layer which encapsulates much of the websocket api and
>>provides familiar nouns and verbs (e.g. Model.deploy(),
>> Application.add_unit(),
>>etc.)
>>
>> Caveats:
>>
>>  * Juju 2+ only. Juju 1 support may be added in the future.
>>  * Requires Python 3.5+
>>  * Currently async-only. A synchronous wrapper will be provided in the
>> future.
>>
>> If you want to try it out, take a look at the examples/ directory.
>> https://github.com/juju/python-libjuju/blob/master/examples/unitrun.py
>> is a
>> fairly simple one that deploys a unit, runs a command on that unit, waits
>> for
>> and prints the results, then exits.
>>
>> Any and all comments, questions, and contributions are welcomed.
>>
>> Thanks,
>>
>> Tim
>>
>> --
>> Juju-dev mailing list
>> Juju-dev@lists.ubuntu.com
>> Modify settings or unsubscribe at: https://lists.ubuntu.com/
>> mailman/listinfo/juju-dev
>>
>>
>> --
>> Juju-dev mailing list
>> Juju-dev@lists.ubuntu.com
>> Modify settings or unsubscribe at: https://lists.ubuntu.com/
>> mailman/listinfo/juju-dev
>>
>
-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev


Re: Juju 2.0.1 is here!​

2016-11-01 Thread Nicholas Skaggs
This has been filed under https://bugs.launchpad.net/juju/+bug/1638304. 
Please continue discussion there.


Thanks for the feedback Malte!

Nicholas

On 11/01/2016 08:19 AM, Malte Menkhoff wrote:

Dear Juju-dev list,

I am currently testing the different between Juju 2.0.0 and Juju 2.0.1 
examplen an OpenStack provider which is based on Huawei FusionSphere.
Juju 2.0.0 was able to get to the status of “Waiting for address” 
because we are using nova API calls instead of neutron API calls - 
this is known.

But Juju 2.0.1 is now not able to come to that state while bootstrapping.

The actual bootstrap output is:
JUJU_STARTUP_LOGGING_CONFIG=TRACE juju bootstrap example --debug 
--verbose  --metadata-source /home/ubuntu/simplestreams --config 
bootstrap-timeout=300 --config use-floating-ip=false
11:57:00 TRACE juju.apiserver.common registry.go:47 Registered facade 
"CharmRevisionUpdater" v2
11:57:00 TRACE juju.apiserver.common registry.go:47 Registered facade 
"Backups" v1
11:57:00 DEBUG juju.environs imagemetadata.go:62 new model image 
datasource registered: cloud sigma image source
11:57:00 DEBUG juju.environs imagemetadata.go:62 new model image 
datasource registered: keystone catalog
11:57:00 TRACE cmd aliasfile.go:23 unable to read alias file 
"/home/ubuntu/.local/share/juju/aliases": open 
/home/ubuntu/.local/share/juju/aliases: no such file or directory

11:57:00 INFO  juju.cmd supercommand.go:63 running juju [2.0.1 gc go1.6.2]
11:57:00 DEBUG juju.cmd supercommand.go:64   args: []string{"juju", 
"bootstrap", "example", "--debug", "--verbose", "--metadata-source", 
"/home/ubuntu/simplestreams", "--config", "bootstrap-timeout=300", 
"--config", "use-floating-ip=false"}
11:57:00 DEBUG juju.cmd.juju.commands bootstrap.go:834 provider attrs: 
map[network: use-floating-ip:false use-default-secgroup:false]
11:57:00 INFO  cmd cmd.go:141 Adding contents of 
"/home/ubuntu/.local/share/juju/ssh/juju_id_rsa.pub" to authorized-keys
11:57:00 DEBUG juju.cmd.juju.commands bootstrap.go:890 preparing 
controller with config: map[apt-mirror: name:controller 
test-mode:false apt-https-proxy: type:openstack logging-config: 
enable-os-refresh-update:true provisioner-harvest-mode:destroyed 
agent-metadata-url: use-default-secgroup:false apt-http-proxy: 
agent-stream:released firewall-mode:instance image-stream:released 
use-floating-ip:false disable-network-management:false 
default-series:xenial development:false https-proxy: 
ssl-hostname-verification:true resource-tags: network: proxy-ssh:false 
transmit-vendor-metrics:true automatically-retry-hooks:true 
uuid:691a5ca9-76b7-4503-8158-6dc341fdb32f 
ignore-machine-addresses:false apt-ftp-proxy: enable-os-upgrade:true 
http-proxy: no-proxy: logforward-enabled:false ftp-proxy: 
image-metadata-url: authorized-keys:ssh-rsa 
B3NzaC1yc2EDAQABAAABAQC6vSnam5/qIFGSs7T1zSj2qamU+dOxMnpt9m+sGdXpkeuHYYbEDdmzWdPQCGCniUfMm9ffWl3KkOqMDsoRjFfcPaRITc3USKgzkR+zKDTxvoTaDaL3gcg3eNiZGrPYFZ1J49uV4Oo3Y913zbbTyj6ViyHE8ILqO4SssfNBRiWMdbJbrmOGJeVZkJyKt2xTkmOZ8Ne1KB34q66TNCMP81z1DdaDA/YiMseqnGH+c/39Qd/0MoASNQua5qLnaNN6FyHgeme3dhaQpzcYnH2vBIf0UMA+aFYyUrm7y5lhDrcI9FRLWYfyqZz0Y/qdzS6J48nSov5P22yDF8/9RZkzIVUH 
juju-client-key

]
11:57:00 INFO  juju.provider.openstack provider.go:76 opening model 
"controller"
11:57:00 INFO  cmd cmd.go:129 Creating Juju controller "example-eu-de" 
on example/eu-de
11:57:00 INFO  juju.provider.common destroy.go:20 destroying model 
"controller"

11:57:00 INFO  juju.provider.common destroy.go:31 destroying instances
11:57:00 ERROR juju.cmd.juju.commands bootstrap.go:1021 error cleaning 
up: destroying controller model: destroying instances: failed to get 
list of server details

caused by: Resource at https://ecs.eu-de.example.com/ not found
caused by: request (https://ecs.eu-de.example.com/) returned 
unexpected status: 404; error info: {"message":"Api does not 
exist","request_id":"281C2FBB-0D3A-4676-BAA5-3CC91C9ADED6"}
11:57:00 ERROR cmd supercommand.go:458 failed to get list of flavour 
details

caused by: Resource at https://ecs.eu-de.example.com/ not found
caused by: request (https://ecs.eu-de.example.com/) returned 
unexpected status: 404; error info: {"message":"Api does not 
exist","request_id":"83A781AE-9A0C-43C7-B405-310A5A94566E"}
11:57:00 DEBUG cmd supercommand.go:459 (error details: 
[{github.com/juju/juju/cmd/juju/commands/bootstrap.go:499: 
 } 
{failed to get list of flavour details

caused by: Resource at https://ecs.eu-de.example.com/ not found
caused by: request (https://ecs.eu-de.example.com/) returned 
unexpected status: 404; error info: {"message":"Api does not 
exist","request_id":"83A781AE-9A0C-43C7-B405-310A5A94566E"}}])


Could this occur due to the new version of goose according to:

Merge pull request #6501  
from axw/lp1636648-openstack-update-goose


provider/openstack: update goose

Use new version of goose, to omit the device
fie

Dependencies added for new jsonschema support

2016-11-01 Thread Nate Finch
In support of my PR  that adds an
interactive mode for add-cloud, we needed to add jsonschema for the cloud
configurations that can be inspected at runtime to generate the interactive
queries.

Unfortunately, the jsonschema package we're currently using (gojsonschema)
does not expose the structure of the schema, so it's not able to be
inspected by internal code (
https://godoc.org/github.com/xeipuuv/gojsonschema#Schema).

In looking for a new jsonschema package, I got recommended
github.com/lestrrat/go-jsschema which is actively maintained, and does
expose the schema.

I have made a wrapper package for go-jsschema at github.com/juju/jsonschema
which adds some extra fields to the schema to support our particular use
case, but delegates most of the heavy lifting to the underlying package.

Currently, importing go-jsschema imports 5 other repos from the same author
in support of jsonschema, and one package by a third party (dave's
github.com/pkg/errors).  I am asking about making a PR to remove one of
those dependencies, but it still leaves us with 6 new dependencies (5 of
which are from the same author).

Here's the additions:
github.com/lestrrat/go-jsschema
github.com/lestrrat/go-jspointer
github.com/lestrrat/go-jsref
github.com/lestrrat/go-jsval
github.com/lestrrat/go-pdebug
github.com/lestrrat/go-structinfo
github.com/pkg/errors

The pdebug one is the one I can easily remove with a PR.  I'd like to
remove the structinfo one, but that might be less likely (would require
copying a few dozen lines of code, and I doubt the guy would be amenable...
but I can ask).

However, this shuld be able to be used as a more or less drop in
replacement for the existing forks of the gojsonschema package which we're
maintaining, which would remove 3 dependencies (albeit ones more or less
maintained by us).  In theory, we could also remove environschema at some
point and replace it with jsonschema, but that's a bigger job.

-Nate
-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev


Re: Dependencies added for new jsonschema support

2016-11-01 Thread Katherine Cox-Buday
Nate Finch  writes:

> In support of my PR that adds an interactive mode for add-cloud, we needed to 
> add
> jsonschema for the cloud configurations that can be inspected at runtime to 
> generate the
> interactive queries.

Thanks for the great write-up, Nate. I've added it to the tech board agenda[1] 
and we should review tonight.

-- 
Katherine

[1] - 
https://docs.google.com/document/d/13nmOm6ojX5UUNtwfrkqr1cR6eC5XDPtnhN5H6pFLfxo/edit

-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev


Re: Dependencies added for new jsonschema support

2016-11-01 Thread Nate Finch
Thanks, Katherine, I had intended to mention in the email that this was a
request for review by the tech board :)

On Tue, Nov 1, 2016, 5:14 PM Katherine Cox-Buday <
katherine.cox-bu...@canonical.com> wrote:

> Nate Finch  writes:
>
> > In support of my PR that adds an interactive mode for add-cloud, we
> needed to add
> > jsonschema for the cloud configurations that can be inspected at runtime
> to generate the
> > interactive queries.
>
> Thanks for the great write-up, Nate. I've added it to the tech board
> agenda[1] and we should review tonight.
>
> --
> Katherine
>
> [1] -
> https://docs.google.com/document/d/13nmOm6ojX5UUNtwfrkqr1cR6eC5XDPtnhN5H6pFLfxo/edit
>
-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev