Beispiel #1
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #6
0
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)
Beispiel #7
0
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)
Beispiel #8
0
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)
Beispiel #10
0
class NetworkModel(createBaseModel(SPEC_NETWORK_DESCRIPTION, DB_NETWORK)):
    def __init__(self, data=None):
        super(NetworkModel, self).__init__(data)
Beispiel #11
0
    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()
        
Beispiel #12
0
class CommunityModel(createBaseModel(SPEC_COMMUNITY_DESCRIPTION,
                                     DB_COMMUNITY)):
    def __init__(self, data=None):
        super(CommunityModel, self).__init__(data)
Beispiel #13
0
class NodeConnectivityModel(
        createBaseModel(SPEC_NODE_CONNECTIVITY_DESCRIPTION, DB_NODE)):
    def __init__(self, data=None):
        super(NodeConnectivityModel, self).__init__(data)