You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2015-06-12 20:22:44

lezell
Member
Registered: 2015-06-12
Posts: 3

Bug Method addTicketDocument : Plugin WebServices XMLRPC

Bonjour à tous,

fervent utilisateur de GLPI depuis plusieurs années, je souhaite aller encore plus loin en intégrant cet outil dans notre intranet. Pour ce faire je souhaite m'appuyer tout logiquement sur le plugin webServices.

Je suis donc en train de réaliser un client complet full java.

et je me heurte à un petit problème sur le addTicketDocument qui ne fonctionne apparemment pas (même avec le script php de test fourni avec le plugin)

root@systechinf40:/opt/glpi/current/www/plugins/webservices/scripts# php testxmlrpc.php --host=glpi.agglo-larochelle.fr --url=/plugins/webservices/xmlrpc.php   --username=admin --password=XXXXXXX --method=glpi.addTicketDocument --session=e0f908517738b090c65bcb0c4fab3cb7 --ticket=22260 --base64=/tmp/sortir.png --name=sortir.png
+ Calling 'glpi.addTicketDocument' on [url]http://glpi.agglo-larochelle.fr//plugins/webservices/xmlrpc.php?session=e0f908517738b090c65bcb0c4fab3cb7[/url]
xmlrpc error(15): Command failed

Ca a l'air de planter sur $new = $documentitem->add($input);

dans les logs :

2015-06-12 20:04:58 [9@systechinf40]
Execute method:glpi.addTicketDocument (xml-rpc), function:PluginWebservicesMethodHelpdesk::methodAddTicketDocument, duration:0.044, size:68
2015-06-12 20:04:58 [9@systechinf40]
Connexion: j.rautureau, 172.17.150.40
Protocol: xml-rpc, Method: glpi.addTicketDocument, Function: PluginWebservicesMethodHelpdesk::methodAddTicketDocument
Params: Array
(
    [ticket] => 22260
    [base64] => iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAFMQAABTEBt+0oUgAAAAd0SU1FB9sLHQoJImi7h2QAAAThSURBVEjHtZXfax3VFsc/a8/eMydpNLZpbNKYao3FWKjR5lbFiLXWWsEKiv+B4oso+GDaaBKSNFrBi9IHLxf8C9pGX7xwfZBUEVIUNNi0akyFVtGcNL+T5iRz5szM8uGcHJNasQgOLPae2Xu+3+9e3732hn/4keuZtKv1/ttE0t0iZocxEhoxMwKDX31xJvu3CO7YtYsfz52jZc/9r6Zp8kqaasMtDQ1svOkmRITFK4tkJyaw1s4453qHPj39XmtbG18PDV0fwe4HHrw7SZNPamtqbt63d6/u3HmXWM9DVQHBOUscx4z+MKZDZ87I7PzcrHOubfDjj0f/kuC+Bx96NNF0cO/DD+t9ra0SFSJEBEEQAUT4+dIlFLi9qQlnLd+MjOgXX34pznr7///R/05fk+DAoT0sLGxoNqTfP3HwoNZt2SKgRXD5ferlbJauzk5+GBvj1MAAjdu2YUSYmp7Wzz7/XKxnWzzrjXx44sQfV9D2yL6ZPf9q3bitsVGKoAYREBFSVa4sLNDd2QnAwAcf8Gt2nCDIYEoixicm9Pz581Mfnjy1ZRXTW+3se/zgSzU1m569c8cOKRQKxHFCksQkSUIURYRLS3R3daGq/Do+zqmBAaqrq0nihDiNSZKUqqoqWbpyZUPzzp25c2fPnilKXGXyTO/2W2/V5VyOMJ8nH4aEYUgul6OQz9Pd3Y1qMWXHjh2jfmsd+XyefJQnykfk83lWlldobLxFPc+8ss6DJw89Ve/5bvyu5mbSNEWMICLEcUJ1VVVZuYhw/Phx5pcWy6aLmLJPIgbPM1y8dBFFtr//n/9esgBe4O931mNhcZEg8AGI45i6zbV0lcABhoeH+Xb0e2prN5dApSTGYAAxhjBMcNaBpruBIoHv2xpBmJ2dobKyAuc57mhq4nB7e1l5GIa88+671DfUU9y6BlNSbYygCoVCRFSIsNYgYncAWADnXMZQVLNqapLE6+pDUeIkplAoFPNqhGJZSHFUwRjBdz4igjGEZZN9ay9YZ3HO4ZyjsqKCsR8v0NvXh4igqmSCDIdfbWd6ehotmVcEEjzv93+ds/jO4pw/UyZwvhv21w06KisrmZjM0tPbU1IJra2t3NtyD75vce5aoBa/9C2wZnBdob348ou/iJitYkRMyUBjhDRJuaHqRvqP9pf9eP6F52ho2Fp8N4JZ3UlGMCIqIrNdr/dsXlcHzrnjzllZXcGqkkxFhigO6e7uKqerr+co2Wy2qN46bEm9sxZrrVhre6952LV3tF82Rmql+GDWqFNV0kR5o/9NAE6ePMHo2HcEQVBOoaqqwFzHka6aVczyCvr6+3CeOeCcFeec+mvUBUFAVdUGNm6qpqe3B4CWlnuZm5tfv9EEUby2t99+88+P66NHex8Vj0ERUREjQSagIpMhCDL4vo8xhp8u/kxuZYn6ujqWV5ZRVVVURNnfcaTr9F9eOG/9u79Z1Ayp6iZrrQZBIL4fYK0tF1UYhoThihYKBVFlUkQOdBx+feRqLHMtAk/NaMfhzhpBXo7jeDaXyzE/P8fMzBSTk1NMTU2yuLhAFEXjira/dqRzS245N3I9d7JXCrOmzT3z9KHm7U1NjxnP1IiYTBTlL0xkLw+fPDFwFtgApKVI1oSuJXCl8EsRXBWZNX0BolKEQP6qiEptAYh+Awbk/k/k+PgEAAAAAElFTkSuQmCC
    [name] => sortir.png
)
Compression: Server:/, Config:0, Agent:?
Duration: 0.044
Response size: 68
Response content: Array
(
    [faultCode] => 15
    [faultString] => Command failed
)

