Juju Resources (a tool / library)

2015-02-11 Thread Cory Johns
Hi all,

(cross-posting to juju  juju-dev)

I've created a tool / library for organizing and managing resources
(binary blobs, tarballs, Python packages, and, eventually, apt
packages) required by a charm.  The idea is to be an interim tool, and
a test-bed for the resource features that have been discussed for the
future in Juju core.

It is available on GitHub [1] and PyPI [2], and the full documentation
is on PythonHosted.org [3].

The goals of this project are:

  * Organize all external resource dependencies into a single
resources.yaml file
  * Provide easy, consistent interfaces to manage, install, and mirror resources
  * CLI and Python bindings
  * Enforce best practices, such as cryptographic hash validation

I asked around to see if there was an existing proposal for a
resources.yaml file format, but couldn't find one.  If someone is
aware of an existing spec / proposal, I'd prefer to match that as much
as possible.

The current version is fully functional, and is currently being used
in the framework refactor of the Apache Hadoop charms (e.g., [4]).

Note that I created this separately from Charm Helpers primarily
because I wanted to use it to bootstrap CH, but this also makes it
easier to use in Bash charms.

My next step is to add apt-get support, but that will requiring
cleaning up the mirror server (possibly converting it to use squid,
but I may want to keep it self-contained), and learning a bit more
about how the apt proxy settings work.  Advice here is appreciated.


[1] https://github.com/juju-solutions/jujuresources
[2] https://pypi.python.org/pypi/jujuresources
[3] http://pythonhosted.org/jujuresources/
[4] 
https://code.launchpad.net/~bigdata-dev/charms/trusty/apache-hadoop-hdfs-master/trunk

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


Juju Resources (a tool / library)

2015-02-11 Thread Cory Johns
Hi all,

(cross-posting to juju  juju-dev)

I've created a tool / library for organizing and managing resources
(binary blobs, tarballs, Python packages, and, eventually, apt
packages) required by a charm.  The idea is to be an interim tool, and
a test-bed for the resource features that have been discussed for the
future in Juju core.

It is available on GitHub [1] and PyPI [2], and the full documentation
is on PythonHosted.org [3].

The goals of this project are:

  * Organize all external resource dependencies into a single
resources.yaml file
  * Provide easy, consistent interfaces to manage, install, and mirror resources
  * CLI and Python bindings
  * Enforce best practices, such as cryptographic hash validation

I asked around to see if there was an existing proposal for a
resources.yaml file format, but couldn't find one.  If someone is
aware of an existing spec / proposal, I'd prefer to match that as much
as possible.

The current version is fully functional, and is currently being used
in the framework refactor of the Apache Hadoop charms (e.g., [4]).

Note that I created this separately from Charm Helpers primarily
because I wanted to use it to bootstrap CH, but this also makes it
easier to use in Bash charms.

My next step is to add apt-get support, but that will requiring
cleaning up the mirror server (possibly converting it to use squid,
but I may want to keep it self-contained), and learning a bit more
about how the apt proxy settings work.  Advice here is appreciated.


[1] https://github.com/juju-solutions/jujuresources
[2] https://pypi.python.org/pypi/jujuresources
[3] http://pythonhosted.org/jujuresources/
[4] 
https://code.launchpad.net/~bigdata-dev/charms/trusty/apache-hadoop-hdfs-master/trunk

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


Re: Juju Resources (a tool / library)

2015-02-11 Thread Gustavo Niemeyer
Hi Cory,

While it's fine and welcome to have such test bed features, it feels
like the proposal and implementation have quite different goals from
the actual resources feature we've been talking about for a while, so
as a very early suggestion and request, I would strongly recommend
renaming the feature to avoid creating ambiguity with the feature that
we intend juju to have in the long run. Having two resource
implementations and taking over important namespaces such as
resources.yaml might introduce unnecessary confusion down the road.
Instead, the project might have a nice non-generic name, and its
configuration file could also be named after it.


