glpi-api 0.3.5__tar.gz → 0.5.0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {glpi-api-0.3.5 → glpi-api-0.5.0}/PKG-INFO +3 -2
- {glpi-api-0.3.5 → glpi-api-0.5.0}/glpi_api.egg-info/PKG-INFO +3 -2
- {glpi-api-0.3.5 → glpi-api-0.5.0}/glpi_api.py +106 -0
- {glpi-api-0.3.5 → glpi-api-0.5.0}/setup.py +2 -2
- {glpi-api-0.3.5 → glpi-api-0.5.0}/LICENSE +0 -0
- {glpi-api-0.3.5 → glpi-api-0.5.0}/README.rst +0 -0
- {glpi-api-0.3.5 → glpi-api-0.5.0}/glpi_api.egg-info/SOURCES.txt +0 -0
- {glpi-api-0.3.5 → glpi-api-0.5.0}/glpi_api.egg-info/dependency_links.txt +0 -0
- {glpi-api-0.3.5 → glpi-api-0.5.0}/glpi_api.egg-info/requires.txt +0 -0
- {glpi-api-0.3.5 → glpi-api-0.5.0}/glpi_api.egg-info/top_level.txt +0 -0
- {glpi-api-0.3.5 → glpi-api-0.5.0}/setup.cfg +0 -0
@@ -1,16 +1,17 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: glpi-api
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.5.0
|
4
4
|
Summary: Wrap calls to GLPI REST API.
|
5
5
|
Home-page: https://github.com/unistra/python-glpi-api
|
6
6
|
Author: François Ménabé
|
7
|
-
Author-email: francois.menabe@
|
7
|
+
Author-email: francois.menabe@gmail.fr
|
8
8
|
License: GPLv3+
|
9
9
|
Keywords: rest,api,glpi
|
10
10
|
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
|
11
11
|
Classifier: Development Status :: 5 - Production/Stable
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
13
13
|
License-File: LICENSE
|
14
|
+
Requires-Dist: requests
|
14
15
|
|
15
16
|
********
|
16
17
|
glpi-api
|
@@ -1,16 +1,17 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: glpi-api
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.5.0
|
4
4
|
Summary: Wrap calls to GLPI REST API.
|
5
5
|
Home-page: https://github.com/unistra/python-glpi-api
|
6
6
|
Author: François Ménabé
|
7
|
-
Author-email: francois.menabe@
|
7
|
+
Author-email: francois.menabe@gmail.fr
|
8
8
|
License: GPLv3+
|
9
9
|
Keywords: rest,api,glpi
|
10
10
|
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
|
11
11
|
Classifier: Development Status :: 5 - Production/Stable
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
13
13
|
License-File: LICENSE
|
14
|
+
Requires-Dist: requests
|
14
15
|
|
15
16
|
********
|
16
17
|
glpi-api
|
@@ -435,6 +435,17 @@ class GLPI:
|
|
435
435
|
404: lambda r: None
|
436
436
|
}.get(response.status_code, _unknown_error)(response)
|
437
437
|
|
438
|
+
def _add_searchtext(self, searchText):
|
439
|
+
'''
|
440
|
+
Generate searchText parameter.
|
441
|
+
'''
|
442
|
+
if not isinstance(searchText, dict):
|
443
|
+
raise GLPIError(
|
444
|
+
'search text should be a dict, found: {:s}'.format(str(type(searchText)))
|
445
|
+
)
|
446
|
+
|
447
|
+
return {'searchText[{:s}]'.format(k): v for k, v in searchText.items()}
|
448
|
+
|
438
449
|
@_catch_errors
|
439
450
|
def get_all_items(self, itemtype, **kwargs):
|
440
451
|
"""`API documentation
|
@@ -454,7 +465,11 @@ class GLPI:
|
|
454
465
|
# Retrieve deleted computers.
|
455
466
|
>>> glpi.get_all_items('Computer', is_deleted=True)
|
456
467
|
[]
|
468
|
+
# Using searchText.
|
469
|
+
>>> glpi.get_all_items('Computer', searchText={'name':'server'})
|
470
|
+
[]
|
457
471
|
"""
|
472
|
+
kwargs.update(self._add_searchtext(kwargs.pop('searchText', {})))
|
458
473
|
response = self.session.get(self._set_method(itemtype),
|
459
474
|
params=_convert_bools(kwargs))
|
460
475
|
return {
|
@@ -713,6 +728,35 @@ class GLPI:
|
|
713
728
|
400: _glpi_error,
|
714
729
|
401: _glpi_error
|
715
730
|
}.get(response.status_code, _unknown_error)(response)
|
731
|
+
|
732
|
+
@_catch_errors
|
733
|
+
def add_sub_items(self, itemtype, item_id, sub_itemtype, *items):
|
734
|
+
"""`API documentation
|
735
|
+
Same method used as get-sub-items, same parameter
|
736
|
+
<https://github.com/glpi-project/glpi/blob/master/apirest.md#get-sub-items>`__
|
737
|
+
|
738
|
+
Add a collection of rows of the ``sub_itemtype`` for the identified
|
739
|
+
item of type ``itemtype`` and id ``item_id``. ``kwargs`` contains
|
740
|
+
additional parameters allowed by the API.
|
741
|
+
|
742
|
+
.. code::
|
743
|
+
|
744
|
+
# Add a operatingsystem of a computer.
|
745
|
+
>>> In [241]: glpi.add_sub_items('Computer',1,'Item_OperatingSystem',{'items_id': 1 ,'itemtype':'Computer','operatingsystems_id':1 })
|
746
|
+
[{'id': 261,
|
747
|
+
'itemtype': 'Computer',
|
748
|
+
'items_id': 1,
|
749
|
+
...
|
750
|
+
"""
|
751
|
+
url = self._set_method(itemtype, item_id, sub_itemtype)
|
752
|
+
response = self.session.post(url,
|
753
|
+
json={'input': items})
|
754
|
+
return {
|
755
|
+
201: lambda r: r.json(),
|
756
|
+
207: lambda r: r.json()[1],
|
757
|
+
400: _glpi_error,
|
758
|
+
401: _glpi_error
|
759
|
+
}.get(response.status_code, _unknown_error)(response)
|
716
760
|
|
717
761
|
@_catch_errors
|
718
762
|
def update(self, itemtype, *items):
|
@@ -734,10 +778,41 @@ class GLPI:
|
|
734
778
|
json={'input': items})
|
735
779
|
return {
|
736
780
|
200: lambda r: r.json(),
|
781
|
+
201: lambda r: r.json(),
|
737
782
|
207: lambda r: r.json()[1],
|
738
783
|
400: _glpi_error,
|
739
784
|
401: _glpi_error
|
740
785
|
}.get(response.status_code, _unknown_error)(response)
|
786
|
+
|
787
|
+
@_catch_errors
|
788
|
+
def update_sub_items(self, itemtype, item_id, sub_itemtype, *items):
|
789
|
+
"""`API documentation
|
790
|
+
Same method used as get-sub-items, same parameters
|
791
|
+
<https://github.com/glpi-project/glpi/blob/master/apirest.md#get-sub-items>`__
|
792
|
+
|
793
|
+
Updates a collection of rows of the ``sub_itemtype`` for the identified
|
794
|
+
item of type ``itemtype`` and id ``item_id``. ``kwargs`` contains
|
795
|
+
additional parameters allowed by the API.
|
796
|
+
|
797
|
+
.. code::
|
798
|
+
|
799
|
+
# update the operatingsystem a computer.
|
800
|
+
>>> In [241]: glpi.update_sub_items('Computer',1,'Item_OperatingSystem' {'id': 1 ,'itemtype':'Computer','operatingsystem_id':1 })
|
801
|
+
[{'id': 261,
|
802
|
+
'itemtype': 'Computer',
|
803
|
+
'items_id': 1,
|
804
|
+
...
|
805
|
+
"""
|
806
|
+
url = self._set_method(itemtype, item_id, sub_itemtype)
|
807
|
+
response = self.session.put(url,
|
808
|
+
json={'input': items})
|
809
|
+
return {
|
810
|
+
200: lambda r: r.json(),
|
811
|
+
201: lambda r: r.json(),
|
812
|
+
207: lambda r: r.json(),
|
813
|
+
400: _glpi_error,
|
814
|
+
401: _glpi_error
|
815
|
+
}.get(response.status_code, _unknown_error)(response)
|
741
816
|
|
742
817
|
@_catch_errors
|
743
818
|
def delete(self, itemtype, *items, **kwargs):
|
@@ -768,6 +843,37 @@ class GLPI:
|
|
768
843
|
400: lambda r: _glpi_error(r) if r.json()[0] != 'ERROR_GLPI_DELETE' else r.json()[1],
|
769
844
|
401: _glpi_error
|
770
845
|
}.get(response.status_code, _unknown_error)(response)
|
846
|
+
|
847
|
+
@_catch_errors
|
848
|
+
def delete_sub_items(self, itemtype, item_id, sub_itemtype, *items):
|
849
|
+
"""`API documentation
|
850
|
+
Same method used as get-sub-items, same parameters
|
851
|
+
<https://github.com/glpi-project/glpi/blob/master/apirest.md#get-sub-items>`__
|
852
|
+
|
853
|
+
deletes a collection of rows of the ``sub_itemtype`` for the identified
|
854
|
+
item of type ``itemtype`` and id ``item_id``. ``kwargs`` contains
|
855
|
+
additional parameters allowed by the API.
|
856
|
+
|
857
|
+
.. code::
|
858
|
+
|
859
|
+
# delete the operatingsystem a computer.
|
860
|
+
>>> In [241]: glpi.delete_sub_items('Computer',1,'Item_OperatingSystem' {'id': 1 ,'itemtype':'Computer','operatingsystem_id':1 })
|
861
|
+
[{'id': 261,
|
862
|
+
'itemtype': 'Computer',
|
863
|
+
'items_id': 1,
|
864
|
+
...
|
865
|
+
"""
|
866
|
+
url = self._set_method(itemtype, item_id, sub_itemtype)
|
867
|
+
response = self.session.delete(url,
|
868
|
+
json={'input': items})
|
869
|
+
return {
|
870
|
+
200: lambda r: r.json(),
|
871
|
+
204: lambda r: r.json(),
|
872
|
+
207: lambda r: r.json()[1],
|
873
|
+
400: lambda r: _glpi_error(r) if r.json()[0] != 'ERROR_GLPI_DELETE' else r.json()[1],
|
874
|
+
401: _glpi_error
|
875
|
+
}.get(response.status_code, _unknown_error)(response)
|
876
|
+
|
771
877
|
|
772
878
|
@_catch_errors
|
773
879
|
def upload_document(self, name, filepath):
|
@@ -4,9 +4,9 @@ from setuptools import setup
|
|
4
4
|
|
5
5
|
setup(
|
6
6
|
name='glpi-api',
|
7
|
-
version='0.
|
7
|
+
version='0.5.0',
|
8
8
|
author='François Ménabé',
|
9
|
-
author_email='francois.menabe@
|
9
|
+
author_email='francois.menabe@gmail.fr',
|
10
10
|
url='https://github.com/unistra/python-glpi-api',
|
11
11
|
license='GPLv3+',
|
12
12
|
description='Wrap calls to GLPI REST API.',
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|