ODL karaf 에서 impl 모듈만 빌드해서 다시 띄우는 방법
ODL 개발시 impl 쪽을 수정할때마다 매번 프로젝트 전체를 빌드하고 다시 karaf를 띄우는게 시간이 오래걸려 확인해보니 karaf 내에서 각 bundle별로 죽였다 다시 띄울때 jar 파일만 교체해주면 전체를 빌드하지 않아도 손쉽게 적용이 가능하다. ~/karaf/target/assembly/system/org/opendaylight/hello/he
ODL 개발시 impl 쪽을 수정할때마다 매번 프로젝트 전체를 빌드하고 다시 karaf를 띄우는게 시간이 오래걸려 확인해보니 karaf 내에서 각 bundle별로 죽였다 다시 띄울때 jar 파일만 교체해주면 전체를 빌드하지 않아도 손쉽게 적용이 가능하다. ~/karaf/target/assembly/system/org/opendaylight/hello/he
ODL SB plugin을 만들면서 외부 라이브러리를 거의 필수적으로 사용하게 되는데 karaf상에서 외부라이브러리를 사용하는 방식이 다소 복잡하여 정리를 하였다. 내가 필요한 라이브라리는 아래와 같다. 123456789import org.springframework.http.HttpMethod;import org.springframework.http.Re
singletons cluster의 구조는 다음과 같다. [사진 1] 3개의 docker instance에 singletonsimple 를 배포하고 기동하면 자동으로 cluster 설정이 이루어 지고 Leader Node가 설정되어 진다. Leader Node는 3개의 Node중에 선택되어지고 Leader Node가 죽으면 다른 Node가 Leader가
앞선 예제에서 사용했던 hello 프로젝트를 clustering을 이용하도록 구현해보자. 목표는 global-rpc,routed-rpc 구현과 datastore 공유이다. hello 프로젝트에 아무런 설정을 하지 않고 1ansible-playbook -i hosts playbook_hello.yaml 명령어를 이용하여 3개의 docker instance로
이번에는 앞서 구축한 3개의 docker instance에 소스를 배포하고 기동하는 방법이다. 테스트 소스는 coretutorials/clustering 하위에 있는 singletonsimple 으로 하겠다. 먼저 singletonsimple 을 빌드를 해야 하는데 singletonsimple-impl 를 빌드하다 문제가 발생했었다. [ERROR] Fai
3개의 가상 Host를 이용하여 ODL cluster를 테스트 할수 있는 환경 구축해보도록 한다. 테스트에 사용된 자료는 OpenDayLight Core Tutorials 이다. 다운 받도록 하자. git clone https://git.opendaylight.org/gerrit/coretutorials.git 소스를 다운받으면 clustering 폴더
빌드를 하다 난 에러1234567[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce (enforce-banned-dependencies) on project singletonsimple-impl: Some Enforcer rules have fa
DataStore에 값이 저장되거나 변경 , 삭제가 되면 변경상태를 감지하는 DataChangeListener 를 구현해보도록한다. 먼저 HelloProvider.java 에서 DataChangeListener를 등록해준다 CONFIGURATION tree 만 감시하도록 구현하였다. 12345678910111213141516private DataBro
이번에는 DataStore를 구현해보도록 하겠다. 아래와 같이 단순한 구조로 ODL의 dataStore를 사용하는 방법을 알아보자 역시 가장먼저 구현 해줘야 하는것은 Yang 파일이다. 기존에 만들어놓은 hello.yang 파일을 조금 수정하도록 한다. hello.yang 파일에 아래와 같이 container 를 하나 선언해준다. 123456789101
ODL에서 사용하는 Notification의 개념은 RPC와 비슷하다고 생각하면 되는데 차이점이 있다면 Notification은 return값이 없다는것이다. 새로운 impl module을 추가하고 폴더명을 notificationService로 변경하고 artifactId 는 notification 로 바꿔준다. 현재 프로젝트 구조는 아래와 같다.