On Wed, Feb 11, 2015 at 4:17 PM, Cory Johns cory.jo...@canonical.com wrote:
 Per request, the documentation is now also available on
 ReadTheDocs.org: http://jujuresources.readthedocs.org/

 On Wed, Feb 11, 2015 at 11:25 AM, Cory Johns cory.jo...@canonical.com wrote:
 Hi all,

 (cross-posting to juju  juju-dev)

 I've created a tool / library for organizing and managing resources
 (binary blobs, tarballs, Python packages, and, eventually, apt
 packages) required by a charm.  The idea is to be an interim tool, and
 a test-bed for the resource features that have been discussed for the
 future in Juju core.

 It is available on GitHub [1] and PyPI [2], and the full documentation
 is on PythonHosted.org [3].

 The goals of this project are:

   * Organize all external resource dependencies into a single
 resources.yaml file
   * Provide easy, consistent interfaces to manage, install, and mirror 
 resources
   * CLI and Python bindings
   * Enforce best practices, such as cryptographic hash validation

 I asked around to see if there was an existing proposal for a
 resources.yaml file format, but couldn't find one.  If someone is
 aware of an existing spec / proposal, I'd prefer to match that as much
 as possible.

 The current version is fully functional, and is currently being used
 in the framework refactor of the Apache Hadoop charms (e.g., [4]).

 Note that I created this separately from Charm Helpers primarily
 because I wanted to use it to bootstrap CH, but this also makes it
 easier to use in Bash charms.

 My next step is to add apt-get support, but that will requiring
 cleaning up the mirror server (possibly converting it to use squid,
 but I may want to keep it self-contained), and learning a bit more
 about how the apt proxy settings work.  Advice here is appreciated.


 [1] https://github.com/juju-solutions/jujuresources
 [2] https://pypi.python.org/pypi/jujuresources
 [3] http://pythonhosted.org/jujuresources/
 [4] 
 https://code.launchpad.net/~bigdata-dev/charms/trusty/apache-hadoop-hdfs-master/trunk

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



-- 

gustavo @ http://niemeyer.net

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


Re: Juju Resources (a tool / library)

2015-02-11 Thread Cory Johns
Per request, the documentation is now also available on
ReadTheDocs.org: http://jujuresources.readthedocs.org/

On Wed, Feb 11, 2015 at 11:25 AM, Cory Johns cory.jo...@canonical.com wrote:
 Hi all,

 (cross-posting to juju  juju-dev)

 I've created a tool / library for organizing and managing resources
 (binary blobs, tarballs, Python packages, and, eventually, apt
 packages) required by a charm.  The idea is to be an interim tool, and
 a test-bed for the resource features that have been discussed for the
 future in Juju core.

 It is available on GitHub [1] and PyPI [2], and the full documentation
 is on PythonHosted.org [3].

 The goals of this project are:

   * Organize all external resource dependencies into a single
 resources.yaml file
   * Provide easy, consistent interfaces to manage, install, and mirror 
 resources
   * CLI and Python bindings
   * Enforce best practices, such as cryptographic hash validation

 I asked around to see if there was an existing proposal for a
 resources.yaml file format, but couldn't find one.  If someone is
 aware of an existing spec / proposal, I'd prefer to match that as much
 as possible.

 The current version is fully functional, and is currently being used
 in the framework refactor of the Apache Hadoop charms (e.g., [4]).

 Note that I created this separately from Charm Helpers primarily
 because I wanted to use it to bootstrap CH, but this also makes it
 easier to use in Bash charms.

 My next step is to add apt-get support, but that will requiring
 cleaning up the mirror server (possibly converting it to use squid,
 but I may want to keep it self-contained), and learning a bit more
 about how the apt proxy settings work.  Advice here is appreciated.


 [1] https://github.com/juju-solutions/jujuresources
 [2] https://pypi.python.org/pypi/jujuresources
 [3] http://pythonhosted.org/jujuresources/
 [4] 
 https://code.launchpad.net/~bigdata-dev/charms/trusty/apache-hadoop-hdfs-master/trunk

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


