blob: ac7efb7ef4be911409448eedcf056fa9c09b2ff9 [file] [log] [blame]
#!/usr/bin/perl -w
#
# perl example to create a new Linux_NextHopIPRoute instance.
# written by warptrosse@gmail.com
#
use strict;
use warnings;
use lib '../../../build/bindings/perl';
use lib '..';
use openwsman;
# debug (to stderr)
# openwsman::set_debug(1);
# Create client instance.
# (host, port, path, scheme, username, password)
my $client = new openwsman::Client::('localhost', 5985, '/wsman', 'http',
'wsman', 'secret')
or die print "[ERROR] Could not create client handler.\n";
# Alternate way.
# my $client = new openwsman::Client::('http://wsman:secret@localhost:8889/wsman')
# or die print "[ERROR] Could not create client handler.\n";
# Set up client options.
my $options = new openwsman::ClientOptions::()
or die print "[ERROR] Could not create client options handler.\n";
# Force basic auth.
$client->transport()->set_auth_method($openwsman::BASIC_AUTH_STR);
my $uri = 'http://sblim.sf.net/wbem/wscim/1/cim-schema/2/Linux_NextHopIPRoute'; # Uri.
my @dataInfo = (
['AddressType' , "1"],
['AdminDistance' , "1"],
['Caption' , "NextHop IPv4 route."],
['Description' , "NextHop IPv4 route."],
['DestinationAddress' , "192.168.0.0"],
['DestinationMask' , "24"],
['ElementName' , "IPv4-192.168.0.0/24"],
['Generation' , "1"],
['InstanceID' , "localhost|192.168.0.0|24|254|2|0|"],
['IsStatic' , "1"],
['OtherDerivation' , ""],
['PrefixLength' , ""],
['RouteDerivation' , "3"],
['RouteMetric' , "1"],
['TypeOfRoute' , "2"]
); # Selectors list.
my $result; # Used to store obtained data.
# Get class name.
my $className;
if(($uri =~ /.\/(\w+)$/)) {
$className = $1;
} else {
print "[ERROR] Malformed uri.\n";
return 1;
}
# Establish data.
# (key, value)
my $data = new openwsman::XmlDoc::($className);
my $root = $data->root();
$root->set_ns($uri);
for(my $i=0 ; $i<scalar(@dataInfo) ; $i++) {
$root->add($uri, $dataInfo[$i][0], $dataInfo[$i][1]);
}
# Dump the XML request to stdout.
# $options->set_dump_request();
# Create instance.
# (options, uri, data, data length, encoding)
$result = $client->create($options, $uri, $data->string(),
length($data->string()),"utf-8");
unless($result && $result->is_fault eq 0) {
print "[ERROR] Could not create instance.\n";
} else {
# Print output.
print "---------------------------------------------------\n";
print "Result: \n\n", $result->string();
print "---------------------------------------------------\n";
}