Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id C418C200C6F for ; Mon, 3 Apr 2017 13:54:17 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id C2941160BB0; Mon, 3 Apr 2017 11:54:17 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id D87D2160BCA for ; Mon, 3 Apr 2017 13:54:12 +0200 (CEST) Received: (qmail 78627 invoked by uid 500); 3 Apr 2017 11:54:12 -0000 Mailing-List: contact commits-help@eagle.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@eagle.apache.org Delivered-To: mailing list commits@eagle.apache.org Received: (qmail 77530 invoked by uid 99); 3 Apr 2017 11:54:11 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Apr 2017 11:54:11 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 23A0EE961D; Mon, 3 Apr 2017 11:54:11 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: hao@apache.org To: commits@eagle.apache.org Date: Mon, 03 Apr 2017 11:54:49 -0000 Message-Id: <020cbbdfbf044f9db4b246b067c194cd@git.apache.org> In-Reply-To: <04280246f21e4dcd9fbfe899c4344da2@git.apache.org> References: <04280246f21e4dcd9fbfe899c4344da2@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [41/84] [partial] eagle git commit: Clean repo for eagle site archived-at: Mon, 03 Apr 2017 11:54:17 -0000 http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/docs/eagle-theme/js/modernizr-2.8.3.min.js ---------------------------------------------------------------------- diff --git a/docs/eagle-theme/js/modernizr-2.8.3.min.js b/docs/eagle-theme/js/modernizr-2.8.3.min.js deleted file mode 100644 index 40dd2a9..0000000 --- a/docs/eagle-theme/js/modernizr-2.8.3.min.js +++ /dev/null @@ -1 +0,0 @@ -window.Modernizr=function(e,t,n){function r(e){b.cssText=e}function o(e,t){return r(S.join(e+";")+(t||""))}function a(e,t){return typeof e===t}function i(e,t){return!!~(""+e).indexOf(t)}function c(e,t){for(var r in e){var o=e[r];if(!i(o,"-")&&b[o]!==n)return"pfx"==t?o:!0}return!1}function s(e,t,r){for(var o in e){var i=t[e[o]];if(i!==n)return r===!1?e[o]:a(i,"function")?i.bind(r||t):i}return!1}function u(e,t,n){var r=e.charAt(0).toUpperCase()+e.slice(1),o=(e+" "+k.join(r+" ")+r).split(" ");return a(t,"string")||a(t,"undefined")?c(o,t):(o=(e+" "+T.join(r+" ")+r).split(" "),s(o,t,n))}function l(){p.input=function(n){for(var r=0,o=n.length;o>r;r++)j[n[r]]=!!(n[r]in E);return j.list&&(j.list=!(!t.createElement("datalist")||!e.HTMLDataListElement)),j}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),p.inputtypes=function(e){for(var r,o,a,i=0,c=e.length;c>i;i++)E.setAttribute("type",o=e[i]),r="text"!==E.type,r&&(E.value=x,E.style.cssText="positi on:absolute;visibility:hidden;",/^range$/.test(o)&&E.style.WebkitAppearance!==n?(g.appendChild(E),a=t.defaultView,r=a.getComputedStyle&&"textfield"!==a.getComputedStyle(E,null).WebkitAppearance&&0!==E.offsetHeight,g.removeChild(E)):/^(search|tel)$/.test(o)||(r=/^(url|email)$/.test(o)?E.checkValidity&&E.checkValidity()===!1:E.value!=x)),P[e[i]]=!!r;return P}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d,f,m="2.8.3",p={},h=!0,g=t.documentElement,v="modernizr",y=t.createElement(v),b=y.style,E=t.createElement("input"),x=":)",w={}.toString,S=" -webkit- -moz- -o- -ms- ".split(" "),C="Webkit Moz O ms",k=C.split(" "),T=C.toLowerCase().split(" "),N={svg:"http://www.w3.org/2000/svg"},M={},P={},j={},$=[],D=$.slice,F=function(e,n,r,o){var a,i,c,s,u=t.createElement("div"),l=t.body,d=l||t.createElement("body");if(parseInt(r,10))for(;r--;)c=t.createElement("div"),c.id=o?o[r]:v+(r+1),u.appendChild(c);return a=["­",'"].join(""),u.id=v,(l?u:d).innerHTML+=a,d.appendChild(u),l||(d.style.background="",d.style.overflow="hidden",s=g.style.overflow,g.style.overflow="hidden",g.appendChild(d)),i=n(u,e),l?u.parentNode.removeChild(u):(d.parentNode.removeChild(d),g.style.overflow=s),!!i},z=function(t){var n=e.matchMedia||e.msMatchMedia;if(n)return n(t)&&n(t).matches||!1;var r;return F("@media "+t+" { #"+v+" { position: absolute; } }",function(t){r="absolute"==(e.getComputedStyle?getComputedStyle(t,null):t.currentStyle).position}),r},A=function(){function e(e,o){o=o||t.createElement(r[e]||"div"),e="on"+e;var i=e in o;return i||(o.setAttribute||(o=t.createElement("div")),o.setAttribute&&o.removeAttribute&&(o.setAttribute(e,""),i=a(o[e],"function"),a(o[e],"undefined")||(o[e]=n),o.removeAttribute(e))),o=null,i}var r={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return e}(),L={}.hasOwnProperty;f=a(L,"undefined")||a(L.call,"undefined")?function(e,t){ret urn t in e&&a(e.constructor.prototype[t],"undefined")}:function(e,t){return L.call(e,t)},Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError;var n=D.call(arguments,1),r=function(){if(this instanceof r){var o=function(){};o.prototype=t.prototype;var a=new o,i=t.apply(a,n.concat(D.call(arguments)));return Object(i)===i?i:a}return t.apply(e,n.concat(D.call(arguments)))};return r}),M.flexbox=function(){return u("flexWrap")},M.flexboxlegacy=function(){return u("boxDirection")},M.canvas=function(){var e=t.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))},M.canvastext=function(){return!(!p.canvas||!a(t.createElement("canvas").getContext("2d").fillText,"function"))},M.webgl=function(){return!!e.WebGLRenderingContext},M.touch=function(){var n;return"ontouchstart"in e||e.DocumentTouch&&t instanceof DocumentTouch?n=!0:F(["@media (",S.join("touch-enabled),("),v,")","{#modernizr{top:9px;position:absolute}}"].join (""),function(e){n=9===e.offsetTop}),n},M.geolocation=function(){return"geolocation"in navigator},M.postmessage=function(){return!!e.postMessage},M.websqldatabase=function(){return!!e.openDatabase},M.indexedDB=function(){return!!u("indexedDB",e)},M.hashchange=function(){return A("hashchange",e)&&(t.documentMode===n||t.documentMode>7)},M.history=function(){return!(!e.history||!history.pushState)},M.draganddrop=function(){var e=t.createElement("div");return"draggable"in e||"ondragstart"in e&&"ondrop"in e},M.websockets=function(){return"WebSocket"in e||"MozWebSocket"in e},M.rgba=function(){return r("background-color:rgba(150,255,150,.5)"),i(b.backgroundColor,"rgba")},M.hsla=function(){return r("background-color:hsla(120,40%,100%,.5)"),i(b.backgroundColor,"rgba")||i(b.backgroundColor,"hsla")},M.multiplebgs=function(){return r("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(b.background)},M.backgroundsize=function(){return u("backgroundSize")},M.border image=function(){return u("borderImage")},M.borderradius=function(){return u("borderRadius")},M.boxshadow=function(){return u("boxShadow")},M.textshadow=function(){return""===t.createElement("div").style.textShadow},M.opacity=function(){return o("opacity:.55"),/^0.55$/.test(b.opacity)},M.cssanimations=function(){return u("animationName")},M.csscolumns=function(){return u("columnCount")},M.cssgradients=function(){var e="background-image:",t="gradient(linear,left top,right bottom,from(#9f9),to(white));",n="linear-gradient(left top,#9f9, white);";return r((e+"-webkit- ".split(" ").join(t+e)+S.join(n+e)).slice(0,-e.length)),i(b.backgroundImage,"gradient")},M.cssreflections=function(){return u("boxReflect")},M.csstransforms=function(){return!!u("transform")},M.csstransforms3d=function(){var e=!!u("perspective");return e&&"webkitPerspective"in g.style&&F("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(t){e=9===t.offsetLeft&&3===t .offsetHeight}),e},M.csstransitions=function(){return u("transition")},M.fontface=function(){var e;return F('@font-face {font-family:"font";src:url("https://")}',function(n,r){var o=t.getElementById("smodernizr"),a=o.sheet||o.styleSheet,i=a?a.cssRules&&a.cssRules[0]?a.cssRules[0].cssText:a.cssText||"":"";e=/src/i.test(i)&&0===i.indexOf(r.split(" ")[0])}),e},M.generatedcontent=function(){var e;return F(["#",v,"{font:0/0 a}#",v,':after{content:"',x,'";visibility:hidden;font:3px/1 a}'].join(""),function(t){e=t.offsetHeight>=3}),e},M.video=function(){var e=t.createElement("video"),n=!1;try{(n=!!e.canPlayType)&&(n=new Boolean(n),n.ogg=e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),n.h264=e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),n.webm=e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(r){}return n},M.audio=function(){var e=t.createElement("audio"),n=!1;try{(n=!!e.canPlayType)&&(n=new Boolean(n),n.ogg=e.canPlayType('audio /ogg; codecs="vorbis"').replace(/^no$/,""),n.mp3=e.canPlayType("audio/mpeg;").replace(/^no$/,""),n.wav=e.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),n.m4a=(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(r){}return n},M.localstorage=function(){try{return localStorage.setItem(v,v),localStorage.removeItem(v),!0}catch(e){return!1}},M.sessionstorage=function(){try{return sessionStorage.setItem(v,v),sessionStorage.removeItem(v),!0}catch(e){return!1}},M.webworkers=function(){return!!e.Worker},M.applicationcache=function(){return!!e.applicationCache},M.svg=function(){return!!t.createElementNS&&!!t.createElementNS(N.svg,"svg").createSVGRect},M.inlinesvg=function(){var e=t.createElement("div");return e.innerHTML="",(e.firstChild&&e.firstChild.namespaceURI)==N.svg},M.smil=function(){return!!t.createElementNS&&/SVGAnimate/.test(w.call(t.createElementNS(N.svg,"animate")))},M.svgclippaths=function(){return!!t.createElementNS&&/SVGClipPath/. test(w.call(t.createElementNS(N.svg,"clipPath")))};for(var H in M)f(M,H)&&(d=H.toLowerCase(),p[d]=M[H](),$.push((p[d]?"":"no-")+d));return p.input||l(),p.addTest=function(e,t){if("object"==typeof e)for(var r in e)f(e,r)&&p.addTest(r,e[r]);else{if(e=e.toLowerCase(),p[e]!==n)return p;t="function"==typeof t?t():t,"undefined"!=typeof h&&h&&(g.className+=" "+(t?"":"no-")+e),p[e]=t}return p},r(""),y=E=null,function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=y.elements;return"string"==typeof e?e.split(" "):e}function o(e){var t=v[e[h]];return t||(t={},g++,e[h]=g,v[g]=t),t}function a(e,n,r){if(n||(n=t),l)return n.createElement(e);r||(r=o(n));var a;return a=r.cache[e]?r.cache[e].cloneNode():p.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),!a.canHaveChildren||m.test(e)||a.tagUrn?a:r.frag.appendChild(a)}function i(e ,n){if(e||(e=t),l)return e.createDocumentFragment();n=n||o(e);for(var a=n.frag.cloneNode(),i=0,c=r(),s=c.length;s>i;i++)a.createElement(c[i]);return a}function c(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return y.shivMethods?a(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/[\w\-]+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(y,t.frag)}function s(e){e||(e=t);var r=o(e);return!y.shivCSS||u||r.hasCSS||(r.hasCSS=!!n(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||c(e,r),e}var u,l,d="3.7.0",f=e.html5||{},m=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label |li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,h="_html5shiv",g=0,v={};!function(){try{var e=t.createElement("a");e.innerHTML="",u="hidden"in e,l=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(n){u=!0,l=!0}}();var y={elements:f.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:d,shivCSS:f.shivCSS!==!1,supportsUnknownElements:l,shivMethods:f.shivMethods!==!1,type:"default",shivDocument:s,createElement:a,createDocumentFragment:i};e.html5=y,s(t)}(this,t),p._version=m,p._prefixes=S,p._domPrefixes=T,p._cssomPrefixes=k,p.mq=z,p.hasEvent=A,p.testProp=function(e){return c([e])},p.testAllProps=u,p.testStyles=F,p.prefixed=function(e,t,n){return t?u(e,t,n):u(e, "pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(h?" js "+$.join(" "):""),p}(this,this.document); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/docs/eagle-theme/js/theme.js ---------------------------------------------------------------------- diff --git a/docs/eagle-theme/js/theme.js b/docs/eagle-theme/js/theme.js deleted file mode 100644 index 6396162..0000000 --- a/docs/eagle-theme/js/theme.js +++ /dev/null @@ -1,55 +0,0 @@ -$( document ).ready(function() { - - // Shift nav in mobile when clicking the menu. - $(document).on('click', "[data-toggle='wy-nav-top']", function() { - $("[data-toggle='wy-nav-shift']").toggleClass("shift"); - $("[data-toggle='rst-versions']").toggleClass("shift"); - }); - - // Close menu when you click a link. - $(document).on('click', ".wy-menu-vertical .current ul li a", function() { - $("[data-toggle='wy-nav-shift']").removeClass("shift"); - $("[data-toggle='rst-versions']").toggleClass("shift"); - }); - - $(document).on('click', "[data-toggle='rst-current-version']", function() { - $("[data-toggle='rst-versions']").toggleClass("shift-up"); - }); - - // Make tables responsive - $("table.docutils:not(.field-list)").wrap("
"); - - hljs.initHighlightingOnLoad(); - - $('table').addClass('docutils'); -}); - -window.SphinxRtdTheme = (function (jquery) { - var stickyNav = (function () { - var navBar, - win, - stickyNavCssClass = 'stickynav', - applyStickNav = function () { - if (navBar.height() <= win.height()) { - navBar.addClass(stickyNavCssClass); - } else { - navBar.removeClass(stickyNavCssClass); - } - }, - enable = function () { - applyStickNav(); - win.on('resize', applyStickNav); - }, - init = function () { - navBar = jquery('nav.wy-nav-side:first'); - win = jquery(window); - }; - jquery(init); - return { - enable : enable - }; - }()); - return { - StickyNav : stickyNav - }; -}($)); http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/docs/eagle-theme/license/highlight.js/LICENSE ---------------------------------------------------------------------- diff --git a/docs/eagle-theme/license/highlight.js/LICENSE b/docs/eagle-theme/license/highlight.js/LICENSE deleted file mode 100644 index 422deb7..0000000 --- a/docs/eagle-theme/license/highlight.js/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -Copyright (c) 2006, Ivan Sagalaev -All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of highlight.js nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/docs/eagle-theme/search.html ---------------------------------------------------------------------- diff --git a/docs/eagle-theme/search.html b/docs/eagle-theme/search.html deleted file mode 100644 index d988aa5..0000000 --- a/docs/eagle-theme/search.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends "base.html" %} - -{% block extrahead %} - - -{% endblock %} - -{% block content %} - -

Search Results

- - - -
- Sorry, page not found. -
- -{% endblock %} http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/docs/eagle-theme/searchbox.html ---------------------------------------------------------------------- diff --git a/docs/eagle-theme/searchbox.html b/docs/eagle-theme/searchbox.html deleted file mode 100644 index 177fcb3..0000000 --- a/docs/eagle-theme/searchbox.html +++ /dev/null @@ -1,5 +0,0 @@ -
-
- -
-
http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/docs/eagle-theme/toc.html ---------------------------------------------------------------------- diff --git a/docs/eagle-theme/toc.html b/docs/eagle-theme/toc.html deleted file mode 100644 index 1cc90f6..0000000 --- a/docs/eagle-theme/toc.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -{% macro fetchDefaultUrl(ni) %} - {% if ni.url %} - {{ ni.url }} - {% elif ni.children %} - {{ fetchDefaultUrl(ni.children|first()) }} - {% else %} - {{ "" }} - {% endif %} -{% endmacro %} - - -{% macro getIndentationStyle(current_level, max_level) %} - {% if current_level != 0 %} - {% set indentation = 1 * current_level + 3 %} - {{ "style=\"padding-left: "~indentation~"em;\""}} - {% else %} - {{ "" }} - {% endif %} -{% endmacro %} - - -{% macro showNestedToc(toc_item, current_level, max_level) %} - {% if current_level < max_level %} -
  • {{ toc_item.title }}
  • - {% if toc_item.children %} -
      - {% for toc_i in toc_item.children %} - {{ showNestedToc(toc_i, current_level+1, max_level) }} - {% endfor %} -
    - {% endif %} - {% else %} - {{""}} - {% endif %} -{% endmacro %} - - -{% if nav_item.children %} - {% if nav_item.active %} - - {% else %} -
  • {{ nav_item.title }}
  • - {% endif %} -{% else %} - -{% endif %} http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/docs/eagle-theme/versions.html ---------------------------------------------------------------------- diff --git a/docs/eagle-theme/versions.html b/docs/eagle-theme/versions.html deleted file mode 100644 index d12d197..0000000 --- a/docs/eagle-theme/versions.html +++ /dev/null @@ -1,15 +0,0 @@ -
    - - {% if repo_name == 'GitHub' %} - GitHub - {% elif repo_name == 'Bitbucket' %} - BitBucket - {% endif %} - {% if previous_page %} - « Previous - {% endif %} - {% if next_page %} - Next » - {% endif %} - -
    http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/docs/mkdocs.yml ---------------------------------------------------------------------- diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml deleted file mode 100644 index 8c432de..0000000 --- a/docs/mkdocs.yml +++ /dev/null @@ -1,20 +0,0 @@ -site_name: Apache Eagle Documentation - -site_url: http://eagle.apache.org - -repo_url: https://github.com/apache/eagle/tree/master/docs - -site_favicon: include/images/favicon.png - -pages: - - 'Home': 'index.md' - - 'Getting Started': 'getting-started.md' - - 'Using Eagle': 'using-eagle.md' - - 'Applications': 'applications.md' - - 'Developing Application': 'developing-application.md' - - 'Underlying Design': 'underlying-design.md' - - 'Reference': 'reference.md' - -theme: readthedocs - -theme_dir: eagle-theme http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-assembly/pom.xml ---------------------------------------------------------------------- diff --git a/eagle-assembly/pom.xml b/eagle-assembly/pom.xml deleted file mode 100644 index c236c4d..0000000 --- a/eagle-assembly/pom.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - 4.0.0 - - org.apache.eagle - eagle-parent - 0.5.0-SNAPSHOT - - eagle-assembly - Eagle::Assembly - http://maven.apache.org - - - org.apache.eagle - eagle-server - ${project.version} - - - - - - - maven-dependency-plugin - - - package - - copy-dependencies - - - ${project.build.directory}/dependencies - - - - - - - maven-assembly-plugin - - src/assembly/eagle-bin.xml - eagle-${project.version} - - - - package - - single - - - posix - - - - - - - - http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-assembly/src/assembly/eagle-bin.xml ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/assembly/eagle-bin.xml b/eagle-assembly/src/assembly/eagle-bin.xml deleted file mode 100644 index 86758ec..0000000 --- a/eagle-assembly/src/assembly/eagle-bin.xml +++ /dev/null @@ -1,110 +0,0 @@ - - - - bin - - dir - tar.gz - - true - - - ${project.basedir}/src/main/bin - bin/ - - *.sh - - 0755 - 0755 - unix - - - ${project.basedir}/src/main/bin - bin/ - - * - - unix - - - ${project.basedir}/src/main/conf - conf/ - - * - - unix - - - ${project.basedir}/src/main/doc - doc/ - - * - - unix - - - ${project.basedir}/src/main - . - - README.md - - unix - - - ${project.basedir}/src/main/lib - lib - - *.sh - - 0755 - unix - - - - ${project.basedir}/../eagle-topology-assembly/target - lib/ - - eagle-topology-*-assembly.jar - - - - - - ${project.build.directory}/dependencies - lib - - dropwizard-*.jar - storm-core-*.jar - slf4j-api-*.jar - jersey-*.jar - eagle-storage-hbase-*.jar - eagle-storage-jdbc-*.jar - - - - - - ${project.basedir}/../eagle-external/hadoop_jmx_collector - lib/scripts/hadoop_jmx_collector - - - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-assembly/src/main/bin/eagle-env.sh ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/main/bin/eagle-env.sh b/eagle-assembly/src/main/bin/eagle-env.sh deleted file mode 100644 index 892978b..0000000 --- a/eagle-assembly/src/main/bin/eagle-env.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -export EAGLE_SERVER_JMX_PORT=9999 - -# EAGLE Environment Variables -export EAGLE_HOME=$(dirname $0)/.. -export EAGLE_CLASSPATH=$EAGLE_HOME/conf - -# System Environment Variables -export OS_TYPE="linux" -export CLASSPATH_DELIMITER=":" - -case `which uname >/dev/null && uname -s` in - CYGWIN_NT-* | MINGW64_NT-*) - OS_TYPE="windows" - CLASSPATH_DELIMITER=";" - ;; - Linux) - OS_TYPE="linux" - ;; - *) - OS_TYPE="unknown" - ;; -esac - -# Add eagle shared library jars -for file in `ls ${EAGLE_HOME}/lib`; do - EAGLE_CLASSPATH=${EAGLE_CLASSPATH}${CLASSPATH_DELIMITER}${EAGLE_HOME}/lib/$file -done \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-assembly/src/main/bin/eagle-server.sh ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/main/bin/eagle-server.sh b/eagle-assembly/src/main/bin/eagle-server.sh deleted file mode 100644 index 4199234..0000000 --- a/eagle-assembly/src/main/bin/eagle-server.sh +++ /dev/null @@ -1,136 +0,0 @@ -#!/bin/bash - -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -function print_help() { - echo "Usage: $0 {start | stop | restart | status}" - exit 1 -} - -if [ $# != 1 ] -then - print_help -fi - -DIR=$(dirname $0) - - -source ${DIR}/eagle-env.sh - -JVM_OPTS="-server -Xms1024m -Xmx1024m -XX:MaxPermSize=1024m" - -GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:${DIR}/../log/eagle-server-gc.log" - -if [ ! -z "$EAGLE_SERVER_JMX_PORT" ]; then - JMX_HOST=`hostname -f` - JVM_OPTS="-Dcom.sun.management.jmxremote \ - -Dcom.sun.management.jmxremote.port=$EAGLE_SERVER_JMX_PORT \ - -Dcom.sun.management.jmxremote.authenticate=false \ - -Dcom.sun.management.jmxremote.ssl=false \ - -Dcom.sun.management.jmxremote.local.only=false \ - -Djava.rmi.server.hostname=$JMX_HOST \ - -Dcom.sun.management.jmxremote.rmi.port=$EAGLE_SERVER_JMX_PORT \ - $JVM_OPTS" -fi - -JVM_OPTS="-Dconfig.resource=eagle.conf $JVM_OPTS $GC_OPTS" - -PIDFILE="${DIR}/../run/eagle-server.pid" - -CONFIGURATION_YML="${DIR}/../conf/server.yml" - -DEBUG_OPTIONS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" - -PROGRAM="java $JVM_OPTS -cp $EAGLE_CLASSPATH org.apache.eagle.server.ServerMain server ${CONFIGURATION_YML}" - -cd $DIR/../ - -if [ ! -e ${DIR}/../run ]; then - mkdir ${DIR}/../run -fi - -if [ ! -e ${DIR}/../log ]; then - mkdir ${DIR}/../log -fi - -start() { - echo "Starting eagle service ..." - echo ${PROGRAM} - nohup ${PROGRAM} 1> ${DIR}/../log/eagle-server.out 2>&1 & echo $! > $PIDFILE - if [ $? != 0 ];then - echo "Error: failed starting" - exit 1 - fi -} - -stop() { - echo "Stopping eagle service ..." - if [[ ! -f $PIDFILE ]];then - echo "Eagle service is not running" - exit 1 - fi - - PID=`cat $PIDFILE` - kill $PID - if [ $? != 0 ];then - echo "Error: failed stopping" - rm -rf ${PIDFILE} - exit 1 - fi - - rm ${PIDFILE} - echo "Stopping is completed" -} - -case $1 in -"start") - start; - ;; -"stop") - stop; - ;; -"restart") - echo "Restarting eagle service ..." - stop; sleep 1; start; - echo "Restarting is completed " - ;; -"status") - echo "Checking eagle service status ..." - if [[ -e ${PIDFILE} ]]; then - PID=`cat $PIDFILE` - fi - if [[ -z ${PID} ]];then - echo "Error: Eagle service is not running (missing PID)" - exit 0 - elif ps -p ${PID} > /dev/null; then - echo "Eagle service is running with PID $PID" - exit 0 - else - echo "Eagle service is not running (tested PID: ${PID})" - exit 0 - fi - ;; -*) - print_help - ;; -esac - -if [ $? != 0 ]; then - echo "Error: start failure" - exit 1 -fi - -exit 0 http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-assembly/src/main/conf/eagle.conf ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/main/conf/eagle.conf b/eagle-assembly/src/main/conf/eagle.conf deleted file mode 100644 index 496e3d0..0000000 --- a/eagle-assembly/src/main/conf/eagle.conf +++ /dev/null @@ -1,172 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -# --------------------------------------------- -# Eagle REST Web Service Configuration -# --------------------------------------------- -service { - env = "testing" - host = "localhost" - port = 9090 - username = "admin" - password = "secret" - readTimeOutSeconds = 60 - context = "/rest" - timezone = "UTC" -} - -zookeeper { - zkQuorum = "localhost:2181" - zkSessionTimeoutMs : 15000 - zkRetryTimes : 3 - zkRetryInterval : 20000 -} - -# --------------------------------------------- -# Eagle Deep Storage Configuration -# --------------------------------------------- - -storage { - # storage type: ["hbase","jdbc"] - # default is "hbase" - type = "hbase" - - hbase { - autoCreateTable = true - - # hbase configuration: hbase.zookeeper.quorum - # default is "localhost" - zookeeperQuorum = "localhost" - - # hbase configuration: hbase.zookeeper.property.clientPort - # default is 2181 - zookeeperPropertyClientPort = 2181 - - # hbase configuration: zookeeper.znode.parent - # default is "/hbase" - zookeeperZnodeParent = "/hbase-unsecure" - - # eagle web login profile: [sandbox, default] - # default is sandbox - tableNamePrefixedWithEnvironment = false - - # eagle coprocessor enabled or not: [true, false] - # default is false - coprocessorEnabled = false - } -} - -# --------------------------------------------- -# Eagle Metadata Store Configuration -# --------------------------------------------- -metadata { - store = org.apache.eagle.metadata.service.memory.MemoryMetadataStore - jdbc { - username = "root" - password = "" - driverClassName = com.mysql.jdbc.Driver - database = "eagle" - connection = "jdbc:mysql://server.eagle.apache.org:3306/eagle" - } -} - -# --------------------------------------------- -# Eagle Application Configuration -# --------------------------------------------- -application { - stream { - provider = org.apache.eagle.app.messaging.KafkaStreamProvider - } - storm { - nimbusHost = "server.eagle.apache.org" - nimbusThriftPort = 6627 - } - updateStatus: { - initialDelay: 10 - period: 10 - } - healthCheck { - initialDelay = 30 - period = 60 - publisher { - publisherImpl = org.apache.eagle.app.service.impl.ApplicationHealthCheckEmailPublisher - dailySendHour = 11 - mail.smtp.host = "mail.host.com" - mail.smtp.port = 25 - mail.smtp.recipients = "someone@email.com" - mail.smtp.subject = "Eagle Application Health Check" - mail.smtp.template = "HealthCheckTemplate.vm" - } - } - mailService { - mailSmtpServer = "", - mailSmtpPort = 25, - mailSmtpAuth = "false" - //mailSmtpConn = "plaintext", - //mailSmtpUsername = "" - //mailSmtpPassword = "" - //mailSmtpDebug = false - } - dailyJobReport { - reportHourTime: 1 - reportPeriodInHour: 12 - numTopUsers : 10 - jobOvertimeLimitInHour: 6 - subject: "Job Report For 12 hours" - recipients: "nobody@abc.com" - template: "JobReportTemplate.vm" - } - analyzerReport { - sender: "nobody@abc.com" - recipients: "nobody@abc.com" - template: "AnalyzerReportTemplate.vm" - cc: "nobody@abc.com" - } -} - -# --------------------------------------------- -# Eagle Alert Engine Configuration -# --------------------------------------------- - -# Coordinator Configuration -coordinator { -# boltParallelism = 5 - policyDefaultParallelism = 5 - boltLoadUpbound = 0.8 - topologyLoadUpbound = 0.8 - numOfAlertBoltsPerTopology = 5 - policiesPerBolt = 10 - streamsPerBolt = 10 - reuseBoltInStreams = true - zkConfig { - zkQuorum = "server.eagle.apache.org:2181" - zkRoot = "/alert" - zkSessionTimeoutMs = 10000 - connectionTimeoutMs = 10000 - zkRetryTimes = 3 - zkRetryInterval = 3000 - } - metadataService { - host = "localhost", - port = 9090, - context = "/rest" - } - metadataDynamicCheck { - initDelayMillis = 1000 - delayMillis = 30000 - stateClearPeriodMin = 1440 - stateReservedCapacity = 100 - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-assembly/src/main/conf/server.yml ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/main/conf/server.yml b/eagle-assembly/src/main/conf/server.yml deleted file mode 100644 index b557ffa..0000000 --- a/eagle-assembly/src/main/conf/server.yml +++ /dev/null @@ -1,97 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -server: - applicationConnectors: - - type: http - port: 9090 - adminConnectors: - - type: http - port: 9091 - requestLog: - appenders: - - type: file - currentLogFilename: log/eagle-server-access.log - threshold: ALL - archive: true - archivedLogFilenamePattern: log/eagle-server-access-%d.log - archivedFileCount: 5 - timeZone: UTC - -logging: - level: INFO - loggers: - org.apache.eagle: INFO - appenders: - - type: file - currentLogFilename: log/eagle-server.log - threshold: ALL - archive: true - archivedLogFilenamePattern: log/eagle-server-%d.log - archivedFileCount: 5 - timeZone: UTC - -# --------------------------------------------- -# Eagle Authentication Configuration -# --------------------------------------------- -auth: - # indicating if authentication is enabled, true for enabled, false for disabled - enabled: false - - # indicating authentication mode, "simple" or "ldap" - mode: simple - - # indicating whether to use cache: cache is usually used for authentications that may - # not handle high throughput (an RDBMS or LDAP server, for example) - caching: false - - # indicating the cache policy, containing maximumSize and expireAfterWrite, e.g. maximumSize=10000, expireAfterWrite=10m - cachePolicy: maximumSize=10000, expireAfterWrite=1m - - # for basic authentication, effective only when auth.mode=simple - simple: - accounts: - - name: admin - password: rWV/cdTCr01wTLBQ/rUilkExd2TJKrifXuCCTEwig1o08K8Mi0b1qQAgVXpPqflb - roles: ADMINISTRATOR - firstName: Admin - lastName: Admin - email: unknown-admin@eagle.apache.org - - # for ldap authentication, effective only when auth.mode=ldap - ldap: - # url providing ldap service. By convention, the port for typical ldap service is 389, and ldap service over ssl - # uses port 636 with protocol "ldaps", which requires certificates pre-installed. - providerUrl: ldap://server.address.or.domain:port - - # template string containing ${USERNAME} placeholder. This is designed for some orgs who don't use plain usernames - # to authenticate, e.g. they may use its members' email address as the name: ${USERNAME}@some.org. When name - # is supposed to be recognized originally, just configure this parameter as ${USERNAME} - principalTemplate: ${USERNAME}@maybe.email.suffix - - # string of strategy used by ldap service. "simple" is usually supported in most circumstances, we can use it by - # default or leave it a blank string. - strategy: simple - - # the absolute path of ssl certificate file. This attribute is required conditional only when the auth -> mode is set - # as "ldap" and providerUrl starting with "ldaps://". - certificateAbsolutePath: /certificate/absolute/path - - # timeout expression for connecting to ldap service endpoint - connectingTimeout: 500ms - - # timeout expression for reading from ldap service - readingTimeout: 500ms - http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-assembly/src/main/doc/README.md ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/main/doc/README.md b/eagle-assembly/src/main/doc/README.md deleted file mode 100644 index d9ee25f..0000000 --- a/eagle-assembly/src/main/doc/README.md +++ /dev/null @@ -1,99 +0,0 @@ - - -Eagle User Guide -======================== - -Prerequisites -------------- -* Hadoop -* HBase -* Storm -* Spark -* Kafka - -Eagle requires you to have access on Hadoop CLI, where you have full permissions to HDFS, Storm, HBase and Kafka. To make things easier, we strongly recommend you to start Eagle on a hadoop sandbox such as http://hortonworks.com/products/hortonworks-sandbox/ - - -Build ------ - -* Download the latest version of Eagle source code. - - git clone git@github.xyz.com:eagle/eagle.git - - -* Build the source code, and a tar.gz package will be generated under eagle-assembly/target. - - mvn clean compile install -DskipTests - -Installation ------------ -* Copy this package onto the sandbox. - - scp -P 2222 eagle/eagle-assembly/target/eagle-0.1.0-bin.tar.gz root@127.0.0.1:/usr/hdp/current/. - -* Run Eagle patch installation at the first time, and restart HDFS namenode. - - bin/eagle-patch-install.sh - - -* Start Storm, HBase, and Kafka via Ambari Web UI. Make sure the user has the privilege to run Storm, HBase, and Kafka cmd in shell, and with full permissions to access HBase, such as creating tables. Check the installation & running status of the required services. - - bin/eagle-check-env.sh - - -* Create necessary HBase tables for Eagle. - - bin/eagle-service-init.sh - - -* Start Eagle service. - - bin/eagle-service.sh start - - -* Create Kafka topics and topology metadata for Eagle. - - bin/eagle-topology-init.sh - - -* Start Eagle topology, which will submit the topology to Storm via the Storm CLI tools. You can check it with storm UI. - - bin/eagle-topology.sh [--jar ] [--main ] [--topology ] start - - -Now you can let Eagle to monitor by creating your own policy! - - -Sandbox Starter ---------------- - -* startup Eagle service & topology - - examples/eagle-sandbox-starter.sh - -* check eagle UI - - * If you get a 404 Error when trying to access the UI, add port 9099 to "Settings->Network->Advanced->Port Forwarding" in VirtualBox. (See step 4 in "Setup Hadoop Environment" section in ) - -* Take the following actions which will violate and obey the sample policy. - * Violation Action: hdfs dfs -ls unknown - * Violation Action: hdfs dfs -touchz /tmp/private - * Obey Action: hdfs dfs -cat /tmp/private http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-assembly/src/main/doc/metadata-ddl.sql ---------------------------------------------------------------------- diff --git a/eagle-assembly/src/main/doc/metadata-ddl.sql b/eagle-assembly/src/main/doc/metadata-ddl.sql deleted file mode 100644 index 0334623..0000000 --- a/eagle-assembly/src/main/doc/metadata-ddl.sql +++ /dev/null @@ -1,173 +0,0 @@ --- /* --- * Licensed to the Apache Software Foundation (ASF) under one or more --- * contributor license agreements. See the NOTICE file distributed with --- * this work for additional information regarding copyright ownership. --- * The ASF licenses this file to You 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. --- * --- */ - --- application framework metadata - -CREATE TABLE IF NOT EXISTS applications ( - uuid varchar(50) PRIMARY KEY, - appid varchar(100) NOT NULL, - siteid varchar(100) DEFAULT NULL, - apptype varchar(30) DEFAULT NULL, - appmode varchar(10) DEFAULT NULL, - jarpath varchar(255) DEFAULT NULL, - appstatus varchar(20) DEFAULT NULL, - configuration mediumtext DEFAULT NULL, - context mediumtext DEFAULT NULL, - createdtime bigint(20) NOT NULL, - modifiedtime bigint(20) NOT NULL, - UNIQUE INDEX `appid_UNIQUE` (`appid` ASC)) -COMMENT = 'eagle application metadata'; - -CREATE TABLE IF NOT EXISTS sites ( - uuid varchar(50) PRIMARY KEY, - siteid varchar(100) NOT NULL, - sitename varchar(100) NOT NULL, - description varchar(255) DEFAULT NULL, - createdtime bigint(20) NOT NULL, - modifiedtime bigint(20) NOT NULL, - UNIQUE INDEX `siteid_UNIQUE` (`siteid` ASC)) -COMMENT = 'eagle site metadata'; - -CREATE TABLE IF NOT EXISTS `dashboards` ( - `uuid` VARCHAR(50) NOT NULL, - `name` VARCHAR(200) NOT NULL, - `description` VARCHAR(500) NOT NULL, - `settings` mediumtext NULL, - `charts` longtext NULL, - `modifiedtime` BIGINT(20) NOT NULL, - `createdtime` BIGINT(20) NOT NULL, - `author` VARCHAR(50) NOT NULL, - PRIMARY KEY (`uuid`), - UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC), - UNIQUE INDEX `name_UNIQUE` (`name` ASC)) -COMMENT = 'eagle dashboard metadata'; - --- eagle security module metadata - -CREATE TABLE IF NOT EXISTS hdfs_sensitivity_entity ( - site varchar(20) NOT NULL, - filedir varchar(100) NOT NULL, - sensitivity_type varchar(20) DEFAULT NULL, - primary key (site, filedir) -); - -CREATE TABLE IF NOT EXISTS ip_securityzone ( - iphost varchar(100) NOT NULL, - security_zone varchar(100) DEFAULT NULL, - primary key (iphost) -); - -CREATE TABLE IF NOT EXISTS hbase_sensitivity_entity ( - site varchar(20) NOT NULL, - hbase_resource varchar(100) NOT NULL, - sensitivity_type varchar(20) DEFAULT NULL, - primary key (site, hbase_resource) -); - --- alert engine metadata - -CREATE TABLE IF NOT EXISTS stream_cluster ( - id VARCHAR (50) PRIMARY KEY, - content longtext DEFAULT NULL -); - -CREATE TABLE IF NOT EXISTS stream_definition ( - id VARCHAR (50) PRIMARY KEY, - content longtext DEFAULT NULL -); - -CREATE TABLE IF NOT EXISTS kafka_tuple_metadata ( - id VARCHAR (50) PRIMARY KEY, - content longtext DEFAULT NULL -); - -CREATE TABLE IF NOT EXISTS policy_definition ( - id VARCHAR (50) PRIMARY KEY, - content longtext DEFAULT NULL -); - -CREATE TABLE IF NOT EXISTS publishment ( - id VARCHAR (50) PRIMARY KEY, - content longtext DEFAULT NULL -); - -CREATE TABLE IF NOT EXISTS schedule_state ( - id VARCHAR (50) PRIMARY KEY, - content longtext DEFAULT NULL -); - -CREATE TABLE IF NOT EXISTS policy_assignment ( - id VARCHAR (50) PRIMARY KEY, - content longtext DEFAULT NULL -); - -CREATE TABLE IF NOT EXISTS topology ( - id VARCHAR (50) PRIMARY KEY, - content longtext DEFAULT NULL -); - -CREATE TABLE IF NOT EXISTS publishment_type ( - id VARCHAR (50) PRIMARY KEY, - content longtext DEFAULT NULL -); - -CREATE TABLE IF NOT EXISTS policy_publishment ( - policyId VARCHAR(50), - publishmentName VARCHAR(50), - PRIMARY KEY(policyId, publishmentName), - CONSTRAINT `policy_id_fk` FOREIGN KEY (`policyId`) REFERENCES `policy_definition` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `publishment_id_fk` FOREIGN KEY (`publishmentName`) REFERENCES `publishment` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -); - -CREATE TABLE IF NOT EXISTS alert_event ( - alertId VARCHAR (50) PRIMARY KEY, - siteId VARCHAR (50) DEFAULT NULL, - appIds VARCHAR (255) DEFAULT NULL, - policyId VARCHAR (50) DEFAULT NULL, - alertTimestamp bigint(20) DEFAULT NULL, - policyValue mediumtext DEFAULT NULL, - alertData mediumtext DEFAULT NULL -); - -CREATE TABLE IF NOT EXISTS analysis_jobs ( - uuid varchar(50) PRIMARY KEY, - jobDefId varchar(100) NOT NULL, - siteId varchar(50) NOT NULL, - configuration mediumtext NOT NULL, - evaluators mediumtext NOT NULL, - createdtime bigint(20) DEFAULT NULL, - modifiedtime bigint(20) DEFAULT NULL, - UNIQUE (siteId, jobDefId) -); - -CREATE TABLE IF NOT EXISTS analysis_email ( - uuid varchar(50) PRIMARY KEY, - userId varchar(100) NOT NULL, - siteId varchar(50) NOT NULL, - mailAddress mediumtext NOT NULL, - createdtime bigint(20) DEFAULT NULL, - modifiedtime bigint(20) DEFAULT NULL, - UNIQUE (siteId, userId) -); - -INSERT INTO publishment_type(id, content) VALUES -('Kafka', '{"name":"Kafka","type":"org.apache.eagle.alert.engine.publisher.impl.AlertKafkaPublisher","description":null,"fields":[{"name":"kafka_broker","value":"sandbox.hortonworks.com:6667"},{"name":"topic"}]}'), -('Email', '{"name":"Email","type":"org.apache.eagle.alert.engine.publisher.impl.AlertEmailPublisher","description":null,"fields":[{"name":"subject"},{"name":"sender"}, {"name":"recipients"}]}'), -('Slack', '{"name":"Slack","type":"org.apache.eagle.alert.engine.publisher.impl.AlertSlackPublisher","description":null,"fields":[{"name":"token"},{"name":"channels"}, {"name":"severitys"}, {"name":"urltemplate"}]}'), -('HBaseStorage', '{"name":"HBaseStorage","type":"org.apache.eagle.alert.app.AlertEagleStorePlugin","description":null,"fields":[]}'), -('JDBCStorage', '{"name":"JDBCStorage","type":"org.apache.eagle.alert.engine.publisher.impl.AlertEagleStorePlugin","description":null,"fields":[]}'); http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-core/eagle-alert-parent/eagle-alert-app/pom.xml ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert-app/pom.xml b/eagle-core/eagle-alert-parent/eagle-alert-app/pom.xml deleted file mode 100644 index b7fd0ef..0000000 --- a/eagle-core/eagle-alert-parent/eagle-alert-app/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - 4.0.0 - - org.apache.eagle - eagle-alert-parent - 0.5.0-SNAPSHOT - - eagle-alert-app - Eagle::Core::Alert::App - jar - - - org.apache.eagle - eagle-app-base - ${project.version} - - - org.apache.eagle - eagle-client-base - ${project.version} - - - org.apache.eagle - alert-coordinator - ${project.version} - - - http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertEagleStorePlugin.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertEagleStorePlugin.java b/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertEagleStorePlugin.java deleted file mode 100644 index 0b58bf7..0000000 --- a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertEagleStorePlugin.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - */ -package org.apache.eagle.alert.app; - -import com.google.common.base.Preconditions; -import com.typesafe.config.Config; -import org.apache.eagle.alert.engine.coordinator.Publishment; -import org.apache.eagle.alert.engine.coordinator.PublishmentType; -import org.apache.eagle.alert.engine.model.AlertStreamEvent; -import org.apache.eagle.alert.engine.publisher.AlertPublishPluginProvider; -import org.apache.eagle.alert.engine.publisher.impl.AbstractPublishPlugin; -import org.apache.eagle.alert.utils.AlertConstants; -import org.apache.eagle.metadata.model.AlertEntity; -import org.apache.eagle.service.client.IEagleServiceClient; -import org.apache.eagle.service.client.impl.EagleServiceClientImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static org.apache.eagle.alert.engine.model.AlertPublishEvent.*; - -public class AlertEagleStorePlugin extends AbstractPublishPlugin implements AlertPublishPluginProvider { - private static final Logger LOG = LoggerFactory.getLogger(AlertEagleStorePlugin.class); - private IEagleServiceClient client; - - @Override - public void init(Config config, Publishment publishment, Map conf) throws Exception { - super.init(config, publishment, conf); - client = new EagleServiceClientImpl(config); - } - - @Override - public void close() { - try { - client.close(); - } catch (IOException e) { - LOG.error(e.getMessage(), e); - } - } - - @Override - public void onAlert(AlertStreamEvent event) throws Exception { - List eventList = this.dedup(event); - if (eventList == null || eventList.isEmpty()) { - return; - } - List alertEvents = new ArrayList<>(); - for (AlertStreamEvent e : eventList) { - alertEvents.add(convertAlertEvent(e)); - } - client.create(alertEvents, AlertConstants.ALERT_SERVICE_ENDPOINT_NAME); - } - - @Override - protected Logger getLogger() { - return LOG; - } - - public AlertEntity convertAlertEvent(AlertStreamEvent event) { - Preconditions.checkNotNull(event.getAlertId(), "alertId is not initialized before being published: " + event.toString()); - AlertEntity alertEvent = new AlertEntity(); - Map tags = new HashMap<>(); - tags.put(POLICY_ID_KEY, event.getPolicyId()); - tags.put(ALERT_ID_KEY, event.getAlertId()); - tags.put(ALERT_CATEGORY, event.getCategory()); - tags.put(ALERT_SEVERITY, event.getSeverity().toString()); - if (event.getContext() != null && !event.getContext().isEmpty()) { - tags.put(SITE_ID_KEY, event.getContext().get(SITE_ID_KEY).toString()); - alertEvent.setPolicyValue(event.getContext().get(POLICY_VALUE_KEY).toString()); - alertEvent.setAppIds((List) event.getContext().get(APP_IDS_KEY)); - } - alertEvent.setTimestamp(event.getCreatedTime()); - alertEvent.setAlertData(event.getDataMap()); - alertEvent.setAlertSubject(event.getSubject()); - alertEvent.setAlertBody(event.getBody()); - alertEvent.setTags(tags); - return alertEvent; - } - - @Override - public PublishmentType getPluginType() { - return new PublishmentType.Builder() - .name("HBaseStorage") - .type(getClass()) - .description("HBase Storage alert publisher") - .build(); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyApp.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyApp.java b/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyApp.java deleted file mode 100644 index a122c08..0000000 --- a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyApp.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - */ - -package org.apache.eagle.alert.app; - -import org.apache.eagle.alert.engine.UnitTopologyMain; -import org.apache.eagle.app.StormApplication; -import org.apache.eagle.app.environment.impl.StormEnvironment; -import backtype.storm.generated.StormTopology; -import com.typesafe.config.Config; -import com.typesafe.config.ConfigFactory; - -/** - * since 8/25/16. - */ -public class AlertUnitTopologyApp extends StormApplication { - @Override - public StormTopology execute(Config config, StormEnvironment environment) { - return UnitTopologyMain.createTopology(config); - } - - public static void main(String[] args) { - AlertUnitTopologyApp app = new AlertUnitTopologyApp(); - app.run(args); - } -} http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyAppListener.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyAppListener.java b/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyAppListener.java deleted file mode 100644 index 0b19424..0000000 --- a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyAppListener.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - */ - -package org.apache.eagle.alert.app; - -import org.apache.eagle.alert.coordination.model.internal.Topology; -import org.apache.eagle.alert.coordinator.resource.CoordinatorResource; -import org.apache.eagle.alert.engine.runner.UnitTopologyRunner; -import org.apache.eagle.alert.metadata.IMetadataDao; -import org.apache.eagle.alert.metadata.resource.OpResult; -import org.apache.eagle.app.service.ApplicationListener; -import org.apache.eagle.metadata.model.ApplicationEntity; -import com.typesafe.config.ConfigFactory; - -import com.google.inject.Inject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -class AlertUnitTopologyAppListener implements ApplicationListener { - private static final Logger LOG = LoggerFactory.getLogger(AlertUnitTopologyAppListener.class); - - @Inject private IMetadataDao metadataDao; - @Inject private CoordinatorResource coordinatorResource; - - private ApplicationEntity applicationEntity; - - @Override - public void init(ApplicationEntity applicationEntity) { - this.applicationEntity = applicationEntity; - } - - @Override - public void afterInstall() { - // Do nothing - } - - @Override - public void afterUninstall() { - removeTopologyMetadata(); - } - - @Override - public void beforeStart() { - // Do thing, may do some validation works? - updateTopologyMetadata(); - } - - @Override - public void afterStop() { - removeTopologyMetadata(); - } - - // ------------- - // Internal RPC - // ------------- - - private void updateTopologyMetadata() { - LOG.info("Update topology metadata {}", this.applicationEntity.getAppId()); - OpResult result = metadataDao.addTopology(createTopologyMeta(this.applicationEntity)); - if (result.code == OpResult.FAILURE) { - LOG.error(result.message); - throw new IllegalStateException(result.message); - } - try { - coordinatorResource.build(); - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - } - - private void removeTopologyMetadata() { - LOG.info("Remove topology metadata {}", this.applicationEntity.getAppId()); - OpResult result = metadataDao.removeTopology(createTopologyMeta(this.applicationEntity).getName()); - if (result.code == OpResult.FAILURE) { - LOG.error(result.message); - throw new IllegalStateException(result.message); - } - } - - private Topology createTopologyMeta(ApplicationEntity applicationEntity) { - return UnitTopologyRunner.buildTopologyMetadata(applicationEntity.getAppId(),ConfigFactory.parseMap(applicationEntity.getConfiguration())); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyAppProvider.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyAppProvider.java b/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyAppProvider.java deleted file mode 100644 index 5548c8c..0000000 --- a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/java/org/apache/eagle/alert/app/AlertUnitTopologyAppProvider.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - */ - -package org.apache.eagle.alert.app; -import org.apache.eagle.app.service.ApplicationListener; -import org.apache.eagle.app.spi.AbstractApplicationProvider; - -import java.util.Optional; - -/** - * since 8/25/16. - */ -public class AlertUnitTopologyAppProvider extends AbstractApplicationProvider { - @Override - public AlertUnitTopologyApp getApplication() { - return new AlertUnitTopologyApp(); - } - - @Override - public Optional getApplicationListener() { - return Optional.of(new AlertUnitTopologyAppListener()); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml b/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml deleted file mode 100644 index 3b1591a..0000000 --- a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - ALERT_UNIT_TOPOLOGY_APP - Alert Engine - Real-time Alert Engine - - - - workers - Worker Number - 1 - Storm parallelism worker number - false - - - topology.numOfSpoutTasks - Source Tasks Number - 1 - Number of spout tasks - false - - - topology.numOfRouterBolts - Route Tasks Number - 4 - Number of router tasks - false - - - topology.numOfAlertBolts - Evaluator Tasks Number - 10 - Number of alert tasks - false - - - topology.numOfPublishExecutors - Publisher Executor Number - 1 - Number of publish executors - false - - - topology.numOfPublishTasks - Publisher Tasks Number - 1 - Number of publish tasks - false - - - topology.message.timeout.secs - topology message timeout (secs) - default timeout is 300s - 300 - false - - - - - spout.kafkaBrokerZkQuorum - Kafka Spout Broker Zookeeper Quorum - localhost:2181 - Zookeeper quorum of kafka broker for spout to consume data - true - - - spout.kafkaBrokerZkBasePath - Kafka Spout Broker Zookeeper Root - /brokers - Zookeeper znode path for kafka brokers - false - - - spout.stormKafkaUseSameZkQuorumWithKafkaBroker - Reuse Broker Zookeeper - true - Use same zookeeper for kafka server and kafka consumer(Storm-Kafka) - false - - - spout.stormKafkaTransactionZkQuorum - Spout Transaction Zookeeper Quorum - Required if reuse broker zookeeper is false - false - - - spout.stormKafkaTransactionZkPath - Spout Transaction Zookeeper Path - /consumers - Zookeeper path for storm kafka transaction - false - - - spout.stormKafkaEagleConsumer - Spout Consumer ID - eagle_consumer - Zookeeper quorum for spout to consume data - true - - - - -

    - -
      -
    1. Require permission to READ/WRITE/CREATE on kafka topic
    2. -
    - -
      -
    1. Configure kafka connection in settings
    2. -
    3. Install and start alert engine
    4. -
    5. Integrate streams and define policy
    6. -
    -
    - - -
    - -
      -
    1. Clean up kafka topics automatically created by alert engine
    2. -
    -
    -
    - - http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/services/org.apache.eagle.app.spi.ApplicationProvider ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/services/org.apache.eagle.app.spi.ApplicationProvider b/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/services/org.apache.eagle.app.spi.ApplicationProvider deleted file mode 100644 index ceb079d..0000000 --- a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/services/org.apache.eagle.app.spi.ApplicationProvider +++ /dev/null @@ -1,18 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. -# - -org.apache.eagle.alert.app.AlertUnitTopologyAppProvider http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/application.conf ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/application.conf b/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/application.conf deleted file mode 100644 index 46f5b08..0000000 --- a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/application.conf +++ /dev/null @@ -1,61 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. -{ - "appId" : "HBaseAuditLogApp", - "mode" : "LOCAL", - "siteId" : "testsite", - "topology" : { - "name" : "alertUnitTopology_1", - "numOfTotalWorkers" : 2, - "numOfSpoutTasks" : 1, - "numOfRouterBolts" : 4, - "numOfAlertBolts" : 10, - "numOfPublishExecutors" : 1, - "numOfPublishTasks" : 1, - "messageTimeoutSecs": 3600, - "localMode" : "true" - }, - "spout" : { - "kafkaBrokerZkQuorum": "server.eagle.apache.org:2181", - "kafkaBrokerZkBasePath": "/kafka", - "stormKafkaUseSameZkQuorumWithKafkaBroker": true, - "stormKafkaTransactionZkQuorum": "", - "stormKafkaTransactionZkPath": "/consumers", - "stormKafkaEagleConsumer": "eagle_consumer" - }, - "zkConfig" : { - "zkQuorum" : "server.eagle.apache.org:2181", - "zkRoot" : "/alert" - }, - "metadataService": { - "context" : "/rest", - "host" : "localhost", - "port" : 9090 - }, - "metric":{ - "sink": { - // "kafka": { - // "topic": "alert_metric" - // "bootstrap.servers": "localhost:6667" - // } - // "stdout": {} - // "elasticsearch": { - // "hosts": ["localhost:9200"] - // "index": "alert_metric" - // "timestampField": "timestamp" - // } - } - } -} http://git-wip-us.apache.org/repos/asf/eagle/blob/6fd95d5c/eagle-core/eagle-alert-parent/eagle-alert-app/src/test/java/org/apache/eagle/alert/app/AlertUnitTopologyAppProviderTest.java ---------------------------------------------------------------------- diff --git a/eagle-core/eagle-alert-parent/eagle-alert-app/src/test/java/org/apache/eagle/alert/app/AlertUnitTopologyAppProviderTest.java b/eagle-core/eagle-alert-parent/eagle-alert-app/src/test/java/org/apache/eagle/alert/app/AlertUnitTopologyAppProviderTest.java deleted file mode 100644 index 4383484..0000000 --- a/eagle-core/eagle-alert-parent/eagle-alert-app/src/test/java/org/apache/eagle/alert/app/AlertUnitTopologyAppProviderTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - */ -package org.apache.eagle.alert.app; - -import com.google.inject.Inject; -import org.apache.eagle.app.resource.ApplicationResource; -import org.apache.eagle.app.service.ApplicationOperations; -import org.apache.eagle.app.test.ApplicationTestBase; -import org.apache.eagle.metadata.model.ApplicationEntity; -import org.apache.eagle.metadata.model.SiteEntity; -import org.apache.eagle.metadata.resource.SiteResource; -import org.apache.eagle.metadata.service.ApplicationStatusUpdateService; -import org.junit.Assert; -import org.junit.Ignore; -import org.junit.Test; - -@Ignore -public class AlertUnitTopologyAppProviderTest extends ApplicationTestBase { - - @Inject - private SiteResource siteResource; - @Inject - private ApplicationResource applicationResource; - @Inject - ApplicationStatusUpdateService statusUpdateService; - - @Test - public void testApplicationLifecycle() throws InterruptedException { - // Create local site - SiteEntity siteEntity = new SiteEntity(); - siteEntity.setSiteId("test_site"); - siteEntity.setSiteName("Test Site"); - siteEntity.setDescription("Test Site for ExampleApplicationProviderTest"); - siteResource.createSite(siteEntity); - Assert.assertNotNull(siteEntity.getUuid()); - - ApplicationOperations.InstallOperation installOperation = new ApplicationOperations.InstallOperation("test_site", "AlertUnitTopologyApp", ApplicationEntity.Mode.LOCAL); - // Install application - ApplicationEntity applicationEntity = applicationResource.installApplication(installOperation).getData(); - // Start application - applicationResource.startApplication(new ApplicationOperations.StartOperation(applicationEntity.getUuid())); - statusUpdateService.updateApplicationEntityStatus(applicationEntity); - // Stop application - applicationResource.stopApplication(new ApplicationOperations.StopOperation(applicationEntity.getUuid())); - awaitApplicationStop(applicationEntity); - // Uninstall application - applicationResource.uninstallApplication(new ApplicationOperations.UninstallOperation(applicationEntity.getUuid())); - try { - applicationResource.getApplicationEntityByUUID(applicationEntity.getUuid()); - Assert.fail("Application instance (UUID: " + applicationEntity.getUuid() + ") should have been uninstalled"); - } catch (Exception ex) { - // Expected exception - } - } -}