...tiens en écrivant ce post je me suis rendu compte que même via l'interface de GLPI je n'arrive pas à uploader / attacher de documents à un ticket...Il met téléchargement réussi et puis plus rien...(sur Chrome comme sur Firefox)

Si vous avez une idée ?

Plugin webservices : 1.5.0
GLPI : 0.8.4

Last edited by lezell (2015-06-12 20:23:42)

Offline

#2 2015-06-15 11:26:21

lezell
Member
Registered: 2015-06-12
Posts: 3

Re: Bug Method addTicketDocument : Plugin WebServices XMLRPC

Bon en fait si les documents sont bien attachés dans l'interface aux tickets.

Par contre je ne vois pas comment le webservice peut fonctionner...

J'ai parcouru le code et il me semble obsolète sur cette partie...

Offline

#3 2015-06-15 13:50:14

lezell
Member
Registered: 2015-06-12
Posts: 3

Re: Bug Method addTicketDocument : Plugin WebServices XMLRPC

Bon, je me suis débrouillé tout seul et corrigé deux classes :

/www/plugins/webservices/inc/methodhelpdesk.class.php

et

document.class.php

Sans quoi cela ne fonctionne pas.

Offline

#4 2015-07-15 18:01:09

lambda79
Member
From: Taissy
Registered: 2014-09-18
Posts: 14

Re: Bug Method addTicketDocument : Plugin WebServices XMLRPC

@lezell

Merci pour ces infos, effectivement il y a un problème sur la méthode addTicketDocument pourrais tu nous faire partager tes corrections sur ces deux classes ? pastebin ou autre ?

