Skip to content

Commit

Permalink
Rename agent to collector.
Browse files Browse the repository at this point in the history
  • Loading branch information
bernd committed May 12, 2015
1 parent 93bb86e commit 18b7755
Show file tree
Hide file tree
Showing 17 changed files with 218 additions and 218 deletions.
Expand Up @@ -6,12 +6,12 @@

import java.io.IOException;

public class AgentsController extends AuthenticatedController {
public class CollectorsController extends AuthenticatedController {
public Result index() throws APIException, IOException {
BreadcrumbList bc = new BreadcrumbList();
bc.addCrumb("System", routes.SystemController.index(0));
bc.addCrumb("Agents", routes.AgentsController.index());
bc.addCrumb("Collectors", routes.CollectorsController.index());

return ok(views.html.system.agents.index.render(currentUser(), bc));
return ok(views.html.system.collectors.index.render(currentUser(), bc));
}
}
27 changes: 0 additions & 27 deletions app/controllers/api/AgentsApiController.java

This file was deleted.

27 changes: 27 additions & 0 deletions app/controllers/api/CollectorsApiController.java
@@ -0,0 +1,27 @@
package controllers.api;

import controllers.AuthenticatedController;
import org.graylog2.rest.models.collector.responses.CollectorSummary;
import org.graylog2.restclient.lib.APIException;
import org.graylog2.restclient.models.CollectorService;
import play.libs.Json;
import play.mvc.Result;

import javax.inject.Inject;
import java.io.IOException;
import java.util.List;

public class CollectorsApiController extends AuthenticatedController {
private final CollectorService collectorService;

@Inject
public CollectorsApiController(CollectorService collectorService) {
this.collectorService = collectorService;
}

public Result index() throws APIException, IOException {
final List<CollectorSummary> collectors = collectorService.all();

return ok(Json.toJson(collectors));
}
}
2 changes: 1 addition & 1 deletion app/lib/security/RestPermissions.java
Expand Up @@ -94,7 +94,7 @@ public enum RestPermissions {
THREADS_DUMP("threads:dump"),
LBSTATUS_CHANGE("lbstatus:change"),
NODE_SHUTDOWN("node:shutdown"),
AGENTS_READ("agents:read");
COLLECTORS_READ("collectors:read");

private final String permission;

Expand Down
4 changes: 2 additions & 2 deletions app/views/partials/navbar.scala.html
Expand Up @@ -42,7 +42,7 @@
routes.javascript.UsersController.editUserForm,
routes.javascript.UsersController.index,
routes.javascript.UsersController.show,
routes.javascript.AgentsController.index,
routes.javascript.CollectorsController.index,
api.routes.javascript.AlarmCallbacksApiController.available,
api.routes.javascript.AlarmCallbacksApiController.create,
api.routes.javascript.AlarmCallbacksApiController.delete,
Expand All @@ -69,7 +69,7 @@
)

<div id="navigation-bar"
data-permissions='@Permissions.asJson(SEARCHES_ABSOLUTE, SEARCHES_RELATIVE, SEARCHES_KEYWORD, SOURCES_READ, INPUTS_READ, INPUTS_CREATE, INPUTS_EDIT, OUTPUTS_READ, INDICES_READ, LOGGERS_READ, DASHBOARDS_CREATE, USERS_EDIT, STREAMS_CREATE, AGENTS_READ)'
data-permissions='@Permissions.asJson(SEARCHES_ABSOLUTE, SEARCHES_RELATIVE, SEARCHES_KEYWORD, SOURCES_READ, INPUTS_READ, INPUTS_CREATE, INPUTS_EDIT, OUTPUTS_READ, INDICES_READ, LOGGERS_READ, DASHBOARDS_CREATE, USERS_EDIT, STREAMS_CREATE, COLLECTORS_READ)'
data-request-path="@request.path"
data-login-name="@currentUser.getName"
data-full-name="@currentUser.getFullName">
Expand Down
4 changes: 2 additions & 2 deletions app/views/partials/system_link.scala.html
Expand Up @@ -16,8 +16,8 @@
/ Outputs
}

