2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2020 Nordix Foundation.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
20 package org.onap.so.etsi.nfvo.ns.lcm.database.service;
22 import java.util.List;
23 import java.util.Optional;
24 import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoJob;
25 import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNfInst;
26 import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NfvoNsInst;
27 import org.onap.so.etsi.nfvo.ns.lcm.database.beans.NsLcmOpOcc;
28 import org.onap.so.etsi.nfvo.ns.lcm.database.repository.NSLcmOpOccRepository;
29 import org.onap.so.etsi.nfvo.ns.lcm.database.repository.NfvoJobRepository;
30 import org.onap.so.etsi.nfvo.ns.lcm.database.repository.NfvoNfInstRepository;
31 import org.onap.so.etsi.nfvo.ns.lcm.database.repository.NfvoNsInstRepository;
32 import org.slf4j.Logger;
33 import org.slf4j.LoggerFactory;
34 import org.springframework.beans.factory.annotation.Autowired;
35 import org.springframework.stereotype.Service;
38 * @author Waqas Ikram (waqas.ikram@est.tech)
43 public class DatabaseServiceProvider {
44 private static final Logger logger = LoggerFactory.getLogger(DatabaseServiceProvider.class);
46 private final NfvoJobRepository nfvoJobRepository;
48 private final NfvoNsInstRepository nfvoNsInstRepository;
50 private final NfvoNfInstRepository nfvoNfInstRepository;
52 private final NSLcmOpOccRepository nsLcmOpOccRepository;
55 public DatabaseServiceProvider(final NfvoJobRepository nfvoJobRepository,
56 final NfvoNsInstRepository nfvoNsInstRepository, final NfvoNfInstRepository nfvoNfInstRepository,
57 final NSLcmOpOccRepository nsLcmOpOccRepository) {
58 this.nfvoJobRepository = nfvoJobRepository;
59 this.nfvoNsInstRepository = nfvoNsInstRepository;
60 this.nfvoNfInstRepository = nfvoNfInstRepository;
61 this.nsLcmOpOccRepository = nsLcmOpOccRepository;
64 public boolean addJob(final NfvoJob job) {
65 logger.info("Adding NfvoJob: {} to database", job);
66 return nfvoJobRepository.save(job) != null;
69 public Optional<NfvoJob> getJob(final String jobId) {
70 logger.info("Querying database for NfvoJob using jobId: {}", jobId);
71 return nfvoJobRepository.findById(jobId);
74 public Optional<NfvoJob> getJobByResourceId(final String resourceId) {
75 logger.info("Querying database for NfvoJob using resourceId: {}", resourceId);
76 return nfvoJobRepository.findByResourceId(resourceId);
79 public boolean isNsInstExists(final String name) {
80 logger.info("Checking if NfvoNsInst entry exists in database using name: {}", name);
81 return nfvoNsInstRepository.existsNfvoNsInstByName(name);
84 public boolean isNsInstExists(final String nsInstId, final String nfName) {
85 logger.info("Checking if NfvoNfInst entry exists in database using nsInstId: {} and nfName: {}", nsInstId,
87 return nfvoNfInstRepository.findByNsInstNsInstIdAndName(nsInstId, nfName).isEmpty();
90 public boolean saveNfvoNsInst(final NfvoNsInst nfvoNsInst) {
91 logger.info("Saving NfvoNsInst: {} to database", nfvoNsInst);
92 return nfvoNsInstRepository.save(nfvoNsInst) != null;
95 public Optional<NfvoNsInst> getNfvoNsInst(final String nsInstId) {
96 logger.info("Querying database for NfvoNsInst using nsInstId: {}", nsInstId);
97 return nfvoNsInstRepository.findById(nsInstId);
100 public Optional<NfvoNsInst> getNfvoNsInstByName(final String name) {
101 logger.info("Querying database for NfvoNsInst using name: {}", name);
102 return nfvoNsInstRepository.findByName(name);
105 public boolean saveNfvoNfInst(final NfvoNfInst nfvoNfInst) {
106 logger.info("Saving NfvoNfInst: {} to database", nfvoNfInst);
107 return nfvoNfInstRepository.save(nfvoNfInst) != null;
110 public Optional<NfvoNfInst> getNfvoNfInstByNfInstId(final String nfInstId) {
111 logger.info("Querying database for NfvoNfInst using nfInstId: {}", nfInstId);
112 return nfvoNfInstRepository.findByNfInstId(nfInstId);
115 public List<NfvoNfInst> getNfvoNfInstByNsInstId(final String nsInstId) {
116 logger.info("Querying database for NfvoNfInst using nsInstId: {}", nsInstId);
117 return nfvoNfInstRepository.findByNsInstNsInstId(nsInstId);
120 public List<NfvoNfInst> getNfvoNfInstByNsInstIdAndNfName(final String nsInstId, final String name) {
121 logger.info("Querying database for NfvoNfInst using nsInstId: {} and name : {} ", nsInstId, name);
122 return nfvoNfInstRepository.findByNsInstNsInstIdAndName(nsInstId, name);
125 public Optional<NfvoNfInst> getNfvoNfInst(final String nfInstId) {
126 logger.info("Querying database for NfvoNfInst using nfInstId: {}", nfInstId);
127 return nfvoNfInstRepository.findByNfInstId(nfInstId);
130 public boolean addNSLcmOpOcc(final NsLcmOpOcc nsLcmOpOcc) {
131 logger.info("Adding NSLcmOpOcc: {} to database", nsLcmOpOcc);
132 return nsLcmOpOccRepository.save(nsLcmOpOcc) != null;
135 public Optional<NsLcmOpOcc> getNsLcmOpOcc(final String id) {
136 logger.info("Querying database for NsLcmOpOcc using id: {}", id);
137 return nsLcmOpOccRepository.findById(id);