use of com.emc.storageos.db.client.model.AuditLog in project coprhd-controller by CoprHD.
the class JSONAuditLogMarchallerTest method testJsonAuditLogMarshallingForIOExceptions.
@Test
public void testJsonAuditLogMarshallingForIOExceptions() throws URISyntaxException, IOException, MarshallingExcetion {
deleteIfExists(JsonTestOutputFile);
JSONAuditLogMarshaller jm = new JSONAuditLogMarshaller();
AuditLog log = new AuditLog();
log.setProductId("productId.2");
log.setTenantId(new URI("http://tenant.2"));
log.setUserId(new URI("http://user.2"));
log.setServiceType("serviceType.2");
log.setAuditType("auditType.2");
log.setDescription("description.2");
log.setOperationalStatus("operationalStatus.2");
OutputStream output = new OutputStream() {
private StringBuilder string = new StringBuilder();
@Override
public void write(int b) throws IOException {
this.string.append((char) b);
}
public String toString() {
return this.string.toString();
}
};
try {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output));
writer.close();
jm.header(writer);
} catch (MarshallingExcetion e) {
Assert.assertTrue(e.toString().contains("JSON head Streaming failed"));
}
try {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output));
writer.close();
jm.marshal(log, writer);
} catch (MarshallingExcetion e) {
Assert.assertTrue(e.toString().contains("JSON streaming failed"));
}
try {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output));
writer.close();
jm.tailer(writer);
} catch (MarshallingExcetion e) {
Assert.assertTrue(e.toString().contains("JSON tail Streaming failed"));
}
deleteIfExists(JsonTestOutputFile);
}
use of com.emc.storageos.db.client.model.AuditLog in project coprhd-controller by CoprHD.
the class JSONAuditLogMarchallerTest method testJsonAuditLogMarshallingForNullLog.
@Test
public void testJsonAuditLogMarshallingForNullLog() throws URISyntaxException, IOException, MarshallingExcetion {
deleteIfExists(JsonTestOutputFile);
JSONAuditLogMarshaller jm = new JSONAuditLogMarshaller();
AuditLog log = null;
OutputStream output = new OutputStream() {
private StringBuilder string = new StringBuilder();
@Override
public void write(int b) throws IOException {
this.string.append((char) b);
}
public String toString() {
return this.string.toString();
}
};
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output));
jm.header(writer);
jm.marshal(log, writer);
jm.tailer(writer);
writer.close();
FileWriter fileWriter = new FileWriter(JsonTestOutputFile);
fileWriter.write(output.toString());
fileWriter.close();
ObjectMapper mapper = null;
mapper = new ObjectMapper();
AnnotationIntrospector introspector = new JaxbAnnotationIntrospector();
mapper.getDeserializationConfig().withAnnotationIntrospector(introspector);
try {
@SuppressWarnings("unused") AuditLog auditLog = mapper.readValue(new File(JsonTestOutputFile), AuditLog.class);
} catch (UnrecognizedPropertyException e) {
Assert.assertTrue(e.toString().contains("Unrecognized"));
}
deleteIfExists(JsonTestOutputFile);
}
use of com.emc.storageos.db.client.model.AuditLog in project coprhd-controller by CoprHD.
the class JSONAuditLogMarchallerTest method testJsonAuditLogMarshalling.
@Test
public void testJsonAuditLogMarshalling() throws URISyntaxException, IOException, MarshallingExcetion {
deleteIfExists(JsonTestOutputFile);
JSONAuditLogMarshaller jm = new JSONAuditLogMarshaller();
AuditLog log = new AuditLog();
log.setProductId("productId.1");
log.setTenantId(new URI("http://tenant.1"));
log.setUserId(new URI("http://user.1"));
log.setServiceType("serviceType.1");
log.setAuditType("auditType.1");
log.setDescription("description.1");
log.setOperationalStatus("operationalStatus.1");
OutputStream output = new OutputStream() {
private StringBuilder string = new StringBuilder();
@Override
public void write(int b) throws IOException {
this.string.append((char) b);
}
public String toString() {
return this.string.toString();
}
};
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output));
jm.marshal(log, writer);
writer.close();
FileWriter fileWriter = new FileWriter(JsonTestOutputFile);
fileWriter.write(output.toString());
fileWriter.close();
ObjectMapper mapper = null;
mapper = new ObjectMapper();
AnnotationIntrospector introspector = new JaxbAnnotationIntrospector();
mapper.getDeserializationConfig().withAnnotationIntrospector(introspector);
AuditLog auditLog = mapper.readValue(new File(JsonTestOutputFile), AuditLog.class);
Assert.assertEquals("productId.1", auditLog.getProductId().toString());
Assert.assertEquals("http://tenant.1", auditLog.getTenantId().toString());
Assert.assertEquals("http://user.1", auditLog.getUserId().toString());
Assert.assertEquals("serviceType.1", auditLog.getServiceType().toString());
Assert.assertEquals("auditType.1", auditLog.getAuditType().toString());
Assert.assertEquals("description.1", auditLog.getDescription().toString());
Assert.assertEquals("operationalStatus.1", auditLog.getOperationalStatus().toString());
deleteIfExists(JsonTestOutputFile);
}
use of com.emc.storageos.db.client.model.AuditLog in project coprhd-controller by CoprHD.
the class XMLAuditLogMarshallerTest method testXmlAuditLogMarshalling.
@Test
public void testXmlAuditLogMarshalling() throws URISyntaxException, IOException, MarshallingExcetion, JAXBException {
XMLAuditLogMarshaller xm = new XMLAuditLogMarshaller();
AuditLog log = new AuditLog();
log.setProductId("productId.1");
log.setTenantId(new URI("http://tenant.1"));
log.setUserId(new URI("http://user.1"));
log.setServiceType("serviceType.1");
log.setAuditType("auditType.1");
log.setDescription("description.1");
log.setOperationalStatus("operationalStatus.1");
OutputStream output = new OutputStream() {
private StringBuilder string = new StringBuilder();
@Override
public void write(int b) throws IOException {
this.string.append((char) b);
}
public String toString() {
return this.string.toString();
}
};
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output));
xm.marshal(log, writer);
writer.close();
FileWriter fileWriter = new FileWriter(XmlTestOutputFile);
fileWriter.write(output.toString());
fileWriter.close();
JAXBContext context = null;
Unmarshaller unmarshaller = null;
context = JAXBContext.newInstance(AuditLog.class);
unmarshaller = context.createUnmarshaller();
File f = new File(XmlTestOutputFile);
AuditLog auditLog = (AuditLog) unmarshaller.unmarshal(f);
Assert.assertEquals("productId.1", auditLog.getProductId().toString());
Assert.assertEquals("http://tenant.1", auditLog.getTenantId().toString());
Assert.assertEquals("http://user.1", auditLog.getUserId().toString());
Assert.assertEquals("serviceType.1", auditLog.getServiceType().toString());
Assert.assertEquals("auditType.1", auditLog.getAuditType().toString());
Assert.assertEquals("description.1", auditLog.getDescription().toString());
Assert.assertEquals("operationalStatus.1", auditLog.getOperationalStatus().toString());
deleteIfExists(XmlTestOutputFile);
}
use of com.emc.storageos.db.client.model.AuditLog in project coprhd-controller by CoprHD.
the class AuditLogManager method recordAuditLogs.
/**
* Called to record auditlogs in the database.
*
* @param events references to recordable auditlogs.
*/
public void recordAuditLogs(RecordableAuditLog... auditlogs) {
if (!shouldRecordAuditLog()) {
s_logger.info("Ignore audit log on standby site");
return;
}
AuditLog[] dbAuditLogs = new AuditLog[auditlogs.length];
int i = 0;
for (RecordableAuditLog auditlog : auditlogs) {
AuditLog dbAuditlog = AuditLogUtils.convertToAuditLog(auditlog);
dbAuditLogs[i++] = dbAuditlog;
AuditLog auditSyslog = dbAuditlog;
PropertyInfo propInfo = _coordinator.getPropertyInfo();
if (propInfo.getProperty(SYSLOG_ENALBE).equalsIgnoreCase("true")) {
Locale locale = new Locale("en", "US");
ResourceBundle resb = ResourceBundle.getBundle("SDSAuditlogRes", locale);
AuditLogUtils.resetDesc(auditSyslog, resb);
logger.info("audit log is " + dbAuditlog.getServiceType() + " " + dbAuditlog.getUserId() + " " + dbAuditlog.getOperationalStatus() + " " + dbAuditlog.getDescription());
}
}
// Now insert the events into the database.
try {
_dbClient.start();
String bucketId = _dbClient.insertTimeSeries(AuditLogTimeSeries.class, dbAuditLogs);
s_logger.info("AuditLog(s) persisted into Cassandra with bucketId/rowId : {}", bucketId);
} catch (DatabaseException e) {
s_logger.error("Error inserting auditlogs into the database", e);
throw e;
}
}
Aggregations