Giter VIP home page Giter VIP logo

irods_docs's Introduction

iRODS Documentation

The iRODS documentation is housed in this repository (https://github.com/irods/irods_docs).

Each release is kept in a separate branch.

Prerequisites

  • docker

Update for correct version

  • Update Makefile with correct GITHUB_ACCOUNT
  • Update Makefile with correct GIT_COMMITTISH
  • Update build/irods_for_doxygen/Doxyfile with correct PROJECT_NUMBER

Build

Docker will create a builder image.

$ docker build -t irods_docs_builder .

Running the docker image will save artifacts into $(pwd)/build:

$ docker run --rm -v $(pwd):/irods_docs:ro -v $(pwd)/build:/hostcomputer irods_docs_builder

You can generate documentation for a specific build of iRODS by running the following:

$ docker run --rm -v $(pwd):/irods_docs:ro -v $(pwd)/build:/hostcomputer irods_docs_builder GITHUB_ACCOUNT=<account> GIT_COMMITTISH=<branch-or-commit>

The resulting build/site directory will contain the generated standalone documentation.

View

Launch a webserver on port 8080 to show the resulting build/site directory:

$ docker run -dit --rm --name irods_docs -p 8080:80 -v $(pwd)/build/site:/usr/local/apache2/htdocs/ httpd:2.4

To stop the webserver:

$ docker stop irods_docs

irods_docs's People

Contributors

alanking avatar d-w-moore avatar darthtux avatar dependabot[bot] avatar janvanmansum avatar justinkylejames avatar korydraughn avatar mcast avatar mcoonen avatar rubengarcia avatar stsnel avatar trel avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

irods_docs's Issues

document use of /etc/irods/hosts_config.json

I looked through docs.irods.org both for 4.2 and 4.1.10 and couldn't find the reasons one should use, as well as format of, the above file documented anywhere. Apologies if I've missed it...

Clarify hosts_config.json requirements

The result of running hostname on the local or remote server is required to be at the front of the list of "addresses" for each entry. This should be made more explicitly clear in the documentation

Supported OSs not obviously documented

I couldn't seem to find a list of supported OSs, I looked in the apt and yum repositories to find out but there should be a list on the Download page and/or the Installation page

Add section to Troubleshooting about TCP connection timeouts

When a client process goes away without disconnecting from the server, the connection will eventually time out and get cleaned up by the OS and handled appropriately in the server. This timeout is configurable in the kernel's TCP settings. We should add a section to Troubleshooting to describe this situation and how to change the setting. We cannot make a recommendation about what to set this value to as we will not know the needs for a given deployment.

Fix documentation around replica statuses

  • Objects stuck in locked state (Troubleshooting) (main)
  • Objects stuck in locked state (Troubleshooting) (4-2-stable)
  • ils help text (main)
  • ils help text (4-3-stable)
  • ils help text (4-2-stable)

Should probably have a whole section about the philosophy behind these statuses.

iadmin modrepl text in Troubleshooting does not show the integer values available to use or what they mean. These can be seen in the ils help text, but even that text is incorrect because the write-locked state is 4, not 3.

Document how to sort GenQuery results

  • master
  • 4-2-stable

To sort GenQuery results by a specific column, use the order() or order_desc() operator. For example, to sort delay rules by their id in descending order, you'd type:

$ iquest "select order_desc(RULE_EXEC_ID), OTHER_COLUMNS ..."

To sort in ascending order, you'd type:

$ iquest "select order(RULE_EXEC_ID), OTHER_COLUMNS ..."

The position of the column within the list of selected columns does not matter. "select COLUMNS, order(COLUMN)" will produce the same ordering as "select order(COLUMN), COLUMNS".

Changing the rodsadmin account on a consumer-side system

In a distributed iRODS setup, with one provider system, and one or more consumer systems, it is possible to use the ipasswd utility to change a password while being logged in to a consumer system.

If the ipasswd utility is used to change the password for the rodsadmin account that is ‘running’ the server (on most systems this may be the default "rods" rodsadmin account associated with the user-id "irods") while logged into a consumer system, the password will be changed successfully, however within a few seconds the iRODS server on the provider system will start showing authentication errors on the provider system every 30 seconds (see the active rodsLog log file in the ./log directory.

The iRODS server uses this rodsadmin account for houskeeping purposes every 30 seconds (i.e. database lookup of delayed execution tasks), and if the password is changed on a consumer system, the provider system will not be updated with the change, and this disrupts the operation of the server on the provider system.

In order to resolve the issue, the "iinit" command must be used to update the provider system immediately after the password is changed on any consumer system.

Related

Similarly, the iadmin utility, when used to change the password of the rodsadmin account, will cause errors to occur on the iRODS server (on the provider system) every 30 seconds - regardless of whether it is run on a consumer or provider system - until the iinit utility is run on the provider system for the rodsadmin account.

Additional Troubleshooting:

This is what the rodsLog entry looks like (2 lines per occurence) every 30 seconds:

May 22 18:32:52 pid:17897 NOTICE: rsAuthCheck: chlCheckAuth status = -826000
May 22 18:32:52 pid:17897 remote addresses: 127.0.0.1 ERROR: [-]        /home/andrew/github/irods/server/api/src/rsAuthResponse.cpp:75:int rsAuthResponse(rsComm_t *, authResponseInp_t *) :  status [CAT_INVALID_AUTHENTICATION]  errno [] -- message [rcAuthCheck failed.]
       [-]     /home/andrew/github/irods/plugins/auth/native/libnative.cpp:558:irods::error native_auth_agent_response(irods::plugin_context &, authResponseInp_t *) :  status [CAT_INVALID_AUTHENTICATION]  errno [] -- message [rcAuthCheck failed.]

May 22 18:33:22 pid:17904 NOTICE: rsAuthCheck: chlCheckAuth status = -826000
May 22 18:33:22 pid:17904 remote addresses: 127.0.0.1 ERROR: [-]        /home/andrew/github/irods/server/api/src/rsAuthResponse.cpp:75:int rsAuthResponse(rsComm_t *, authResponseInp_t *) :  status [CAT_INVALID_AUTHENTICATION]  errno [] -- message [rcAuthCheck failed.]
       [-]     /home/andrew/github/irods/plugins/auth/native/libnative.cpp:558:irods::error native_auth_agent_response(irods::plugin_context &, authResponseInp_t *) :  status [CAT_INVALID_AUTHENTICATION]  errno [] -- message [rcAuthCheck failed.]

Github Actions script broken

Github Actions script needs to be updated to accommodate the new requirements introduced by the builder image, if possible

Externalize irods_docs from the docker builder image

The Dockerfile copies the irods_docs into the image. This has shown to not allow devs to update the docs and see the changes quickly.

To fix this, we need to make it so that the dev provides the irods_docs repo via a volume mount. That will allow the dev to make changes and avoid having to rebuild the docker image to see them.

Document MySQL's default transaction isolation behavior

  • master
  • 4-2-stable

MySQL's default transaction isolation level is REPEATABLE-READ. This causes problems with certain API functions.

For example, attempting to read metadata added by a call to rc_atomic_apply_metadata_operations may return no results. Unit-tests (e.g. filesystem) using this API function fail consistently when MySQL's transaction isolation level is set to the default value.

This can be avoided by setting the transaction isolation level 'down' to READ-COMMITTED.

See the following for more details:

Enhancement request - versioned plugin documentation

Hi folks,

I find having the documentation versioned incredibly helpful and useful. I constantly refer to it and send pertinent links to colleagues.

Can we extend this to the plugins please, so that each set of documentation also includes the plugins for each version, or the plugins have a similar interface?

Add developer documentation

  • Deprecation/end of life (see #124)
  • Development environment (see #219)
  • Building and installing iRODS (#220)
  • Onboarding new developers (#221)
  • Testing environment (#222)
  • How to use Github
  • How to use rr/debugging tools (#223)
  • Valgrind (#224)
  • Static analysis (Clang) (#225)
  • Running (and adding) tests (#226)

file and folder permissions for sharing between federated zones

We are trying to setup multiple federated iRODS zones by following the documentation. But we had a hard time getting the permissions right as there might be a missing part in the docs:
It seems like it is not enough to solely grant access to a specific file which one wants to share with a user from another zone, but one also has to grant access to the respective folder.

E.g. if Alice from ZoneA wants to allow Bob from ZoneB to access a file and only sets:
ichmod read Bob#ZoneB /ZoneA/home/alice/somefile
Bob will get an error when trying to iget the file:

remote addresses: 172.21.0.5 ERROR: resolveRodsTarget: srcPath /ZoneA/home/alice/somefile does not exist
remote addresses: 172.21.0.5 ERROR: getUtil: resolveRodsTarget status = -317000 USER_INPUT_PATH_ERR

If Alice also grants read access to the folder /ZoneA/home/alice Bob has no problem getting the file.

I am happy to submit a PR for this or provide a MWE if one wants to see this executed. But I just wanted to check first if I might be missing something during the setup of the two iRODS zones and/or the federation which causes the issue.

Document deprecation rules

The developer documentation needs to define how to deprecate the following:

  • APIs
  • Microservices
  • Rule Engine Plugins
  • icommands

For example, the following rules are from irods/irods_client_icommands#274 (comment) and define how to deprecate an option for an icommand.

  • Remove references to deprecated options from help text
  • Server should add deprecation message to rError object
  • Server should log deprecation message
  • Update documentation to include modern way of accomplishing what is now deprecated

Related to #20

Update references for renaming of the Delay Server

The is specific to 4.3.

Known Changes:

  • irods-grid status output (i.e. "re_server_pid" -> "delay_server_pid")
  • irodsReServer -> irodsDelayServer
  • Any documentation referring to the delay server as Rule Execution Server

Makefile does not handle rebased irods/irods branches

  • master
  • 4-2-stable

If a developer is writing documentation for the irods/irods repo and decides to rebase their branch, rerunning the Makefile will lead to issues. To get around this, the following change needs to happen:

-	@cd ${IRODSTARGET}; git fetch; git checkout ${MAKEIRODSVERSION}
+	@cd ${IRODSTARGET}; git fetch; git checkout ${MAKEIRODSVERSION}; git pull --rebase

Font renders poorly and is subsequently hard to read

The font used on the docs site is very difficult to read as of iRODS 4.2.0. The words appear blured, in a similar way as they would in a compressed JPG.

The example below indicates what the docs look like for me:

Old: https://screenshots.firefox.com/03bZ34Zb0H8kCdVe/docs.irods.org
New: https://screenshots.firefox.com/aXUowYSdkaPqjEcP/docs.irods.org

The font looks just as bad in both Firefox (58.0.2) and Chrome (64.0.3282.186). I am using a standard version of OS X El Capitan.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.