Skip to content

Commit

Permalink
Work in progress
Browse files Browse the repository at this point in the history
  • Loading branch information
VinceMacBuche committed Sep 15, 2019
1 parent 36f8e04 commit ecf3f69
Show file tree
Hide file tree
Showing 12 changed files with 85 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,16 @@ trait ReportsRepository {
) : Seq[Reports]

def findReportsByNodeOnInterval(
nodeId: NodeId
nodeId: NodeId
, start : DateTime
, end : DateTime
) : Seq[Reports]

def findReportsByNodeByRun(
nodeId: NodeId
, runDate : DateTime
) : Seq[Reports]

//databaseManager only
def getReportsInterval() : Box[(Option[DateTime], Option[DateTime])]
def getArchivedReportsInterval() : Box[(Option[DateTime], Option[DateTime])]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,17 @@ class ReportsJdbcRepository(doobie: Doobie) extends ReportsRepository with Logga
transactRun(xa => q.to[Vector].transact(xa))
}


override def findReportsByNodeByRun(
nodeId: NodeId
, runDate : DateTime
) : Vector[Reports] = {
val q = Query[(NodeId, DateTime), Reports](baseQuery +
" and nodeId = ? and executionTimeStamp = ? ORDER BY executionTimeStamp asc"
, None).toQuery0((nodeId, runDate))
transactRun(xa => q.to[Vector].transact(xa))
}