Re: Juju Resources (a tool / library)

2015-02-11 Thread Cory Johns
Gustavo,

Can you be more specific on how it differs from the goals of resources
streams?  As I mentioned in my first email, I asked around to try to
get specific information about the proposed feature and wasn't able to
get any concrete answers or documentation.  So I created this based on
what I remembered from the discussions I'd heard (admittedly not much)
and what I needed in the charms I was working on.

I fully intend for this library to be subsumed / obviated by core as
the feature develops, and I tried to make that clear in the library
README and documentation.  I also intend to update the interface to
match the feature as closely as possible as the proposal becomes more
concrete.

On Wed, Feb 11, 2015 at 2:33 PM, Gustavo Niemeyer gust...@niemeyer.net wrote:
 Hi Cory,

 While it's fine and welcome to have such test bed features, it feels
 like the proposal and implementation have quite different goals from
 the actual resources feature we've been talking about for a while, so
 as a very early suggestion and request, I would strongly recommend
 renaming the feature to avoid creating ambiguity with the feature that
 we intend juju to have in the long run. Having two resource
 implementations and taking over important namespaces such as
 resources.yaml might introduce unnecessary confusion down the road.
 Instead, the project might have a nice non-generic name, and its
 configuration file could also be named after it.


 On Wed, Feb 11, 2015 at 4:17 PM, Cory Johns cory.jo...@canonical.com wrote:
 Per request, the documentation is now also available on
 ReadTheDocs.org: http://jujuresources.readthedocs.org/

 On Wed, Feb 11, 2015 at 11:25 AM, Cory Johns cory.jo...@canonical.com 
 wrote:
 Hi all,

 (cross-posting to juju  juju-dev)

 I've created a tool / library for organizing and managing resources
 (binary blobs, tarballs, Python packages, and, eventually, apt
 packages) required by a charm.  The idea is to be an interim tool, and
 a test-bed for the resource features that have been discussed for the
 future in Juju core.

 It is available on GitHub [1] and PyPI [2], and the full documentation
 is on PythonHosted.org [3].

 The goals of this project are:

   * Organize all external resource dependencies into a single
 resources.yaml file
   * Provide easy, consistent interfaces to manage, install, and mirror 
 resources
   * CLI and Python bindings
   * Enforce best practices, such as cryptographic hash validation

 I asked around to see if there was an existing proposal for a
 resources.yaml file format, but couldn't find one.  If someone is
 aware of an existing spec / proposal, I'd prefer to match that as much
 as possible.

 The current version is fully functional, and is currently being used
 in the framework refactor of the Apache Hadoop charms (e.g., [4]).

 Note that I created this separately from Charm Helpers primarily
 because I wanted to use it to bootstrap CH, but this also makes it
 easier to use in Bash charms.

 My next step is to add apt-get support, but that will requiring
 cleaning up the mirror server (possibly converting it to use squid,
 but I may want to keep it self-contained), and learning a bit more
 about how the apt proxy settings work.  Advice here is appreciated.


 [1] https://github.com/juju-solutions/jujuresources
 [2] https://pypi.python.org/pypi/jujuresources
 [3] http://pythonhosted.org/jujuresources/
 [4] 
 https://code.launchpad.net/~bigdata-dev/charms/trusty/apache-hadoop-hdfs-master/trunk

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



 --

 gustavo @ http://niemeyer.net

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


Re: Juju Resources (a tool / library)

2015-02-11 Thread Gustavo Niemeyer
I can, but that's not the right way to proceed if you were in fact
trying to implement an important feature of juju that was extensively
discussed.

1. The project has a technical lead and a manager which should have
the proper information to bootstrap this, or at least know who to talk
to.

2. The project has a roadmap. Make sure to talk to the people in (1)
to see how this fits in.

