81 lines
2.3 KiB
Python
81 lines
2.3 KiB
Python
"""
|
|
.. module: lemur.defaults.views
|
|
:copyright: (c) 2018 by Netflix Inc., see AUTHORS for more
|
|
:license: Apache, see LICENSE for more details.
|
|
"""
|
|
from flask import current_app, Blueprint
|
|
from flask_restful import Api
|
|
|
|
from lemur.common.schema import validate_schema
|
|
from lemur.authorities.service import get_by_name
|
|
from lemur.auth.service import AuthenticatedResource
|
|
|
|
from lemur.defaults.schemas import default_output_schema
|
|
|
|
|
|
mod = Blueprint("default", __name__)
|
|
api = Api(mod)
|
|
|
|
|
|
class LemurDefaults(AuthenticatedResource):
|
|
""" Defines the 'defaults' endpoint """
|
|
|
|
def __init__(self):
|
|
super(LemurDefaults)
|
|
|
|
@validate_schema(None, default_output_schema)
|
|
def get(self):
|
|
"""
|
|
.. http:get:: /defaults
|
|
|
|
Returns defaults needed to generate CSRs
|
|
|
|
**Example request**:
|
|
|
|
.. sourcecode:: http
|
|
|
|
GET /defaults HTTP/1.1
|
|
Host: example.com
|
|
Accept: application/json, text/javascript
|
|
|
|
**Example response**:
|
|
|
|
.. sourcecode:: http
|
|
|
|
HTTP/1.1 200 OK
|
|
Vary: Accept
|
|
Content-Type: text/javascript
|
|
|
|
{
|
|
"country": "US",
|
|
"state": "CA",
|
|
"location": "Los Gatos",
|
|
"organization": "Netflix",
|
|
"organizationalUnit": "Operations",
|
|
"dnsProviders": [{"name": "test", ...}, {...}],
|
|
}
|
|
|
|
:reqheader Authorization: OAuth token to authenticate
|
|
:statuscode 200: no error
|
|
:statuscode 403: unauthenticated
|
|
"""
|
|
|
|
default_authority = get_by_name(
|
|
current_app.config.get("LEMUR_DEFAULT_AUTHORITY")
|
|
)
|
|
|
|
return dict(
|
|
country=current_app.config.get("LEMUR_DEFAULT_COUNTRY"),
|
|
state=current_app.config.get("LEMUR_DEFAULT_STATE"),
|
|
location=current_app.config.get("LEMUR_DEFAULT_LOCATION"),
|
|
organization=current_app.config.get("LEMUR_DEFAULT_ORGANIZATION"),
|
|
organizational_unit=current_app.config.get(
|
|
"LEMUR_DEFAULT_ORGANIZATIONAL_UNIT"
|
|
),
|
|
issuer_plugin=current_app.config.get("LEMUR_DEFAULT_ISSUER_PLUGIN"),
|
|
authority=default_authority,
|
|
)
|
|
|
|
|
|
api.add_resource(LemurDefaults, "/defaults", endpoint="default")
|