mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
perl: drop %guestfs_introspection stuff
It is not something standard, and actually unused by libguestfs itself. Possibly going to be used by the old virt-v2v (which was in Perl), but never used for that either.
This commit is contained in:
@@ -724,8 +724,7 @@ use warnings;
|
||||
|
||||
# This is always 1.0, never changes, and is unrelated to the
|
||||
# real libguestfs version. If you want to find the libguestfs
|
||||
# library version, use $g->version. If you want to test if
|
||||
# APIs/parameters are present, use %%guestfs_introspection.
|
||||
# library version, use $g->version.
|
||||
use vars qw($VERSION);
|
||||
$VERSION = '1.0';
|
||||
|
||||
@@ -927,88 +926,6 @@ C<$g-E<gt>feature-available>.\n\n" opt
|
||||
|
||||
pr "=cut\n\n";
|
||||
|
||||
(* Introspection hash. *)
|
||||
pr "use vars qw(%%guestfs_introspection);\n";
|
||||
pr "%%guestfs_introspection = (\n";
|
||||
List.iter (
|
||||
fun { name = name; style = (ret, args, optargs); shortdesc = shortdesc } ->
|
||||
pr " \"%s\" => {\n" name;
|
||||
pr " ret => ";
|
||||
(match ret with
|
||||
| RErr -> pr "'void'"
|
||||
| RInt _ -> pr "'int'"
|
||||
| RBool _ -> pr "'bool'"
|
||||
| RInt64 _ -> pr "'int64'"
|
||||
| RConstString _ -> pr "'const string'"
|
||||
| RConstOptString _ -> pr "'const nullable string'"
|
||||
| RString _ -> pr "'string'"
|
||||
| RStringList _ -> pr "'string list'"
|
||||
| RHashtable _ -> pr "'hash'"
|
||||
| RStruct (_, typ) -> pr "'struct %s'" typ
|
||||
| RStructList (_, typ) -> pr "'struct %s list'" typ
|
||||
| RBufferOut _ -> pr "'buffer'"
|
||||
);
|
||||
pr ",\n";
|
||||
let pr_type i = function
|
||||
| String (PlainString, n) -> pr "[ '%s', 'string', %d ]" n i
|
||||
| String (Device, n) -> pr "[ '%s', 'string(device)', %d ]" n i
|
||||
| String (Mountable, n) -> pr "[ '%s', 'string(mountable)', %d ]" n i
|
||||
| String (Dev_or_Path, n) ->
|
||||
pr "[ '%s', 'string(dev_or_path)', %d ]" n i
|
||||
| String (Mountable_or_Path, n) ->
|
||||
pr "[ '%s', 'string(mountable_or_path)', %d ]" n i
|
||||
| String (GUID, n) -> pr "[ '%s', 'guid', %d ]" n i
|
||||
| String ((FileIn|FileOut), n) ->
|
||||
pr "[ '%s', 'string(filename)', %d ]" n i
|
||||
| String (Key, n) -> pr "[ '%s', 'string(key)', %d ]" n i
|
||||
| String (Filename, n) -> pr "[ '%s', 'string(file)', %d ]" n i
|
||||
| String (Pathname, n) -> pr "[ '%s', 'string(path)', %d ]" n i
|
||||
| BufferIn n -> pr "[ '%s', 'buffer', %d ]" n i
|
||||
| OptString n -> pr "[ '%s', 'nullable string', %d ]" n i
|
||||
| StringList (Device, n) -> pr "[ '%s', 'string(device) list', %d ]" n i
|
||||
| StringList (Filename, n) ->
|
||||
pr "[ '%s', 'string(file) list', %d ]" n i
|
||||
| StringList (_, n) -> pr "[ '%s', 'string list', %d ]" n i
|
||||
| Bool n -> pr "[ '%s', 'bool', %d ]" n i
|
||||
| Int n -> pr "[ '%s', 'int', %d ]" n i
|
||||
| Int64 n -> pr "[ '%s', 'int64', %d ]" n i
|
||||
| Pointer (t, n) -> pr "[ '%s', 'pointer(%s)', %d ]" n t i
|
||||
in
|
||||
pr " args => [\n";
|
||||
iteri (fun i arg ->
|
||||
pr " ";
|
||||
pr_type i arg;
|
||||
pr ",\n"
|
||||
) args;
|
||||
pr " ],\n";
|
||||
if optargs <> [] then (
|
||||
pr " optargs => {\n";
|
||||
iteri (fun i arg ->
|
||||
pr " %s => " (name_of_argt arg);
|
||||
pr_type i arg;
|
||||
pr ",\n"
|
||||
) (args_of_optargs optargs);
|
||||
pr " },\n";
|
||||
);
|
||||
pr " name => \"%s\",\n" name;
|
||||
pr " description => %S,\n" shortdesc;
|
||||
pr " },\n";
|
||||
) (actions |> external_functions |> sort);
|
||||
pr ");\n\n";
|
||||
|
||||
pr "# Add aliases to the introspection hash.\n";
|
||||
let i = ref 0 in
|
||||
List.iter (
|
||||
fun { name = name; non_c_aliases = non_c_aliases } ->
|
||||
List.iter (
|
||||
fun alias ->
|
||||
pr "my %%ielem%d = %%{$guestfs_introspection{%s}};\n" !i name;
|
||||
pr "$guestfs_introspection{%s} = \\%%ielem%d;\n" alias !i;
|
||||
incr i
|
||||
) non_c_aliases
|
||||
) (actions |> external_functions |> sort);
|
||||
pr "\n";
|
||||
|
||||
(* End of file. *)
|
||||
pr "\
|
||||
1;
|
||||
@@ -1032,33 +949,6 @@ class, use the ordinary Perl UNIVERSAL method C<can(METHOD)>
|
||||
print \"\\$g->set_verbose is available\\n\";
|
||||
}
|
||||
|
||||
Perl does not offer a way to list the arguments of a method, and
|
||||
from time to time we may add extra arguments to calls that take
|
||||
optional arguments. For this reason, we provide a global hash
|
||||
variable C<%%guestfs_introspection> which contains the arguments
|
||||
and their types for each libguestfs method. The keys of this
|
||||
hash are the method names, and the values are an hashref
|
||||
containing useful introspection information about the method
|
||||
(further fields may be added to this in future).
|
||||
|
||||
use Sys::Guestfs;
|
||||
$Sys::Guestfs::guestfs_introspection{mkfs}
|
||||
=> {
|
||||
ret => 'void', # return type
|
||||
args => [ # required arguments
|
||||
[ 'fstype', 'string', 0 ],
|
||||
[ 'device', 'string(device)', 1 ],
|
||||
],
|
||||
optargs => { # optional arguments
|
||||
blocksize => [ 'blocksize', 'int', 0 ],
|
||||
features => [ 'features', 'string', 1 ],
|
||||
inode => [ 'inode', 'int', 2 ],
|
||||
sectorsize => [ 'sectorsize', 'int', 3 ],
|
||||
},
|
||||
name => \"mkfs\",
|
||||
description => \"make a filesystem\",
|
||||
}
|
||||
|
||||
To test if particular features are supported by the current
|
||||
build, use the L</feature_available> method like the example below. Note
|
||||
that the appliance must be launched first.
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
# libguestfs Perl bindings -*- perl -*-
|
||||
# Copyright (C) 2011 Red Hat Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
# Test %guestfs_introspection.
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More tests => 10;
|
||||
|
||||
use Errno;
|
||||
|
||||
use Sys::Guestfs;
|
||||
|
||||
my %add_drive = %{$Sys::Guestfs::guestfs_introspection{add_drive}};
|
||||
ok(1);
|
||||
|
||||
is ($add_drive{ret}, "void");
|
||||
is ($add_drive{args}[0][0], "filename");
|
||||
is ($add_drive{args}[0][1], "string");
|
||||
is ($add_drive{args}[0][2], 0);
|
||||
|
||||
# In libguestfs >= 1.19.19, this is an alias.
|
||||
my %add_drive_opts = %{$Sys::Guestfs::guestfs_introspection{add_drive_opts}};
|
||||
ok(1);
|
||||
|
||||
ok (exists $add_drive_opts{optargs});
|
||||
ok (exists $add_drive_opts{optargs}->{readonly});
|
||||
is ($add_drive_opts{optargs}->{readonly}[0], "readonly");
|
||||
is ($add_drive_opts{optargs}->{readonly}[1], "bool");
|
||||
Reference in New Issue
Block a user