Hmmm, I agree with Udo. I’d like to push a new version of my application with a single idempotent command. The server should be smart enough to figure out what's in my bundle and understand how to deploy it including any dependencies (because who writes dependency-free code?).
I do want some lifecycle hooks to alloc/free resources. This seems conceptually similar to the “war” model which is pretty familiar to most Java devs. Anthony > On Jan 6, 2017, at 11:37 AM, Udo Kohlmeyer <ukohlme...@pivotal.io> wrote: > > In some ways that is a great idea.... but sometimes too explicit... Do we > expect them to have fine grained jars? > Also how do we handle dependencies.... as a single util class might be used > by both a cache-listener and a partition listener... is the expectation that > we update the dependent util class for one but not the other.... > > It's a very grey area.... > > On 1/6/17 11:19, John Blum wrote: >> How about... >> >> * deploy function >> * deploy cache-listener >> * deploy cache-loader >> * deploy cache-loader >> * deploy resource (jar, xml, properties, etc) >> * etc. >> >> Might as was make it explicit. For instance, I may have a JAR file I just >> deployed (uploaded) that contains Functions, Listeners, Loaders, Writers, >> etc but I only want to deploy functions. >> >> Having 1 uber "deploy" command with many options gets cumbersome. >> >> It is a simple matter to introduce multiple command but have those commands >> share similar logic. This would also enable different workflows for >> different commands in a more non-convoluted, maintainable way. >> >> These could be matched with corresponding `undeploy` commands. >> >> Food for thought, >> >> John >> >> >> >> On Fri, Jan 6, 2017 at 11:11 AM, Kirk Lund <kl...@apache.org> wrote: >> >>> With appropriate constraints, a copy file type command could be secure. >>> >>> 1) don't use Apache Geode without security AND make the command require >>> authorization permissions >>> 2) limit the target directory to a directory under the working directory of >>> the remote server >>> 3) rename it to "deploy resource" so people don't expect it to copy to an >>> arbitrary target directory on the remote machine >>> >>> Back to "deploy jar": >>> >>> The deploy command is only for deploying Apache Geode callbacks (Function, >>> CacheListener, etc). "deploy resource" such Spring jars or Spring xml files >>> or anything similar does not overlap with "deploy jar". There is continued >>> confusion over what "deploy jar" is or does. I propose we rename it to >>> "deploy functions" or "deploy callbacks" or something along those lines to >>> end the confusion. >>> >>> On Fri, Jan 6, 2017 at 8:13 AM, Michael Stolz <mst...@pivotal.io> wrote: >>> >>>> So maybe a generic copy command is too insecure, I agree. >>>> What we should do is think about exactly what files we think we are >>> trying >>>> to deploy. >>>> >>>> 1. I believe that there is a need to deploy dependency jars into the >>>> system classpath. >>>> 2. I believe that there is also a desire to be able to deploy Spring >>>> Data Geode xml configuration files. >>>> 3. There is also an issue with attempting to deploy Spring Data Geode >>>> functions that we should try to work out. >>>> >>>> Anything else that anyone is aware of? >>>> >>>> >>>> >>>> >>>> -- >>>> Mike Stolz >>>> Principal Engineer, GemFire Product Manager >>>> Mobile: 631-835-4771 >>>> >>>> On Fri, Jan 6, 2017 at 10:59 AM, Jacob Barrett <jbarr...@pivotal.io> >>>> wrote: >>>> >>>>> Agree with Anthony. A copy command would either duplicate what deploy >>>> does >>>>> by only putting files within as specific location in the server's >>>> directory >>>>> or creating a security nightmare if allowed to write anywhere on the >>>> host. >>>>> >>>>> On Fri, Jan 6, 2017 at 7:56 AM Anthony Baker <aba...@pivotal.io> >>> wrote: >>>>>> I think there are lots of great OS orchestration and automation >>> tools. >>>>>> I’m not sure I understand the need for `gfsh cp`. If I could easily >>>> grab >>>>>> the member hostnames from `gfsh list members` and pipe them into >>> mpssh >>>>> (for >>>>>> example) that would do the job. >>>>>> >>>>>> I *do* like the idea of an improved `gfsh deploy` that supports hot >>>>> deploy >>>>>> and reconfiguration. >>>>>> >>>>>> Anthony >>>>>> >>>>>>> On Jan 6, 2017, at 2:38 AM, Swapnil Bawaskar <sbawas...@pivotal.io >>>>>> wrote: >>>>>>> Some application may need to copy files to all the servers. These >>>> files >>>>>>> could either be data files or they could be configuration files >>>> needed >>>>> by >>>>>>> the application or they could be jar files (that don't have >>> functions >>>>> but >>>>>>> have say, spring data geode jar files) that need to be on the >>>> server's >>>>>>> classpath. >>>>>>> We could accomplish this by enhancing the current gfsh "deploy" >>>> command >>>>>> to >>>>>>> accept any kind of file and write it to the servers file system OR >>>>>> create a >>>>>>> new gfsh "copy" command to copy any arbitrary file to the servers. >>>>>>> I would personally like to repurpose the deploy command but would >>>> like >>>>> to >>>>>>> hear the community's opinion. >>>>>>> >>>>>>> Thanks! >>>>>> >> >> >