Hi Everyone,

Apologies for my late inactivity on the mailing list. I’ll try to cover what 
I’ve implemented so far, and the issues I’m facing and working on right now.

First of all, I now have an implementation of docker containers for filemgr, 
workflow, and resmgr. I verified that all these are starting up with no 
exceptions, and fixed environment variable issues.

Next, I started creating a docker image for the solr catalog. I initially used 
solr 8 (latest version) and then found various issues and downgraded it until I 
was able to start the solr server, which is solr version 5.5.5.

I also created a docker image for ops ui, but couldn’t get all interfaces 
working as expected, and have a lot of exceptions being thrown when visiting 
certain pages. I’m working on getting them resolved, and will post an update 
about these after tomorrow’s call with Imesha and Tom.

From last week, my goal was to create an end-to-end working implementation 
where I could ingest a file using filemgr_client, and see it appear on opsui. I 
made it up to the point where all components are running. I also created a 
docker compose file to facilitate exactly that.

I’ll keep working on getting the end-to-end-working implementation, and once I 
do I will create a pull request on the OODT repository. Please bear with me if 
it’s taking more time than expected. The exception logs show that certain log 
files and XML are missing (which is causing the exceptions), and I’m working on 
fixing them right now.

I welcome any comments or suggestions on how to tackle these issues better. :)

==================
### THIS EXCEPTION IS THROWN WHEN I GOTO “FILE CATALOG BROWSE” IN OPSUI

