/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.intel.mtwilson.as.rest.v2.repository;
import com.intel.dcsg.cpg.io.UUID;
import com.intel.mtwilson.My;
import com.intel.mtwilson.as.controller.TblHostsJpaController;
import com.intel.mtwilson.as.data.TblHosts;
import com.intel.mtwilson.as.rest.v2.model.HostAik;
import com.intel.mtwilson.as.rest.v2.model.HostAikCollection;
import com.intel.mtwilson.as.rest.v2.model.HostAikFilterCriteria;
import com.intel.mtwilson.as.rest.v2.model.HostAikLocator;
import com.intel.mtwilson.jaxrs2.server.resource.DocumentRepository;
import com.intel.mtwilson.repository.RepositoryRetrieveException;
import com.intel.mtwilson.repository.RepositorySearchException;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
*
* @author ssbangal
*/
public class HostAikRepository implements DocumentRepository<HostAik, HostAikCollection, HostAikFilterCriteria, HostAikLocator> {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(HostAikRepository.class);
@Override
@RequiresPermissions("host_aiks:search")
public HostAikCollection search(HostAikFilterCriteria criteria) {
log.debug("HostAik:Search - Got request to search for host aik.");
HostAikCollection objCollection = new HostAikCollection();
try {
TblHostsJpaController jpaController = My.jpa().mwHosts();
if (criteria.hostUuid != null) {
TblHosts obj = jpaController.findHostByUuid(criteria.hostUuid.toString());
if (obj != null) {
objCollection.getAiks().add(convert(obj));
}
}
} catch (Exception ex) {
log.error("HostAik:Search - Error during search for host aik.", ex);
throw new RepositorySearchException(ex, criteria);
}
log.debug("HostAik:Search - Returning back {} of results.", objCollection.getAiks().size());
return objCollection;
}
@Override
@RequiresPermissions("host_aiks:retrieve")
public HostAik retrieve(HostAikLocator locator) {
if (locator == null || locator.hostUuid == null) { return null; }
log.debug("HostAik:Retrieve - Got request to retrieve Aik for host with id {}.", locator.hostUuid);
String id = locator.hostUuid.toString();
try {
TblHostsJpaController jpaController = My.jpa().mwHosts();
TblHosts obj = jpaController.findHostByUuid(id);
if (obj != null) {
HostAik hostAik = convert(obj);
return hostAik;
}
} catch (Exception ex) {
log.error("HostAik:Retrieve - Error during retrieval of host aik.", ex);
throw new RepositoryRetrieveException(ex, locator);
}
return null;
}
@Override
@RequiresPermissions("host_aiks:store")
public void store(HostAik item) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
@RequiresPermissions("host_aiks:create")
public void create(HostAik item) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
@RequiresPermissions("host_aiks:delete")
public void delete(HostAikLocator locator) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
@RequiresPermissions("host_aiks:delete,search")
public void delete(HostAikFilterCriteria criteria) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
private HostAik convert(TblHosts obj) {
HostAik convObj = new HostAik();
convObj.setId(UUID.valueOf(obj.getUuid_hex()));
convObj.setAikPublicKey(obj.getAikPublicKey());
convObj.setAikSha1(obj.getAikSha1());
return convObj;
}
}