Commit Graph
5004 Commits
Author SHA1 Message Date
Krzesimir Nowak 0e06423a37 Forward control requests to plugins
Thanks to that, plugins can react to requests from controls they
exposed.

To make it work, plugins registry modifies each plugin's report by
prepending the plugin ID to the control name the plugin has exposed
before sending it to the app. Then the registry installs the control
request handler for this faked control name, which forwards the
request to the correct plugin.

This adds a new API endpoint to plugins next to "/report" - a
"/control" entry. The body of the request is the JSON-encoded
xfer.Request instance.
2016-08-12 17:03:42 +02:00
Krzesimir Nowak 41193b428e Make control handlers registry an object and extend its functionality
It is not a singleton anymore. Instead it is an object with a registry
backend. The default registry backend is provided, which is equivalent
to what used to be before. Custom backend can be provided for testing
purposes.

The registry also supports batch operations to remove and add handlers
as an atomic step.
2016-08-12 17:03:42 +02:00
Krzesimir Nowak c6b5d98699 Test the case when a plugin reports more than one plugin 2016-08-12 17:03:42 +02:00
Krzesimir Nowak 993eebeea9 Remove impossible case of an empty plugin ID
Plugin ID must be non-empty when the plugin is created and the
followup reports cannot change it.
2016-08-12 17:03:42 +02:00
Krzesimir Nowak 9d48fdc32c Restrict the set of allowed characters in plugin IDs
We will want to put plugin id in a control id, which is sent to an app
and then to GUI. When we get a control request from GUI, we will want
to extract the plugin ID from the control name. To do it unambiguously
we need some separator made of chars that are not allowed in a plugin
name. This is to avoid the situation when there are two plugins:
"Plugin" and "PluginFoo". "Plugin" exposes a control named
"FooControl" and "PluginFoo" exposes a control named "Control". Faking
the control names which will be sent to the app would result in two
"PluginFooControl".

One possible option for plugin ID and control name separator would be
"/", but that won't work, since the request sent from GUI to the app
to <probe>/<node>/<control> would actually be
<probe>/<node>/<plugin>/<control> and as such wouldn't match the URL
template in RegisterControlRoutes().
2016-08-12 17:03:42 +02:00
Krzesimir Nowak c797e7ab0e Use consistent plugin ID in the http-requests plugin
The socket has the "http_requests.sock" filename, so ID should be
"http_requests", not "http-requests".
2016-08-12 17:03:42 +02:00
Krzesimir Nowak ccd26fe69d Ban the possibility of changing plugin's ID
Changing plugin's ID only complicates control handling in plugins so
let's ban it.
2016-08-12 17:03:42 +02:00
Krzesimir Nowak 1f222b9156 Make dumper a bit more verbose
So it displays differences behind interface that would otherwise go
unnoticed (like string vs []byte).
2016-08-12 17:03:42 +02:00
Krzesimir Nowak 0f1cb82084 Allow testing only a subset of directories
This can be done by calling TESTDIRS="./report ./probe" make tests
2016-08-12 17:03:42 +02:00
Mike Lang db5efc0537 Merge pull request #28 from weaveworks/mike/add-image-tag
Import image-tag script into build tools so it can be shared
2016-08-12 06:36:07 -07:00
Mike Lang 5312c40075 Import image-tag script into build tools so it can be shared
We have divergent versions of this script across repos.
This particular version comes from 6334836@scope.
We in particular want this version's changes to support branches
with a '/' character in them.
2016-08-12 14:30:39 +01:00
Simon Howe 3851d9c662 Right align numbers, left align strings.
ala excel/spreadsheets etc.
2016-08-12 15:18:39 +02:00
Matthias Radestock 6334836f69 Merge pull request #1768 from weaveworks/1202-silence-abnormal-close
silence abnormal websocket close

