Added basic support for packages

This commit is contained in:
Rick Rongen
2019-05-20 09:54:17 +02:00
parent bf6d737262
commit 3ba0d948f6

View File

@@ -1,3 +1,4 @@
import json
from typing import Union, List, Optional from typing import Union, List, Optional
import requests import requests
@@ -23,6 +24,10 @@ download.jsp?path=%2Fcontent%2Fdam%2Fbeeldbank%2Fvrouw-direct-naar.jpg%2Fjcr%3Ac
CRX_SERVER_ROOT = '/crx/server/crx.default/jcr:root/' CRX_SERVER_ROOT = '/crx/server/crx.default/jcr:root/'
CRX_QUERY = '/crx/de/query.jsp' CRX_QUERY = '/crx/de/query.jsp'
PACKMGR_EXEC = '/crx/packmgr/service/exec.json'
PACKMGR_UPDATE = '/crx/packmgr/update.jsp'
WCM_REFERENCES = '/bin/wcm/references.json' WCM_REFERENCES = '/bin/wcm/references.json'
WCM_PAGE_REFERENCES = '/libs/wcm/core/content/reference.json' WCM_PAGE_REFERENCES = '/libs/wcm/core/content/reference.json'
WCM_REPLICATE = '/bin/replicate.json' WCM_REPLICATE = '/bin/replicate.json'
@@ -279,3 +284,32 @@ class Connection:
# todo check for exception # todo check for exception
resp = self._session.post(self._data_root, files=files) resp = self._session.post(self._data_root, files=files)
resp.raise_for_status() resp.raise_for_status()
def create_package(self, name: str, group: str, version: str = '1.0') -> (bool, str):
resp = self._session.post(self._host + PACKMGR_EXEC, params={'cmd': 'create'}, data={
'_charset_': 'utf-8',
'packageName': name,
'packageVersion': version,
'groupName': group
})
resp.raise_for_status()
data = resp.json()
if not data['success']:
return False, f'/etc/packages/{group}/{data["msg"]}'
return True, resp.json()['path']
def update_package(self, path: str, name: str, group: str, version: str, filters: list, description: str = None):
resp = self._session.post(
self._host + PACKMGR_UPDATE,
files={
'path': (None, path),
'packageName': (None, name),
'groupName': (None, group),
'version': (None, version),
'filter': (None, json.dumps(filters, separators=(',', ':'))),
# 'description': description or '',
'_charset_': (None, 'UTF-8')
}
)
resp.raise_for_status()
return resp.json()['path']