The removal part was an accident and it took me almost a full day to debug why things didn't work. I didn't even know about the generated stuff. I agree that it's a fringe case though.
On Fri, Nov 30, 2018 at 1:32 AM larry mccay <lmc...@apache.org> wrote: > I don't know why you would remove the data/services directory but this is > essentially the same as what I described. > Whether there are no service definitions or you have changed one and try to > get the new version uptaken it is the same problem. > > As I said, we could add an option to redeploy all topologies on startup but > we would definitely not want to make this default setting. > I know of some deployments that have LOTS of topologies and redeploying > them all on every restart would be needlessly expensive. > > On Thu, Nov 29, 2018 at 6:27 PM Lars Francke <lars.fran...@gmail.com> > wrote: > > > There's always a good chance that I misunderstood something as well. So > > take it with a grain of salt. > > > > 1) Fresh Knox installation > > 2) Remove data/services folder > > 3) Start Knox > > 4) Look > > at /data/deployments/sandbox.topo.166f2486250/%2F/WEB-INF/gateway.xml > > It'll contain only "<?xml version="1.0" encoding="UTF-8"?><gateway/>" > > 5) Stop Knox > > 6) Move data/services in place > > 7) Start Knox again > > > > Knox now will _not_ update the generated gateway.xml file. To me, that is > > unexpected. Especially because the whole generation stuff is not > documented > > while the services are. > > This is because Knox looks at the timestamp of the topology file, > generates > > a hash out of it and if that's unchanged it keeps the old gateway.xml > file. > > > > > > On Wed, Nov 28, 2018 at 9:35 PM larry mccay <lmc...@apache.org> wrote: > > > > > It isn't exactly clear to me what you encountered here. > > > I think that you are saying that you made changes to "services files" - > > > meaning the service definition. > > > > > > If that is the case then a simple redeploy of the topology will not be > > > enough. > > > You have to restart the gateway so that the service definitions are > > > reloaded then unfortunately you have to touch the topology file/s that > > host > > > the service that you changed the definition for. > > > > > > There is an undocumented config element in gateway-site.xml to force > auto > > > deployment on start for specific topologies - it is a comma separated > > list > > > of topology name: > > > gateway.auto.deploy.topologies > > > > > > It defaults to "manager,admin" > > > > > > You could add your topologies to that and have them redeployed at > restart > > > if you like - make sure to leave manager and admin in there though. > > > > > > If you would like a config item that redeploys each topology on startup > > > then please feel free to file a JIRA for it and we can consider it for > > > 1.3.0. > > > > > > On Wed, Nov 28, 2018 at 3:01 PM Lars Francke <lars.fran...@gmail.com> > > > wrote: > > > > > > > I was facing another weird issue today that took me a while to chase > > > down. > > > > > > > > I didn't have the proper services directory in place when starting > Knox > > > for > > > > the first time. This meant that a gateway.xml file was created in the > > > > deployments dir for my topologies that was totally empty. It didn't > > have > > > > any filters so all my tests returned a "Failed to match path" error. > > > > > > > > The problem here is that Knox checks on startup what the timestamp on > > the > > > > topology is and only if that has changed does it create a new > > deployment. > > > > If anything else changes this is not rewritten. So changes to the > > > services > > > > files will not be noticed by Knox and silently ignored. > > > > > > > > I understand that this is an edge-case but other than a slightly > longer > > > > startup would it hurt to recreate the deployments on every startup? > > > > > > > > Cheers, > > > > Lars > > > > > > > > > >