New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

download logs on demand #762

Closed
schakrava opened this Issue Jul 28, 2015 · 27 comments

Comments

Projects
None yet
5 participants
@schakrava
Member

schakrava commented Jul 28, 2015

Provide a feature to download latest log.tgz file from the web-ui.

@schakrava schakrava added this to the Ubehebe milestone Jul 28, 2015

@schakrava schakrava modified the milestones: Yosemite, Ubehebe Oct 4, 2015

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer Apr 15, 2016

Member

Hi @schakrava, can i work on this? Think it can be useful

I can see the assignee, but think it's not active, am i wrong?

Flyer

Member

MFlyer commented Apr 15, 2016

Hi @schakrava, can i work on this? Think it can be useful

I can see the assignee, but think it's not active, am i wrong?

Flyer

@schakrava

This comment has been minimized.

Show comment
Hide comment
@schakrava

schakrava Apr 15, 2016

Member

You are more than welcome to, @MFlyer. this is indeed an important feature and it's safe to assume that @gkadillak is not actively working on it.

Member

schakrava commented Apr 15, 2016

You are more than welcome to, @MFlyer. this is indeed an important feature and it's safe to assume that @gkadillak is not actively working on it.

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 16, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 18, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 19, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 19, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 19, 2016

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer Apr 19, 2016

Member

Hi All @schakrava @phillxnet @priyaganti , here is a first preview of what planned for logs access via Rockstor Web UI Log on demand preview

I thought having it with just a link to download rockstor logs would have been like a clone of actual error system, so i've decided to let user choose which logs to donwload on demand, plus adding a "live log reader" - to be added modal window for loading files cat/tail

Any suggestion about layout & logs to add? 😊 Actually I've got template and view good skeleton and adding on them now it's easy, backend part is the missing one (I'm used to start always from frontend beacuse it's my "babau" and my frontend coding is a little rusty comparing to backend)

Member

MFlyer commented Apr 19, 2016

Hi All @schakrava @phillxnet @priyaganti , here is a first preview of what planned for logs access via Rockstor Web UI Log on demand preview

I thought having it with just a link to download rockstor logs would have been like a clone of actual error system, so i've decided to let user choose which logs to donwload on demand, plus adding a "live log reader" - to be added modal window for loading files cat/tail

Any suggestion about layout & logs to add? 😊 Actually I've got template and view good skeleton and adding on them now it's easy, backend part is the missing one (I'm used to start always from frontend beacuse it's my "babau" and my frontend coding is a little rusty comparing to backend)

@phillxnet

This comment has been minimized.

Show comment
Hide comment
@phillxnet

phillxnet Apr 19, 2016

Member

@MFlyer This is great, well done. A small suggestion to assist with understanding what's what though:
you could put (kernel) in brackets after Dmesg akin to what you have done to explain smbd/nmbd. Same could be done for the Yum entry ie (packaging) or (updates), also for Nginx ie (WebUI).
Also the addition of a general system / systemd log akin to journalctrl would be good, currently just nicer time stamps but going forward there is a greater split between these. There might also be the option to employ systemd's log filtering capabilities (extensive), but that's most likely not a first throw feature in my opinion.

Not looking as closely as your self so take all of the above with a grain of salt.

This is going to be a great addition.

Member

phillxnet commented Apr 19, 2016

@MFlyer This is great, well done. A small suggestion to assist with understanding what's what though:
you could put (kernel) in brackets after Dmesg akin to what you have done to explain smbd/nmbd. Same could be done for the Yum entry ie (packaging) or (updates), also for Nginx ie (WebUI).
Also the addition of a general system / systemd log akin to journalctrl would be good, currently just nicer time stamps but going forward there is a greater split between these. There might also be the option to employ systemd's log filtering capabilities (extensive), but that's most likely not a first throw feature in my opinion.

Not looking as closely as your self so take all of the above with a grain of salt.

This is going to be a great addition.

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 19, 2016

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer Apr 19, 2016

Member

Hi @phillxnet, just added your suggestions (brackets adds).

Talking about systemd-systemctl /journalctl : totally agree with you, but got some doubts for outputs from systemctl. Ok on journalctl, it's easy (long log, but like others)

Ex. this is a systemctl list-units -t service just to limit items, but it still outputs a long log with long items too (fsck)

