def register_license(self, product: str, data: dict) -> License: """Adds a new license to the License Database. Args: product (str): The name of product with a license. data (dict): License parameters. Example: :: connector.register('CSP', { "authorization": "string", "checksum": "string", "issuer": "string", "options": ["string"], "producer": "string", "termination": 1599955199, "token": "string", "units": 0 }) """ r = self.post(urls.API_REGISTER_LICENSE, product=product, json=data) if r.status_code == 200: return License(r.json()) elif r.status_code == 400: message = r.json() raise ConnectorException(message['details'])
def get_queue(self, queue: str) -> QueueDetails: """Returns the details of selected queue.""" r = self.get(urls.API_GET_QUEUE_DETAIL, queue=queue) if r.status_code == 200: return Queue(r.json()) elif r.status_code == 404: message = r.json() raise ConnectorException(message['details'])
def get_service(self, name) -> Service: """Returns the details of selected service.""" r = self.get(urls.API_GET_SERVICE, name=name) if r.status_code == 200: return Service(r.json()) else: message = r.json() raise ConnectorException(message['details'])
def get_interface(self, name) -> Interface: """Returns details for selected interface.""" r = self.get(urls.API_GET_INTERFACE, name=name) if r.status_code == 200: return Interface(r.json()) else: message = r.json() raise ConnectorException(message['details'])
def get_disk(self, device) -> Disk: """Returns details for selected disk.""" r = self.get(urls.API_GET_DISK_DETAIL, device=device) if r.status_code == 200: return Disk(r.json()) elif r.status_code == 404: message = r.json() raise ConnectorException(message['details'])
def get_device(self, name) -> Device: """Returns details for selected device.""" r = self.get(urls.API_GET_DEVICE, name=name) if r.status_code == 200: return Device(r.json()) else: message = r.json() raise ConnectorException(message['details'])
def start_job(self, job: str, queue: str) -> bool: """Starts selected job in queue.""" r = self.put(urls.API_START_JOB, job=job, json={"queueName": queue}) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def edit_queue_description(self, queue: str, description: str) -> bool: """Edits description of selected queue.""" r = self.put(urls.API_EDIT_QUEUE_DESCRIPTION, queue=queue, json={"description": description}) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def stop_queue(self, queue: str) -> bool: """Stops selected queue.""" r = self.put(urls.API_STOP_QUEUE, queue=queue) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def get_resinfo(self) -> ResInfo: """Returns the information about resources of node.""" r = self.get(urls.API_GET_SYSTEM_RESOURCES) if r.status_code == 200: return ResInfo(r.json()) else: message = r.json() raise ConnectorException(message['details'])
def get_sysinfo(self) -> SysInfo: """Returns the system information.""" r = self.get(urls.API_GET_SYSTEM_INFO) if r.status_code == 200: return SysInfo(r.json()) else: message = r.json() raise ConnectorException(message['details'])
def delete_service(self, name: str) -> bool: """Delete service.""" r = self.delete(urls.API_DELETE_SERVICE, name=name) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def delete_host(self, name: str, address: str) -> bool: """Delete host.""" r = self.delete(urls.API_DELETE_HOST, name=name, address=address) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def grant_identifiers(self, username: str, identifiers: List[str]) -> bool: """Grants identifiers to user.""" data = [{"username": username, "identifiers": identifiers}] r = self.put(urls.API_GRANT_IDENTIFIERS, json=data) if r.status_code == 200: return True elif r.status_code == 400: message = r.json() raise ConnectorException(message['details'])
def delete_identifier(self, identifier) -> bool: """Deletes selected identifier.""" r = self.delete(urls.API_DELETE_IDENTIFIER, identifier=identifier) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def enable_user(self, username) -> bool: """Enabled user.""" r = self.put(urls.API_ENABLE_USER, username=username) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def delete_job(self, job: str, queue: str) -> bool: """Deletes selected job from queue.""" r = self.put(urls.API_DELETE_JOB, job=job, json={"queueName": queue}) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def delete_user(self, username) -> bool: """Deletes user.""" r = self.delete(urls.API_DELETE_USER, username=username) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def get_log(self, filename: str, directory: str) -> str: """Returns details of log file.""" r = self.get(urls.API_GET_REPORT_LOG, filename=os.path.basename(filename), directory=directory) if r.status_code == 200: return r.text else: message = r.json() raise ConnectorException(message['details'])
def export_package_history(self, product: str) -> str: """Exports the history of selected package on current node to text.""" r = self.get(urls.API_EXPORT_INSTALLED_PACKAGE_HISTORY, product=product) if r.status_code == 200: return r.text else: message = r.json() raise ConnectorException(message['details'])
def export_report(self, filename: str, directory: str) -> str: """Returns report content.""" r = self.get(urls.API_EXPORT_REPORT, filename=filename, directory=directory) if r.status_code == 200: return r.text else: message = r.json() raise ConnectorException(message['details'])
def edit_subsystem(self, name: str, attribute: str, value: int) -> bool: """Edits the current value of attribute for selected subsystem.""" data = {"name": attribute, "value": value} r = self.put(urls.API_EDIT_SUBSYSTEMS, name=name, json=data) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def get_process(self, pid: str) -> List[ProcessDetails]: """Get details of selected process. Args: pid (str): The PID of selected process.""" r = self.get(urls.API_GET_PROCESS_DETAIL, pid=pid) if r.status_code == 200: return ProcessDetails(r.json()) elif r.status_code == 404: message = r.json() raise ConnectorException(message['details'])
def unload_license(self, product: str, authorization: str) -> bool: """Unloads license for selected product from memory.""" r = self.post(urls.API_UNLOAD_LICENSE, product=product, authorization=authorization) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def end_process(self, pid: str) -> bool: """Ends selected process. Args: pid (str): The PID of selected process.""" r = self.post(urls.API_KILL_PROCESS, pid=pid) if r.status_code == 200: return True elif r.status_code == 404: message = r.json() raise ConnectorException(message['details'])
def disable_license(self, product: str, authorization: str) -> bool: """Disables license.""" r = self.put(urls.API_DISABLE_LICENSE, product=product, authorization=authorization) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def export_license_history(self, product: str, authorization: str) -> str: """Exports the license history of selected product (records with status “Extinct”) to text.""" r = self.get(urls.API_EXPORT_LICENSE_HISTORY, product=product, authorization=authorization) if r.status_code == 200: return r.text else: message = r.json() raise ConnectorException(message['details'])
def delete_license_history(self, product: str, authorization: str) -> bool: """Deletes license history for selected product (records with status “Extinct”).""" r = self.delete(urls.API_DELETE_LICENSE_HISTORY, product=product, authorization=authorization) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def delete_license(self, product: str, authorization: str) -> bool: """Deletes license for selected product.""" r = self.delete(urls.API_DELETE_LICENSE, product=product, authorization=authorization) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])
def pause_job(self, job: str, queue: str) -> bool: """Pauses selected job in queue. Job gets status “Holding” and retain in queue until release.""" r = self.put(urls.API_PAUSE_JOB, job=job, json={"queueName": queue}) if r.status_code == 200: return True else: message = r.json() raise ConnectorException(message['details'])