Fixes #1202.
2016-08-12 13:53:51 +01:00
Matthias Radestock 21c188d600 Merge pull request #1739 from weaveworks/1730-no-node-copy
Remove and optimize more Copy()s
2016-08-12 12:30:54 +01:00
Alfonso Acosta cfb686b546 Merge pull request #1774 from weaveworks/1759-remove-k8s-id-col
Remove kubernetes_id column from the grid view.
2016-08-11 17:43:21 +01:00
Alfonso Acosta 22434616fa Merge pull request #1782 from weaveworks/1779-elide-service-token
Elide service-token when logging commandline arguments
2016-08-11 17:12:27 +01:00
Alfonso Acosta 04349cc86d Merge pull request #1783 from weaveworks/1777-do-not-bitch-on-stop
Don't complain when stopping Scope if it wasn't running
2016-08-11 16:57:05 +01:00
Alfonso Acosta 0c3235ae3d Review feedback 2016-08-11 15:41:07 +00:00
Alfonso Acosta 0a1232ec3c Don't complain when stopping Scope if it wasn't running 2016-08-11 15:21:06 +00:00
Alfonso Acosta 276ffa338e Elide service-token when logging commandline arguments 2016-08-11 15:07:08 +00:00
Alfonso Acosta 77bb186039 Review feedback 2016-08-10 16:19:58 +00:00
Alfonso Acosta 166bdf13f3 Remove redundant kubernetes ID 2016-08-10 16:01:28 +00:00
Simon 1d4904d56f Merge pull request #1775 from weaveworks/1749-filter-by-relatives
Adds support for filtering graph/table by relatives
2016-08-10 16:01:25 +02:00
Alfonso Acosta 9320b10a2e Merge pull request #1780 from weaveworks/1733-scope-loopback-connections
Handle loopback addresses correctly when tracking connections
2016-08-10 14:52:44 +01:00
Simon 718bf5b3a0 Merge pull request #1773 from weaveworks/1692-scale-node-labels-with-nodes
Scale node labels with the node's size.
2016-08-10 14:32:45 +02:00
Simon Howe 5cf8ee2a6b Move chrome-css-fix out of js into css w/ comment 2016-08-10 14:10:10 +02:00
Alfonso Acosta 94eb7454ff Do not attribute connections to containers based on loopback addresses 2016-08-10 10:56:37 +00:00
Alfonso Acosta 3892273096 Append namespace to endpoint scope for loopback connections 2016-08-10 10:43:04 +00:00
Mike Lang d0f0e8d92e Merge pull request #1776 from weaveworks/mike/launcher/fix-whitespace
launcher script: Fix inconsistent whitespace
2016-08-09 12:18:49 -07:00
Simon Howe 4d5d0d5dc2 Fixes origin of node-details-panel expanding animation 2016-08-09 20:16:23 +02:00
Simon Howe 8f4b3ab97d Fixes animation of node labels on focus.
Was a bit janky there for a bit.
2016-08-09 20:00:39 +02:00
Mike Lang 7aec1e172d launcher script: Fix inconsistent whitespace 2016-08-09 09:57:12 -07:00
Simon Howe fc2fcfb298 Adds support for filtering node/table by relatives
Now that they are available in the summary data.
2016-08-09 18:20:43 +02:00
Alfonso Acosta b8c99ed7cc Revert "Cache generated ids to relieve pressure on the GC"
It wasn't working as noticed by @rade (note the err != nil) and was complicating
the code.

This reverts commit 2f760f2f33.
2016-08-09 14:59:28 +00:00
Simon Howe 564c64ec21 Fixes truncating of labels 2016-08-09 16:07:25 +02:00
Simon Howe 5846222fe1 Scale node labels with the node's size.
- Within certain bounds. Still have min-label size, mainly effects nodes
  that get really big.
- Set a max size on nodes too, really big ones lose their border.
2016-08-09 14:57:13 +02:00
Alfonso Acosta d06547e596 Merge pull request #1770 from weaveworks/1750-extend-k8s-pause-containers
Identify kubernetes pause containers more broadly
2016-08-09 11:26:07 +01:00
Paul Bellamy c40a1b0c3d Merge pull request #1751 from kinvolk/krnowak/lint
Lint fixes
2016-08-09 09:45:10 +01:00
David a11ddfbaa6 Merge pull request #1766 from weaveworks/1715-search-label
Fixes search icon position on chrome
2016-08-08 18:39:27 +02:00
Alfonso Acosta b64686ffc3 Identify kubernetes pause containers more broadly 2016-08-08 14:16:07 +00:00
Matthias Radestock 7480654aaf don't complain about closed websockets in pipe connections 2016-08-06 00:06:34 +01:00
Matthias Radestock c3315f9c99 reduce log level for absent pipe
since we can get this when a pipe has been closed normally
2016-08-05 23:47:35 +01:00
Matthias Radestock df467d80de log error as error 2016-08-05 23:37:33 +01:00
Matthias Radestock 6d9194cfaf treat EOF and ErrClosedPipe in websocket connections as uninteresting
both occur in various states of disconnectedness
2016-08-05 23:32:34 +01:00
Matthias Radestock 4d746a6cf4 log container id in attach/exec errors 2016-08-05 19:23:54 +01:00
Matthias Radestock 3af45583e5 don't log attach/exec close
since we don't log the start either
2016-08-05 19:19:09 +01:00
Matthias Radestock 190e840484 reduce some pipe log noise
NB: the m/t version remains unchanged since it is generally a lot
noisier
2016-08-05 19:16:15 +01:00
Matthias Radestock 25011f20e0 silence websocket.CloseAbnormalClose
We get this when windows are closed, so really should treat it just
like any other close.
2016-08-05 19:07:03 +01:00
David Kaltschmidt 4c5ac4fc33 Fixes search icon position on chrome
* simplify search icon and label markup

Fixes #1715
2016-08-05 19:29:59 +02:00
Alfonso Acosta 9740fcca40 Merge pull request #1765 from weaveworks/release-0.16
Release 0.16.2
2016-08-05 16:38:43 +01:00