r250@brr: dpavlin | 2007-11-20 14:09:59 +0100
authorDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 20 Nov 2007 13:10:27 +0000 (13:10 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 20 Nov 2007 13:10:27 +0000 (13:10 +0000)
 added GetParameterAttributes which is supported by 7.x firmware

git-svn-id: https://perl-cwmp.googlecode.com/svn/trunk@218 836a5e1a-633d-0410-964b-294494ad4392

bin/cpe-queue.pl
lib/CWMP/Methods.pm
t/20-methods.t
t/methods/GetParameterAttributes.xml [new file with mode: 0644]

index b378405..6b6a008 100755 (executable)
@@ -135,6 +135,12 @@ foreach my $id ( @ARGV ) {
                $q->enqueue( 'GetParameterValues', [
                        'InternetGatewayDevice.',
                ]);
+
+               $q->enqueue( 'GetParameterAttributes', [
+                       'InternetGatewayDevice.DeviceInfo.SerialNumber',
+               ]);
+
+#              $q->enqueue( 'SetParameterAttributes', [ '
        }
 
 }
index e8eb113..585dceb 100644 (file)
@@ -142,7 +142,6 @@ sub GetParameterValues {
        my $self = shift;
        my $state = shift;
        my @ParameterNames = _array_param(shift);
-       confess "GetParameterValues need ParameterNames" unless @ParameterNames;
        warn "# GetParameterValues", dump( @ParameterNames ), "\n" if $self->debug;
 
        $self->xml( $state, sub {
@@ -181,6 +180,31 @@ sub GetParameterNames {
        });
 }
 
+=head2 GetParameterAttributes
+
+       $method->GetParameterAttributes( $state, [ $ParametarNames, ... ] );
+
+=cut
+
+sub GetParameterAttributes {
+       my ( $self, $state, $param ) = @_;
+       my @ParameterNames = _array_param($param);
+
+       warn "# GetParameterAttributes", dump( @ParameterNames ), "\n" if $self->debug;
+
+       $self->xml( $state, sub {
+               my ( $X, $state ) = @_;
+
+               $X->GetParameterAttributes( $cwmp,
+                       $X->ParameterNames( $cwmp,
+                               map {
+                                       $X->string( $xsd, $_ )
+                               } @ParameterNames
+                       )
+               );
+       });
+}
+
 =head2 Reboot
 
   $method->Reboot( $state );
index 9d260c3..56f4c35 100755 (executable)
@@ -4,7 +4,7 @@ use warnings;
 
 my $debug = shift @ARGV;
 
-use Test::More tests => 16;
+use Test::More tests => 18;
 use Data::Dump qw/dump/;
 use Cwd qw/abs_path/;
 use File::Slurp;
@@ -54,3 +54,6 @@ check_method( 'GetParameterValues', [
        'InternetGatewayDevice.DeviceInfo.SerialNumber',
        'InternetGatewayDevice.DeviceInfo.VendorConfigFile.',
 ]);
+check_method( 'GetParameterAttributes', [
+       'InternetGatewayDevice.DeviceInfo.SerialNumber'
+]);
diff --git a/t/methods/GetParameterAttributes.xml b/t/methods/GetParameterAttributes.xml
new file mode 100644 (file)
index 0000000..fd7fc0d
--- /dev/null
@@ -0,0 +1,16 @@
+<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+               xmlns:cwmp="urn:dslforum-org:cwmp-1-0"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
+               soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
+  <soap:Header>
+    <cwmp:ID mustUnderstand="1">42</cwmp:ID>
+    <cwmp:NoMoreRequests>0</cwmp:NoMoreRequests>
+  </soap:Header>
+  <soap:Body>
+    <cwmp:GetParameterAttributes>
+      <cwmp:ParameterNames>
+        <xsd:string>InternetGatewayDevice.DeviceInfo.SerialNumber</xsd:string>
+      </cwmp:ParameterNames>
+    </cwmp:GetParameterAttributes>
+  </soap:Body>
+</soap:Envelope>
\ No newline at end of file