system
We risk to have few or too much infos, depending on how it get implemented 😕 - @schakrava looking the image, why are we running wpa_supplicant?!?

We could get a select with services like options (green bg if loaded and active, red if failing) and fetch service details on select change, but probably that would overload users with datas

Member

MFlyer commented Apr 19, 2016

Hi @phillxnet, just added your suggestions (brackets adds).

Talking about systemd-systemctl /journalctl : totally agree with you, but got some doubts for outputs from systemctl. Ok on journalctl, it's easy (long log, but like others)

Ex. this is a systemctl list-units -t service just to limit items, but it still outputs a long log with long items too (fsck)

system
We risk to have few or too much infos, depending on how it get implemented 😕 - @schakrava looking the image, why are we running wpa_supplicant?!?

We could get a select with services like options (green bg if loaded and active, red if failing) and fetch service details on select change, but probably that would overload users with datas

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer Apr 19, 2016

Member

Hi all, maybe I'm getting wrong or just don't see an error, but got some problems adding new url to urls.py

added (r'^api/systemlog/', include('storageadmin.urls.logs')), to urls.py
added logs.py under storageadmin/urls with just one line pattern for testing import

from django.conf.urls import patterns, url
from storageadmin.views import (LogsManagerView)

urlpatterns = patterns(
'',
url(r'^$', LogsManagerView.as_view(),),
)

added logs_manager.py under views folder and LogsmanagerView class it's a full clone of another existing Rockstor module, so it can't be broken, but after build of py i'm getting this on browser:
ImportError at /
cannot import name LogsManagerView
Request Method: GET
Request URL: https://rockstone/
Django Version: 1.6.11
Exception Type: ImportError
Exception Value:
cannot import name LogsManagerView
Exception Location: /opt/build/src/rockstor/storageadmin/urls/logs.py in <module>, line 20

Meanwhile doing my job so maybe there's an error just in front of me and i can't see it 😕

Member

MFlyer commented Apr 19, 2016

Hi all, maybe I'm getting wrong or just don't see an error, but got some problems adding new url to urls.py

added (r'^api/systemlog/', include('storageadmin.urls.logs')), to urls.py
added logs.py under storageadmin/urls with just one line pattern for testing import

from django.conf.urls import patterns, url
from storageadmin.views import (LogsManagerView)

urlpatterns = patterns(
'',
url(r'^$', LogsManagerView.as_view(),),
)

added logs_manager.py under views folder and LogsmanagerView class it's a full clone of another existing Rockstor module, so it can't be broken, but after build of py i'm getting this on browser:
ImportError at /
cannot import name LogsManagerView
Request Method: GET
Request URL: https://rockstone/
Django Version: 1.6.11
Exception Type: ImportError
Exception Value:
cannot import name LogsManagerView
Exception Location: /opt/build/src/rockstor/storageadmin/urls/logs.py in <module>, line 20

Meanwhile doing my job so maybe there's an error just in front of me and i can't see it 😕

@gkadillak

This comment has been minimized.

Show comment
Hide comment
@gkadillak

gkadillak Apr 19, 2016

Contributor

There's a broken path at the top of your file in the imports in the logs.py file.

Contributor

gkadillak commented Apr 19, 2016

There's a broken path at the top of your file in the imports in the logs.py file.

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer Apr 20, 2016

Member

Don't care about my last post, I was using my class (correctly called via urls, include, etc etc) but without importing it to views/__init__.py 😭

Ufff!!
Flyer

Member

MFlyer commented Apr 20, 2016

Don't care about my last post, I was using my class (correctly called via urls, include, etc etc) but without importing it to views/__init__.py 😭

Ufff!!
Flyer

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 21, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 22, 2016

#762 Modified template and view for logs manager - Added modal for li…
…ve log reader (template) inside WebUI + mods and beautify to view (ajax call plain text + render in modal)

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 22, 2016

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer Apr 22, 2016

Member

Hi @schakrava @phillxnet @priyaganti , let's see this (first test on "inline log reading", going to add overflow etc etc etc)

https://youtu.be/qds2xtIN7C0

To @schakrava : found my way to hack django MVC usual structure, without @api_view and with a class view acting how i want (performing simple api tasks -> exec command + response plain text without care for json and letting user to have an easy readable log )

