* generic changes from https://github.com/rancher/dashboard/pull/14492/files
* VERY WIP
- move out watch event stuff into own file
- improve typing
- start resolving core unwatch & unwatchIncompatible of side nav cluster watches (not going to store) being seen as incompatible with find cluster action that does go into store
* very wip, vaguely working
* starting to tidy up
* more tidying
* wip - pre-pivot
* maybe...
instead of upfront unwatch with lots of complicated logic... only do it if we hit the issue (i.e. no page entry into page )
* tidying up
* asd
* Remove now uneeded sideNavCache
* big refactor, untested
* tidying up
* tidying
* more tidying
* more tidying
* add some super basic unit tests, fix another
* remove debug logger and last todos
* more unit test fixes
* Fix two bugs, and fix e2e tests
- we don't always have the mgmt cluster, so take this into account
- i've checked all usages of `['management/byId'](MANAGEMENT.CLUSTER`
* more e2e fixes
* Tidying up following review
- more comments
- rename of method to something more sensisble
* Disable support for ssp in side bar and clusters
* wip
* tests - wip
* wip - tidying
* wip
* wip
* tweaks
* fix and expand sub tests
* backoff tests
* tidying up
* more tidying up
* WIP
* address backoff find wiping findPage res after nav from detail to list
* add more docs
* fixes
* comments and logs updates
* remove debug
- when we calculate the value of a filter we remove entries that no longer exist
- ensure that this new version of the filter is persisted
- this means whilst on vai supported lists it correctly kicks off a http request
- this also avoids removed namespaces being used in filters if the list changes
Also
- improved some comments
- labelSelector has two primary applicators
- matching utils function
- this should normally NOT be cached and not receive updates over sockets
- this is done by stipulating transient = true
- findLabelSelector
- this should normally be cached and receive updates
- this is done by stipulating transient = false
- when applicable (workload and services detail page) we want live updates whilst we're on the page
- we don't when we leave, so unwatch
- fix and align these two and their usages
- ensure each input (transient) is correct for context
- ensure response is in the correct format and handled correctly
- improved typing
Additionally
- Improve labelling for network policy ingress/egress label selectors
- Replace empty table with 'no details' in cis report detail page's list's sub row
- On services page handle the very weird use case of no visibility on pods
- Fix issue where extension catalog was not showing when refreshing on extension catalog page list
- Fixed an issue where we would ALWAYS show false positive invalid field warning in console
- Bump up default page size from 10k to 100k
- this is for requests we make to the new vai cache outside of pages
- it matches the default they use when proxying requests to target kube cluster
* port of wip
* asdassad
* Update vai / sql cache based api filtering to match latest changes
* Revert "Pin Rancher version to v2.11-2053ce644a31cd8053d1f58e2487154b0b8513b6-head for e2e tests"
This reverts commit 60f62107e7.
* sdfdsf
* dsfdsf
* asdsad
* fix dynamic hide local cluster changes
* improvements
* aaaa
* Working through todo's/tidys
* Remove debug / tidy up
* resolving todos
* remove some debug
* Tidying up #1
* Make manual refresh and auto-refresh visible on perf setting, disabled by default
* Remove dev stuff
* Fix some e2e tests
* Updated comment
* Wire in resource.changes debounce, clearer label for feature `listAutoRefreshToggle`
* Temporarily disable all watches when vai enable
- remove once rancher/rancher#40773 is resolved, which will then finally fix#12734
* Revert "Temporarily disable all watches when vai enable"
This reverts commit c708f468e4.
* Fix nextResourceVersion
- Ensure it handles resource revisions (in both LIST or individual resources) that are strings
- add unit tests
* Update after review
* Test / Wire in new label filtering to limited places
- Wired in to
- Workload detail page - pods and services (broken due to reverse selector)
- Service Detail - Pods List
- Service create/edit - Pod selector tab
- Also
- Fix showPodRestarts in random location
- TODOs
- Lots of testing / validation required
- reverse deployment --> service selector (not services given deployment, but for each service contains pods from deployment)
- workload model usages of pods getter
- services model usages of pods getter
- many many more....
* wired in, NOT tested
* improvement
* sdfdsf
* ryrty
* werer
* The great test off begins
* testing and tidying
* testing and tidying
* First good run
* tests, fixes and improvements
* updates
* Tidying up
* Fixes (namespace orientated), tweaks, updates
* Fix unit test
* Fixes for vai off
* Re-write `matching`
- handle namespaces better (given if the resource is namespaced
- better align with legacy matching fn (given specific scenarios that should return none or all)
* Lots of fixes, but mainly vai off --> pods list --> deployment detail --> pods list updates correctly
* fix lint, unit test
* e2e fix
* Fix weird plugins build validation failure (TS error on expected param for JS method with a default)
* Fix workload services
* changes following mini code review
* Only show pods tab if workload type supports it, always show pod resource table if tab is shown
- gate incremental page by page number on is steve url + is steve cache enabled
- update incremental object property names, document
- remove fix for event lister errors
- add generic getters to help determine if steve behaviour should be used (getters will also be used in future PR)
* Server-side pagination for home page clusters list and side bar clusters
- Functional Changes
- SSP now works after vue3 bump
- Home Page Clusters list now uses server-side pagination
- Side Bar clusters list now uses server-side pagination
- Wire in now supported sorting / filtering by id and name used for table columns
- Allow pagination to be enabled given a specific context
- Call findPage without persisting to store
- New Pagination Tools
- PaginatedResourceTable - Convenience Component, wraps ResourceTable with pagination specific props
- PaginationWrapper - Convenience class to handle requests for resources and updates to them (avoiding store)
- Regressions
- Side Nav menu ready state was `mgmtCluster.isReady && !pCluster?.hasError`, now ???
* Iteration
Note - prov clusters is broken (only fetches local) due to blocking pr. breals
- notPinned list
* Fix dupe inStore
- remove from resource list, put in resource-fetch (used also by pag res table)
* Two fixes
- changes namespaces kicked of side nav cluster requests (thought pinnedIds changed)
- fix generic lists re-fetching given ns filter changes (they don't have namespaced arg)
* remove comment, backport fix
* test fixes
* E2E: Ensure we wait for cluster entries to exist before clicking on them
* backport fix for local/api filtering
* Remove debug code
* Changes after review
* e2e fixes / debugging
* More e2e fixes
* More e2e fixes
* More e2e fixes
* Fix generic pages that filter on pagination
* Attempt to fix flaky vai test
* Fix after merge from master
* Updates following new indexed files
* Fix lint and test
* Changes given real cluster tests
- general fixes
- correct issue were sorting prov clusters on mgmt cluster props (issue in master as well...)
- bit the bullet, we now don't fetch all mgmt clusters on dashboard visit.
- there could be knock on affects, but we'd need to remove it sometime in 2.11....
* Fix issues with diplaying rke1 data in home page
- includes https://github.com/rancher/dashboard/pull/12881
* Fix unit tests
### No Options Shown
- Ensure all ResourceLabeledSelect attributes reach LabelSelect component
- This worked at some point, but $attrs now does not contain values that are defined as component props
### Cannot `Load More` options
- `Pages` param Missing in API response
- This has been removed, work around added
### Search term isn't matching partial results
- ensure exact filter matching is off
We could just set depaginate to true, however this would break management of members both explorer and cluster management side at scale.
Hopefully in 2.10.0 there'll be a permanent fix for this (server-side pagination)
Main change
- change depaginate type setting from boolean to boolean || function
- depaginate function will conditionally be true
- currently condition only supports limited depagination by a pre-defined count
In addition / supporint changes
- fix lookup of norman types settings (case sensative)
- fix currentProduct(resource) lookups for norman cluster and project roles
- Setup pagination headers for the node type
- Define a pattern for fetching custom list secondary resources
- Major improvements to the way pagination settings are defined and created
- Lots of docs improvements
- Handle calling fetch again once fetch is in progress (nuxt caches running request)
- Validate filter fields (not all are supported by the vai cache
- General pagination fixes
* Fix race condition in loadCluster
* Revert new error and comments
* Improve navigation performance for products within the explorer product
* Remove unused getter
* Fix issue with not loading nwe cluster when changing clusters
* Fix bug where sidenav take a short time to update (was using queueUpdate)
* Fix lint issues
* Address PR feedback
- 9318936c72
- BUG 1
- Navigating from nodes list to a node detail page unwatches nodes list but doesn't watch new resources
- Node's list destroy has a forgetType node
- this removes entries from store and unwatches nodes list watch
- we clear the fact we're watching the node list once we receieve a resource.stop from socket
- There's a race condition, the node we're going to is still in the store... but the find action for this doesn't kick off a watch for the rsource
- This was resolved by the change in the find action
- BUG 2
- Refreshing on the detail page results in a watch for that specific node
- Navigating to the list starts a watch for all nodes, but doesn't stop the individual watch
- This was resolved by the change in subscribe
- HOWEVER
- These fixes could impact how what we watch in other cases where we might call find all and find specific in the same context
- Safer to address later
1. Switching from a detail page with a watch on a specific resource to the list page where we watch all resources did not unwatch on the specific one
2. Switching to a detail page of a resource that's already in the store should ensure we're watching it
* resource edit AS yaml
* fix cruresource (yaml from form)
- lazy load the schemaDefinitions when needed, avoids sync all to createYaml before we have an async chance to fetch schemaDefinitions
* Fix questions
- there are only four places we use questions, none of which use schema, this is just to be safe
* cluster scan, plugins/fieldsForDriver, defaultFor, validationErrors
* pathExistsInSchema
- used to optionally show conditions tab/list in resource detail view
- logs of things in ingress list/edit
* createPopulated / defaultFor
defaultFor requires resourceFields, it's only used by createPopulated in one place to support machine configs without components
* wip
* WIP MONITORING.SPOOFED
- these aren't spoofed types, but secondary schemas
- testing fix blocked, primary schema's have resourceFields
* Move steve specific (resourceField) code to steve models
- create models for steve schemas and apply to cluster and management stores
- move resoureField based validationto steve model
- move pathExistsInSchema to steve store getter
- don't fetch schemaDefinitions on start up when saving prefs (not needed and blocking)
* comments / improvements
* (untested) refactoring
* Fix alertmanager definitions, add retry definition fetch
* Fix pathExistsInSchema for path length > 2
* Fix questions that accept schemas
- tested by adding Questions to random page and the node schema
* Fix to saving configmap part 1
- the save works but doesn't show data. the yaml is the same as before. debug info added
* Validation by resourceFields is a norman specific thing, so make it such
* small refactor
* Tidying up
* Remove rebase junk
* fix linting and unit tests
* fix unit tests
* fix linting from fix for test....
* Tidying up, fix alertmanagerconfig
* Remove unit test todos
* add unit tests for resource fields
* sdssdf
* Add unit tests for pathExistsInSchema
* JS --> TS
* Store schemas in local singleton cache to avoid hitting store
* fix minor changes from review
* cruresource changes following review
- improvement - remove spurious canDiff
- createResourceYaml - pass in resource to use instead of calc in code
* WIP changes to parseType
* Fix generic cloud credential and node driver forms
* handle missing reactivity given schema definitions not in store
* fix and add unit tests for `parseType`
* Fix create-yaml test
* Changes following review
- improved comments
- SchemaDefinitionCache is now per store (and is reset as such)
- typeRef now uses parseType
* Fix dep loop by moving route based helps in auth out to utils file
* fix unit tests
* Changes following review
- the two fixes are small
- add unit tests to ensure
- findMatching action calls urlFor with correct args
- urlOptions getter create correct url given labelSelector
- UI makes two requests
- the initial incremental loading request (limit is 100 to show something quickly)
- one more for actual incremental processing (limit is 1/4 of total). should be followed by another 3 requests for remaining resources
- What currently happens
- url contains duplicated `?` in url leading to limit being ignored
- both requests will fetch ALL resources
- so x2 requests to fetch ALL resources
- what should happen
- first request of 100 returns quickly, shows stuff on page
- next request gets the first `next` url to iterate through pages
- next three requests iterate through pages
- loadManagement and loadCluster run in parallel
- both make requests to fetch mgmt clusters
- normally this is fine (loadManagement fetch finishes first, loadCluster requests then use that result)
- however in scenarios where there are a lot of clusters multiple requests are made
- we now wait for the loadManagmeent request to finish
Additionally
- make requests to correct (though harmless) url path (cluster --> clusters)
- Contributes to #9964
- Monitorign chart fetched all secrets, then all usages of it filtered down to a single namespace
- So we now only fetch
Related
- Fix scenario where fetching all then fetching namespaced would return all results
Improvement
Also improve spacingin a placeholder
* add "exludeFields" option on findAll, unit tests.
* fix e2e
* lint fix and e2e test
* updated action unit test and fixed cy.intercepts
* deleted urloptions and test, converted unit tests to ts, removed lodash
* deleted unused urloptions and test
* converted unit tests to ts
* removed lodash
* lint fix
* Added comment with issue for updating query parameters for steve
* Updated based on feedback
* added partial flag to mutations
* pulled out partial flag, excludeOptions logic now entirely within getter
* fixed tests after ripping out partial flag
* Fixed e2e test as 'find' action behavior changed but is still valid