3. I'm sure there are previous documents about this, given relevance
and prior conversations. You can find these documents yourself by
searching through specs, or by asking people that participated in
prior conversations and might have a better idea about what to search
for.

4. There should be a specification about the feature, before there is
an implementation. Stakeholders should review the specification and
approve it before there is code.





On Wed, Feb 11, 2015 at 6:40 PM, Cory Johns cory.jo...@canonical.com wrote:
 Can you be more specific on how it differs from the goals of resources
 streams?  As I mentioned in my first email, I asked around to try to
 get specific information about the proposed feature and wasn't able to
 get any concrete answers or documentation.  So I created this based on
 what I remembered from the discussions I'd heard (admittedly not much)
 and what I needed in the charms I was working on.

 I fully intend for this library to be subsumed / obviated by core as
 the feature develops, and I tried to make that clear in the library
 README and documentation.  I also intend to update the interface to
 match the feature as closely as possible as the proposal becomes more
 concrete.

 On Wed, Feb 11, 2015 at 2:33 PM, Gustavo Niemeyer gust...@niemeyer.net 
 wrote:
 Hi Cory,

 While it's fine and welcome to have such test bed features, it feels
 like the proposal and implementation have quite different goals from
 the actual resources feature we've been talking about for a while, so
 as a very early suggestion and request, I would strongly recommend
 renaming the feature to avoid creating ambiguity with the feature that
 we intend juju to have in the long run. Having two resource
 implementations and taking over important namespaces such as
 resources.yaml might introduce unnecessary confusion down the road.
 Instead, the project might have a nice non-generic name, and its
 configuration file could also be named after it.


 On Wed, Feb 11, 2015 at 4:17 PM, Cory Johns cory.jo...@canonical.com wrote:
 Per request, the documentation is now also available on
 ReadTheDocs.org: http://jujuresources.readthedocs.org/

 On Wed, Feb 11, 2015 at 11:25 AM, Cory Johns cory.jo...@canonical.com 
 wrote:
 Hi all,

 (cross-posting to juju  juju-dev)

 I've created a tool / library for organizing and managing resources
 (binary blobs, tarballs, Python packages, and, eventually, apt
 packages) required by a charm.  The idea is to be an interim tool, and
 a test-bed for the resource features that have been discussed for the
 future in Juju core.

 It is available on GitHub [1] and PyPI [2], and the full documentation
 is on PythonHosted.org [3].

 The goals of this project are:

   * Organize all external resource dependencies into a single
 resources.yaml file
   * Provide easy, consistent interfaces to manage, install, and mirror 
 resources
   * CLI and Python bindings
   * Enforce best practices, such as cryptographic hash validation

 I asked around to see if there was an existing proposal for a
 resources.yaml file format, but couldn't find one.  If someone is
 aware of an existing spec / proposal, I'd prefer to match that as much
 as possible.

 The current version is fully functional, and is currently being used
 in the framework refactor of the Apache Hadoop charms (e.g., [4]).

 Note that I created this separately from Charm Helpers primarily
 because I wanted to use it to bootstrap CH, but this also makes it
 easier to use in Bash charms.

 My next step is to add apt-get support, but that will requiring
 cleaning up the mirror server (possibly converting it to use squid,
 but I may want to keep it self-contained), and learning a bit more
 about how the apt proxy settings work.  Advice here is appreciated.


 [1] https://github.com/juju-solutions/jujuresources
 [2] https://pypi.python.org/pypi/jujuresources
 [3] http://pythonhosted.org/jujuresources/
 [4] 
 https://code.launchpad.net/~bigdata-dev/charms/trusty/apache-hadoop-hdfs-master/trunk

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



 --

 gustavo @ http://niemeyer.net



-- 

gustavo @ http://niemeyer.net

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


Re: Juju Resources (a tool / library)

2015-02-11 Thread Gustavo Niemeyer
I can, but that's not the right way to proceed if you were in fact
trying to implement an important feature of juju that was extensively
discussed.

