ITRS Opsview Cloud Documentation

Withdraw of the 6.9.2 Release

Unfortunately, due to critical issues identified with version 6.9.2, we have decided to remove it and ensure it's no longer available for download. These issues impacted the ability to install or upgrade but none were security-related. We are diligently working to resolve these issues and are planning to release an updated version 6.9.3 in early May.

What if you've already upgraded?

For customers who have already upgraded to 6.9.2, no immediate action is required, as none of these issues are security-related. Once it's available, you will still be able to upgrade to 6.9.3 as normal. We appreciate your patience and trust as we continue to enhance our software to better serve you. Thank you for your understanding.

Config - Host Templates

Object type: hosttemplate

Request URL: /rest/config/hosttemplate

Example GET Copied

    {
       "object" : {
          "hosts" : [
             {
                "ref" : "/rest/config/host/7",
                "name" : "cisco"
             }
          ],
          "name" : "Cisco Mgt",
          "description" : "Cisco device Management URLs",
          "id" : "3",
          "has_icon" : 0,
          "servicechecks" : [
             {
                "ref" : "/rest/config/servicecheck/45",
                "name" : "Check Loadavg",
                "exception":"-w 5,5,5 -c 9,9,9",
                "timed_exception":null,
             },
             {
                "ref" : "/rest/config/servicecheck/4",
                "name" : "DNS",
                "exception":"--other --args",
                "timed_exception":null,
             },
             {
                "ref" : "/rest/config/servicecheck/6",
                "name" : "HTTP",
                "timed_exception":{
                    "timeperiod" : { "name" : "workhours" },
                    "args" : "--url=%URL% -w 15 -c 20",
                },
                "exception":null,
          ],
          "managementurls" : [
             {
                "url" : "ssh://$HOSTADDRESS$",
                "name" : "SSH",
                "id" : "4"
             },
             {
                "url" : "telnet://$HOSTADDRESS$",
                "name" : "Telnet",
                "id" : "5"
             }
          ],
          "uncommitted" : "1"
       }
    }

Notes on attributes:

Host Template - Upload Copied

Warning

Only upload Opspacks containing plugins from trusted sources. Uploading untrusted and unverified scripts could compromise your system’s integrity.

Host template is staged, parsed and checked for conflicts to see if an import would be successful.

Requires: ADMINACCESS.

URL: /rest/config/hosttemplate/upload

Method:

Headers:

Parameters:

The actual Opspack contents must be attached to the request as multipart form data. For example, you can use the curl command:

curl -H "Accept: text/html" -H "X-Opsview-Token: <TOKEN>" -F "x-opsview-token=<TOKEN>" -F "filename=@/path/to/opspack.tar.gz;type=text/plain" https://<OPSVIEW URL>/rest/config/hosttemplate/upload

Returns for a failure with status 200:

{
  success: false,
  error: "Opspack contains ....", // If success is false, will return an internationalised string for display
}

Returns for a success:

{
 success: true,
 stdout: ['text from opspack','next line'], // Strings from the opspack test import process
 exists: true,                   // Returns true if there is any conflict in the opspack for importing. Details in the stdout
}

Host Template - Import Copied

Warning

Only import Opspacks containing plugins from trusted sources. Importing untrusted and unverified scripts could compromise your system’s integrity.

Requires: ADMINACCESS.

Needs changelog if enabled.

URL: /rest/config/hosttemplate/import

Method:

Parameters:

Returns:

{
 success: true,
 return_code: 0, // Return code from the opspack import process
 stdout: [],     // Array of strings from opspack import output
 stderr: [],     // Array of strings from opspack import errors
}

Example import script Copied

This example script in perl, import_opspack_via_rest.pl, shows how to code the upload & import of an Opspack.

#!/usr/bin/perl
#
# SYNTAX:
#   import_opspack_via_rest <opspack_file>
#
# DESCRIPTION:
#   Quick script to import Opspack via Opsview's REST API

use warnings;
use strict;
use WWW::Mechanize;
use JSON;

my $opspack = shift @ARGV
  || die "Must specify an opspack file to upload and import";

my $url_prefix      = "http://localhost";
my $username        = "admin";
my $password        = "initial";
my $upload_filename = "test.opspack";

my $ua = WWW::Mechanize->new;
my $res;

$ua->add_header(
    "Accept" => "application/json"
);

$ua->post(
    "$url_prefix/rest/login",
    Content => [
        username => $username,
        password => $password,
    ]
);
$res = decode_json( $ua->content );

$ua->add_header( "X-Opsview-Username", $username );
$ua->add_header( "X-Opsview-Token",    $res->{token} );

$ua->post(
    "$url_prefix/rest/config/hosttemplate/upload",
    "Content-Type" => "form-data",
    "Content"      => [
        filename => [
            $opspack,
            $upload_filename,
            "Content-type" => "application/octet-stream",
        ],
    ],
);

if ( $ua->status != 200 ) {
    die "Unexpected failure";
}

$res = decode_json( $ua->content );
if ( !$res->{success} ) {
    die "Failure uploading opspack";
}

if ( @{ $res->{stdout} } ) {
    print "Uploaded opspack information\n";
    print join( "", @{ $res->{stdout} } );
    print "\n";
}

my $force = 0;
if ( $res->{exists} ) {
    print "Opspack already exists. Press enter to force upload: ";
    $_     = <>;
    $force = 1;
}

$ua->add_header(
    "Accept" => "application/json"
);
$ua->post(
    "$url_prefix/rest/config/hosttemplate/import",
    "Content" => [
        filename  => $upload_filename,
        overwrite => $force,
    ],
);

if ( $ua->status != 200 ) {
    die "Unexpected failure";
}

$res = decode_json( $ua->content );
if ( !$res->{success} ) {
    die "Failure uploading opspack";
}

if ( @{ $res->{stdout} } ) {
    print "IMPORTED OPSPACK INFORMATION\n";
    print join( "", @{ $res->{stdout} } );
    print "\n";
}

Host Template - Export Opspack Copied

Prepares an opspack for export. Take the generated filename for retrieving in a subsequent call.

Requires: ADMINACCESS.

URL: /rest/config/hosttemplate/ID/export

Method:

Returns:

{
 success: true,
 filename: "FILENAME.opspack"  // Will be a generated temporary name
}

Host Template - Retrieve Opspack Copied

Retrieves a previously exported opspack. When the file is downloaded, the file will be removed.

No specific access required.

URL: /rest/exportedFile

Method:

Parameters:

Example export process Copied

$ opsview_rest --username=admin --password=initial --pretty --data-format=json POST "config/hosttemplate/1/export"
{
   "filename" : "opsview-component-agent:tempcman1ESWWKpFnxx3.opspack",
   "success" : true
}

$ wget --header="Accept: application/json" -O saved.opspack "http://localhost/rest/exportedFile?filename=opsview-component-agent:tempcman1ESWWKpFnxx3.opspack"
["Opsview On-premises"] ["API", "Technical Reference"]

Was this topic helpful?