xia_meta.meta.Connector
- class xia_meta.meta.Connector(**kwargs)
Bases:
Meta
Provisioner uses connector to consume external resources
- __init__(**kwargs)
Methods
__init__
(**kwargs)connect
()Establish the connection
delete
([cascade])Delete a document
Delete every instance of this document type
Stop the connection
drop
()Drop the collection
from_db
(**kwargs)Transform database data to internal data
from_display
(**kwargs)Transform Display data to internal data
Get collection name of current class
get_display_data
([lazy])Get Display data (visualized form of data)
get_id
()Get document id
Get Raw data (materialized form of data)
Get Runtime data (calculated from raw data when runtime is activated)
Get a sample document data
list
(owner_name[, limit])List objects of predefined criteria, default limited to 10 objects
load
(*args, **kwargs)Load a Document from engine
objects
(**kwargs)Search documents
reload
()Reload the document from the engine
save
([validate, cascade])Save a document to engine
to_db
([ignore_unknown, no_class])Translate the runtime data into raw data (materialized form of data)
update
([validate, cascade])Update existed fields
validate
()Validate if all of the component of document follows the predefined rules
Attributes
Cluster Fields
Key Fields
logger
name
owner_name
Partition information
reverse_delete_rules
- cluster_fields = []
Cluster Fields
- abstract connect()
Establish the connection
- delete(cascade: bool = True)
Delete a document
- Parameters
cascade (bool) – Activate the cascade delete
- classmethod delete_all()
Delete every instance of this document type
- abstract disconnect()
Stop the connection
- classmethod drop()
Drop the collection
Hard way to delete the collection. No cascade relation will be considered
- classmethod from_db(**kwargs)
Transform database data to internal data
- Parameters
**kwargs (object) – python dict got from system
- Returns
python dict object
- classmethod from_display(**kwargs)
Transform Display data to internal data
- Parameters
**kwargs (object) – display object got from front end
- Returns
python dict object
- classmethod get_collection_name()
Get collection name of current class
- Returns
collection name
- Return type
str
- get_display_data(lazy: bool = True)
Get Display data (visualized form of data)
- Returns
python dict object
Notes
We will return the detail form if it is possible
- get_id()
Get document id
- Returns
Document ID
- Return type
str
- get_raw_data()
Get Raw data (materialized form of data)
- Returns
python dict object
- get_runtime_data()
Get Runtime data (calculated from raw data when runtime is activated)
- Returns
python dict object
- classmethod get_sample()
Get a sample document data
- key_fields = []
Key Fields
- classmethod list(owner_name: str, limit: int = 10, **kwargs)
List objects of predefined criteria, default limited to 10 objects
- classmethod load(*args, **kwargs)
Load a Document from engine
- Parameters
*args – a list document id (should only have one valid)
**kwargs –
- Returns
loaded document instance
- classmethod objects(**kwargs)
Search documents
- Parameters
**kwargs – Search Configuration
- Returns
generator of a found document
Notes
key, str pair: single value search
key, list pair: array_contains_any search
embedded search: a__b means b component of a. a.b means the key’s name is a.b
- operators: key is end with __op__. The following op are supported:
__eq__: Could ignore because it is a by default behavior
__lt__, __le__, __gt__, __ge__, __ne__: as is supposed by the name
__asc__, __desc__: the result will be ordered by the fields
- partition_info = {}
Partition information
- reload()
Reload the document from the engine
- Returns
itself with refreshed data
- save(validate: bool = True, cascade: bool = True)
Save a document to engine
- Parameters
validate (bool) – Should the validation to be passed or not
cascade (bool) – Save cascaded document
- Returns
itself (with document id in the case of a new created document)
- to_db(ignore_unknown: bool = False, no_class: bool = False)
Translate the runtime data into raw data (materialized form of data)
- Parameters
no_class (bool) – Don’t save the class name into document
ignore_unknown (bool) – When a field is not defined in the document, should we send it back to the database
- Returns
python dict object
- update(validate=True, cascade: bool = True, **kwargs)
Update existed fields
- Parameters
validate (bool) – Should the data be validated before update or not
cascade (bool) – Activate the cascade update / delete
**kwargs – update parameters
- Returns
updated document in the form of python object
Notes
Update String Specifications * embedded update: a__b means b component of a. a.b means the key’s name is a.b * operators: key is end with __op__. The following op are supported:
__append__: Append an item to array
__remove__: Remove an item
__delete__: Delete the field
Notes
We need to update the data from all sources
- validate()
Validate if all of the component of document follows the predefined rules
- Returns
Always None. No exception raised means the validation passed