aboutsummaryrefslogtreecommitdiffstats
path: root/appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org/onap/appc/mdsal/MDSALStore.java
blob: 19fff2b5cd9c7c3895b4c3effeceed441784a981 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*-
 * ============LICENSE_START=======================================================
 * ONAP : APPC
 * ================================================================================
 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
 * ================================================================================
 * Copyright (C) 2017 Amdocs
 * =============================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
 * ============LICENSE_END=========================================================
 */

package org.onap.appc.mdsal;

import org.onap.appc.mdsal.exception.MDSALStoreException;
import org.onap.appc.mdsal.objects.BundleInfo;

import java.util.Date;

/**
 * Provides APIs for interacting with MD-SAL store
 */
public interface MDSALStore {

    /**
     * Checks the presence of any yang module in the MD-SAL store,
     * <i>Due to limitation of SchemaContext interface of ODL that it does not
     * contain the information about dynamically loaded yang modules, it
     * checks the presence of OSGI bundle</i>
     * @param moduleName Name of the Module
     * @param revision revision of the Module
     * @return returns true- module is present, false - module is absent
     */
    boolean isModulePresent(String moduleName, Date revision);

    /**
     * This method will be used to store yang module to MD-SAL store
     * @param yang - yang module that need to be stored. In String format
     * @param bundleInfo - Bundle Information that contains name , description,  version , location. These parameters used to create bundle which will push yang to MD-SAL store.
     * @throws MDSALStoreException
     */
    void storeYangModule(String yang, BundleInfo bundleInfo) throws MDSALStoreException;

    /**
     * This method is used to store configuration JSON to MD-SAL store. It invokes store configuration Operation with required parameters
     * @param moduleName - Yang module name where JSON need to be posted
     * @param requestId - Request ID which is used as unique key for configuration JSON
     * @param configJSON - String value of configuration JSON that needs to be stored in MD-SAl store
     * @throws MDSALStoreException
     */
    void storeJson(String moduleName , String requestId , String configJSON ) throws MDSALStoreException;

    /**
     * This method will be used to store yang module to MD-SAL store
     * @param yang - yang module that need to be stored. In String format
     * @param moduleName - yang module name
     * @throws MDSALStoreException
     */
    void storeYangModuleOnLeader(String yang, String moduleName) throws MDSALStoreException;

}