Skip to main content

rda_python_miscs

RDA Python package to hold miscellaneous utility programs for the NSF NCAR Geoscience Data Exchange (GDEX).

Programs

The package provides two categories of programs:

Run as current user (no setuid required):

Command Alias Description
bashqsub Submit a job as a bash batch job on a PBS node via qsub
tcshqsub Submit a job as a tcsh batch job on a PBS node via qsub
gdexsub rdasub Submit a command as a nohup background process on the local machine
pgwget Download remote files by root name pattern, combining downloaded parts into a single file
gdexls List local files and directories with matching metadata from the GDEX database
gdexps rdaps Show process status for local or PBS batch processes, with filtering by PID, owner, or name
gdexzip rdazip Compress or uncompress files using a supported format
gdexown rdaown Change ownership of files and directories to gdexdata (must be run as root)
pgrst Convert .usg files to RST and push to gdex-docs-* repos on GitHub for readthedocs.io

Run as gdexdata via setuid (requires setup below):

Command Alias Connector script Description
gdexcp rdacp setuid_gdexcp / setuid_rdacp Copy files and directories across local, remote, Object Store, or Globus endpoints
gdexkill rdakill setuid_gdexkill / setuid_rdakill Kill local processes and their children, or cancel PBS batch jobs
gdexmod rdamod setuid_gdexmod / setuid_rdamod Change permission modes for files and directories owned by gdexdata
decsdata_storage setuid_decsdata_storage Move decsdata datasets into the GLADE HSM cold storage to migrate them onto tape
decsdata_restore setuid_decsdata_restore Recall decsdata datasets out of the GLADE HSM cold storage and copy them back

Environment setup

Create a Python environment first; package installs in the next section run inside whichever environment you activate here.

Option A — Python venv (DECS machines)

python3 -m venv $ENVHOME          # e.g. /glade/u/home/gdexdata/gdexmsenv
source $ENVHOME/bin/activate

Option B — Conda (DAV/Casper)

conda create --prefix $ENVHOME python=3.12   # e.g. /glade/work/gdexdata/conda-envs/pg-gdex
conda activate $ENVHOME

Installing rda-python-miscs

Pick whichever install mode fits your workflow. All four pull in the transitive dependencies (rda_python_common, rda_python_setuid) automatically.

For local development, clone this repo alongside your project and install it in editable mode so that changes are picked up without re-installing:

git clone https://github.com/NCAR/rda-python-miscs.git
cd rda-python-miscs
pip install -e .

To test a specific branch (e.g. an in-progress feature or fix branch), pass -b/--branch to git clone:

git clone -b <branch-name> https://github.com/NCAR/rda-python-miscs.git
cd rda-python-miscs
pip install -e .

For a regular (non-editable) install from a checkout:

pip install /path/to/rda-python-miscs

For a production install on a system that uses the published distribution:

pip install rda_python_miscs

Setuid Setup

The setuid programs (gdexcp, gdexkill, gdexmod, decsdata_storage, decsdata_restore and the rda* aliases) execute as the common user PGLOG['COMMONUSER'] (default gdexdata) via the rda_python_setuid mechanism, which is pulled in automatically as a dependency. After pip install above, choose one of the wiring options below.

Note: If rda_python_setuid is already installed and fully set up in your environment, you can skip the compile step (-c/--compile) and the optional pgstart step (-p/--pgstart). The -l/--link step is still required to wire up this package's own setuid programs.

Full setuid install (requires sudo access to COMMONUSER)

Run these steps once per environment:

# 1. Compile the pywrapper C binary (once per environment):
pywrapper-install -c|--compile -n|--username gdexdata

# 2. Wire up all setuid programs in one pass:
pywrapper-install -l|--link all

# 3. Optionally, install a pgstart_<loginname> binary so <loginname> (any
#    user in the same group as PGLOG['COMMONUSER']) can run commands as
#    themselves.  Run either by PGLOG['ADMINUSER'] (default zji, if it has
#    'sudo -u <loginname>'), or by <loginname> directly:
pywrapper-install -p|--pgstart -n|--username <loginname>

pywrapper-install with no arguments displays the full user guide.

Simple install (no sudo required, runs as current user)

Users who do not need the setuid mechanism can create direct symlinks instead:

pywrapper-install -l|--link all -s|--simple

This creates bin/<name> -> bin/setuid_<name> for every setuid program and they run as the current user with no privilege change.

Update an existing installation (no sudo required)

When the package is upgraded and a new pywrapper.c is bundled, recompile and reinstall all setuid binaries using the existing pgstart_* binaries:

pywrapper-install -u|--update

Setup guide

The shared setuid setup guide is shown automatically if any setuid_* connector script is invoked directly before the setuid wrapper has been configured.

Cold storage setup

decsdata_storage and decsdata_restore drive the GLADE HSM through the glade_hsm script, which is not part of this package. They look it up at ~benkirk/glade_hsm unless the environment variable GLADE_HSM names another copy of it:

export GLADE_HSM=/path/to/glade_hsm

Both programs work on the decsdata directory PGLOG['DECSHOME'] (default /glade/campaign/collections/gdex/decsdata, also reachable as /gdex/decsdata), which option -w overrides. Only members of the DECS group may run them, and decsdata_restore reads Table sfile in RDADB to size a restore, so a working RDADB login is required as well.

Because the decsdata quota is limited, check the space left with gladequota before a large restore:

pgstart_gdexdata gladequota    # or plain 'gladequota' when logged in as gdexdata

decsdata_restore -x runs the same check itself and refuses to request a recall unless twice the size of the data is still available.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rda_python_miscs-3.0.5.tar.gz (87.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rda_python_miscs-3.0.5-py3-none-any.whl (123.1 kB view details)

Uploaded Python 3

File details

Details for the file rda_python_miscs-3.0.5.tar.gz.

File metadata

  • Download URL: rda_python_miscs-3.0.5.tar.gz
  • Upload date:
  • Size: 87.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rda_python_miscs-3.0.5.tar.gz
Algorithm Hash digest
SHA256 065829d9998d679dea33ba1aa3ff59f0eb8354d676e7b8a2fca12c63f30fa288
MD5 a1171f04c410c8efb7429fff11b9ea02
BLAKE2b-256 aff76bbdfb800a005ab900d3a462600b908adbe4d9e2fafedb9d7e31facf8361

See more details on using hashes here.

Provenance

The following attestation bundles were made for rda_python_miscs-3.0.5.tar.gz:

Publisher: publish.yml on NCAR/rda-python-miscs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rda_python_miscs-3.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for rda_python_miscs-3.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8946d992a8430855ceaf88e25983be99885cf5762d646d1e94f4e6b06390bd50
MD5 3cce05ccfaa008248323bbdedc35dc98
BLAKE2b-256 75bdf9a8452fde49c65735a01a91fba0694fdf6319431a6b522d036482854d34

See more details on using hashes here.

Provenance

The following attestation bundles were made for rda_python_miscs-3.0.5-py3-none-any.whl:

Publisher: publish.yml on NCAR/rda-python-miscs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

3.0.5 This release

2 files

3.0.4

2 files

3.0.3

2 files

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

2.0.15

2 files

2.0.14

2 files

2.0.13

2 files

2.0.12

2 files

2.0.11

2 files

2.0.10

2 files

2.0.9

2 files

2.0.8

2 files

2.0.7

2 files

2.0.6

2 files

2.0.5

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page