override def findReportsByNodeOnInterval(
nodeId: NodeId
, start : DateTime
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1809,6 +1809,7 @@ object RudderConfig extends Loggable {
, reportingServiceImpl
, techniqueRepositoryImpl
, configService
, logDisplayerImpl
)
private[this] lazy val propertyRepository = new RudderPropertiesRepositoryImpl(doobie)
private[this] lazy val autoReportLogger = new AutomaticReportLogger(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ class ShowNodeDetailsFromNode(
"#nodeDetails" #> DisplayNode.showNodeDetails(inventory, Some((node, globalMode)), Some(node.creationDate), AcceptedInventory, isDisplayingInPopup = withinPopup) &
"#nodeInventory *" #> DisplayNode.show(inventory, false) &
"#reportsDetails *" #> reportDisplayer.asyncDisplay(node) &
"#logsDetails *" #> logDisplayer.asyncDisplay(node.id) &
"#logsDetails *" #> Script(OnLoad(logDisplayer.asyncDisplay(node.id,None))) &
"#node_parameters -*" #> (if(node.id == Constants.ROOT_POLICY_SERVER_ID) NodeSeq.Empty else nodeStateEditForm(node).nodeStateConfiguration) &
"#node_parameters -*" #> agentPolicyModeEditForm.cfagentPolicyModeConfiguration &
"#node_parameters -*" #> agentScheduleEditForm(node).cfagentScheduleConfiguration &
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ import com.normation.rudder.domain.policies.RuleId
import com.normation.rudder.web.model._
import com.normation.inventory.domain.NodeId
import com.normation.rudder.domain.reports.Reports
import scala.xml._
import net.liftweb.common._
import net.liftweb.http._
import net.liftweb.http.js._
Expand Down Expand Up @@ -76,10 +75,12 @@ class LogDisplayer(

private val gridName = "logsGrid"

def asyncDisplay(nodeId : NodeId) : NodeSeq = {
def asyncDisplay(nodeId : NodeId, runDate : Option[DateTime]) = {
val id = JsNodeId(nodeId)
val ajaxRefresh = SHtml.ajaxInvoke( () => refreshData(nodeId, reportRepository.findReportsByNode(nodeId)))

val ajaxRefresh = runDate match {
case Some(runDate) => SHtml.ajaxInvoke (() => refreshData (nodeId, reportRepository.findReportsByNodeByRun (nodeId, runDate).filter(_.severity.startsWith("log")) ) )
case None => SHtml.ajaxInvoke (() => refreshData (nodeId, reportRepository.findReportsByNode (nodeId) ) )
}
def getEventsInterval(jsonInterval: String): JsCmd = {
import net.liftweb.util.Helpers.tryo
import net.liftweb.json.parse
Expand Down Expand Up @@ -113,19 +114,17 @@ class LogDisplayer(
}
}

Script(
OnLoad(
// set static content
SetHtml("logsDetails",content) &
// Create empty table
JsRaw(s"""
console.log("${runDate}")
var pickEventLogsInInterval = ${AnonFunc(SHtml.ajaxCall(JsRaw(
"""'{"start":"'+$(".pickStartInput").val()+'", "end":"'+$(".pickEndInput").val()+'"}'"""
), getEventsInterval)._2).toJsCmd}

createTechnicalLogsTable("${gridName}",[], "${S.contextPath}",function() {${ajaxRefresh.toJsCmd}}, pickEventLogsInInterval);""") &
// Load data asynchronously

JsRaw(
s"""
$$("#details_${id}").on( "tabsactivate", function(event, ui) {
Expand All @@ -134,7 +133,7 @@ class LogDisplayer(
}
});
"""
)))
)
}

/**
Expand Down Expand Up @@ -169,6 +168,7 @@ class LogDisplayer(

ReportLine (
report.executionDate
, report.executionTimestamp
, report.severity
, ruleName
, directiveName
Expand Down Expand Up @@ -205,6 +205,7 @@ class LogDisplayer(
*/
case class ReportLine (
executionDate : DateTime
, runDate : DateTime
, severity : String
, ruleName : String
, directiveName : String
Expand All @@ -217,6 +218,7 @@ case class ReportLine (

JsObj(
( "executionDate", executionDate.toString("yyyy-MM-dd HH:mm:ss") )
, ( "runDate", runDate.toString("yyyy-MM-dd HH:mm:ss") )
, ( "severity" , severity )
, ( "ruleName" , escapeHTML(ruleName) )
, ( "directiveName", escapeHTML(directiveName) )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,15 @@ import net.liftweb.http.js.JsCmd
import net.liftweb.http.js.JsCmds._
import net.liftweb.util.Helpers._
import org.joda.time.format.DateTimeFormat

import scala.xml.NodeSeq
import scala.xml.NodeSeq.seqToNodeSeq
import com.normation.appconfig.ReadConfigService
import com.normation.rudder.domain.policies.PolicyMode
import com.normation.rudder.web.ChooseTemplate
import com.normation.rudder.domain.nodes.NodeState

import com.normation.box._
import org.joda.time.DateTime

/**
* Display the last reports of a server
Expand All @@ -71,6 +72,7 @@ class ReportDisplayer(
, reportingService : ReportingService
, techniqueRepository : TechniqueRepository
, configService : ReadConfigService
, logDisplayer: LogDisplayer
) extends Loggable {

private[this] val getAllNodeInfos = RudderConfig.nodeInfoService.getAll _
Expand Down Expand Up @@ -108,9 +110,20 @@ class ReportDisplayer(
for {
report <- reportingService.findNodeStatusReport(node.id)
data <- getComplianceData(node.id, report)
runDate : Option[DateTime] = report.runInfo match {
case a : ComputeCompliance => Some(a.lastRunDateTime)
case a : LastRunAvailable => Some(a.lastRunDateTime)
case a : NoExpectedReport => Some(a.lastRunDateTime)
case a : NoReportInInterval => None
case a : Pending => a.optLastRun.map(_._1)
case a : ReportsDisabledInInterval => None
case NoRunNoExpectedReport => None

}
} yield {
import net.liftweb.util.Helpers.encJs
val intro = encJs(displayIntro(report).toString)
logDisplayer.asyncDisplay(node.id,runDate) &
JsRaw(s"""refreshTable("reportsGrid",${data.json.toJsCmd}); $$("#node-compliance-intro").replaceWith(${intro})""")
}
}
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -1235,12 +1235,20 @@ function createTechnicalLogsTable(gridId, data, contextPath, refresh, pickEventL
"sWidth": "24%"
, "mDataProp": "message"
, "sTitle": "Message"
} , {
"mDataProp": "runDate"
, "sTitle": "Run date"
, "bVisible" : false
} ];
console.log("youhouh")

var params = {
"bFilter" : true
, "bPaginate" : true
, "bLengthChange": true
, "rowGroup": {
dataSrc: 'runDate'
}
, "sPaginationType": "full_numbers"
, "oLanguage": {
"sSearch": ""
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
<link type="text/css" rel="stylesheet" data-lift="with-cached-resource" href="/style/rudder/rudder-bootstrap.css" media="screen" />
<link type="text/css" rel="stylesheet" data-lift="with-cached-resource" href="/style/rudder/rudder-quicksearch.css" media="screen" />

<link type="text/css" rel="stylesheet" data-lift="with-cached-resource" href="/style/datatables/rowGroup-bootstrap-1.1.0.min.css" media="screen" />

<link type="text/css" rel="stylesheet" data-lift="with-cached-resource" href="/style/AdminLTE/AdminLTE.min.css"/>
<link type="text/css" rel="stylesheet" data-lift="with-cached-resource" href="/style/rudder/rudder-menu.css"/>
<link type="text/css" rel="stylesheet" data-lift="with-cached-resource" href="/style/rudder/rudder-datatable.css" media="screen" />
Expand All @@ -34,6 +36,7 @@

<script type="text/javascript" data-lift="with-cached-resource" src="/javascript/jquery/jstree/jquery.jstree.min.js"></script>
<script type="text/javascript" data-lift="with-cached-resource" src="/javascript/jquery/datatables/datatables.min.js"></script>
<script type="text/javascript" data-lift="with-cached-resource" src="/javascript/jquery/datatables/dataTables-rowGroup-1.1.0.min.js"></script>
<script type="text/javascript" data-lift="with-cached-resource" src="/javascript/jquery/jquery-ui.min.js"></script>
<script type="text/javascript" data-lift="with-cached-resource" src="/javascript/jquery/timepicker/jquery-ui-timepicker-addon.min.js"></script>
<script type="text/javascript" data-lift="with-cached-resource" src="/javascript/jquery/timepicker/jquery-ui-timepicker-addon-en.js"></script>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@
<runAgent></runAgent>
<lastreportgrid-intro></lastreportgrid-intro>


<table id="logsGrid" cellspacing="0"></table>

<lastreportgrid-grid></lastreportgrid-grid>

<div id="reportsGrid_paginate_area" class="paginate"></div>


Expand Down

0 comments on commit ecf3f69

Please sign in to comment.