go_pbspro

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 19, 2025 License: GPL-3.0

README

Golang library of OpenPBS

This is not an official Paratera product

This is a thin Go wrapper around the C library (libpbs) for the [OpenPBS resource manager]

1.Requirements

1.1.OS

You must install some requirements on CentOS 7.

# yum groupinstall "Development Tools" -y
# yum install -y sudo tar wget openssh-server openssh-clients openssl openssl-devel
# yum install -y gcc make rpm-build libtool hwloc-devel libX11-devel libXt-devel libedit-devel libical-devel ncurses-devel perl postgresql-devel python-devel tcl-devel tk-devel swig expat-devel libXext libXft autoconf automake
# yum install -y expat libedit postgresql-server python sendmail tcl tk libical

And on CentOS 8 Stream

# yum groupinstall "Development Tools" -y
# yum install -y sudo tar wget openssh-server openssh-clients openssl openssl-devel
# yum install --enablerepo powertools -y gcc make rpm-build libtool hwloc-devel libX11-devel libXt-devel libedit-devel libical-devel ncurses-devel perl postgresql-devel python3-devel tcl-devel tk-devel swig expat-devel libXext libXft autoconf automake
#

1.2.Download && Build OpenPBS

Download OpenPBS

# git clone https://github.com/openpbs/openpbs
# ./autogen.sh
# ./configure --prefix=/opt/pbs
# make -j4
# make install

1.3.Environment

# export LD_LIBRARY_PATH=/opt/pbs/lib
# export PBS_EXEC=/opt/pbs
# export PBS_SERVER=pm01
# export PBS_HOME=/opt/pbs

1.4.PBSpro Cluster

A PBSpro Cluster to test.

2.Install

# go get github.com/mrobbert/go_pbspro

3. Usage

    package main

    import (
        "github.com/mrobbert/go_pbspro"
        "log"
    )

    func main() {
            qstat, err := NewQstat("172.18.7.10")
        	if err != nil {
        		t.Error(err)
        	}
        
        	qstat.SetAttribs(nil)
        	qstat.SetExtend("")
        
        	err = qstat.ConnectPBS()
        	if err != nil {
        		fmt.Println("ConnectPBS Error")
        		t.Error(err)
        	}
        
        	err = qstat.PbsServerState()
        	if err != nil {
        		fmt.Println(err.Error())
        	}
        	//Print Server State Informations.
        	fmt.Println(qstat.ServerState)
        
        	err = qstat.DisconnectPBS()
        	if err != nil {
        		fmt.Println("DisconnectPBS Error")
        		t.Error(err)
            }
        // ...
    }

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL