예제 #1
0
def test_post_reallife_uuid(client_v1, hostid, freeze_time):
    request = {
        "id": pytest.faux.gen_uuid(),
        "host": pytest.faux.gen_alphanumeric(),
        "username": pytest.faux.gen_alpha()
    }

    conf = config.make_api_config()
    client_v1.auth_token = conf["api"]["server_discovery_token"]
    response = client_v1.post("/v1/server/", data=request)
    assert response.status_code == 200
    assert response.json == {}
예제 #2
0
def test_post_server_server_discovery_token(client_v1, pymongo_connection):
    request = {
        "id": pytest.faux.gen_uuid(),
        "host": pytest.faux.gen_alphanumeric(),
        "username": pytest.faux.gen_alpha()
    }

    conf = config.make_api_config()
    client_v1.auth_token = conf["api"]["server_discovery_token"]
    response = client_v1.post("/v1/server/", data=request)
    assert response.status_code == 200
    assert response.json == {}

    found_task = pymongo_connection.db.task.find_one(
        {"data.host": request["host"]})
    assert found_task
예제 #3
0
    "id": {"$ref": "#/definitions/dmidecode_uuid"}
}
"""Data schema for the server discovery."""

MODEL_SCHEMA = validators.create_model_schema(
    server.ServerModel.MODEL_NAME, DATA_SCHEMA
)
MODEL_SCHEMA["properties"]["id"] = {"$ref": "#/definitions/dmidecode_uuid"}
"""Schema for the model with optional data fields."""

SERVER_DISCOVERY_SCHEMA = validators.create_data_schema(
    SERVER_DISCOVERY_DATA_SCHEMA
)
"""Schema for the server discovery."""

CONF = config.make_api_config()
"""Config."""

LOG = log.getLogger(__name__)
"""Logger."""


def require_create_server_authorization(func):
    """Special authorization decorator for server create."""

    normal_decorated_func = auth.AUTH.require_authorization(
        "api", "create_server")
    normal_decorated_func = normal_decorated_func(func)
    normal_decorated_func = auth.AUTH.require_authentication(
        normal_decorated_func)
예제 #4
0
파일: token.py 프로젝트: niupengju/ceph-lcm
Token is an authorization abstraction. It presents a user session.
Every user may have several tokens. Each token has it's TTL
and expired tokens are invalid.
"""


import bson.objectid

from decapod_common import config
from decapod_common import timeutils
from decapod_common.models import generic
from decapod_common.models import properties


CONF = config.make_api_config()
"""Config."""


class TokenModel(generic.Model):
    """Model class for Token.

    Token is a session ID of the some user session. This is
    an identifier of some user session. It is also possible for
    user to have several tokens.
    """

    MODEL_NAME = "token"
    COLLECTION_NAME = "token"

    def __init__(self):
예제 #5
0
# limitations under the License.
"""This module creates and configures WSGI application."""


import flask

from decapod_api import config as app_config
from decapod_api import handlers
from decapod_api import views
from decapod_common import config as base_config
from decapod_common import log
from decapod_common.models import db
from decapod_common.models import generic as generic_model


CONF = base_config.make_api_config()
"""Common config."""


def create_application():
    """Creates and configures WSGI application."""

    application = flask.Flask(__name__)
    application.url_map.strict_slashes = False

    app_config.configure(application)
    handlers.register_handlers(application)
    views.register_api(application)
    generic_model.configure_models(db.MongoDB())

    log.configure_logging(CONF.logging_config)