summaryrefslogtreecommitdiffstats
path: root/README.md
blob: f9758231c0e699db439c9960a9d3fe768ac4eefa (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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# ONAP SDC Distribution client


---
---

# Introduction

ONAP SDC Distribution client is delivered as helper JAR that can be used by clients that work with SDC.
It register to SDC for getting notifications, listen for notification from SDC, download artifacts from SDC, and send response back to SDC.


# Compiling ONAP SDC Distribution client

As mentioned in the onap wiki https://wiki.onap.org/display/DW/Setting+Up+Your+Development+Environment, the settings.xml (https://git.onap.org/oparent/plain/settings.xml) from the oparent project must be installed in your ~/.m2 folder and referenced by your IDE.

Once maven is set up properly, ONAP SDC Distribution client can be compiled easily using maven command: `mvn clean install`
The result is JAR file under "target" folder


### How to use ONAP SDC Distribution client
Every client that wants to use the JAR, need to implement IConfiguration interface.

Configuration parameters:
--------------------------
- sdcAddress 			: SDC Distribution Engine address. Value can be either hostname (with or without port), IP:port or FQDN (Fully Qualified Domain Name).
- User					: User Name for SDC distribution consumer authentication.
- Password				: User Password for SDC distribution consumer authentication.
- PollingInterval		: Distribution Client Polling Interval towards MessageBus in seconds. Can Be reconfigured in runtime.
- PollingTimeout		: Distribution Client Timeout in seconds waiting to MessageBus server response in each fetch interval. Can Be reconfigured in runtime.
- RelevantArtifactTypes	: List of artifact types. If the service contains any of the artifacts in the list, the callback will be activated. Can Be reconfigured in runtime.
- ConsumerGroup			: Returns the consumer group defined for this ONAP component, if no consumer group is defined return null. 
- EnvironmentName		: Returns the environment name (testing, production etc... Can Be reconfigured in runtime.
- ConsumerID			: Unique ID of ONAP component instance (e.x INSTAR name).
- KeyStorePath			: Return full path to Client's Key Store that contains either CA certificate or the SDC's public key (e.g /etc/keystore/sdc-client.jks). file will be deployed with sdc-distribution jar
- KeyStorePassword		: Return client's Key Store password.
- activateServerTLSAuth	: Sets whether SDC server TLS authentication is activated. If set to false, Key Store path and password are not needed to be set.
- UseSystemProxy		: If set to true, SDC Distribution Client will use system wide proxy configuration passed through JVM arguments.
- HttpProxyHost			: Optional config. If configured, SDC Distribution client will use this http proxy host with HTTP client.
- HttpProxyPort			: Mandatory if HttpProxyHost is configured. If configured, SDC Distribution client will use this https proxy port with HTTP client.
- HttpsProxyHost		: Optional config. If configured, SDC Distribution client will use this https proxy host with HTTPS client.
- HttpsProxyPort		: Mandatory if HttpsProxyHost is configured. If configured, SDC Distribution client will use this https proxy port with HTTPS client.

Example of configuration file implementing IConfiguration interface:
--------------------------------------------------------------------
package org.onap.conf;

import java.util.ArrayList;
import java.util.List;

import org.onap.sdc.api.consumer.IConfiguration;
import org.onap.sdc.utils.ArtifactTypeEnum;

public class SimpleConfiguration implements IConfiguration{
	int randomSeed;
	String sdcAddress;
	
	public SimpleConfiguration(){
		randomSeed = ((int)(Math.random()*1000));
		sdcAddress = "127.0.0.1:8443";
	}
	public String getUser() {
		return "ci";
	}
	
	public List<String> getRelevantArtifactTypes() {
		List<String> res = new ArrayList<>();
		for(ArtifactTypeEnum artifactTypeEnum : ArtifactTypeEnum.values()){
			res.add(artifactTypeEnum.name());
		}
		return res;
	}
	
	public int getPollingTimeout() {
		return 20;
	}
	
	public int getPollingInterval() {
		return 20;
	}
	
	public String getPassword() {
		return "123456";
	}
	
	public String getEnvironmentName() {
		return "PROD";
	}
	
	public String getConsumerID() {
		return "unique-Consumer-ID"+randomSeed;
	}
	
	public String getConsumerGroup() {
		return "unique-Consumer-Group"+randomSeed;
	}
	
	public String getSdcAddress() {
		return sdcAddress;
	}
	
	public void setSdcAddress(String sdcAddress) {
		this.sdcAddress = sdcAddress;
	}
	@Override
	public String getKeyStorePath() {
		return null;
	}
	@Override
	public String getKeyStorePassword() {
		return null;
	}
	@Override
	public boolean activateServerTLSAuth() {
		return false;
	}

}


# Logging
Loggin can be done using log4j
Example of log.properties file:
-------------------------------
log4j.rootCategory=DEBUG, CONSOLE, LOGFILE
log4j.logger.org.onap=TRACE, CONSOLE, LOGFILE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss.SSS Z} %c{1} - %m%n
 
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender
log4j.appender.LOGFILE.File=logs/wordnik.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss.SSS Z} %c{1} - %m%n
log4j.appender.LOGFILE.MaxFileSize=10MB
log4j.appender.LOGFILE.MaxBackupIndex=10


# Getting Help

*** to be completed on release ***

SDC@lists.onap.org

SDC Javadoc and Maven site
 
*** to be completed on rrelease ***