Пример #1
0
def create_objectclass():
	swift = createConnection(request)

	internal_data = InternalStorageManager(swift)
	try:
		class_definition = xform_header_names_on_classdef(request.json.get("objectClass"))
		class_name = class_definition.get("name")
		class_schema = class_definition.get("schema")
	except AttributeError:
		raise HttpError("malformed request", 400)

	if not class_name or not class_schema:
		raise HttpError("class name or class schema definition missing", 400)

	class_names = internal_data.get_keys(INTERNALOCNAME)

	if class_name in class_names:
		raise HttpError("class already exists", 422)

	try:
		Draft4Validator(CLASS_SCHEMA, format_checker=FormatChecker()).validate(class_definition)
	except ValidationError as e:
		raise HttpError("invalid class definition: {}".format(e), 400)

	internal_data.store_data(INTERNALOCNAME, class_name, json.dumps(class_definition))
	return "", 201
Пример #2
0
def create_objectclass():
	swift = createConnection(request)

	internal_data = InternalStorageManager(swift)
	try:
		class_definition = xform_header_names_on_classdef(request.json.get("objectClass"))
		class_name = class_definition.get("name")
		class_schema = class_definition.get("schema")
	except AttributeError:
		raise HttpError("malformed request", 400)

	if not class_name or not class_schema:
		raise HttpError("class name or class schema definition missing", 400)

	class_names = internal_data.get_keys(INTERNALOCNAME)

	if class_name in class_names:
		raise HttpError("class already exists", 422)

	try:
		Draft4Validator(CLASS_SCHEMA, format_checker=FormatChecker()).validate(class_definition)
	except ValidationError as e:
		raise HttpError("invalid class definition: {}".format(e), 400)

	internal_data.store_data(INTERNALOCNAME, class_name, json.dumps(class_definition))
	return "", 201
Пример #3
0
def get_objectclasses():
	swift = createConnection(request)
	internal_data = InternalStorageManager(swift)
	class_names = internal_data.get_keys(INTERNALOCNAME)
	for k in class_names:
		value = internal_data.get_data(INTERNALOCNAME, k)
	# TODO validate if invalid remove key
	# class_names.append(json.loads(value).get("name"))
	# log.debug("encountered invalid class definition stored in object store. key: {}, value: {}".format(k, value))

	resp = {}
	resp["metadata"] = {"classCount": len(class_names)}
	resp["classes"] = class_names
	return Response(json.dumps(resp, sort_keys=True), mimetype="application/json")
Пример #4
0
def get_objectclasses():
	swift = createConnection(request)
	internal_data = InternalStorageManager(swift)
	class_names = internal_data.get_keys(INTERNALOCNAME)
	for k in class_names:
		value = internal_data.get_data(INTERNALOCNAME, k)
	# TODO validate if invalid remove key
	# class_names.append(json.loads(value).get("name"))
	# log.debug("encountered invalid class definition stored in object store. key: {}, value: {}".format(k, value))

	resp = {}
	resp["metadata"] = {"classCount": len(class_names)}
	resp["classes"] = class_names
	return Response(json.dumps(resp, sort_keys=True), mimetype="application/json")