Member

MFlyer commented Apr 22, 2016

Hi @schakrava @phillxnet @priyaganti , let's see this (first test on "inline log reading", going to add overflow etc etc etc)

https://youtu.be/qds2xtIN7C0

To @schakrava : found my way to hack django MVC usual structure, without @api_view and with a class view acting how i want (performing simple api tasks -> exec command + response plain text without care for json and letting user to have an easy readable log )

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 23, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 23, 2016

#762 Removed logs.js testing func - on previous commit: added modal f…
…ix height to 300px to allow overflow-y; added log name and reader type in modal header; cat changed to cat -n allowing easy referencing lines

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 24, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 24, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 24, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 24, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 24, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 25, 2016

#762 Correction to ajax logs.js view, correctly moved from on complet…
…e to on success - to be improved function defering
@schakrava

This comment has been minimized.

Show comment
Hide comment
@schakrava

schakrava Apr 26, 2016

Member

The video previews look pretty good @MFlyer . Really looking forward to testing the pull request. Feel free to open it once you think it's enough for others to test.

How are you handling very large log files? Is the design to return it all in a single response?

How are you handling rotated files like rockstor.log, rockstor.log.1, etc..?

I've looked at a couple of your commits very briefly, and see that you are using check_output, but it could block on large amounts of data. Nginx may also time out. You may want to consider using websockets for streaming log output. You would register a handler to start streaming. In the backend you can use the gevent socket server to pipe the data. See data_collector.py for example.

You are off to something great, sorry for chipping in late.

For downloading logs on the other hand, you could still use the same pattern we use currently.

Member

schakrava commented Apr 26, 2016

The video previews look pretty good @MFlyer . Really looking forward to testing the pull request. Feel free to open it once you think it's enough for others to test.

How are you handling very large log files? Is the design to return it all in a single response?

How are you handling rotated files like rockstor.log, rockstor.log.1, etc..?

I've looked at a couple of your commits very briefly, and see that you are using check_output, but it could block on large amounts of data. Nginx may also time out. You may want to consider using websockets for streaming log output. You would register a handler to start streaming. In the backend you can use the gevent socket server to pipe the data. See data_collector.py for example.

You are off to something great, sorry for chipping in late.

For downloading logs on the other hand, you could still use the same pattern we use currently.

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer Apr 26, 2016

Member

Hi @schakrava , thanks for your feedbacks and suggestions!

How are you handling very large log files? Is the design to return it all in a single response?
I've looked at a couple of your commits very briefly, and see that you are using check_output, but it could block on large amounts of data. Nginx may also time out. You may want to consider using websockets for streaming log output. You would register a handler to start streaming. In the backend you can use the gevent socket server to pipe the data. See data_collector.py for example

Good suggestion, that's what i was looking for, I'll check data_collector.py ! 😃 - You're right when you say that actually it uses a single response - althought I'm getting good responses without timeouts or similar - It's just a "skeleton" to start with

Logs download : I was thinking about extend util.py and import it like on error handler, so we can share functionalities from the same module for other views too!

Member

MFlyer commented Apr 26, 2016

Hi @schakrava , thanks for your feedbacks and suggestions!

How are you handling very large log files? Is the design to return it all in a single response?
I've looked at a couple of your commits very briefly, and see that you are using check_output, but it could block on large amounts of data. Nginx may also time out. You may want to consider using websockets for streaming log output. You would register a handler to start streaming. In the backend you can use the gevent socket server to pipe the data. See data_collector.py for example

Good suggestion, that's what i was looking for, I'll check data_collector.py ! 😃 - You're right when you say that actually it uses a single response - althought I'm getting good responses without timeouts or similar - It's just a "skeleton" to start with

Logs download : I was thinking about extend util.py and import it like on error handler, so we can share functionalities from the same module for other views too!

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer Apr 28, 2016

Member

Hi @schakrava, once again thanks for the great suggestion!!
I'm playing with "my old friend" socket.io (it was 2012 when I first had a talk with the great Guillermo Rauch, asking for more documentation!) and except for an initial stop to understand how it's used on Rockstor, now it really seems the right choice 😃

To all - @phillxnet @priyaganti @ScarabMonkey too
Just one question
Actually I'm getting log content via subprocess.popen + stdout.read() and it's faster than check_output over nginx, but we still have to wait popen to get all content from log file