opsui_1     | ERROR - Objects                    - Error serializing object 
class org.apache.oodt.pcs.opsui.TypesPage [object=[Page class = 
org.apache.oodt.pcs.opsui.TypesPage, id = 4, version = 0]]
opsui_1     | 
org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: 
Unable to serialize class: org.apache.oodt.cas.filemgr.structs.ProductType
opsui_1     | Field hierarchy is:
opsui_1     |   4 [class=org.apache.oodt.pcs.opsui.TypesPage, path=4]
opsui_1     |     private java.lang.Object 
org.apache.wicket.MarkupContainer.children [class=[Ljava.lang.Object;]
opsui_1     |       private org.apache.wicket.markup.html.link.PopupSettings 
org.apache.wicket.markup.html.link.ExternalLink.popupSettings[8] 
[class=org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types, 
path=4:types_component]
opsui_1     |         private java.lang.Object 
org.apache.wicket.MarkupContainer.children 
[class=org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types$2, 
path=4:types_component:cas_fm_browser_ptype_table_rows]
opsui_1     |           java.lang.Object org.apache.wicket.Component.data 
[class=org.apache.wicket.model.util.WildcardListModel]
opsui_1     |             private java.lang.Object 
org.apache.wicket.model.util.GenericBaseModel.object [class=java.util.Vector]
opsui_1     |               private java.lang.Object 
org.apache.wicket.model.util.GenericBaseModel.object[write:1] 
[class=[Ljava.lang.Object;]
opsui_1     |                 private java.lang.Object 
org.apache.wicket.model.util.GenericBaseModel.object[write:1][0] 
[class=org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types$TypeCountTuple]
opsui_1     |                   private java.util.List 
org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types$TypeCountTuple.types
 [class=java.util.Vector]
opsui_1     |                     private java.util.List 
org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types$TypeCountTuple.types[write:1]
 [class=[Ljava.lang.Object;]
opsui_1     |                       private java.util.List 
org.apache.oodt.cas.webcomponents.filemgr.browser.types.Types$TypeCountTuple.types[write:1][0]
 [class=org.apache.oodt.cas.filemgr.structs.ProductType] <----- field that is 
not serializable
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:386)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:432)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.access$500(SerializableChecker.java:64)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker$1InterceptingObjectOutputStream.replaceObject(SerializableChecker.java:535)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1143)
opsui_1     |   at 
java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:162)
opsui_1     |   at 
java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1706)
opsui_1     |   at 
java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:481)
opsui_1     |   at java.util.Vector.writeObject(Vector.java:1100)
opsui_1     |   at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
opsui_1     |   at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
opsui_1     |   at java.lang.reflect.Method.invoke(Method.java:606)
opsui_1     |   at 
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1131)
opsui_1     |   at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
opsui_1     |   at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:542)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:656)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:579)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:432)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.access$500(SerializableChecker.java:64)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker$1InterceptingObjectOutputStream.replaceObject(SerializableChecker.java:535)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1143)
opsui_1     |   at 
java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:162)
opsui_1     |   at 
java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1706)
opsui_1     |   at 
java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:481)
opsui_1     |   at java.util.Vector.writeObject(Vector.java:1100)
opsui_1     |   at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
opsui_1     |   at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
opsui_1     |   at java.lang.reflect.Method.invoke(Method.java:606)
opsui_1     |   at 
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1131)
opsui_1     |   at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
opsui_1     |   at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:542)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:656)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:579)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:656)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:579)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:656)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:579)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:432)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:656)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:579)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
opsui_1     |   at 
org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:725)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:343)
opsui_1     |   at 
org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:129)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:343)
opsui_1     |   at 
org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1124)
opsui_1     |   at 
org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:203)
opsui_1     |   at 
org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:840)
opsui_1     |   at 
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:332)
opsui_1     |   at org.apache.wicket.Session.requestDetached(Session.java:1435)
opsui_1     |   at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1176)
opsui_1     |   at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1462)
opsui_1     |   at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
opsui_1     |   at 
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
opsui_1     |   at 
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319)
opsui_1     |   at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
opsui_1     |   at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
opsui_1     |   at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
opsui_1     |   at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
opsui_1     |   at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
opsui_1     |   at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
opsui_1     |   at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
opsui_1     |   at 
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
opsui_1     |   at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
opsui_1     |   at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
opsui_1     |   at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1152)
opsui_1     |   at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
opsui_1     |   at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2527)
opsui_1     |   at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2516)
opsui_1     |   at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
opsui_1     |   at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
opsui_1     |   at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
opsui_1     |   at java.lang.Thread.run(Thread.java:748)
opsui_1     | Caused by: java.io.NotSerializableException: 
org.apache.oodt.cas.filemgr.structs.ProductType
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
opsui_1     |   at 
java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
opsui_1     |   at 
java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:162)
opsui_1     |   at 
java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1706)
opsui_1     |   at 
java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:481)
opsui_1     |   at java.util.Vector.writeObject(Vector.java:1100)
opsui_1     |   at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
opsui_1     |   at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
opsui_1     |   at java.lang.reflect.Method.invoke(Method.java:606)
opsui_1     |   at 
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1131)
opsui_1     |   at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
opsui_1     |   at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
opsui_1     |   at 
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
opsui_1     |   at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
opsui_1     |   at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
opsui_1     |   at 
java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
opsui_1     |   at 
java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:162)
opsui_1     |   at 
java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1706)
opsui_1     |   at 
java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:481)
opsui_1     |   at java.util.Vector.writeObject(Vector.java:1100)
opsui_1     |   at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
opsui_1     |   at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
opsui_1     |   at java.lang.reflect.Method.invoke(Method.java:606)
opsui_1     |   at 
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1131)
opsui_1     |   at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
opsui_1     |   at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
opsui_1     |   at 
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
opsui_1     |   at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
opsui_1     |   at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
opsui_1     |   at 
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
opsui_1     |   at 
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:440)
opsui_1     |   at org.apache.wicket.Component.writeObject(Component.java:4700)
opsui_1     |   at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
opsui_1     |   at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
opsui_1     |   at java.lang.reflect.Method.invoke(Method.java:606)
opsui_1     |   at 
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1131)
opsui_1     |   at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
opsui_1     |   at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
opsui_1     |   at 
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
opsui_1     |   at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
opsui_1     |   at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
opsui_1     |   at 
java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
opsui_1     |   at 
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
opsui_1     |   at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
opsui_1     |   at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
opsui_1     |   at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
opsui_1     |   at 
org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121)
opsui_1     |   ... 29 more
====================

Best Regards,
Yasith Jayawardana

------------------------------------------------
Yasith Jayawardana
PhD Student | Old Dominion University
phone: +1 757 698 8978

On Jun 6, 2019, at 10:48 AM, Imesha Sudasingha 
<ime...@apache.org<mailto:ime...@apache.org>> wrote:

Hi Chris,

Yes. That explains it.

Hi Yasith,

Therefore, let's not make changes to the structure of those scripts. But,
if you see anything missing (ex: logging properties file is not passed as a
vm argument) should be addressed. If you found any such mismatch, let's see
if that can be synced.

Imesha

On Thu, 6 Jun 2019 at 12:01, Chris Mattmann 
<mattm...@apache.org<mailto:mattm...@apache.org>> wrote:

