- Add distinction between `getInstance` and `getInstanceOrCreate` since
it is not always possible to create an instance (since you might not
know the correct arguments)
- Remove all the `export const *Store = *Store.getInstance<*Store>();`
calls as it defeats the purpose of `Singleton`. Plus with the typing
changes the appropriate `*Store.getInstance()` is "short enough".
- Special case the two extension export facades to not need to use
`getInstanceOrCreate`. Plus since they are just facades it is always
possible to create them.
- Move some other types to be also `Singleton`'s: ExtensionLoader,
ExtensionDiscovery, ThemeStore, LocalizationStore, ...
- Fixed dev-run always using the same port with electron inspect
- Update Store documentation with new recommendations about creating
instances of singletons
- Fix all unit tests to create their dependent singletons
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Ignore clusters with invalid kubeconfig
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Improve error message
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Mark cluster as dead if kubeconfig loading fails
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Fix tests
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Validate cluster object in kubeconfig when constructing cluster
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Add unit tests for validateKubeConfig
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Refactor validateKubeconfig unit tests
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Extract ValidationOpts type
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Add default value to validationOpts param
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Change isDead to property
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Fix lint issues
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Add missing new line
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Update validateKubeConfig in-code documentation
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Remove isDead property
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Display warning notification if invalid kubeconfig detected (#2233)
* Display warning notification if invalid kubeconfig detected
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* add no-unused-vars and no-unused-imports
* added quotes: double, and remove ignore pattern
* move itif and describeif into utils
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Save and restore lastActiveClusterId
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Activate clusters from workspaces page
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix saving last cluster while jumping from tray
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding workspace switch tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Remove console.log()
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clean duplicated ClusterId definition
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving lastActiveClusterId field into WorkspaceModel
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* fix extensionLoader error on dev environments where renderer might start early (#1447)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Add Search by Ip to Pod View (#1445)
Signed-off-by: Pavel Ashevskii <pashevskii@mirantis.com>
* Make BaseStore abstract (#1431)
* make BaseStore abstract so that implementers are forced to decide how to store data
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Enforce semicolons in eslint
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
* Add a few missing folders to be linted.
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
* Use @typescript-eslint/semi.
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
* Allow extension cluster menus to have a parent (#1452)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix SwitchCase indent rule in eslint (#1454)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Revert "fix SwitchCase indent rule in eslint (#1454)"
This reverts commit 082774fe6e.
* Revert "Allow extension cluster menus to have a parent (#1452)"
This reverts commit 622c45cd6d.
* Revert "Use @typescript-eslint/semi."
This reverts commit 890fa5dd9e.
* Revert "Add a few missing folders to be linted."
This reverts commit c7b24c2922.
* Revert "Enforce semicolons in eslint"
This reverts commit ca67caea60.
* Revert "Make BaseStore abstract (#1431)"
This reverts commit 4b56ab7c61.
* Revert "Add Search by Ip to Pod View (#1445)"
This reverts commit 4079214dc1.
* Revert "fix extensionLoader error on dev environments where renderer might start early (#1447)"
This reverts commit 8a3613ac6f.
* Split workspace tests to smaller ones
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Missing semicolons
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Split workspace tests a bit more
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding extra click in Add Cluster button
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding more awaits to check running cluster
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Wait for minikube before running tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: pashevskii <53330707+pashevskii@users.noreply.github.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
* Refactor testing harness to use defaults
- Move tests into defaultly named test folders
- Use default test suffix of ".test" instead of "_test"
- Make cluster-store tests unit tests by adding more
nesting, so that order of tests doesn't matter
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>