Hey,
I have prototyped the execution of operations on the feed (WF-server for
now).
Note, that this is not any way of final implementation, but merely a
proof of
concept to get this started with the possibility to discuss some less
abstract situation/code.
Also for the "action on all selected items" - that is currently not
taking
the selected items only.
This works by having a new endpoint on the server
http://localhost:8080/hawkular/opsq
where a post to it submits one or more jobs onto the server.
A get to opsq/{feedid} then pulls one job for that feed.
The wf-agent now has a new runnable 'OpsGroupRunnable' that
once per minute polls that above endpoint and executes jobs that are
available.
I think that for a real implementation we should consider upgrading
the server-feed communication from many http/1.1 requests to
a websocket connection, that is then multiplexed on the server and
when something is added to the queue of jobs, it directly gets
pushed instead of the agent polling for it.
Also the result of the operation needs to be delivered back to the
server and ui; we need to add some unique operation id, to be able
to correlate request and result.
This also brings back the resource type discussion (see other email),
as e.g. a .war file does not support a :delete action. This needs e.g.
to
be broken out into a :undeploy and then remove-from-vf-content-repo
action. Or there are no :enable/:disable actions. They may need to be
translated into deploy/undeploy. Or greyed out in the UI.
The implementation spans multiple repositories - I do not intend
to send pull-requests, as this is only a prototype / proof of concept.
Hawkular-Monitor:
https://github.com/pilhuhn/hawkular-agent/tree/ops-get
UI-Services:
https://github.com/pilhuhn/hawkular-ui-services/tree/ops-get
Hawkular:
- QueueHandling
https://github.com/pilhuhn/hawkular/tree/ops-get/modules/ops-queue
- UI
https://github.com/pilhuhn/hawkular/tree/ops-get/ui/console/src/main/scripts