Apache Ambari
Copyright 2011-2013 The Apache Software Foundation

This product includes software developed at The Apache Software
Foundation (http://www.apache.org/).

Component ambari-common/src/test/python/mock are under the following copyright:

Copyright (c) 2003-2012, Michael Foord
All rights reserved.

Component ambari-common/src/test/python/coilmq are under the following copyright:

Copyright 2009 Hans Lellelid
All rights reserved.

 
Resource management library derived from Kokki, which is under following copyright:
 
Copyright (c) 2009 Samuel Stauffer <samuel@descolada.com>
All rights reserved.

Jinja2, the templating library used by resource management library:

Copyright (c) 2009 by the Jinja Team, see AUTHORS for more details.
Some rights reserved.

This product includes Simplejson, library fast encoding and decoding of json. (https://github.com/simplejson/simplejson - MIT license)

Copyright (c) 2006 Bob Ippolito.
All rights reserved.

Ws4py, python library for websocket connectivity

Copyright (c) 2011-2016, Sylvain Hellegouarch
All rights reserved.