The requirements for the scripts are:


Filemanager as a component must work without docker, and without
RADIX, so any changes to that core script need to satisfy that.
Additionally Filemanager has no dependencies on workflow, other
envs, or resource, etc., so any updates to the FM script in the core
FM component would need to respect that
RADIX on the other hand, depends on everything, env variables, everything
else, the core package. Given that, it makes sense to have its filemgr
script
be different and part of something bigger.


Does this make sense?



Cheers,

Chris









From: Imesha Sudasingha <ime...@apache.org<mailto:ime...@apache.org>>
Reply-To: <dev@oodt.apache.org<mailto:dev@oodt.apache.org>>
Date: Wednesday, June 5, 2019 at 11:08 PM
To: dev <dev@oodt.apache.org<mailto:dev@oodt.apache.org>>, Chris Mattmann 
<mattm...@apache.org<mailto:mattm...@apache.org>>
Subject: Re: [GSOC] OODT docker build meeting summary



Hi Yasith,



Thanks for the meeting notes. Regarding those two questions,



1. Yes, I have noticed that those scripts are out of sync. But, we cannot

make those two even directly since, the script within Radix is supposed to

be run by another shell script which exports some variables like OODT_HOME,

RUN_JAVA. In contrast, shell script within filmgr module is supposed to be

run in standalone mode. Therefore, if we are to sync those two scripts,

only possibility is to add any missing lines and etc. @Chris Mattmann

<mattm...@apache.org<mailto:mattm...@apache.org>> what is your opinion on this?



2. They should definitely be updated. Could you create Jira issues for

those pom files (one issue containing all pom files will be enough)? It

will be great if you can send a fix for that as well.



Thanks,

Imesha



On Tue, 4 Jun 2019 at 22:20, Jayawardana, Yasith 
<yas...@cs.odu.edu<mailto:yas...@cs.odu.edu>>
wrote:



Hi All,



Here are the meeting minutes from the discussion today with Imesha, and

the discussion last week with Tom.





05/28 - GSOC Meeting [with Tom] (9 AM EST)



  *   Status

     *   I have created the DMB repository before the meeting as first

step, and plan to add the dockerfile-maven plugin next.

  *   Discussion

     *   Set default docker image name to project build name and the

default tag to project version

     *   Run the shell script for file manager in docker container and see

fix errors.

     *   Also create a diagram indicating which components depend on the

others so that others can benefit.

     *   Goal for the week is to get to a stage where dockerfile maven

generates the docker image, and filemgr can run in it without errors





06/04 - GSOC Meeting [with Imesha] (9 AM EST)



  *   Status

     *   I created a dockerfile for filemgr and made a few changes to the

filemgr script, so that filemgr start works inside docker as well. Now the

maven build process generates a docker image from the dockerfile at the

package phase, and I’m able to start it without encountering any issues.

  *   Discussion

     *   Instead of running the shell script, run the command directly in

Dockerfile. Makes things easier.

     *   For the development purposes, create the docker images on the

default build profile itself. Later move them to a separate profile.

     *   Once the image works and confirmed running well, discuss with

others on which directories should be mounted in volumes.



There are also a few concerns that I forgot to discuss on today’s meeting

which I want to mention.



  *   I saw that filemgr shell script inside radix is different from the

one in core distribution. Is this intentional or is it a bug?

  *   I saw some plugin versions in pom files are beta (especially

maven-assembly-plugin). Shouldn’t these be updated to non-beta versions?



Appreciate any suggestions on these.



Best Regards,

Yasith Jayawardana





On May 27, 2019, at 10:04 PM, Jayawardana, Yasith 
<yas...@cs.odu.edu<mailto:yas...@cs.odu.edu>

<mailto:yas...@cs.odu.edu>> wrote:



[MEETING NOTES - 05/21/2019]





 *   As the first step of the project, create a new repository from the

RADIX build.

 *   Customize it such that it creates Docker Images at “mvn install”, and

publishes them to DockerHub at “mvn deploy”.

 *   To achieve this, the first component that should be containerized is

OODT file manager, as it contains the least dependencies on other

components of OODT.

 *   Maven assembly plugin is used at the "mvn build" stage. Therefore,

the docker image creation should happen in a later stage. i.e. “mvn

install” stage.

 *   Use the tar.gz file created from the maven assembly plugin as the

