PortalPy est un module Python 2.7 qui vous permet de rédiger des scripts pour exécuter des tâches administratives courantes sur votre portail. Les scripts Python qui exploitent PortalPy peuvent être exécutés à partir de n'importe quel ordinateur ayant accès à votre portail tant qu'il est configuré pour exécuter Python 2.7 (obligatoire).
Cette rubrique présente une vue d'ensemble du module PortalPy et propose des exemples et des instructions pour vous aider au départ. Pour pouvoir utiliser PortalPy, vous devez être capable de rédiger des scripts Python, mais PortalPy est la méthode la plus flexible pour automatiser l'administration de votre portail. Avec PortalPy, vous pouvez automatiser tous les workflows proposés par les utilitaires de ligne de commande, les exemples de scripts Python, et bien plus.
Le module PortalPy est installé avec le logiciel et stocké dans le répertoire des outils. Par exemple, <Portal for ArcGIS installation directory>/tools/portalpy. Le module est également disponible via un référentiel GitHub public. Cette ressource contient le module PortalPy le plus récent, ainsi que des informations supplémentaires transmises par la communauté des utilisateurs. Pour accéder à ce référentiel, créez un compte GitHub ou connectez-vous avec votre compte GitHub.
Configuration du module PortalPy sur votre ordinateur
Pour rédiger des scripts pour des tâches administratives avec PortalPy, vous devez configurer le module PortalPy sur votre ordinateur. Il peut s'agir de tout ordinateur ayant accès à votre portail. Pour commencer, suivez les étapes ci-dessous.
- Sur la machine sur laquelle est installé Portal for ArcGIS, accédez à <Portal for ArcGIS installation directory>/tools et copiez le dossier portalpy entier dans un répertoire local sur votre machine. Par exemple, /home/admin/portalpy. Si la machine sur laquelle vous souhaitez exécuter le module PortalPy est celle sur laquelle est installé Portal for ArcGIS, vous pouvez ignorer cette étape.
- Sur l'ordinateur qui héberge le module PortalPy, définissez une variable d'environnement appelée PYTHONPATH. Indiquez le chemin d'accès au répertoire dans lequel figure portalpy.py. Par exemple, export PYTHONPATH=$PYTHONPATH:/home/admin/portalpy.
- Créez un fichier appelé test.py et placez-le dans le même répertoire que portalpy.py. Par exemple, /home/admin/portalpy.
- Copiez le code suivant dans le fichier et mettez à jour l'URL pour qu'elle corresponde à celle de votre portail.
#!/usr/bin/python import portalpy url = "https://portal.domain.com/arcgis" portal = portalpy.Portal(url) print portal.get_version()
Remarque :
Si vous avez configuré votre portail de sorte à utiliser l'authentification au niveau du Web, vous pouvez accéder à votre portail via le port 7443 en utilisant PortalPy comme illustré dans l'exemple ci-après :
#!/usr/bin/python import portalpy url = "https://portal.domain.com:7443/arcgis" portal = portalpy.Portal(url) print portal.get_version()
- Enregistrez et fermez le fichier.
- Exécutez test.py. Le script imprime un numéro de version tel que 3.2.
Votre ordinateur est désormais configuré pour utiliser le module PortalPy.
Documentation du module PortalPy
Pour connaître les classes et les méthodes incluses dans PortalPy, reportez-vous à la rubrique Module PortalPy. La rubrique contient des exemples d'utilisation qui peuvent vous aider à programmer avec l'API REST d'ArcGIS à l'aide du module PortalPy.
Exemples de scripts
Parmi les tâches administratives courantes que vous exécutez via des scripts en utilisant PortalPy, incluez les suivantes :
Exemple : répertorier les utilisateurs d'un groupe
portal = PortalPy.Portal(portalUrl, user, password) resp = portal.get_group_members('67e1761068b7453693a0c68c92a62e2e') for user in resp['users']:
print user
Exemple : créer un groupe
portal= PortalPy.Portal(portalUrl, user, password)
group_id = portalAdmin.create_group('my group', 'test tag', 'a group to share travel maps')
Exemple : supprimer un utilisateur et réattribuer le contenu de l'utilisateur à un autre utilisateur
portal= PortalPy.Portal(portalUrl, user, password)
portal.delete_user('amy.user', True, 'bob.user')
Vous avez un commentaire à formuler concernant cette rubrique ?