class NodeModel(createBaseModel(SPEC_NODE_DESCRIPTION,DB_NODE)): _DESCRIPTION_DICT_KEYS= ['active', 'node_id', 'node_description', 'node_name', 'node_key', 'node_admin_identity' , 'open_connect_source', 'open_connect_dest', 'gateway_node'] _NODE_POLICY_DESCRIPTION_DICT = ['sync_frequency', 'deleted_data_policy', 'accepted_version', 'accepted_TOS', 'accepts_anon', 'accepts_unsigned', 'validates_signature', 'check_trust' ] def __init__(self, data=None): super(NodeModel, self).__init__(data) def _getDescriptionDict(self): #Call the parent factory generate class to get the first level description nodeDescriptionDict= NodeModel.__bases__[0]._getDescriptionDict(self) if 'node_policy' in self._specData: validKeys = set(self.node_policy.keys()).intersection(self._NODE_POLICY_DESCRIPTION_DICT) nodeDescriptionDict["node_policy"] = dict((k, self.node_policy[k]) for k in validKeys) return nodeDescriptionDict
class NodeStatusModel(createBaseModel(SPEC_STATUS_DESCRIPTION, DB_NODE)): def __init__(self, data=None): # Node status is model that create and does not have any doc_version. # so set its doc_version to node. This model should probably be removed, # alternate method should be implemented. self.__dict__['doc_version'] = None super(NodeStatusModel, self).__init__(data)
class NetworkModel(createBaseModel(SPEC_NETWORK_DESCRIPTION, DB_NETWORK)): _DESCRIPTION_DICT_KEYS = [ "network_id", "network_description", "network_name", "network_key", "network_admin_identity" ] def __init__(self, data=None): super(NetworkModel, self).__init__(data)
class NodeFilterModel(createBaseModel(SPEC_FILTER_DESCRIPTION, DB_NODE)): _DESCRIPTION_DICT_KEYS = ["filter_name", "custom_filter", "include_exclude", "filter" ] def __init__(self, data=None): super(NodeFilterModel,self).__init__(data)
class CommunityModel(createBaseModel(SPEC_COMMUNITY_DESCRIPTION, DB_COMMUNITY)): _DESCRIPTION_DICT_KEYS = [ "community_name", "community_id", "community_description", "community_key", "social_community", "community_admin_identity" ] def __init__(self, data=None): super(CommunityModel, self).__init__(data)
class NodeServiceModel(createBaseModel(SPEC_SERVICE_DESCRIPTION, DB_NODE)): PUBLISH='publish' ACCESS = 'access' BROKER = 'broker' DISTRIBUTE = 'distribute' ADMINISTRATIVE='administrative' def __init__(self, data=None): super(NodeServiceModel,self).__init__(data)
class NetworkPolicyModel( createBaseModel(SPEC_NETWORK_POLICY_DESCRIPTION, DB_NETWORK)): _DESCRIPTION_DICT_KEYS = ['policy_id', 'policy_version', 'network_id'] def __init__(self, data=None): super(NetworkPolicyModel, self).__init__(data)
class NodeModel(createBaseModel(SPEC_NODE_DESCRIPTION,DB_NODE)): def __init__(self, data=None): super(NodeModel, self).__init__(data)
designId = _DESIGN_DOC + db.name designUpdate = {} designDoc = db.get(designId) if designDoc is not None and designDoc: designUpdate.update(designDoc) # Make sure the filter is different before trying the update it. if _DESIGN_DOC_FILTERS in designDoc and designDoc[_DESIGN_DOC_FILTERS][_DEFAULT_FILTER] != filterFunction: designUpdate[_DESIGN_DOC_FILTERS].update(filtersUpdate) else: designUpdate[_DESIGN_DOC_FILTERS] = filtersUpdate db[designId] = designUpdate BaseModel = createBaseModel(SPEC_RESOURCE_DATA, DB_RESOURCE_DATA) class ResourceDataModel(BaseModel): _TIME_STAMPS = ["create_timestamp", "update_timestamp", "node_timestamp"] _DOC_ID = "doc_ID" DEFAULT_FILTER = _DEFAULT_FILTER # Make the filter is updated in the design document. # Add Filter function the design document that will be used to filter on replication. designFilter = {_DEFAULT_FILTER: filterFunction} updateDesignFilters(BaseModel._defaultDB, designFilter) def __init__(self, data=None): super(ResourceDataModel, self).__init__(data)
class NetworkModel(createBaseModel(SPEC_NETWORK_DESCRIPTION, DB_NETWORK)): def __init__(self, data=None): super(NetworkModel, self).__init__(data)
designId = _DESIGN_DOC + db.name designUpdate = {} designDoc = db.get(designId) if designDoc is not None and designDoc: designUpdate.update(designDoc) #Make sure the filter is different before trying the update it. if (_DESIGN_DOC_FILTERS in designDoc and designDoc[_DESIGN_DOC_FILTERS][_DEFAULT_FILTER] != filterFunction): designUpdate[_DESIGN_DOC_FILTERS].update(filtersUpdate) else: designUpdate[_DESIGN_DOC_FILTERS]=filtersUpdate db[designId] = designUpdate BaseModel = createBaseModel(SPEC_RESOURCE_DATA, DB_RESOURCE_DATA) class ResourceDataModel(BaseModel): _TIME_STAMPS = ['create_timestamp', 'update_timestamp', 'node_timestamp'] _DOC_ID = 'doc_ID' DEFAULT_FILTER =_DEFAULT_FILTER #Make the filter is updated in the design document. # Add Filter function the design document that will be used to filter on replication. designFilter = {_DEFAULT_FILTER: filterFunction} updateDesignFilters(BaseModel._defaultDB, designFilter) def __init__(self, data=None): super(ResourceDataModel, self).__init__(data) # Set the timestamps by default on creation use utc. timeStamp = h. nowToISO8601Zformat()
class CommunityModel(createBaseModel(SPEC_COMMUNITY_DESCRIPTION, DB_COMMUNITY)): def __init__(self, data=None): super(CommunityModel, self).__init__(data)
class NodeConnectivityModel( createBaseModel(SPEC_NODE_CONNECTIVITY_DESCRIPTION, DB_NODE)): def __init__(self, data=None): super(NodeConnectivityModel, self).__init__(data)