source for generating the docker image for that component.

 *   The docker image creation should not be enabled by default, and

should be designed as an optional output. User should be able to configure

the credentials of DockerHub, etc somewhere in the build step.



Apologies for taking long to post this update.



[PROGRESS UPDATE]

So far, I created a new repository (


https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fyasithmilinda%2Foodt-dmb&amp;data=02%7C01%7Cyasith%40cs.odu.edu%7C7a9baa77e8274eaa1bc308d6ea8e233f%7C48bf86e811a24b8a8cb368d8be2227f3%7C0%7C0%7C636954293538526705&amp;sdata=WC2f2EN32e%2FKUSgbf9%2BYlL0OuUZq66D8eqnH6CsrAss%3D&amp;reserved=0
)

to implement the project and add the additional build steps needed to

create/publish docker images. As the implementation becomes stable, the

changed/added files will be added/modified in OODT source code, and this

repo could be used as an example implementation of it.





If there’s anything that I've misunderstood and/or needs to be changed, do

let me know. Thanks!



Best,

Yasith



On May 14, 2019, at 11:17 AM, Tom Barber 
<t...@spicule.co.uk<mailto:t...@spicule.co.uk><mailto:

t...@spicule.co.uk<mailto:t...@spicule.co.uk>><mailto:t...@spicule.co.uk>> 
wrote:



Yasith, to get you off to a good start in terms of open source development.

Can you please file the issues you expect to work on in the short term in

Jira so we can track them. If you do it it’ll ensure that you have enough

knowledge rather than us doing it and them not making sense.



Tom





On 14 May 2019 at 15:12:43, Tom Barber 
(t...@spicule.co.uk<mailto:t...@spicule.co.uk><mailto:

t...@spicule.co.uk<mailto:t...@spicule.co.uk>><mailto:t...@spicule.co.uk>) 
wrote:



Just a quick recap from our call with Yasith earlier today:



Had a good chat with Yasith about how RADIX works and how people build out

OODT applications from RADIX (




https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcwiki.apache.org%2Fconfluence%2Fdisplay%2FOODT%2FRADiX%2BPowered%2BBy%2BOODT&amp;data=02%7C01%7Cyasith%40cs.odu.edu%7C7a9baa77e8274eaa1bc308d6ea8e233f%7C48bf86e811a24b8a8cb368d8be2227f3%7C0%7C0%7C636954293538526705&amp;sdata=7PwkSlnqWAU1RbPXZX%2BmTF530KyOOiNdkz5G%2FRJXDQI%3D&amp;reserved=0

)



General Docker build plan is as follows:



* Users can deploy a standard RADIX build and optionally choose the Docker

profile at build time to build docker images from it

* Docker will be optional not standard

* RADIX will allow users to define the image tag names for easy tagging and

pushing to docker hub or similar

* In the GSOC version we will focus on single deployments of each component

not clustered up using ZK or similar we will stick that in the TODO list



Once built the end target is Kubernetes, both MiniKube and full Kubernetes.

Docker Compose may be used for interim testing and validation.



A few deploy methods exist for validation:



Standard deploy yams for K8S

Helm Chart

Or via a custom Kubernetes Operator similar to ArangoDB (




https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Farangodb%2Fkube-arangodb&amp;data=02%7C01%7Cyasith%40cs.odu.edu%7C7a9baa77e8274eaa1bc308d6ea8e233f%7C48bf86e811a24b8a8cb368d8be2227f3%7C0%7C0%7C636954293538526705&amp;sdata=%2BoyNdtvvOaSQ39PtfylQKKLdMhRIaYFIe%2FYfC2RG%2BfI%3D&amp;reserved=0

)



--





Spicule Limited is registered in England & Wales. Company Number:

09954122. Registered office: First Floor, Telecom House, 125-135 Preston

Road, Brighton, England, BN1 6AF. VAT No. 251478891.









All engagements

are subject to Spicule Terms and Conditions of Business. This email and its

contents are intended solely for the individual to whom it is addressed and

may contain information that is confidential, privileged or otherwise

protected from disclosure, distributing or copying. Any views or opinions

presented in this email are solely those of the author and do not

necessarily represent those of Spicule Limited. The company accepts no

liability for any damage caused by any virus transmitted by this email. If

you have received this message in error, please notify us immediately by

reply email before deleting it from your system. Service of legal notice

cannot be effected on Spicule Limited by email.

Reply via email to