xia_meta.meta.Provisioner
- class xia_meta.meta.Provisioner(**kwargs)
-
Provisioner supports worker
Only cache data will be store here.
- Components:
supplies: asset can supply to attached workers
health: For a duration of 2**25 second, the probability of at least one downtime of x second
- __init__(**kwargs)
Methods
__init__
(**kwargs)connect
()Connect of sub connectors
delete
([cascade])Delete a document
Delete every instance of this document type
Disconnect of sub connectors
drop
()Drop the collection
from_db
(**kwargs)Transform database data to internal data
from_display
(**kwargs)Transform Display data to internal data
Get asset for the workers
Get collection name of current class
get_display_data
([lazy])Get Display data (visualized form of data)
Get current health status calculated of all connected services
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
Refresh supply/status with a full scan
reload
()Reload the document from the engine
reserve
(needs[, force])Try to attach a resource
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
capacity
Cluster Fields
handler_types
Key Fields
logger
name
owner_name
Partition information
reverse_delete_rules
status
used
- cluster_fields = []
Cluster Fields
- connect()
Connect of sub connectors
- delete(cascade: bool = True)
Delete a document
- Parameters
cascade (bool) – Activate the cascade delete
- classmethod delete_all()
Delete every instance of this document type
- disconnect()
Disconnect of sub connectors
- 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
- refresh_status()
Refresh supply/status with a full scan
- 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