I don't think we have to worry about timeouts for logs on 500-700K size (biggest one is winbind log file and it took 13-14 secs to load), but nmbd log file is 5000K and while loading it crashed on client side (Rockstor page went totally blank on chrome)

How to procede?? I can split popen.stdout with a while loop and emit() to client line by line, but i think on a 5MB file we'll get anyway a client crash

Member

MFlyer commented Apr 28, 2016

Hi @schakrava, once again thanks for the great suggestion!!
I'm playing with "my old friend" socket.io (it was 2012 when I first had a talk with the great Guillermo Rauch, asking for more documentation!) and except for an initial stop to understand how it's used on Rockstor, now it really seems the right choice 😃

To all - @phillxnet @priyaganti @ScarabMonkey too
Just one question
Actually I'm getting log content via subprocess.popen + stdout.read() and it's faster than check_output over nginx, but we still have to wait popen to get all content from log file

I don't think we have to worry about timeouts for logs on 500-700K size (biggest one is winbind log file and it took 13-14 secs to load), but nmbd log file is 5000K and while loading it crashed on client side (Rockstor page went totally blank on chrome)

How to procede?? I can split popen.stdout with a while loop and emit() to client line by line, but i think on a 5MB file we'll get anyway a client crash

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 28, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 28, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 28, 2016

#762 Move on socket.io - Mods to logs.js view to io.connect plus list…
…ener for incoming data and emit to request logs

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue Apr 28, 2016

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer Apr 29, 2016

Member

Add related to log.nmbd size - smb log level need to be reduced to 1 after AD join otherwise nmbd will log every connection becoming enormous (on a 50+ users env on a 9to6 you get nearly 5MB log at the end of the day)
Actually at 10am local time (office open on 9am) nmbd log file size is ~2.7MB growing every sec

Member

MFlyer commented Apr 29, 2016

Add related to log.nmbd size - smb log level need to be reduced to 1 after AD join otherwise nmbd will log every connection becoming enormous (on a 50+ users env on a 9to6 you get nearly 5MB log at the end of the day)
Actually at 10am local time (office open on 9am) nmbd log file size is ~2.7MB growing every sec

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 4, 2016

#762 Modified logs.js and logs.jst - Added content size in log reader…
… - Added support for log download from log reader (download of full log file)

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 5, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 5, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 5, 2016

#762 Added lady control on running log reading (client side)- submit …
…button disable till end of log rendering

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 6, 2016

#762 Backend code on data_collector.py to work on existing socket.io …
…server and avoid adding other resurces - added Rockstor Licence - backend code for file not existing or with size equal to 0 - Actually missing rotating logs specially useful for rockstor.log(.1,2 etc)

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 6, 2016

#762 Mod to data_collector to reflect new network interfaces because …
…branch was not in sync with rockstor/core master
@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer May 6, 2016

Member

Hi all and @schakrava , I'd like to have a check on latest commit c94e103 (don't care about Network interface/device, there's another commit that alligns to actual rockstor master):

  • Log interface has been directly added into data_collector to stay on same socket.io server
  • I was thinking about more code slicing in other funcs but it isn't really essential
  • Except for that, you can see there's no spawn for on_* functions and i think we don't need it (cpu, memory, disks stats, etc funcs are always running to autoupdate data, instead LogReaderNamespace on_* funcs run only on request)
  • Actually rotating logs are unmanaged so we have to decide if to go with a LogManager v. 1.00 + update or wait and do it (as you prefer, not a problem for me 😉)
Member

MFlyer commented May 6, 2016

Hi all and @schakrava , I'd like to have a check on latest commit c94e103 (don't care about Network interface/device, there's another commit that alligns to actual rockstor master):

  • Log interface has been directly added into data_collector to stay on same socket.io server
  • I was thinking about more code slicing in other funcs but it isn't really essential
  • Except for that, you can see there's no spawn for on_* functions and i think we don't need it (cpu, memory, disks stats, etc funcs are always running to autoupdate data, instead LogReaderNamespace on_* funcs run only on request)
  • Actually rotating logs are unmanaged so we have to decide if to go with a LogManager v. 1.00 + update or wait and do it (as you prefer, not a problem for me 😉)

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 8, 2016

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer May 9, 2016

