2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
 
   4  * This program and the accompanying materials are made available under the
 
   5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 
   6  * and is available at http://www.eclipse.org/legal/epl-v10.html
 
   8 package org.opendaylight.aaa.authn.mdsal.store;
 
  10 import java.util.List;
 
  11 import org.opendaylight.aaa.api.IDMStoreException;
 
  12 import org.opendaylight.aaa.api.IDMStoreUtil;
 
  13 import org.opendaylight.aaa.api.IIDMStore;
 
  14 import org.opendaylight.aaa.api.model.Domain;
 
  15 import org.opendaylight.aaa.api.model.Domains;
 
  16 import org.opendaylight.aaa.api.model.Grant;
 
  17 import org.opendaylight.aaa.api.model.Grants;
 
  18 import org.opendaylight.aaa.api.model.Role;
 
  19 import org.opendaylight.aaa.api.model.Roles;
 
  20 import org.opendaylight.aaa.api.model.User;
 
  21 import org.opendaylight.aaa.api.model.Users;
 
  24  * @author Sharon Aicler - saichler@cisco.com
 
  27 public class IDMStore implements IIDMStore {
 
  28     private final IDMMDSALStore mdsalStore;
 
  30     public IDMStore(IDMMDSALStore mdsalStore) {
 
  31         this.mdsalStore = mdsalStore;
 
  35     public Domain writeDomain(Domain domain) throws IDMStoreException {
 
  36         return IDMObject2MDSAL.toIDMDomain(mdsalStore.writeDomain(IDMObject2MDSAL.toMDSALDomain(domain)));
 
  40     public Domain readDomain(String domainid) throws IDMStoreException {
 
  41         return IDMObject2MDSAL.toIDMDomain(mdsalStore.readDomain(domainid));
 
  45     public Domain deleteDomain(String domainid) throws IDMStoreException {
 
  46         return IDMObject2MDSAL.toIDMDomain(mdsalStore.deleteDomain(domainid));
 
  50     public Domain updateDomain(Domain domain) throws IDMStoreException {
 
  51         return IDMObject2MDSAL.toIDMDomain(mdsalStore.updateDomain(IDMObject2MDSAL.toMDSALDomain(domain)));
 
  55     public Domains getDomains() throws IDMStoreException {
 
  56         Domains domains = new Domains();
 
  57         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Domain> mdSalDomains = mdsalStore.getAllDomains();
 
  58         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Domain d : mdSalDomains) {
 
  59             domains.getDomains().add(IDMObject2MDSAL.toIDMDomain(d));
 
  65     public Role writeRole(Role role) throws IDMStoreException {
 
  66         return IDMObject2MDSAL.toIDMRole(mdsalStore.writeRole(IDMObject2MDSAL.toMDSALRole(role)));
 
  70     public Role readRole(String roleid) throws IDMStoreException {
 
  71         return IDMObject2MDSAL.toIDMRole(mdsalStore.readRole(roleid));
 
  75     public Role deleteRole(String roleid) throws IDMStoreException {
 
  76         return IDMObject2MDSAL.toIDMRole(mdsalStore.deleteRole(roleid));
 
  80     public Role updateRole(Role role) throws IDMStoreException {
 
  81         return IDMObject2MDSAL.toIDMRole(mdsalStore.writeRole(IDMObject2MDSAL.toMDSALRole(role)));
 
  85     public User writeUser(User user) throws IDMStoreException {
 
  86         return IDMObject2MDSAL.toIDMUser(mdsalStore.writeUser(IDMObject2MDSAL.toMDSALUser(user)));
 
  90     public User readUser(String userid) throws IDMStoreException {
 
  91         return IDMObject2MDSAL.toIDMUser(mdsalStore.readUser(userid));
 
  95     public User deleteUser(String userid) throws IDMStoreException {
 
  96         return IDMObject2MDSAL.toIDMUser(mdsalStore.deleteUser(userid));
 
 100     public User updateUser(User user) throws IDMStoreException {
 
 101         return IDMObject2MDSAL.toIDMUser(mdsalStore.writeUser(IDMObject2MDSAL.toMDSALUser(user)));
 
 105     public Grant writeGrant(Grant grant) throws IDMStoreException {
 
 106         return IDMObject2MDSAL.toIDMGrant(mdsalStore.writeGrant(IDMObject2MDSAL.toMDSALGrant(grant)));
 
 110     public Grant readGrant(String grantid) throws IDMStoreException {
 
 111         return IDMObject2MDSAL.toIDMGrant(mdsalStore.readGrant(grantid));
 
 115     public Grant deleteGrant(String grantid) throws IDMStoreException {
 
 116         return IDMObject2MDSAL.toIDMGrant(mdsalStore.readGrant(grantid));
 
 120     public Roles getRoles() throws IDMStoreException {
 
 121         Roles roles = new Roles();
 
 122         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Role> mdSalRoles = mdsalStore.getAllRoles();
 
 123         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Role r : mdSalRoles) {
 
 124             roles.getRoles().add(IDMObject2MDSAL.toIDMRole(r));
 
 130     public Users getUsers() throws IDMStoreException {
 
 131         Users users = new Users();
 
 132         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.User> mdSalUsers = mdsalStore.getAllUsers();
 
 133         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.User u : mdSalUsers) {
 
 134             users.getUsers().add(IDMObject2MDSAL.toIDMUser(u));
 
 140     public Users getUsers(String username, String domain) throws IDMStoreException {
 
 141         Users users = new Users();
 
 142         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.User> mdSalUsers = mdsalStore.getAllUsers();
 
 143         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.User u : mdSalUsers) {
 
 144             if (u.getDomainid().equals(domain) && u.getName().equals(username)) {
 
 145                 users.getUsers().add(IDMObject2MDSAL.toIDMUser(u));
 
 152     public Grants getGrants(String domainid, String userid) throws IDMStoreException {
 
 153         Grants grants = new Grants();
 
 154         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Grant> mdSalGrants = mdsalStore.getAllGrants();
 
 155         String currentGrantUserId, currentGrantDomainId;
 
 156         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Grant g : mdSalGrants) {
 
 157             currentGrantUserId = g.getUserid();
 
 158             currentGrantDomainId = g.getDomainid();
 
 159             if (currentGrantUserId.equals(userid) && currentGrantDomainId.equals(domainid)) {
 
 160                 grants.getGrants().add(IDMObject2MDSAL.toIDMGrant(g));
 
 167     public Grants getGrants(String userid) throws IDMStoreException {
 
 168         Grants grants = new Grants();
 
 169         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Grant> mdSalGrants = mdsalStore.getAllGrants();
 
 170         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Grant g : mdSalGrants) {
 
 171             if (g.getUserid().equals(userid)) {
 
 172                 grants.getGrants().add(IDMObject2MDSAL.toIDMGrant(g));
 
 179     public Grant readGrant(String domainid, String userid, String roleid) throws IDMStoreException {
 
 180         return readGrant(IDMStoreUtil.createGrantid(userid, domainid, roleid));