def get_datastore_json_schema_empty(): datastore_id = request.args.get('datastore_id') if datastore_id: datastore = datastore_service().get_datastore(datastore_id, raise_when_missing=False) if not datastore: return {'results': 'ERROR', 'error_message': 'no datastore with id: %s' % datastore_id}, 404, None return get_datastore_json_schema(datastore.data.engine_name) return {'results': datastore_schema(None)}
def test_datastore_schema_invalid(self): with self.assertRaises(DartValidationException) as context: dst = Datastore( data=DatastoreData('test-datastore', 'fake_engine', args={'data_to_freespace_ratio_yo': 0})) default_and_validate(dst, datastore_schema(self.options_json_schema)) self.assertTrue(isinstance(context.exception, DartValidationException))
def test_datastore_schema(self): dst = Datastore(data=DatastoreData('test-datastore', 'fake_engine', args={'data_to_freespace_ratio': 0, 'secret': 'hi'})) obj_before = dst.to_dict() schema = datastore_schema(self.options_json_schema) dst = default_and_validate(dst, schema) obj_after = dst.to_dict() self.assertNotEqual(obj_before, obj_after) self.assertEqual(obj_after['data']['args']['secret'], 'hi') secrets = {} purge_secrets(obj_after, schema, secrets) self.assertEqual(obj_after['data']['args'].get('secret'), None) self.assertEqual(secrets, {'secret': 'hi'})
def save_subgraph_definition(subgraph_definition, engine, trigger_schemas): """ :type engine: dart.model.engine.Engine :type subgraph_definition: dart.model.graph.SubGraphDefinition """ action_schemas = [action_schema(e.params_json_schema) for e in engine.data.supported_action_types] ds_schema = datastore_schema(engine.data.options_json_schema) schema = subgraph_definition_schema(trigger_schemas, action_schemas, ds_schema) subgraph_definition = default_and_validate(subgraph_definition, schema) subgraph_definition_dao = SubGraphDefinitionDao() subgraph_definition_dao.id = random_id() subgraph_definition_dao.data = subgraph_definition.data.to_dict() subgraph_definition_dao.data['engine_name'] = engine.data.name db.session.add(subgraph_definition_dao) db.session.commit() return subgraph_definition_dao.to_model()
def save_subgraph_definition(subgraph_definition, engine, trigger_schemas): """ :type engine: dart.model.engine.Engine :type subgraph_definition: dart.model.graph.SubGraphDefinition """ action_schemas = [ action_schema(e.params_json_schema) for e in engine.data.supported_action_types ] ds_schema = datastore_schema(engine.data.options_json_schema) schema = subgraph_definition_schema(trigger_schemas, action_schemas, ds_schema) subgraph_definition = default_and_validate(subgraph_definition, schema) subgraph_definition_dao = SubGraphDefinitionDao() subgraph_definition_dao.id = random_id() subgraph_definition_dao.data = subgraph_definition.data.to_dict() subgraph_definition_dao.data['engine_name'] = engine.data.name db.session.add(subgraph_definition_dao) db.session.commit() return subgraph_definition_dao.to_model()
def test_datastore_schema(self): dst = Datastore(data=DatastoreData('test-datastore', 'fake_engine', args={ 'data_to_freespace_ratio': 0, 'secret': 'hi' })) obj_before = dst.to_dict() schema = datastore_schema(self.options_json_schema) dst = default_and_validate(dst, schema) obj_after = dst.to_dict() self.assertNotEqual(obj_before, obj_after) self.assertEqual(obj_after['data']['args']['secret'], 'hi') secrets = {} purge_secrets(obj_after, schema, secrets) self.assertEqual(obj_after['data']['args'].get('secret'), None) self.assertEqual(secrets, {'secret': 'hi'})
def main(): data = { 'definitions': { 'Action': action_schema(None), 'ActionContext': action_context_schema(), 'ActionResult': action_result_schema(), 'Dataset': dataset_schema(), 'Datastore': datastore_schema(None), 'Engine': engine_schema(), 'ErrorResult': error_result_schema(), 'Event': event_schema(), 'Filter': filter_schema(), 'GraphEntityIdentifier': graph_entity_identifier_schema(), 'GraphEntity': graph_entity_schema(), 'JSONPatch': json_patch_schema(), 'JSONSchema': json_schema_schema(), 'OKResult': ok_result_schema(), 'OrderBy': order_by_schema(), 'SubGraph': sub_graph_schema(), 'SubGraphDefinition': { 'type': 'object' }, #subgraph_definition_schema([{'type': 'object'}], [{'type': 'object'}], {'type': 'object'}), 'Subscription': subscription_schema(), 'Trigger': trigger_schema({'type': 'object'}), 'TriggerType': trigger_type_schema(), 'Workflow': workflow_schema(), 'WorkflowInstance': workflow_instance_schema() } } fix_up(data, data, [None]) print dump(data, Dumper=Dumper, default_style=None, default_flow_style=False, explicit_start=False, explicit_end=False) return 0
def get_schema(self, datastore): engine = self._engine_service.get_engine_by_name( datastore.data.engine_name) assert isinstance(engine, Engine) schema = datastore_schema(engine.data.options_json_schema) return schema
def _get_datastore_schemas(self): options_schemas = [] for engine in self._engine_service.query_engines([], 1000, 0): options_schemas.append(engine.data.options_json_schema) datastore_schemas = [datastore_schema(s) for s in options_schemas] return datastore_schemas
def export_swagger_definitions(out): data = { 'definitions': { 'Action': action_schema({'type': 'object', 'x-nullable': True}), 'ActionResponse': object_response_schema('Action'), 'ActionsResponse': array_response_schema('Action'), 'PagedActionsResponse': paged_response_schema('Action'), 'ActionContext': action_context_schema(), 'ActionContextResponse': object_response_schema('ActionContext'), 'ActionResult': action_result_schema(), 'Dataset': dataset_schema(), 'DatasetResponse': object_response_schema('Dataset'), 'PagedDatasetsResponse': paged_response_schema('Dataset'), 'Datastore': datastore_schema({'type': 'object', 'x-nullable': True}), 'DatastoreResponse': object_response_schema('Datastore'), 'PagedDatastoresResponse': paged_response_schema('Datastore'), 'Engine': engine_schema(), 'EngineResponse': object_response_schema('Engine'), 'PagedEnginesResponse': paged_response_schema('Engine'), 'ErrorResponse': error_response_schema(), 'Event': event_schema(), 'EventResponse': object_response_schema('Event'), 'PagedEventsResponse': paged_response_schema('Event'), 'Filter': filter_schema(), 'GraphEntityIdentifier': graph_entity_identifier_schema(), 'GraphEntityIdentifierResponse': object_response_schema('GraphEntityIdentifier'), 'GraphEntityIdentifiersResponse': array_response_schema('GraphEntityIdentifier'), 'GraphEntity': graph_entity_schema(), 'GraphEntityResponse': object_response_schema('GraphEntity'), 'JSONPatch': json_patch_schema(), 'JSONSchema': json_schema_schema(), 'JSONSchemaResponse': object_response_schema('JSONSchema'), 'ObjectResponse': object_response_schema('object'), 'ObjectsResponse': array_response_schema('object'), 'PagedObjectsResponse': paged_response_schema('object'), 'OKResponse': ok_response_schema(), 'OrderBy': order_by_schema(), 'Subgraph': sub_graph_schema(), 'SubgraphResponse': object_response_schema('Subgraph'), 'SubgraphDefinition': {'type': 'object'}, #subgraph_definition_schema([{'type': 'object'}], [{'type': 'object'}], {'type': 'object'}), 'SubgraphDefinitionResponse': object_response_schema('SubgraphDefinition'), 'Subscription': subscription_schema(), 'SubscriptionResponse': object_response_schema('Subscription'), 'PagedSubscriptionsResponse': paged_response_schema('Subscription'), 'SubscriptionElement': subscription_element_schema(), 'PagedSubscriptionElementsResponse': paged_response_schema('SubscriptionElement'), 'Trigger': trigger_schema({'type': 'object'}), 'TriggerResponse': object_response_schema('Trigger'), 'PagedTriggersResponse': paged_response_schema('Trigger'), 'TriggerType': trigger_type_schema(), 'PagedTriggerTypesResponse': paged_response_schema('TriggerType'), 'Workflow': workflow_schema(), 'WorkflowResponse': object_response_schema('Workflow'), 'PagedWorkflowsResponse': paged_response_schema('Workflow'), 'WorkflowInstance': workflow_instance_schema(), 'WorkflowInstanceResponse': object_response_schema('WorkflowInstance'), 'PagedWorkflowInstancesResponse': paged_response_schema('WorkflowInstance') } } fix_up(data, data, [None]) dump(data, out, Dumper=Dumper, default_style=None, default_flow_style=False, explicit_start=False, explicit_end=False)
def test_datastore_schema_invalid(self): with self.assertRaises(DartValidationException) as context: dst = Datastore(data=DatastoreData('test-datastore', 'fake_engine', args={'data_to_freespace_ratio_yo': 0})) default_and_validate(dst, datastore_schema(self.options_json_schema)) self.assertTrue(isinstance(context.exception, DartValidationException))
def get_datastore_json_schema(engine_name): engine = engine_service().get_engine_by_name(engine_name) if not engine: return {'results': 'ERROR', 'error_message': 'unknown engine with name: %s' % engine_name}, 400, None return {'results': datastore_schema(engine.data.options_json_schema)}
def export_swagger_definitions(out): data = { 'definitions': { 'Action': action_schema({ 'type': 'object', 'x-nullable': True }), 'ActionResponse': object_response_schema('Action'), 'ActionsResponse': array_response_schema('Action'), 'PagedActionsResponse': paged_response_schema('Action'), 'ActionContext': action_context_schema(), 'ActionContextResponse': object_response_schema('ActionContext'), 'ActionResult': action_result_schema(), 'Dataset': dataset_schema(), 'DatasetResponse': object_response_schema('Dataset'), 'PagedDatasetsResponse': paged_response_schema('Dataset'), 'Datastore': datastore_schema({ 'type': 'object', 'x-nullable': True }), 'DatastoreResponse': object_response_schema('Datastore'), 'PagedDatastoresResponse': paged_response_schema('Datastore'), 'Engine': engine_schema(), 'EngineResponse': object_response_schema('Engine'), 'PagedEnginesResponse': paged_response_schema('Engine'), 'ErrorResponse': error_response_schema(), 'Event': event_schema(), 'EventResponse': object_response_schema('Event'), 'PagedEventsResponse': paged_response_schema('Event'), 'Filter': filter_schema(), 'GraphEntityIdentifier': graph_entity_identifier_schema(), 'GraphEntityIdentifierResponse': object_response_schema('GraphEntityIdentifier'), 'GraphEntityIdentifiersResponse': array_response_schema('GraphEntityIdentifier'), 'GraphEntity': graph_entity_schema(), 'GraphEntityResponse': object_response_schema('GraphEntity'), 'JSONPatch': json_patch_schema(), 'JSONSchema': json_schema_schema(), 'JSONSchemaResponse': object_response_schema('JSONSchema'), 'ObjectResponse': object_response_schema('object'), 'ObjectsResponse': array_response_schema('object'), 'PagedObjectsResponse': paged_response_schema('object'), 'OKResponse': ok_response_schema(), 'OrderBy': order_by_schema(), 'Subgraph': sub_graph_schema(), 'SubgraphResponse': object_response_schema('Subgraph'), 'SubgraphDefinition': { 'type': 'object' }, #subgraph_definition_schema([{'type': 'object'}], [{'type': 'object'}], {'type': 'object'}), 'SubgraphDefinitionResponse': object_response_schema('SubgraphDefinition'), 'Subscription': subscription_schema(), 'SubscriptionResponse': object_response_schema('Subscription'), 'PagedSubscriptionsResponse': paged_response_schema('Subscription'), 'SubscriptionElement': subscription_element_schema(), 'PagedSubscriptionElementsResponse': paged_response_schema('SubscriptionElement'), 'Trigger': trigger_schema({'type': 'object'}), 'TriggerResponse': object_response_schema('Trigger'), 'PagedTriggersResponse': paged_response_schema('Trigger'), 'TriggerType': trigger_type_schema(), 'PagedTriggerTypesResponse': paged_response_schema('TriggerType'), 'Workflow': workflow_schema(), 'WorkflowResponse': object_response_schema('Workflow'), 'PagedWorkflowsResponse': paged_response_schema('Workflow'), 'WorkflowInstance': workflow_instance_schema(), 'WorkflowInstanceResponse': object_response_schema('WorkflowInstance'), 'PagedWorkflowInstancesResponse': paged_response_schema('WorkflowInstance') } } fix_up(data, data, [None]) dump(data, out, Dumper=Dumper, default_style=None, default_flow_style=False, explicit_start=False, explicit_end=False)
def get_schema(self, datastore): engine = self._engine_service.get_engine_by_name(datastore.data.engine_name) assert isinstance(engine, Engine) schema = datastore_schema(engine.data.options_json_schema) return schema