Member

Actually rotating logs are unmanaged so we have to decide if to go with a LogManager v. 1.00 + update or wait and do it (as you prefer, not a problem for me 😉)

To @schakrava : Finally i really don't like not having rotating logs so i'm already working on it! 😃
Meanwhile we can still put out Logs Manager v 1.0 then update it (worst case: 2 weeks)

Member

MFlyer commented May 9, 2016

Actually rotating logs are unmanaged so we have to decide if to go with a LogManager v. 1.00 + update or wait and do it (as you prefer, not a problem for me 😉)

To @schakrava : Finally i really don't like not having rotating logs so i'm already working on it! 😃
Meanwhile we can still put out Logs Manager v 1.0 then update it (worst case: 2 weeks)

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 10, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 10, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 10, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 10, 2016

#762 Added functionality to risize Live Log Reader modal for a better…
… view - next step add func to resize font-size

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 10, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 10, 2016

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer May 10, 2016

Member

Hi all,
while working on rotating logs had fun adding some minor features

  • More logs available (obviously open to suggestions for more/different logs!)
  • Modal window enlarge/reduce button
  • Code text resize buttons (we care about users eyes health eheh)

Here a small video, showing logs .tgz direct download from log reader too :)

https://youtu.be/vwcJvRrFirY

Member

MFlyer commented May 10, 2016

Hi all,
while working on rotating logs had fun adding some minor features

  • More logs available (obviously open to suggestions for more/different logs!)
  • Modal window enlarge/reduce button
  • Code text resize buttons (we care about users eyes health eheh)

Here a small video, showing logs .tgz direct download from log reader too :)

https://youtu.be/vwcJvRrFirY

@maxhq

This comment has been minimized.

Show comment
Hide comment
@maxhq

maxhq May 12, 2016

Contributor

@MFlyer This is a really great module! I like the page layout and the functions.

There is only one thing that's unclear to me: does the "Live Log Reader" update when there are new log messages coming in while it's open? I.e. is it a tail -n 30 or a tail -f -n 30?

Contributor

maxhq commented May 12, 2016

@MFlyer This is a really great module! I like the page layout and the functions.

There is only one thing that's unclear to me: does the "Live Log Reader" update when there are new log messages coming in while it's open? I.e. is it a tail -n 30 or a tail -f -n 30?

@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer May 12, 2016

Member

Hi @maxhq, great question : actually tail -n 30 means what you read and not tail -f

In the early development I thought about having tail -f too, but I'm afraid about possible deadlocks

For a better understanding (@schakrava can confirm): Dashboard and widgets, like sysinfo updates, work on gevent.socketio with a nice trick (on connection some switches, one for every widget, turn to true and data is pushed to client forever till disconnection - switches auto turn to false as disconnection detected, builtin gevent.socketio method)
Logs reading is a little different: every action start on an on_*, where * is reading logs or building logs archive, so we would have to had a..

...Ok, while reading what i was writing i found my way 😁 : we can do that, just paying attention. I'll have to add a "special" log reader working with a safety switch too (one more method to stop tail -f on modal closed + switch turned to false on disconnection to prevent process running after browser closing!!!)
@phillxnet and @schakrava , what do you think about this?

Member

MFlyer commented May 12, 2016

Hi @maxhq, great question : actually tail -n 30 means what you read and not tail -f

In the early development I thought about having tail -f too, but I'm afraid about possible deadlocks

For a better understanding (@schakrava can confirm): Dashboard and widgets, like sysinfo updates, work on gevent.socketio with a nice trick (on connection some switches, one for every widget, turn to true and data is pushed to client forever till disconnection - switches auto turn to false as disconnection detected, builtin gevent.socketio method)
Logs reading is a little different: every action start on an on_*, where * is reading logs or building logs archive, so we would have to had a..

...Ok, while reading what i was writing i found my way 😁 : we can do that, just paying attention. I'll have to add a "special" log reader working with a safety switch too (one more method to stop tail -f on modal closed + switch turned to false on disconnection to prevent process running after browser closing!!!)
@phillxnet and @schakrava , what do you think about this?

@phillxnet

This comment has been minimized.

Show comment
Hide comment
@phillxnet

phillxnet May 12, 2016

Member

