"""
ceph dashboard module
"""
-from __future__ import absolute_import
import os
-from __future__ import absolute_import
# -*- coding: utf-8 -*-
# pylint: disable=protected-access,too-many-branches,too-many-lines
-from __future__ import absolute_import
import collections
import importlib
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import http.cookies
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import cherrypy
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from cherrypy import NotFound
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
-
import logging
from typing import Any, Dict, List, Union
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from cherrypy import NotFound
-from __future__ import absolute_import
-
import logging
from . import BaseController, Endpoint, UiApiController
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
-
from .. import mgr
from ..exceptions import DashboardException
from ..grafana import GrafanaRestClient, push_local_dashboards
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import copy
import os
# pylint: disable=C0302
# pylint: disable=too-many-branches
# pylint: disable=too-many-lines
-from __future__ import absolute_import
import json
import re
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import collections
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from .. import mgr
from ..security import Scope
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import logging
import os
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from functools import wraps
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from typing import Any, Dict
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import time
from typing import Any, Dict, Iterable, List, Optional, Union, cast
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
from datetime import datetime
# -*- coding: utf-8 -*-
# pylint: disable=unused-argument
# pylint: disable=too-many-statements,too-many-branches
-from __future__ import absolute_import
import logging
import math
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import cherrypy
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import cherrypy
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
-
from contextlib import contextmanager
import cherrypy
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from ..services import progress
from ..tools import TaskManager
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from .. import mgr
from ..exceptions import DashboardException
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import time
from datetime import datetime
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
class ViewCacheNoDataException(Exception):
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
import logging
"""
ceph dashboard mgr plugin (based on CherryPy)
"""
-from __future__ import absolute_import
-
import collections
import errno
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import abc
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
from enum import Enum
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from enum import Enum
from typing import List, Optional
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from . import PLUGIN_MANAGER as PM # pylint: disable=cyclic-import
from . import Interface, Mixin
Based on Python 3 functools and backports.functools_lru_cache.
"""
-from __future__ import absolute_import
from collections import OrderedDict
from functools import wraps
Based on Python 3 functools and backports.functools_lru_cache.
"""
-from __future__ import absolute_import
from collections import OrderedDict
from functools import wraps
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
"""
-from __future__ import absolute_import
import inspect
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import inspect
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
# -*- coding: utf-8 -*-
# pylint: disable=too-many-arguments,too-many-return-statements
# pylint: disable=too-many-branches, too-many-locals, too-many-statements
-from __future__ import absolute_import
import errno
import json
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import datetime
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from .ceph_service import CephService
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
import logging
# -*- coding: utf-8 -*-
# pylint: disable=too-many-lines
-from __future__ import absolute_import
import logging
import os
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import errno
import json
# -*- coding: utf-8 -*-
# pylint: disable=too-many-public-methods
-from __future__ import absolute_import
import json
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import logging
from functools import wraps
using the same structure of dashboard tasks
'''
-from __future__ import absolute_import
import logging
from datetime import datetime
# -*- coding: utf-8 -*-
# pylint: disable=unused-argument
-from __future__ import absolute_import
import cherrypy
import rbd
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import ipaddress
import logging
# -*- coding: utf-8 -*-
# pylint: disable=too-many-return-statements,too-many-branches
-from __future__ import absolute_import
import errno
import json
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
-
import errno
import inspect
from ast import literal_eval
# -*- coding: utf-8 -*-
# pylint: disable=too-many-arguments
-from __future__ import absolute_import
import json
import logging
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
try:
from typing import Any, Dict
# -*- coding: utf-8 -*-
# pylint: disable=dangerous-default-value,too-many-public-methods
-from __future__ import absolute_import
import errno
import json
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
import re
# -*- coding: utf-8 -*-
# pylint: disable=dangerous-default-value,too-many-public-methods
-from __future__ import absolute_import
import logging
import unittest
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from ..controllers import ApiController, BaseController, Controller, Endpoint, RESTController
from . import ControllerTestCase # pylint: disable=no-name-in-module
# # -*- coding: utf-8 -*-
-from __future__ import absolute_import
import unittest
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import time
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import unittest
# -*- coding: utf-8 -*-
# pylint: disable=too-many-lines
-from __future__ import absolute_import
import unittest
from unittest.mock import MagicMock, Mock, patch
-from __future__ import absolute_import
import logging
import os
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import random
import time
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
from . import CLICommandTestMixin, ControllerTestCase # pylint: disable=no-name-in-module
-from __future__ import absolute_import
import json
import unittest
# -*- coding: utf-8 -*-
# pylint: disable=dangerous-default-value,too-many-public-methods
-from __future__ import absolute_import
import unittest
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import errno
import unittest
# -*- coding: utf-8 -*-
# pylint: disable=dangerous-default-value,too-many-public-methods
-from __future__ import absolute_import
import errno
import tempfile
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import json
import threading
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import unittest
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import unittest
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
import collections
import fnmatch
-from __future__ import absolute_import
import json
-from __future__ import absolute_import
from pecan import request, response
from base64 import b64decode
-from __future__ import absolute_import
from pecan.hooks import PecanHook
"""
A RESTful API for Ceph
"""
-from __future__ import absolute_import
import os
import json
# type: ignore
-from __future__ import absolute_import
import json
import logging