def addAddon(self, args):
        app_name, deployment_name = self.parse_app_deployment_name(args.name)
        if not deployment_name:
            deployment_name = 'default'
        if not args.addon:
            raise InputErrorException('NoAddonGiven')

        options = None
        if args.options:
            options = parse_additional_addon_options(args.options)

        try:
            self.api.create_addon(app_name, deployment_name, args.addon, options)
        except ConflictDuplicateError:
            raise InputErrorException('DuplicateAddon')
        except BadRequestError as e:
            if 'This is not a valid addon name' in str(e):
                raise InputErrorException('InvalidAddon')
            raise
        except ForbiddenError:
            raise InputErrorException('ForbiddenAddon')

        return True
log-scale doesn't make sense for categorical data
dataset/ETHPy150Open cloudControl/cctrl/cctrl/app.py/AppController.addAddon--crossover with--dataset/ETHPy150Open glue-viz/glue/glue/viewers/histogram/tests/test_client.py/TestCategoricalHistogram.test_apply_roi_xlog