@if(request.path().startsWith("/system/agents")) {
/ Agents
@if(request.path().startsWith("/system/collectors")) {
/ Collectors
}

@if(request.path().startsWith("/system/indices")) {
Expand Down
@@ -1,19 +1,19 @@
@(currentUser: org.graylog2.restclient.models.User,
breadcrumbs: lib.BreadcrumbList)

@main("Agents in Cluster", null, "", currentUser, false) {
@main("Collectors in Cluster", null, "", currentUser, false) {
@views.html.partials.breadcrumbs(breadcrumbs)

<div class="row content content-head">
<div class="col-md-12">
<h1><i class="fa fa-cloud"></i> Agents in Cluster</h1>
<h1><i class="fa fa-cloud"></i> Collectors in Cluster</h1>
<p class="description">
Agents deliver local resources to a remote Graylog cluster.
Collectors deliver local resources to a remote Graylog cluster.
</p>
</div>
</div>
<div class="row content">
<div class="col-md-12" id="react-agent-list">
<div class="col-md-12" id="react-collector-list">
</div>
</div>
}
6 changes: 3 additions & 3 deletions conf/routes
Expand Up @@ -92,7 +92,7 @@ GET /system/contentpacks/export
POST /system/contentpacks/export @controllers.BundlesController.export()
GET /system/grokpatterns @controllers.GrokPatternsController.index()
POST /system/grokpatterns/import @controllers.GrokPatternsController.upload()
GET /system/agents @controllers.AgentsController.index()
GET /system/collectors @controllers.CollectorsController.index()

# Outputs
GET /system/outputs @controllers.OutputsController.index()
Expand Down Expand Up @@ -288,8 +288,8 @@ POST /a/streams/:stream_id/alarmcallbacks
DELETE /a/streams/:stream_id/alarmcallbacks/:alarmcallback_id @controllers.api.AlarmCallbacksApiController.delete(stream_id: String, alarmcallback_id: String)
PUT /a/streams/:stream_id/alarmcallbacks/:alarmcallback_id @controllers.api.AlarmCallbacksApiController.update(stream_id: String, alarmcallback_id: String)

# API: Agents
GET /a/system/agents @controllers.api.AgentsApiController.index()
# API: Collectors
GET /a/system/collectors @controllers.api.CollectorsApiController.index()

GET /robots.txt controllers.Assets.at(path="/public", file="robots.txt")

Expand Down
117 changes: 0 additions & 117 deletions javascript/src/components/agents/AgentList.jsx

This file was deleted.

9 changes: 0 additions & 9 deletions javascript/src/components/agents/mount.jsx

This file was deleted.

117 changes: 117 additions & 0 deletions javascript/src/components/collectors/CollectorList.jsx
@@ -0,0 +1,117 @@
'use strict';

var React = require('react/addons');
var CollectorsStore = require('../../stores/collectors/CollectorsStore');
var CollectorRow = require('./CollectorRow');

var CollectorList = React.createClass({
COLLECTOR_DATA_REFRESH: 5*1000,

getInitialState() {
return {
collectors: [],
filter: "",
sort: undefined,
showInactive: false
};
},
componentDidMount() {
this.loadData();
},
loadData() {
CollectorsStore.load((collectors) => {
if (this.isMounted()) {
this.setState({
collectors: collectors
});
}
});

setTimeout(this.loadData, this.COLLECTOR_DATA_REFRESH);
},
_getFilteredCollectors() {
var filter = this.state.filter.toLowerCase().trim();
return this.state.collectors.filter((collector) => { return !filter || collector.id.toLowerCase().indexOf(filter) !== -1 || collector.node_id.toLowerCase().indexOf(filter) !== -1 || collector.node_details.operating_system.toLowerCase().indexOf(filter) !== -1; });
},
_bySortField(collector1, collector2) {
var sort = this.state.sort || ((collector) => {return collector.id;});
var field1 = sort(collector1);
var field2 = sort(collector2);
if (typeof(field1) === "number") {
return field2 - field1;
} else {
return field1.localeCompare(field2);
}
},
render() {
var collectorList;

if (this.state.collectors.length === 0) {
collectorList = <div><div className="alert alert-info">There are no collectors.</div></div>;
} else {
var collectors = this._getFilteredCollectors()
.filter((collector) => {return (this.state.showInactive || collector.active);})
.sort(this._bySortField)
.map((collector) => {
return <CollectorRow key={collector.id} collector={collector}/>;
}
);

var showOrHideInactive = (this.state.showInactive ? "Hide" : "Show");

collectorList = (
<div>
<div className="row">
<div className="col-md-12">
<form className="form-inline collectors-filter-form">
<label htmlFor="collectorsfilter">Filter collectors:</label>
<input type="text" name="filter" id="collectorsfilter" value={this.state.filter} onChange={(event) => {this.setState({filter: event.target.value});}} />
</form>

<a onClick={this.toggleShowInactive}>{showOrHideInactive}</a> inactive collectors

<table className="table table-striped users-list">
<thead>
<tr>
<th className="name" onClick={this.sortById}>
Collector Id
</th>
<th onClick={this.sortByNodeId}>Host Name</th>
<th onClick={this.sortByCollectorVersion}>Collector Version</th>
<th onClick={this.sortByOperatingSystem}>Operating System</th>
<th onClick={this.sortByLastSeen}>Last Seen</th>
</tr>
</thead>
<tbody>
{collectors}
</tbody>
</table>
</div>
</div>
</div>
);
}

return collectorList;
},
toggleShowInactive() {
this.setState({showInactive: !this.state.showInactive});
},
sortById() {
this.setState({sort: (collector) => {return collector.id;}});
},
sortByNodeId() {
this.setState({sort: (collector) => {return collector.node_id;}});
},
sortByOperatingSystem() {
this.setState({sort: (collector) => {return collector.node_details.operating_system;}});
},
sortByLastSeen() {
this.setState({sort: (collector) => {return collector.last_seen;}});
},
sortByCollectorVersion() {
this.setState({sort: (collector) => {return collector.collector_version;}});
}
});

module.exports = CollectorList;

0 comments on commit 18b7755

Please sign in to comment.