def _update_extension_state(disable, enable, publisher_name, extension_name, organization=None, detect=None): organization = resolve_instance(detect=detect, organization=organization) extension_client = get_extension_client(organization) current_extension = extension_client.get_installed_extension_by_name( publisher_name=publisher_name, extension_name=extension_name) state_from_service = str(current_extension.install_state.flags) logger.info('state received from service') logger.info(state_from_service) if disable: flags = [x.strip() for x in state_from_service.split(',')] if 'disabled' in flags: raise CLIError('Extension is already in disabled state') flags.append('disabled') updated_state = ', '.join(flags) if enable: flags = [x.strip() for x in state_from_service.split(',')] if 'disabled' not in flags: raise CLIError('Extension is already in enabled state') flags.remove('disabled') updated_state = ', '.join(flags) current_extension.install_state.flags = updated_state return extension_client.update_installed_extension(current_extension)
def uninstall_extension(publisher_id, extension_id, organization=None, detect=None): """ Uninstall an extension """ organization = resolve_instance(detect=detect, organization=organization) extension_client = get_extension_client(organization) return extension_client.uninstall_extension_by_name(publisher_name=publisher_id, extension_name=extension_id)
def get_extension(publisher_id, extension_id, organization=None, detect=None): """ Get detail of single extension """ organization = resolve_instance(detect=detect, organization=organization) extension_client = get_extension_client(organization) return extension_client.get_installed_extension_by_name(publisher_name=publisher_id, extension_name=extension_id)
def list_extensions(include_built_in='true', include_disabled='true', organization=None, detect=None): """ List extensions installed in an organization """ include_built_in = resolve_true_false(include_built_in) include_disabled = resolve_true_false(include_disabled) organization = resolve_instance(detect=detect, organization=organization) extension_client = get_extension_client(organization) extensions = extension_client.get_installed_extensions(include_disabled_extensions=include_disabled) if not include_built_in: filteredResult = [] for extension in extensions: if 'builtIn' not in str(extension.flags): filteredResult.append(extension) extensions = filteredResult return extensions