Opened 8 years ago

Closed 5 years ago

#347 closed defect (fixed)

configclients does not show proper status of the Java clients

Reported by: sponge Owned by: str4d
Priority: minor Milestone: 0.9.10
Component: apps/console Version: 0.8.1
Keywords: configclients Cc:
Parent Tickets:

Description

Using latest mtn build: 0.8.1-31-rc

How to reproduce.
1: Go into configclients.
2: Untick something that is ticked to automatically start.
3: Click "Save Client Configuration" button

Now the unticked client shows a "Start" button...
Client was already started...
UI should show a "Stop" button.
Even better, if the client is running, autostarting or not, the Stop/Start? button should always be available. Having to untick, then save, then stop/start, then tick and save again is a bad design anyway.

Subtickets

Change History (14)

comment:1 Changed 8 years ago by zzz

  • Milestone changed from 0.8.2 to 0.8.4
  • Owner zzz deleted
  • Priority changed from major to minor
  • Status changed from new to assigned

It's always been like this, and we've discussed all of this at length before, so I assume you are just entering it here for the record. In fact, at one point, I thought you said you were going to do it? It's not so much a 'bad design' as a work-in-progress that isn't progressing.

The router has never "known" the status of clients started via clients.config. Or webapps via webapps.config.

HungryHobo? and I together got things working for plugins (the 3rd section on configclients.jsp). The UI supports the logic for showing/hiding the buttons exists, as it's the same for all 3 sections.

Adding the webapp logic should be easy, for clients will be harder. But it's more of a testing effort than anything else.

Don't volunteer for this unless you are going to do the testing too.

unassigning myself, not to say I won't do it, but I haven't yet...

comment:2 Changed 8 years ago by sponge

Didn't know it was a bug for me, will fix, thanks for reminding me/clearing this up.
Do you want this fixed right away fro 8.2 or later?

comment:3 Changed 8 years ago by zzz

  • Milestone changed from 0.8.4 to 0.8.3
  • Owner set to sponge

<zzz> sponge re: 347, if you want to do it, great, if so pls wait until after 0.8.2 as running clients.config clients in thread groups will take some code and may have unexpected side-effects
<sponge> ok, super!
<sponge> again, thanks for the reminder
<zzz> I don't think you promised to do it, just that we talked about it
<sponge> also, I might be able to do it without threadgroups
<zzz> checking whether a webapp is running should be a one-liner (all the code is there) if you want to do that for 0.8.2
<sponge> however tg's are really the right way to go
<sponge> that can wait
<sponge> I'll hold off till next cycle
<zzz> the client runner back-end stuff for tg's is there... but you have to find a place to remember it so you can get at it from configclients
<sponge> I rather it all done at once, not a little here, and a little there
<zzz> no rush, not a major bug, and been like that for years

  • sponge nods

<zzz> HH stopped when he got it working for plugins, he did most of the work, just have to keep going
<sponge> I just always found it to be one of those annoyances
<zzz> yup
<zzz> ok I'll assign to you w/ milestone 0.8.3
<sponge> great
<sponge> I gleefully accept the challenge :-)

comment:4 Changed 8 years ago by sponge

  • Milestone changed from 0.8.3 to 0.8.7

comment:5 Changed 7 years ago by str4d

  • Milestone changed from 0.8.12 to 0.8.14

comment:6 Changed 7 years ago by zzz

  • Milestone 0.8.14 deleted

Milestone 0.8.14 deleted

comment:7 Changed 6 years ago by zzz

  • Milestone set to 0.9.4

Seeing no progress from sponge after 2 years (guess the glee wore off...), I'm going to work on this for 0.9.4.

TODO:

  • New ClientApp? interface for clients
  • New ClientAppManager? in the router
  • LoadClientAppsJob? will check for the interface in the class. If present, it will instantiate via a standard constructor, then start. The client will report lifecycle state changes to the ClientAppManager?. If the interface is not implemented, the client will be started with main() as usual.

comment:8 Changed 6 years ago by zzz

Most of the infrastructure is in 0.9.3-1. RouterConsoleRunner? and TunnelControllerGroup? are converted. There's a new JettyStart? to replace the org.mortbay.start.Main.

What remains is:

  • hook configclients.jsp into the new app manager
  • SAM
  • BOB
  • decide what to do about plugins
  • URLLauncher we can leave alone

Even if we just focus on clients (and not plugins), I'm not sure this will all be ready for 0.9.4. I may just let this soak for a while and push the completion to 0.9.5.

comment:9 Changed 6 years ago by zzz

  • Milestone changed from 0.9.4 to 0.9.6

Implemented in 0.9.5-5 rev c795930368b02f50866381aa077a672208b2dfc9

SAM and BOB must be converted to implement the ClientApp? interface to get the stop button.

I will do SAM and then reassign the ticket to you to do BOB.

comment:10 Changed 6 years ago by zzz

  • Component changed from apps/console to apps/BOB

SAM implemented in 0.9.5-6 rev 3f9f2b8ac593cacbc8eec2d43ecf85a48c32373b

Reassigning to you for BOB.

comment:11 Changed 5 years ago by str4d

  • Milestone changed from 0.9.6 to 0.9.10
  • Owner changed from sponge to str4d
  • Status changed from assigned to started

Working on this now.

comment:12 Changed 5 years ago by str4d

  • Component changed from apps/BOB to apps/console
  • Status changed from started to infoneeded

BOB implemented in 0.9.9-6 rev db1de6263913eb52bd611dd736c6fd78a2902351

What are we doing about plugins?

comment:13 Changed 5 years ago by zzz

  • Status changed from infoneeded to assigned

re: plugins

Most plugins are webapps and are started/stopped that way.

Some plugins do supply a clients.config file. Those are started via the ClientApp? interface automatically, via LoadClientAppsJob?.

str4d added the ability to stop a ClientApp? in PluginStarter? in 0.9.12 2aa15805ec56c38779cd71ce576881bd03edf2e5

comment:14 Changed 5 years ago by zzz

  • Resolution set to fixed
  • Status changed from assigned to closed
Note: See TracTickets for help on using tickets.