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 == {}
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
"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)
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):
# 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)