1. The project has a technical lead and a manager which should have
the proper information to bootstrap this, or at least know who to talk
to.

2. The project has a roadmap. Make sure to talk to the people in (1)
to see how this fits in.

3. I'm sure there are previous documents about this, given relevance
and prior conversations. You can find these documents yourself by
searching through specs, or by asking people that participated in
prior conversations and might have a better idea about what to search
for.

4. There should be a specification about the feature, before there is
an implementation. Stakeholders should review the specification and
approve it before there is code.





On Wed, Feb 11, 2015 at 6:40 PM, Cory Johns cory.jo...@canonical.com wrote:
 Can you be more specific on how it differs from the goals of resources
 streams?  As I mentioned in my first email, I asked around to try to
 get specific information about the proposed feature and wasn't able to
 get any concrete answers or documentation.  So I created this based on
 what I remembered from the discussions I'd heard (admittedly not much)
 and what I needed in the charms I was working on.

 I fully intend for this library to be subsumed / obviated by core as
 the feature develops, and I tried to make that clear in the library
 README and documentation.  I also intend to update the interface to
 match the feature as closely as possible as the proposal becomes more
 concrete.

 On Wed, Feb 11, 2015 at 2:33 PM, Gustavo Niemeyer gust...@niemeyer.net 
 wrote:
 Hi Cory,

 While it's fine and welcome to have such test bed features, it feels
 like the proposal and implementation have quite different goals from
 the actual resources feature we've been talking about for a while, so
 as a very early suggestion and request, I would strongly recommend
 renaming the feature to avoid creating ambiguity with the feature that
 we intend juju to have in the long run. Having two resource
 implementations and taking over important namespaces such as
 resources.yaml might introduce unnecessary confusion down the road.
 Instead, the project might have a nice non-generic name, and its
 configuration file could also be named after it.


 On Wed, Feb 11, 2015 at 4:17 PM, Cory Johns cory.jo...@canonical.com wrote:
 Per request, the documentation is now also available on
 ReadTheDocs.org: http://jujuresources.readthedocs.org/

 On Wed, Feb 11, 2015 at 11:25 AM, Cory Johns cory.jo...@canonical.com 
 wrote:
 Hi all,

 (cross-posting to juju  juju-dev)

 I've created a tool / library for organizing and managing resources
 (binary blobs, tarballs, Python packages, and, eventually, apt
 packages) required by a charm.  The idea is to be an interim tool, and
 a test-bed for the resource features that have been discussed for the
 future in Juju core.

 It is available on GitHub [1] and PyPI [2], and the full documentation
 is on PythonHosted.org [3].

 The goals of this project are:

   * Organize all external resource dependencies into a single
 resources.yaml file
   * Provide easy, consistent interfaces to manage, install, and mirror 
 resources
   * CLI and Python bindings
   * Enforce best practices, such as cryptographic hash validation

 I asked around to see if there was an existing proposal for a
 resources.yaml file format, but couldn't find one.  If someone is
 aware of an existing spec / proposal, I'd prefer to match that as much
 as possible.

 The current version is fully functional, and is currently being used
 in the framework refactor of the Apache Hadoop charms (e.g., [4]).

 Note that I created this separately from Charm Helpers primarily
 because I wanted to use it to bootstrap CH, but this also makes it
 easier to use in Bash charms.

 My next step is to add apt-get support, but that will requiring
 cleaning up the mirror server (possibly converting it to use squid,
 but I may want to keep it self-contained), and learning a bit more
 about how the apt proxy settings work.  Advice here is appreciated.


 [1] https://github.com/juju-solutions/jujuresources
 [2] https://pypi.python.org/pypi/jujuresources
 [3] http://pythonhosted.org/jujuresources/
 [4] 
 https://code.launchpad.net/~bigdata-dev/charms/trusty/apache-hadoop-hdfs-master/trunk

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



 --

 gustavo @ http://niemeyer.net



-- 

gustavo @ http://niemeyer.net

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