Hello community, here is the log from the commit of package python-halite for openSUSE:Factory checked in at 2014-01-09 15:31:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-halite (Old) and /work/SRC/openSUSE:Factory/.python-halite.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-halite" Changes: -------- --- /work/SRC/openSUSE:Factory/python-halite/python-halite.changes 2013-11-30 14:22:06.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.python-halite.new/python-halite.changes 2014-01-09 15:31:47.000000000 +0100 @@ -1,0 +2,27 @@ +Thu Jan 2 16:43:13 UTC 2014 - aboe76@gmail.com + +- Added license to %doc + +------------------------------------------------------------------- +Tue Dec 31 14:49:36 UTC 2013 - aboe76@gmail.com + +- Changes license according upstream + Apache-2.0 + +------------------------------------------------------------------- +Wed Dec 25 07:35:43 UTC 2013 - aboe76@gmail.com + +- Updated to halite 0.1.15 +- performance improvements +- bugfix: login errors using api fixed +- bugfix: fixed installer +- feauture: show labels/default placeholders for parameters +- bugfix: fixed argspec parsing input +- bugfix: fixed master opts up to Salt API initialization + +------------------------------------------------------------------- +Thu Dec 19 19:37:30 UTC 2013 - speilicke@suse.com + +- Require python-setuptools instead of distribute (upstreams merged) + +------------------------------------------------------------------- Old: ---- halite-0.1.08.tar.gz New: ---- halite-0.1.15.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-halite.spec ++++++ --- /var/tmp/diff_new_pack.HXscjq/_old 2014-01-09 15:31:48.000000000 +0100 +++ /var/tmp/diff_new_pack.HXscjq/_new 2014-01-09 15:31:48.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-halite # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,15 +15,16 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + Name: python-halite -Version: 0.1.08 +Version: 0.1.15 Release: 1%{?dist} -License: MIT Summary: Halite the salt Web UI -Url: http://saltstack.org/ +License: Apache-2.0 Group: System/Monitoring +Url: http://saltstack.org/ Source0: http://pypi.python.org/packages/source/h/halite/halite-%{version}.tar.gz -BuildRoot: %{_tmppath}/halite-%{version}-build +BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} && 0%{?suse_version} <= 1110 %{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} @@ -33,13 +34,13 @@ BuildRequires: fdupes BuildRequires: python -BuildRequires: python-distribute +BuildRequires: python-Paste +BuildRequires: python-setuptools BuildRequires: salt BuildRequires: salt-master -BuildRequires: python-Paste +Requires: python-Paste Requires: salt Requires: salt-master -Requires: python-Paste %description Halite is the salt web ui, from which you can run salt jobs/events and track progress @@ -56,7 +57,7 @@ %files %defattr(-,root,root) -%doc README.rst +%doc README.rst LICENSE %attr(755,root,root)%{python_sitelib}/halite/bottle.py %attr(755,root,root)%{python_sitelib}/halite/server_bottle.py %attr(755,root,root)%{python_sitelib}/halite/genindex.py ++++++ halite-0.1.08.tar.gz -> halite-0.1.15.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/halite-0.1.08/LICENSE new/halite-0.1.15/LICENSE --- old/halite-0.1.08/LICENSE 1970-01-01 01:00:00.000000000 +0100 +++ new/halite-0.1.15/LICENSE 2013-11-05 05:48:20.000000000 +0100 @@ -0,0 +1,15 @@ +Halite - A Salt GUI + +Copyright 2013 Salt Stack Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/halite-0.1.08/PKG-INFO new/halite-0.1.15/PKG-INFO --- old/halite-0.1.08/PKG-INFO 2013-11-27 18:08:39.000000000 +0100 +++ new/halite-0.1.15/PKG-INFO 2013-12-20 23:05:20.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: halite -Version: 0.1.08 +Version: 0.1.15 Summary: SaltStack Web UI Home-page: https://github.com/saltstack/halite Author: SaltStack Inc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/halite-0.1.08/halite/__init__.py new/halite-0.1.15/halite/__init__.py --- old/halite-0.1.08/halite/__init__.py 2013-11-05 05:48:20.000000000 +0100 +++ new/halite-0.1.15/halite/__init__.py 2013-12-17 21:47:24.000000000 +0100 @@ -1,35 +1,47 @@ ''' -halite package for Salt UI client side web application +halite package for Salt UI client side web application ''' # Import Python libs import os -def start(hopts=None, debug=None): +def start(hopts=None, debug=None, opts=None): ''' Wrapper to start up and run server. Reads in the master config and supplies halite parameters to configure the server. - + The server serves both the static content and provide the dynamic api to salt used by the web application. This is meant to be run by Salt to provide out of the box WUI capability. For different installations use the appropriate server executable file such as server_bottle.py + + Parameters: + + hopts: Short for Halite opts. They are defined by the ``halite:`` section + in the Salt master config file. + + opts: These are the options that get passed in to Salt API Client. They are generally + the same as the options that are passed in to Salt master. ``opts`` are set to + the ones defined in the salt master config file IF they are not passed in to this + subroutine. + + debug: Controls the printing of debug options. ''' import salt.config import salt.syspaths - + from .aiding import getLogger, LOGGING_LEVELS from . import server_bottle - logger = getLogger(name="Halite", level=LOGGING_LEVELS['debug'] ) - + logger = getLogger(name="Halite", level=LOGGING_LEVELS['debug'] ) + - if not hopts: - hopts = salt.config.client_config( + if not opts: + opts = salt.config.client_config( os.environ.get( 'SALT_MASTER_CONFIG', - os.path.join(salt.syspaths.CONFIG_DIR, 'master'))).get('halite') + os.path.join(salt.syspaths.CONFIG_DIR, 'master'))) kwparms = { 'level': 'info', @@ -41,14 +53,15 @@ 'certpath': '/etc/pki/tls/certs/localhost.crt', 'keypath': '/etc/pki/tls/certs/localhost.key', 'pempath': '/etc/pki/tls/certs/localhost.pem', + 'opts': opts } if hopts: for key in kwparms.keys(): if key in hopts: kwparms[key] = hopts[key] - + if debug: logger.debug('Halite: Starting server with options. \n{0}'.format(kwparms)) - + server_bottle.startServer(**kwparms) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/halite-0.1.08/halite/app/appConfigSrvc.js new/halite-0.1.15/halite/app/appConfigSrvc.js --- old/halite-0.1.08/halite/app/appConfigSrvc.js 2013-11-27 18:02:51.000000000 +0100 +++ new/halite-0.1.15/halite/app/appConfigSrvc.js 2013-12-20 23:05:01.000000000 +0100 @@ -4,8 +4,8 @@ configuration = { baseUrl: "", - date: "2013-11-27", - version: "0.1.08", + date: "2013-12-20", + version: "0.1.15", views: { home: { label: "home", @@ -46,7 +46,9 @@ port: 0, prefix: "", eauth: "pam" - } + }, + fetchGrains: false, + preloadJobCache: false } }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/halite-0.1.08/halite/app/main.css new/halite-0.1.15/halite/app/main.css --- old/halite-0.1.08/halite/app/main.css 2013-11-22 20:03:37.000000000 +0100 +++ new/halite-0.1.15/halite/app/main.css 2013-12-20 22:31:51.000000000 +0100 @@ -1,3 +1,24 @@ +.displayed-in-center { + position: relative; + left: 50%; +} +#leftMarginAdded { + margin-left: 44px; +} +#idModuleFunction, #idFunctionTarget { + height: 35px; +} +.monitorControls > i { + cursor: pointer; + border: 1px; +} +.monitorHeader { + height: 25px; +} +#right-border-styled { + border-top-right-radius: 4px !important; + border-bottom-right-radius: 4px !important; +} div.progress { position: relative; margin-bottom: 0px; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/halite-0.1.08/halite/app/main.html new/halite-0.1.15/halite/app/main.html --- old/halite-0.1.08/halite/app/main.html 2013-11-27 18:02:51.000000000 +0100 +++ new/halite-0.1.15/halite/app/main.html 2013-12-20 23:05:01.000000000 +0100 @@ -64,6 +64,7 @@ <script src="/static/app/util/appStoreSrvc.js" type="text/javascript"></script> <script src="/static/app/util/appUtilSrvc.js" type="text/javascript"></script> <script src="/static/app/util/demoSrvc.js" type="text/javascript"></script> + <script src="/static/app/util/promiseBasedMapService.js" type="text/javascript"></script> <script src="/static/app/util/saltApiSrvc.js" type="text/javascript"></script> <script src="/static/app/view/console.js" type="text/javascript"></script> <script src="/static/app/view/home.js" type="text/javascript"></script> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/halite-0.1.08/halite/app/util/appUtilSrvc.js new/halite-0.1.15/halite/app/util/appUtilSrvc.js --- old/halite-0.1.08/halite/app/util/appUtilSrvc.js 2013-11-27 18:02:51.000000000 +0100 +++ new/halite-0.1.15/halite/app/util/appUtilSrvc.js 2013-12-20 23:05:01.000000000 +0100 @@ -7,13 +7,26 @@ (function() { - var Bosser, Commander, Item, Itemizer, Jobber, Minioner, Pagerage, Resulter, Runner, Wheeler, appUtilSrvc, _ref, _ref1, + var ArgInfo, Bosser, Commander, Item, Itemizer, Jobber, Minioner, Pagerage, Resulter, Runner, Wheeler, appUtilSrvc, _ref, _ref1, __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; appUtilSrvc = angular.module("appUtilSrvc", []); + ArgInfo = (function() { + function ArgInfo(value, required, placeholder) { + this.value = value; + this.required = required; + this.placeholder = placeholder != null ? placeholder : 'Enter Input'; + } + + return ArgInfo; + + })(); + + appUtilSrvc.value("ArgInfo", ArgInfo); + /* Item class used as item for Itemizer Creates object of form { key: key, val: val} @@ -696,8 +709,6 @@ } Bosser.prototype.processNewEvent = function(data) { - console.log("Run/Wheel New Event"); - console.log(data); this.initResults(data.minions); this.cmd = { mode: 'async', @@ -714,8 +725,6 @@ Bosser.prototype.processRetEvent = function(data) { var result, _ref, _ref1; - console.log("Run/Wheel Ret Event"); - console.log(data); result = this.results.get('master'); result.done = true; this.done = true; @@ -728,8 +737,6 @@ result.error = data["return"]; this.errors.push(data["return"]); } - console.log("Run/Wheel Done. Fail = " + this.fail); - console.log(this); if (this.errors.length > 0) { if ((_ref = this.defer) != null) { _ref.reject(this.errors); @@ -814,7 +821,6 @@ }; Pagerage.prototype.displayPage = function(page) { - console.log("Display page " + page); return this; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/halite-0.1.08/halite/app/util/promiseBasedMapService.js new/halite-0.1.15/halite/app/util/promiseBasedMapService.js --- old/halite-0.1.08/halite/app/util/promiseBasedMapService.js 1970-01-01 01:00:00.000000000 +0100 +++ new/halite-0.1.15/halite/app/util/promiseBasedMapService.js 2013-12-03 21:28:10.000000000 +0100 @@ -0,0 +1,63 @@ +// Generated by CoffeeScript 1.6.3 +(function() { + var Executor, Iteration, promiseBasedMapService, _findIterationByItem; + + promiseBasedMapService = angular.module("promiseBasedMapService", []); + + Iteration = (function() { + function Iteration(num, item, defer, ret) { + this.num = num; + this.item = item; + this.defer = defer; + this.ret = ret; + } + + return Iteration; + + })(); + + _findIterationByItem = function(executor, item) { + return _.find(executor.iterations, function(iteration) { + return iteration.item === item; + }); + }; + + Executor = (function() { + function Executor(items, func, numCalls, iter, iterations) { + this.items = items; + this.func = func; + this.numCalls = numCalls; + this.iter = iter != null ? iter : 0; + this.iterations = iterations != null ? iterations : []; + } + + Executor.prototype.execute = function($scope, defer) { + this.iterations.push(new Iteration(this.iter, this.items[this.iter], defer, this.func.call($scope, this.items[this.iter], defer))); + this.iter += 1; + return defer.promise; + }; + + return Executor; + + })(); + + promiseBasedMapService.factory("PromiseBasedMapService", function() { + var servicer; + return servicer = { + executor: function(items, func, numCalls) { + if (numCalls == null) { + numCalls = 1; + } + return new Executor(items, func, numCalls); + }, + findIterationByItem: function(executor, item) { + return _findIterationByItem(executor, item); + } + }; + }); + +}).call(this); + +/* +//@ sourceMappingURL=promiseBasedMapService.map +*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/halite-0.1.08/halite/app/util/saltApiSrvc.js new/halite-0.1.15/halite/app/util/saltApiSrvc.js --- old/halite-0.1.08/halite/app/util/saltApiSrvc.js 2013-11-27 18:02:51.000000000 +0100 +++ new/halite-0.1.15/halite/app/util/saltApiSrvc.js 2013-12-20 23:05:01.000000000 +0100 @@ -48,6 +48,28 @@ delete $http.defaults.headers.common['X-Requested-With']; $http.defaults.useXDomain = true; servicer = { + signature: function($scope, cmds) { + var config, headers, url, _ref; + headers = { + "X-Auth-Token": (_ref = SessionStore.get('saltApiAuth')) != null ? _ref.token : void 0 + }; + config = { + headers: headers + }; + url = "" + base + "/signature"; + return $http.post(url, cmds, config).success(function(data, status, headers, config) { + return true; + }).error(function(data, status, headers, config) { + var error; + error = data != null ? data.error : void 0; + if (status === 401) { + $scope.errorMsg = "Please Login! " + error; + } else { + $scope.errorMsg = "Argspec call Failed! " + error; + } + return true; + }); + }, run: function($scope, cmds) { var config, headers, url, _ref; headers = { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/halite-0.1.08/halite/app/view/console.html new/halite-0.1.15/halite/app/view/console.html --- old/halite-0.1.08/halite/app/view/console.html 2013-11-26 01:44:01.000000000 +0100 +++ new/halite-0.1.15/halite/app/view/console.html 2013-12-20 22:49:09.000000000 +0100 @@ -6,24 +6,56 @@ </div> </div> -<div class="row"> +<div class="row monitorHeader"> <div class="col-md-12 box box-title-bar"> - <p class="text-center tight">Command</p> + <p class="text-center tight">Command + <span class="form-group" id="leftMarginAdded"> + <span class="btn-group pull-right monitorControls"> + </i> + </span> + </span> + </p> </div> </div> <div class="row"> <div class="col-md-12 box flat-top"> - <form class="form-inline wide"> - <div class="form-group"> - <div class="input-group input-group-fix" > + <div class="clearfix"></div> +