whamcloud / gui Goto Github PK
View Code? Open in Web Editor NEWRealtime Graphical User Interface
License: MIT License
Realtime Graphical User Interface
License: MIT License
The time on the dashboard is hard coded to UTC. Add the timezone picker component to the dashboard such that the user can select between utc and local time.
The time on the status and log page is currently displaying using UTC. We should have the option of displaying time in either UTC or local time.
The disconnect modal will display whenever the EventSource or realtime are disconnected. Converting it to an inferno component is the first step in syncing the two with the store.
Intel logo showing on status page. Replace with the whamcloud logo.
With regards to #162, disconnects need to be handled such that the app attempts to reconnect to the EventSource. This can be tested by turning wifi off and then back on again.
We currently gate dispatch source streams with ALLOW_ANONYMOUS_READ
.
This is insufficient in the case that ALLOW_ANONYMOUS_READ
is false
.
In that case, the stream will never be called, regardless or whether the user has logged in or not.
Instead there should be an or check of ALLOW_ANONYMOUS_READ || CACHE_INITIAL_DATA.session.user
I think, before there was some information to display.
However, nowadays it shows nothing but error in developer console:
Content Security Policy: The page’s settings blocked the loading of a resource at http://172.16.20.113:7443/api/volume/?limit=0&category=unused (“connect-src”).
You(or browser) force to use HTTPs
and the issue seems to be 301
to HTTP
which is considered to be prohibited.
Also, some warning that might be interesting:
Content Security Policy: Directive ‘child-src’ has been deprecated. Please use directive ‘worker-src’ to control workers, or directive ‘frame-src’ to control frames respectively.
Browser: Firefox ESR 60
IML version: latest docker images
Host: 172.16.20.113:7443
Now that srcmap-reverse has been extracted to its own service using socket activation, we no longer need to send traces to realtime. Instead, we can send traces to the srcmap-reverse service itself.
The confirm modal is written in angular. As we make updates for long polling and modify the action dropdown component the confirm modal will need to be written in Inferno. The approach should be as follows:
confirm modal
Inferno component.confirm modal
to the storeconfirm button
is pressed:
confirm and skip
button is pressed:
proceed
on the first step.Currently we are using module tools for continuous deployment. We should use the copr builder instead.
After making the status time configurable between local time and UTC time, a user can click on the begin or end date and be brought to the log page. On the log page, we need to ensure a few things:
UTC
appended to the end of the string.Upon manual review, it appears that streams are not closing on the dashboard and log pages.
Make sure these streams close upon leaving the pages. In addition audit all streams to make sure they are closing properly.
This ticket represents items that are left to integrate the action dropdown wasm component into the gui:
The storage plugin screen is the last place in the GUI where we are using highcharts.
Highcharts is a paid dependency and is not open source friendly.
Re-write the storage plugin screen to remove highcharts.
In https://github.com/intel-hpdd/GUI/blob/c1d8fd597d777bbd49aeee830a6b37ca10e5bb3c/source/iml/file-system/file-system-dispatch-source.js#L47 The jsonMask
is inside the qs instead of above it. This will cause more data to be fetched then we want, as fs is one of the larger endpoints.
Move jsonMask
up.
Now that Inferno and babel have been upgraded we need to upgrade flow-bin to allow us to use some of the new features in the gui (such as fragments).
As follow-on for #162, take the output from iml-warp-drive (currently just locks) and place it into a reducer.
The current format of lock changes is:
{
"49:1": [
{
"job_id": 541,
"content_type_id": 49,
"item_id": 1,
"description": "Stop Pacemaker on mds1.local",
"lock_type": "write",
"action": "add"
},
{
"job_id": 542,
"content_type_id": 49,
"item_id": 1,
"description": "Stop Corosync on mds1.local",
"lock_type": "read",
"action": "add"
}
],
"43:1": [
{
"job_id": 542,
"content_type_id": 43,
"item_id": 1,
"description": "Stop Corosync on mds1.local",
"lock_type": "write",
"action": "add"
}
]
}
"Volumes" widget (which is under "Servers") throws "An unexpected error" in case of more than 50 disks available on the system (any number of disks which allows to push button "next>").
Issue occurred somewhere between:
[root@c003 ~]# date Thu Feb 21 08:14:21 MST 2019 [root@c003 ~]# date Thu Feb 21 08:16:15 MST 2019
Logs in attachment:
`
Your sosreport has been generated and saved in:
/var/tmp/sosreport-c003-2019-02-21-abtalkk.tar.xz
The checksum is: 19f1cfdcbffa2aa953afb96360093153
`
Create/add 50+ disks to the server, wait until all of the will be visible in GUI, click (left drop-down menu) Servers -> Volumes -> next
Operating System - CentOS 7.6
python2-iml-manager-libs-4.1.0.0-5149.48.gdd6fb32.el7.noarch
iml-device-scanner-aggregator-2.2.0-198.el7.x86_64
iml-srcmap-reverse-3.0.7-1.el7.noarch
python2-iml-manager-cli-4.1.0.0-5149.48.gdd6fb32.el7.noarch
python2-iml-common1.4-1.4.4-43.2.el7.noarch
iml-gui-6.4.1-835.1.el7.noarch
iml_sos_plugin-2.2.2-1.el7.noarch
iml-view-server-8.0.4-1.el7.noarch
iml-update-handler-1.0.0-28.16.g0aa8322.el7.noarch
iml-socket-worker-4.0.2-1.el7.noarch
python2-iml-manager-4.1.0.0-5149.48.gdd6fb32.el7.noarch
iml-online-help-2.5.2-1.el7.noarch
iml-old-gui-3.0.1-43.el7.noarch
iml-realtime-7.0.1-1.el7.x86_64
When the "Install Updates" button is disabled on the server page it does not currently display the tooltip. This needs to display even though the button is disabled.
After configuring HSM and closing the configure modal, the grey modal in the background never disappears. Pulling up the console reveals an error in get-agent-vs-copytool-chart.js
here:
const getMax = fp.flow(fp.map(getNumbers), xs => [].concat(...xs), d3.max);
Refreshing the page solves the problem.
🚨 You need to enable Continuous Integration on all branches of this repository. 🚨
To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.
Since we didn’t receive a CI status on the greenkeeper/initial
branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.
If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/
.
Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please delete the greenkeeper/initial
branch in this repository, and then remove and re-add this repository to the Greenkeeper App’s white list on Github. You'll find this list on your repo or organization’s settings page, under Installed GitHub Apps.
When adding a server I noticed that the command modal is re-loading the app inside the command modal window. I believe this is due to the following line in command-modal-ctrl.js:
<div ng-repeat="job in jobTree.jobs track by job.id" ng-include="'job.html'"></div>
This code should instead read:
<div ng-repeat="job in jobTree.jobs track by job.id" ng-include="'/gui/job.html'"></div>
Furthermore, job.html must update its line as well from:
<div ng-repeat="job in job.children track by job.id" ng-include="'job.html'"></div>
to
<div ng-repeat="job in job.children track by job.id" ng-include="'/gui/job.html'"></div>
Setting up mutability and preparing the front end for the changes that remove long polling require that the dependencies be upgraded. This includes the following:
Upgrading these dependencies will require some work within the code base. The following items will be required:
Steps to reproduce:
IML Version: 4.0.9.1
OS: EL 7.6
Lustre: 2.10.6
While attempting to stop a filesystem using IML the following error occurred on the web console:
Error: The json mask disk not match the angular.js:14199 response and as a result returned null. Examine the mask:"undefined" From PUT request to /api/filesystem/1/
Fox-13 shows a customer who needs support for 32 nids. We would like to put in a better interface but for now, we will add support for 50 nids.
All I see is a warning and an error:
`WebAssembly.instantiateStreaming` failed. Assuming this is because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:
LinkError: import object field '__wbg_call_0492299fb1f5901e' is not a Function package.js:936:17
TypeError: Body has already been consumed.
Stack trace:
init/result</<@https://172.16.20.113:7443/wasm-components/package.js:938:28
angular-ui-router.js:5857
TypeError
columnNumber: 28
fileName: "https://172.16.20.113:7443/wasm-components/package.js"
lineNumber: 938
message: "Body has already been consumed."
stack: "init/result</<@https://172.16.20.113:7443/wasm-components/package.js:938:28\n"
__proto__: Object { stack: "", … }
init/result</<@https://172.16.20.113:7443/wasm-components/package.js:938:28
angular-ui-router.js:5858
waitForCommandCompletion
was not updated to unary functions when currying was removed.
As follow-on from #163, update the action dropdown and job indicator to work with the lock stream.
This should be as simple as matching the content_type and id with the record being looked at, and should allow for some logic in these components to be dropped.
The command modal is no longer showing all jobs and displaying links for active jobs.
Instead it is showing the first job which sometimes does not appear as clickable.
Consider the following:
Even though this command has 18 child jobs listed, only one is being displayed and it's not clickable even though it has steps.
Immer allows us to seamlessly work with immutable data. The reducers should be updated to use immutable data to prevent mutation.
I haven't been able to reproduce this yet but I ran into a case in which the job indicator threw an error because it is not using track by
:
We probably need to add in "track by" in the ng-repeat directive to fix this:
https://github.com/whamcloud/GUI/blob/master/source/iml/job-indicator/job-indicator.js#L120-L128
When you draw charts, if user points out to data associated with one target or another, a number is shown which seems to be a primary key
for this target.
However, elsewhere in UI names show instead. I even believe it cannot be seen elsewhere besides looking on URL
s.
It would be good if you make it least bit user friendly.
Unfortunately, hard to screenshot that.
Browser: Firefox ESR 60
IML version: latest docker images
The Metadata Server Count column is listing the number of targets instead of the number of servers. Since DNE is an option that allows more than one metadata target, the label should be updated to read, "Metadata Target Count".
As part of removing long-polling we've created a new service iml-warp-drive
. This service uses Server-Sent Events (SSE) to push changes to the GUI over a HTTP(S) connection.
The backend for this currently lives in whamcloud/integrated-manager-for-lustre#780 and can be built / deployed locally in iml-sandbox.
Create a SSE connection / handler that consumes the connection and returns a highland stream. The connection can be created roughly like:
const sse = new EventSource("https://localhost:8443/messaging");
sse.onopen = function () {
console.log("connected");
};
sse.addEventListener("user", function(msg) {
console.log("I am user", msg);
});
sse.onmessage = function (msg) {
console.log(msg.data);
};
Note that there is hopefully a better way to setup than overwriting handlers directly.
At a minimum the module will need to handle errors and disconnects transparently.
The alert indicator needs to filter by affected id. It currently is not due to us not ajusting function arity when removing currying.
This issue is in reference to https://github.com/whamcloud/integrated-manager-for-lustre/issues/824. The root cause of the issue is that power control should not be configured until after managed servers have been added. This is an issue in the GUI workflow and as such, the solution will be as follows:
Configuration Menu:
Do managed servers exist?
a. yes - Display Power Control link
b. no - Don't display Power Control link
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.