Source code for jnpr.healthbot.modules.settings

from jnpr.healthbot.modules.profiles import Security

from jnpr.healthbot.swagger.models.notification_schema import NotificationSchema
from jnpr.healthbot.swagger.models.retention_policy_schema import RetentionPolicySchema
from jnpr.healthbot.swagger.models.scheduler_schema import SchedulerSchema
from jnpr.healthbot.swagger.models.report_schema import ReportSchema
from jnpr.healthbot.swagger.models.destination_schema import DestinationSchema
from jnpr.healthbot.swagger.api.license_api import LicenseApi
from jnpr.healthbot.exception import SchemaError, NotFoundError

from jnpr.healthbot.modules import BaseModule
# from jnpr.healthbot import AutoGenClass

import logging
logger = logging.getLogger(__file__)


[docs]class Settings(object):
[docs] def __init__(self, hbot): """ :param object hbot: :class:`jnpr.healthbot.HealthBotClient` client instance """ self._hbot = hbot self.notification = Notification(hbot) self.retention_policy = RetentionPolicy(hbot) self.scheduler = Scheduler(hbot) self.report = Report(hbot) self.destination = Destination(hbot) self.security = Security(hbot) self.license = LicenseKeyManagement(hbot)
[docs]class Notification(BaseModule):
[docs] def __init__(self, hbot): """ :param object hbot: :class:`jnpr.healthbot.HealthBotClient` client instance """ super().__init__(hbot)
[docs] def get(self, notification_name: str = None, uncommitted: bool = True): """ Get `NotificationSchema(s) <jnpr.healthbot.swagger.models.html#notificationschema>`_ for given notification name or list for all :param notification_name: ID of notification-name :param bool uncommitted: True includes fetches uncommitted changes, False restricts data set to only committed changes Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: print(hb.settings.notification.get('xyz') :return: `NotificationSchema(s) <jnpr.healthbot.swagger.models.html#notificationschema>`_ """ if notification_name is not None: notification_url = self.hbot.urlfor.notification(notification_name) if uncommitted: notification_url += self.hbot.apiopt_candidate response = self.api.get(notification_url) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return self.hbot._create_schema(response, NotificationSchema) else: notifications_url = self.hbot.urlfor.notifications() if uncommitted: notifications_url += self.hbot.apiopt_candidate response = self.api.get(notifications_url) response_json = response.json() if response.status_code != 200: logger.error(response.text) raise NotFoundError(response_json) existing_notifications = response_json['notification'] notification_list = [] for notification in existing_notifications: obj = self.hbot._create_schema( notification, NotificationSchema) notification_list.append(obj) return notification_list
[docs] def add(self, schema: NotificationSchema = None, **kwargs): """ Add notification to HealthBot :param object schema: `NotificationSchema <jnpr.healthbot.swagger.models.html#notificationschema>`_ :param object kwargs: key values, which can be used to create NotificationSchema Check `NotificationSchema <jnpr.healthbot.swagger.models.html#notificationschema>`_ for details about which all keys can be used Example: :: from jnpr.healthbot import HealthBotClient from jnpr.healthbot import NotificationSchema, NotificationSchemaSlack with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: ns = NotificationSchema(notification_name='HbEZ-notification') ns.description = "example of adding notification via API" ns.slack = NotificationSchemaSlack(channel="HbEZ", url='http://testing') hb.settings.notification.add(ns) :returns: True when OK """ if schema is None: schema = NotificationSchema(**kwargs) payload = self.hbot._create_payload(schema) notification_url = self.hbot.urlfor.notification( payload['notification-name']) response = self.api.post(notification_url, json=payload) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs] def delete(self, notification_name: str): """ Remove notification from settings :param str notification_name: The name of the notification to be deleted Example: :: hb.settings.notification.delete('xyz') hb.commit() :returns: True when OK """ notification_url = self.hbot.urlfor.notification(notification_name) response = self.api.delete(notification_url) if response.status_code != 204: logger.error(response.text) response.raise_for_status() return True
[docs] def update(self, schema: NotificationSchema = None, **kwargs): """ Update `NotificationSchema <jnpr.healthbot.swagger.models.html#notificationschema>`_ for given NotificationSchema schema Passing Schema invoke `put` and kwargs `post` :param obj schema: `NotificationSchema <jnpr.healthbot.swagger.models.html#notificationschema>`_ :param object kwargs: key values, which can be used to create RetentionPolicySchema Check `NotificationSchema <jnpr.healthbot.swagger.models.html#notificationschema>`_ for details about which all keys can be used Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: schemaObj = hb.settings.notification.get('xyz') schemaObj.description = 'changed description' hb.settings.notification.update(schemaObj) :returns: True when OK """ if schema is None: schema = NotificationSchema(**kwargs) call = self.api.post else: if not isinstance(schema, NotificationSchema): raise SchemaError(NotificationSchema) call = self.api.put payload = self.hbot._create_payload(schema) name = schema.notification_name notification_url = self.hbot.urlfor.notification(name) response = call(notification_url, json=payload) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs]class RetentionPolicy(BaseModule):
[docs] def __init__(self, hbot): """ :param object hbot: :class:`jnpr.healthbot.HealthBotClient` client instance """ super().__init__(hbot)
[docs] def get( self, retention_policy_name: str = None, uncommitted=True): """ Get `RetentionPolicySchema(s) <jnpr.healthbot.swagger.models.html#retentionpolicyschema>`_ for given retention policy name or list for all :param retention_policy_name: ID of retention-policy-name :param bool uncommitted: True includes fetches uncommitted changes, False restricts data set to only committed changes Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: print(hb.settings.retention_policy.get('xyz') # for all print(hb.settings.retention_policy.get() :return: `RetentionPolicySchema(s) <jnpr.healthbot.swagger.models.html#retentionpolicyschema>`_ """ if retention_policy_name is not None: retention_policy_url = self.hbot.urlfor.retention_policy( retention_policy_name) if uncommitted: retention_policy_url += self.hbot.apiopt_candidate response = self.api.get(retention_policy_url) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return self.hbot._create_schema(response, RetentionPolicySchema) else: notifications_url = self.hbot.urlfor.retention_policies() if uncommitted: notifications_url += self.hbot.apiopt_candidate response = self.api.get(notifications_url) response_json = response.json() if response.status_code != 200: logger.error(response.text) raise NotFoundError(response_json) existing_retention_policies = response_json['retention-policy'] existing_retention_policies_list = [] for retention_policy in existing_retention_policies: obj = self.hbot._create_schema( retention_policy, RetentionPolicySchema) existing_retention_policies_list.append(obj) return existing_retention_policies_list
[docs] def add( self, schema: RetentionPolicySchema = None, **kwargs): """ Add notification to HealthBot :param object schema: `RetentionPolicySchema <jnpr.healthbot.swagger.models.html#retentionpolicyschema>`_ :param object kwargs: key values, which can be used to create RetentionPolicySchema Check `RetentionPolicySchema <jnpr.healthbot.swagger.models.html#retentionpolicyschema>`_ for details about which all keys can be used Example: :: from jnpr.healthbot import HealthBotClient from jnpr.healthbot import RetentionPolicySchema with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: rps = RetentionPolicySchema(retention_policy_name='HbEZ-rentention-policy') hb.settings.retention_policy.add(rps) :returns: True when OK """ if schema is None: schema = RetentionPolicySchema(**kwargs) payload = self.hbot._create_payload(schema) retention_policy_url = self.hbot.urlfor.retention_policy( payload['retention-policy-name']) response = self.api.post(retention_policy_url, json=payload) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs] def delete(self, retention_policy_name: str): """ Remove notification from settings :param str retention_policy_name: The name of the retention policy to be deleted Example: :: hb.settings.retention_policy.delete('xyz') hb.commit() :returns: True when OK """ retention_policy_url = self.hbot.urlfor.retention_policy( retention_policy_name) response = self.api.delete(retention_policy_url) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs] def update(self, schema: RetentionPolicySchema = None, **kwargs): """ Update `RetentionPolicySchema <jnpr.healthbot.swagger.models.html#retentionpolicyschema>`_ for given RetentionPolicySchema schema Passing Schema invoke `put` and kwargs `post` :param obj schema: `RetentionPolicySchema <jnpr.healthbot.swagger.models.html#retentionpolicyschema>`_ :param object kwargs: key values, which can be used to create RetentionPolicySchema Check `RetentionPolicySchema <jnpr.healthbot.swagger.models.html#retentionpolicyschema>`_ for details about which all keys can be used Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: schemaObj = hb.settings.retention_policy.get('xyz') schemaObj.description = 'changed description' hb.settings.retention_policy.update(schemaObj) :returns: True when OK """ if schema is None: schema = RetentionPolicySchema(**kwargs) call = self.api.post else: if not isinstance(schema, RetentionPolicySchema): raise SchemaError(RetentionPolicySchema) call = self.api.put payload = self.hbot._create_payload(schema) name = schema.retention_policy_name retention_policy_url = self.hbot.urlfor.retention_policy(name) response = call(retention_policy_url, json=payload) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs]class Scheduler(BaseModule):
[docs] def __init__(self, hbot): """ :param object hbot: :class:`jnpr.healthbot.HealthBotClient` client instance """ super().__init__(hbot)
[docs] def get(self, name: str = None, uncommitted: bool = True): """ Get `SchedulerSchema(s) <jnpr.healthbot.swagger.models.html#schedulerschema>`_ for given scheduler name or list for all :param name: scheduler name :param bool uncommitted: True includes fetches uncommitted changes, False restricts data set to only committed changes Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: print(hb.settings.scheduler.get('xyz') # for all print(hb.settings.scheduler.get() :return: `SchedulerSchema(s) <jnpr.healthbot.swagger.models.html#schedulerschema>`_ """ if name is not None: scheduler_url = self.hbot.urlfor.scheduler(name) if uncommitted: scheduler_url += self.hbot.apiopt_candidate response = self.api.get(scheduler_url) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return self.hbot._create_schema(response, SchedulerSchema) else: schedulers_url = self.hbot.urlfor.schedulers() if uncommitted: schedulers_url += self.hbot.apiopt_candidate response = self.api.get(schedulers_url) response_json = response.json() if response.status_code != 200: logger.error(response.text) raise NotFoundError(response_json) existing_schedulers = response_json['scheduler'] existing_schedulers_list = [] for scheduler in existing_schedulers: obj = self.hbot._create_schema(scheduler, SchedulerSchema) existing_schedulers_list.append(obj) return existing_schedulers_list
[docs] def add(self, schema: SchedulerSchema = None, **kwargs): """ Add scheduler to HealthBot :param object schema: `SchedulerSchema <jnpr.healthbot.swagger.models.html#schedulerschema>`_ :param object kwargs: key values, which can be used to create SchedulerSchema Check `SchedulerSchema <jnpr.healthbot.swagger.models.html#schedulerschema>`_ for details about which all keys can be used Example: :: from jnpr.healthbot import HealthBotClient from jnpr.healthbot import SchedulerSchema with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: sc = SchedulerSchema(name='HbEZ', repeat={'every': 'week'}, start_time="2019-07-22T05:32:23Z") hb.settings.scheduler.add(sc) :returns: True when OK """ if schema is None: schema = SchedulerSchema(**kwargs) payload = self.hbot._create_payload(schema) scheduler_url = self.hbot.urlfor.scheduler(payload['name']) response = self.api.post(scheduler_url, json=payload) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs] def delete(self, name: str): """ Remove notification from settings :param str name: The name of the scheduler to be deleted Example: :: hb.settings.scheduler.delete('xyz') hb.commit() :returns: True when OK """ scheduler_url = self.hbot.urlfor.scheduler(name) response = self.api.delete(scheduler_url) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs] def update(self, schema: SchedulerSchema = None, **kwargs): """ Update `SchedulerSchema <jnpr.healthbot.swagger.models.html#schedulerschema>`_ for given scheduler schema Passing Schema invoke `put` and kwargs `post` :param obj schema: `SchedulerSchema <jnpr.healthbot.swagger.models.html#schedulerschema>`_ :param object kwargs: key values, which can be used to create SchedulerSchema Check `SchedulerSchema <jnpr.healthbot.swagger.models.html#schedulerschema>`_ for details about which all keys can be used Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: schemaObj = hb.settings.scheduler.get('xyz') schemaObj.description = 'changed description' hb.settings.scheduler.update(schemaObj) :returns: True when OK """ if schema is None: schema = SchedulerSchema(**kwargs) call = self.api.post else: if not isinstance(schema, SchedulerSchema): raise SchemaError(SchedulerSchema) call = self.api.put payload = self.hbot._create_payload(schema) name = schema.name scheduler_url = self.hbot.urlfor.scheduler(name) response = call(scheduler_url, json=payload) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs]class Destination(BaseModule):
[docs] def __init__(self, hbot): """ :param object hbot: :class:`jnpr.healthbot.HealthBotClient` client instance """ super().__init__(hbot)
[docs] def get(self, name: str = None, uncommitted: bool = True): """ Get `DestinationSchema(s) <jnpr.healthbot.swagger.models.html#destinationschema>`_ for given destination name or list for all :param name: destination ID :param bool uncommitted: True includes fetches uncommitted changes, False restricts data set to only committed changes Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: print(hb.settings.destination.get('xyz') # for all print(hb.settings.destination.get() :return: `DestinationSchema(s) <jnpr.healthbot.swagger.models.html#destinationschema>`_ """ if name is not None: destination_url = self.hbot.urlfor.destination(name) if uncommitted: destination_url += self.hbot.apiopt_candidate response = self.api.get(destination_url) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return self.hbot._create_schema(response, DestinationSchema) else: destination_url = self.hbot.urlfor.destinations() if uncommitted: destination_url += self.hbot.apiopt_candidate response = self.api.get(destination_url) response_json = response.json() if response.status_code != 200: logger.error(response.text) raise NotFoundError(response_json) existing_destinations = response_json['destination'] destinations_list = [] for destination in existing_destinations: obj = self.hbot._create_schema( destination, DestinationSchema) destinations_list.append(obj) return destinations_list
[docs] def add(self, schema: DestinationSchema = None, **kwargs): """ Add destination to HealthBot :param object schema: `DestinationSchema <jnpr.healthbot.swagger.models.html#destinationschema>`_ :param object kwargs: key values, which can be used to create DestinationSchema Check `DestinationSchema <jnpr.healthbot.swagger.models.html#destinationschema>`_ for details about which all keys can be used Example: :: from jnpr.healthbot import HealthBotClient from jnpr.healthbot import DestinationSchema with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: ds = DestinationSchema(name='HbEZ-destination') hb.settings.destination.add(ds) :returns: True when OK """ if schema is None: schema = DestinationSchema(**kwargs) payload = self.hbot._create_payload(schema) destination_url = self.hbot.urlfor.destination(payload['name']) response = self.api.post(destination_url, json=payload) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs] def delete(self, name: str): """ Remove destination from settings :param str name: The ID name of the destination to be deleted Example: :: hb.settings.destination.delete('xyz') hb.commit() :returns: True when OK """ destinations_url = self.hbot.urlfor.destination(name) response = self.api.delete(destinations_url) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs] def update(self, schema: DestinationSchema = None, **kwargs): """ Update `DestinationSchema <jnpr.healthbot.swagger.models.html#destinationschema>`_ for given destination schema Passing Schema invoke `put` and kwargs `post` :param obj schema: `DestinationSchema <jnpr.healthbot.swagger.models.html#destinationschema>`_ :param object kwargs: key values, which can be used to create DestinationSchema Check `DestinationSchema <jnpr.healthbot.swagger.models.html#destinationschema>`_ for details about which all keys can be used Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: schemaObj = hb.settings.destination.get('xyz') schemaObj.description = 'changed description' hb.settings.destination.update(schemaObj) :returns: True when OK """ if schema is None: schema = DestinationSchema(**kwargs) call = self.api.post else: if not isinstance(schema, DestinationSchema): raise SchemaError(DestinationSchema) call = self.api.put payload = self.hbot._create_payload(schema) name = schema.name destination_url = self.hbot.urlfor.destination(name) response = call(destination_url, json=payload) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs]class Report(BaseModule):
[docs] def __init__(self, hbot): """ :param object hbot: :class:`jnpr.healthbot.HealthBotClient` client instance """ super().__init__(hbot)
[docs] def get(self, name: str = None, uncommitted: bool = True): """ Get `ReportSchema(s) <jnpr.healthbot.swagger.models.html#reportschema>`_ for given report name or list for all :param name: report ID :param bool uncommitted: True includes fetches uncommitted changes, False restricts data set to only committed changes Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: print(hb.settings.report.get('xyz') # for all print(hb.settings.report.get() :return: `ReportSchema(s) <jnpr.healthbot.swagger.models.html#reportschema>`_ """ if name is not None: report_url = self.hbot.urlfor.report(name) if uncommitted: report_url += self.hbot.apiopt_candidate response = self.api.get(report_url) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return self.hbot._create_schema( response, ReportSchema) else: reports_url = self.hbot.urlfor.reports() if uncommitted: reports_url += self.hbot.apiopt_candidate response = self.api.get(reports_url) response_json = response.json() if response.status_code != 200: logger.error(response.text) raise NotFoundError(response_json) existing_reports = response_json['report'] reports_list = [] for report in existing_reports: obj = self.hbot._create_schema(report, ReportSchema) reports_list.append(obj) return reports_list
[docs] def add(self, schema: ReportSchema = None, **kwargs): """ Add report to HealthBot :param object schema: `ReportSchema <jnpr.healthbot.swagger.models.html#reportschema>`_ :param object kwargs: key values, which can be used to create ReportSchema Check `ReportSchema <jnpr.healthbot.swagger.models.html#reportschema>`_ for details about which all keys can be used Example: :: from jnpr.healthbot import HealthBotClient from jnpr.healthbot import ReportSchema with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: from jnpr.healthbot import SchedulerSchema sc = SchedulerSchema(name='HbEZ-schedule', repeat={'every': 'week'}, start_time="2019-07-22T05:32:23Z") hb.settings.scheduler.add(sc) from jnpr.healthbot import DestinationSchema ds = DestinationSchema(name='HbEZ-destination', email={'id': 'nitinkr@juniper.net'}) hb.settings.destination.add(ds) from jnpr.healthbot import ReportSchema rs = ReportSchema(name="HbEZ-report", destination=['HbEZ-destination'], format="html", schedule=["HbEZ-schedule"]) hb.settings.report.add(rs) :returns: True when OK """ if schema is None: schema = ReportSchema(**kwargs) payload = self.hbot._create_payload(schema) report_url = self.hbot.urlfor.report(payload['name']) response = self.api.post(report_url, json=payload) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs] def delete(self, name: str): """ Remove report from settings :param str name: The name of the report to be deleted Example: :: hb.settings.report.delete('xyz') hb.commit() :returns: True when OK """ report_url = self.hbot.urlfor.report(name) response = self.api.delete(report_url) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs] def update(self, schema: ReportSchema = None, **kwargs): """ Update `ReportSchema <jnpr.healthbot.swagger.models.html#reportschema>`_ for given report schema Passing Schema invoke `put` and kwargs `post` :param obj schema: `ReportSchema <jnpr.healthbot.swagger.models.html#reportschema>`_ :param object kwargs: key values, which can be used to create ReportSchema Check `ReportSchema <jnpr.healthbot.swagger.models.html#reportschema>`_ for details about which all keys can be used Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: schemaObj = hb.settings.report.get('xyz') schemaObj.description = 'changed description' hb.settings.report.update(schemaObj) :returns: True when OK """ if schema is None: schema = ReportSchema(**kwargs) call = self.api.post else: if not isinstance(schema, ReportSchema): raise SchemaError(ReportSchema) call = self.api.put payload = self.hbot._create_payload(schema) name = schema.name report_url = self.hbot.urlfor.report(name) response = call(report_url, json=payload) if response.status_code != 200: logger.error(response.text) response.raise_for_status() return True
[docs]class LicenseKeyManagement(BaseModule):
[docs] def __init__(self, hbot): """ :param object hbot: :class:`jnpr.healthbot.HealthBotClient` client instance """ super().__init__(hbot) self._license_api = LicenseApi(hbot.api_client)
[docs] def get_features(self): """ Get `LicenseFeatureSchema(s) <jnpr.healthbot.swagger.models.html#licensefeatureschema>`_ for given license id or for all licence id :param license_id: License ID Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: print(hb.settings.license.get_features() :return: `LicenseFeatureSchema(s) <jnpr.healthbot.swagger.models.html#licensefeatureschema>`_ """ response = self._license_api.retrieve_iceberg_license_features_info( authorization=self.authorization) return response.license_feature
[docs] def get_ids(self): """ List of all licence id Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: # print all existing licence ids print(hb.settings.license.get() :return: `List of license ids` """ return self._license_api.retrieve_iceberg_get_all_license_id( authorization=self.authorization)
[docs] def get(self, license_id: str = None): """ Get `LicenseKeySchema(s) <jnpr.healthbot.swagger.models.html#licensekeyschema>`_ for given license id or for all licence id :param license_id: License ID Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: print(hb.settings.license.get() # for given licence id print(hb.settings.report.get('xxxxx') :return: `LicenseKeySchema(s) <jnpr.healthbot.swagger.models.html#licensekeyschema>`_ """ if license_id is not None: return self._license_api.retrieve_iceberg_license_key_contents_by_id( license_id, authorization=self.authorization) else: response = self._license_api.retrieve_iceberg_license_key_contents( authorization=self.authorization) return response.license_key
[docs] def add(self, license_file): """ Add report to HealthBot :param path license_file: license file path Example: :: from jnpr.healthbot import HealthBotClient with HealthBotClient('xx.xxx.x.xx', 'xxxx', 'xxxx') as hb: hb.settings.license.add(license_file='/var/tmp/xyz') :returns: license_id if OK """ response = self._license_api.create_iceberg_add_license_from_file( license_file, authorization=self.authorization) return response.license_id
[docs] def delete(self, license_id: str): """ Remove report from settings :param str license_id: The license id be deleted Example: :: hb.settings.license.delete('xx-xxx-xxx-xxx-xx') :returns: True when OK """ self._license_api.delete_iceberg_delete_license_by_id( license_id, authorization=self.authorization) return True