Merci beaucoup

Offline

#5 2015-07-24 11:02:46

Devether
Member
Registered: 2013-02-19
Posts: 14

Re: Bug Method addTicketDocument : Plugin WebServices XMLRPC

Bonjour,

J'ai eu le même problème et je me suis débrouillé aussi pour corriger le plugin.

Je n'ai modifié que le fichier "plugins/webservices/inc/methodhelpdesk.class.php"

Je vous mets le patch depuis la version 1.5.0

--- methodhelpdesk.class.php.old        2015-07-24 10:55:17.991708584 +0200
+++ methodhelpdesk.class.php.new        2015-07-24 10:55:25.815768112 +0200
@@ -1264,7 +1264,10 @@
          $document_name = addslashes(sprintf(__('%1$s %2$s'), _x('phone', 'Number'),
                                              $ticket->fields['id']));
       }
-      $filename = tempnam(GLPI_TMP_DIR, 'PWS');
+      $filename = GLPI_TMP_DIR.'/'.$document_name;
+      if ( !touch($filename) ) {
+        return self::Error($protocol, WEBSERVICES_ERROR_FAILED, '', "can't create " . $filename);
+      }
       $response = parent::uploadDocument($params, $protocol, $filename, $document_name);
       //An error occured during document upload
       if (parent::isError($protocol, $response)) {
@@ -1291,6 +1294,7 @@
                         'tickets_id'            => $ticket->getID(),
                         'entities_id'           => $ticket->getEntityID(),
                         'is_recursive'          => $ticket->isRecursive(),
+                        '_filename'             => Array(basename($filename)),
                         'documentcategories_id' => $CFG_GLPI["documentcategories_id_forticket"]);
          $new = $doc->add($input);
       }

GLPI 9.4.5 - Module Node.js glpi-api

Offline

#6 2015-07-24 11:11:59

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,278

Re: Bug Method addTicketDocument : Plugin WebServices XMLRPC

Je n'ai aucun problème pour ajouter un document depuis le webservices.
Plusieurs corrections ont eu lieues dans la 0.85 pour corriger les patchs, avez-vous appliqué ces corrections ?


CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6  - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)

Offline

#7 2015-07-27 14:15:45

Devether
Member
Registered: 2013-02-19
Posts: 14

Re: Bug Method addTicketDocument : Plugin WebServices XMLRPC

yllen wrote:

Plusieurs corrections ont eu lieues dans la 0.85 pour corriger les patchs, avez-vous appliqué ces corrections ?

J'utilise la version 0.85.4 de GLPI mise à jour depuis une 0.84.6 avec le plugin webservices 1.5.0 disponible ici : https://forge.glpi-project.org/projects … ices/files
Quelles corrections supplémentaires ont été faites ? Dois-je prendre la Daily tarball ?


GLPI 9.4.5 - Module Node.js glpi-api

Offline

#8 2015-07-30 12:06:04

ludu
Member
Registered: 2013-07-01
Posts: 20

Re: Bug Method addTicketDocument : Plugin WebServices XMLRPC

Bonjour,

J'ai testé cela sur la dernière bugfix de GLPI 0.85 et le trunk de webservices.

Il y a plusieurs problèmes :
- La méthode uploadDocument de methodcommon.class est obsolète, car la variable globale $_FILES n'est plus utilisée pour l'ajout de documents.
- La vérification du type de fichier se fait maintenant avec l'extension du fichier, le nom du fichier devrait donc être obligatoire dans le méthode addTicketDocument
- Il manque le paramètre '_filename' pour ajouter le nouveau document

Je propose une correction que tsmr a posté sur la forge : https://forge.glpi-project.org/issues/5432

Offline

#9 2015-10-03 15:30:34

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,278

Re: Bug Method addTicketDocument : Plugin WebServices XMLRPC

Version du webservice sortie avec cette correction


CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6  - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)

Offline

Board footer

Powered by FluxBB