Skip to content

Commit

Permalink
Merge pull request #2129 from ControlSystemStudio/CSSTUDIO-1511
Browse files Browse the repository at this point in the history
Olog client information HTTP header
  • Loading branch information
shroffk authored Feb 9, 2022
2 parents fbf7fd6 + ff2def6 commit 48fba7d
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,12 @@
*/
public class OlogClient implements LogClient {
private static final Logger logger = Logger.getLogger(OlogClient.class.getName());

private final WebResource service;

private static final String OLOG_CLIENT_INFO_HEADER = "X-Olog-Client-Info";
private static final String CLIENT_INFO =
"CS Studio " + org.phoebus.ui.application.Messages.AppVersion + " on " + System.getProperty("os.name");

/**
* Builder Class to help create a olog client.
*
Expand Down Expand Up @@ -206,6 +209,7 @@ private LogEntry save(LogEntry log, LogEntry inReplyTo) throws LogbookException
clientResponse = service.path("logs")
.queryParams(queryParams)
.type(MediaType.APPLICATION_JSON)
.header(OLOG_CLIENT_INFO_HEADER, CLIENT_INFO)
.accept(MediaType.APPLICATION_XML)
.accept(MediaType.APPLICATION_JSON)
.put(ClientResponse.class, OlogObjectMappers.logEntrySerializer.writeValueAsString(log));
Expand Down Expand Up @@ -303,6 +307,7 @@ private SearchResult findLogs(MultivaluedMap<String, String> searchParams) throw
// Convert List<XmlLog> into List<LogEntry>
final OlogSearchResult ologSearchResult = OlogObjectMappers.logEntryDeserializer.readValue(
service.path("logs/search").queryParams(searchParams)
.header(OLOG_CLIENT_INFO_HEADER, CLIENT_INFO)
.accept(MediaType.APPLICATION_JSON)
.get(String.class),
OlogSearchResult.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/*
* Copyright (C) 2020 European Spallation Source ERIC.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/

package org.phoebus.logbook.olog.ui.propertyproviders;

import org.phoebus.logbook.Property;
import org.phoebus.logbook.olog.ui.write.LogPropertyProvider;
import org.phoebus.olog.es.api.model.OlogProperty;
import org.phoebus.ui.application.Messages;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ClientEnvironmentPropertyProvider implements LogPropertyProvider {

@Override
public Property getProperty() {
String hostname = "N/A";
try {
hostname = InetAddress.getLocalHost().getHostName();
} catch (UnknownHostException e) {
Logger.getLogger(ClientEnvironmentPropertyProvider.class.getName())
.log(Level.INFO, "Unable to determine hostname", e);
}
Map<String, String> attributes = new HashMap<>();
attributes.put("Hostname", hostname);
attributes.put("Client", "Phoebus " + Messages.AppVersion);
Property property = new OlogProperty("Client Environment", attributes);
return property;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#
# Copyright (C) 2020 European Spallation Source ERIC.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#

org.phoebus.logbook.olog.ui.propertyproviders.ClientEnvironmentPropertyProvider

0 comments on commit 48fba7d

Please sign in to comment.