@MFlyer I'm afraid I am not up enough on these web technologies to comment on the possible ramifications. I agree that a live feed would be dandy but this is already a fairly major patch so there may be some sense in moving additional functionality into another issue/pr so that we might get what has been tested so far into play. Also there are re-factoring changes ongoing in the UI code that may make additional delays impact disproportionately on merge ease. Though I haven't really looked at this element re this pr. Just noting in case.

Although @maxhq idea of a live feed has great utility, so does what you have done so far. Also I would be concerned that the testing you have done to date may be negated by feature creep this late on. However please qualify my comments here on me not being very up on the web tec side so just a general concern really.

Member

phillxnet commented May 12, 2016

@MFlyer I'm afraid I am not up enough on these web technologies to comment on the possible ramifications. I agree that a live feed would be dandy but this is already a fairly major patch so there may be some sense in moving additional functionality into another issue/pr so that we might get what has been tested so far into play. Also there are re-factoring changes ongoing in the UI code that may make additional delays impact disproportionately on merge ease. Though I haven't really looked at this element re this pr. Just noting in case.

Although @maxhq idea of a live feed has great utility, so does what you have done so far. Also I would be concerned that the testing you have done to date may be negated by feature creep this late on. However please qualify my comments here on me not being very up on the web tec side so just a general concern really.

@phillxnet

This comment has been minimized.

Show comment
Hide comment
@phillxnet

phillxnet May 12, 2016

Member

@MFlyer Oh and what @maxhq said: this is looking really great.

Member

phillxnet commented May 12, 2016

@MFlyer Oh and what @maxhq said: this is looking really great.

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 13, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 13, 2016

#762 Backend mods for realtime reader tail -f. Splitted logreader in …
…static and live reader + back to spawning to handle tail -f kill on modal closed. To @schakrava: already tested and nicely working, actually code is a little messy/redundant - going to revision
@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer May 13, 2016

Member

Hi @maxhq , @phillxnet and @schakrava , tail -f added on d3e5df3 + 42f7421 😃

Code now need revision (optimization for redundancies) + rotating log handling

Flyer/Mirko

Member

MFlyer commented May 13, 2016

Hi @maxhq , @phillxnet and @schakrava , tail -f added on d3e5df3 + 42f7421 😃

Code now need revision (optimization for redundancies) + rotating log handling

Flyer/Mirko

@schakrava schakrava modified the milestones: Looney Bean, Yosemite May 13, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 16, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 16, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 16, 2016

#762 Rotating logs 2/2 - Frontend handles rotating logs both for read…
…ing and downloading- Coding ended, needed only revision
@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer May 16, 2016

Member

Hi all, finally Logs Manager coding is ended with full support for rotating logs! 😃

To @schakrava : Going to revision code, will tell you asa PR is ready for merging/your revision 😉

Flyer/Mirko

Member

MFlyer commented May 16, 2016

Hi all, finally Logs Manager coding is ended with full support for rotating logs! 😃

To @schakrava : Going to revision code, will tell you asa PR is ready for merging/your revision 😉

Flyer/Mirko

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 17, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 17, 2016

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 17, 2016

#762 Code revision 1/2 - Frontend last checks plus added intelligent …
…log switching for archive builder - rotated logs always on bottom, current logs always on top

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 18, 2016

#762 Code revision 2/2 - This commit close backend revision, added sp…
…awning to all funcs and tested, plus removed some redundant code - Ready for PR merge via @schakrava final code revision
@MFlyer

This comment has been minimized.

Show comment
Hide comment
@MFlyer

MFlyer May 18, 2016

Member

Code revision finished, updates on PR #1312

Member

MFlyer commented May 18, 2016

Code revision finished, updates on PR #1312

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 19, 2016

#762 Firefox broken websockets on link clicking+new connection establ…
…ished and rotated logs repeating[solved] : On Logs downloader added download empty attribute to download link, added hidden download link with download attribute empty on log reader modal too, so we trigger it on current log download request

MFlyer added a commit to MFlyer/rockstor-core that referenced this issue May 19, 2016

@schakrava

This comment has been minimized.

Show comment
Hide comment
@schakrava

schakrava May 20, 2016

Member

Fixed by #1312

Member

schakrava commented May 20, 2016

Fixed by #1312

@schakrava schakrava closed this May 20, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment