Skip to content
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

Feature/log storage - adds plugin system for streaming logs and storing log files #414

Merged
merged 80 commits into from
Jun 14, 2013

Conversation

gschueler
Copy link
Member

Adds a plugin system for streaming log reader/writers, as well as a way to upload/download log files from another system if they are not available locally.

@ahonor
Copy link
Contributor

ahonor commented Jun 7, 2013

When I archive a project, do the log files get downloaded into the archive from their log storage facility (via the plugin)?
This is probably an admin question. For example, if you store all your logs in a service like S3, do you normally want them downloaded and stored in the project archive? In a case like S3, log file downloads could be slow or unpredictable. You might just rely on them being available when you reload the archive to another rundeck instance.

Log files could be treated more separately from the execution history. An admin might like to store the log output in the project archives or they might choose to rely on them being available later in the external log store.
Job history retention vs output file retention could be another preference. An admin might wish to purge them together (as happens today) but given an external store, perhaps not.

@gschueler
Copy link
Member Author

Execution data given to plugins should include the execution's URL

@ahonor
Copy link
Contributor

ahonor commented Jun 11, 2013

Having the Java method names be the same as the groovy closure names would make both implementations more similar (and less confusing).

@gschueler
Copy link
Member Author

The store interface for log file storage, should also pass the content length, and last modification time of the file. This will facilitate direct use of the input stream (content length), and maintenance of the file modification time.

@gschueler
Copy link
Member Author

@ahonor project archive/import is a good question, I'm not sure of the correct behavior. E.g. when you import a project should it also do the log file upload?

@gschueler
Copy link
Member Author

needs improvement: if a log retrieve fails, it should show an error message to a user (gui/api) who is attempting to retrieve the log file

gschueler added 25 commits June 14, 2013 09:26
* change to retrieve/store, instead of retrieveLogFile/storeLogFile
* pass file length, modification time to store method
* update example code
* update documentation
* job.url = execution follow url
* job.serverUrl = base server url
* job.serverUUID = cluster server uuid or null
* render api/gui errors if isAvailable has error
* retrieval/available states are cached for a period
* updated configuration keys for storage/retrieval retry and delay
* pending_remote state is reported if remote log is not found within a
  grace period after the execution completes
* clean up display in gui for error messages slightly
* handle exceptions via groovy log file storage plugins
gschueler added a commit that referenced this pull request Jun 14, 2013
Feature/log storage - adds plugin system for streaming logs and storing log files
@gschueler gschueler merged commit 21aec3a into rundeck:development Jun 14, 2013
@gschueler gschueler deleted the feature/log-storage branch June 14, 2013 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants