Repository URL to install this package:
| 
      
     
      
        
        
        Version: 
        
         
  
        
    
          
          3.3.25  ▾
        
         
  
      
        
      
  
      
  
     | 
    
    python-workloadmgrclient
  
    /
        
    usr
  
        /
        
    lib
  
        /
        
    python2.7
  
        /
        
    dist-packages
  
        /
        
    workloadmgrclient
  
        /
        
    v1
  
        /
        settings.py
    | 
|---|
# Copyright (c) 2013 TrilioData, Inc.
"""
Settings Interface (1.1 extension).
"""
from workloadmgrclient import base
import six
try:
    from urllib import urlencode
except ImportError:
    from urllib.parse import urlencode
class Setting(base.Resource):
    """A setting describes the type of a workload"""
    def __repr__(self):
        return "<Setting: %s>" % self.name
    def delete(self):
        """Delete this setting."""
        return self.manager.delete(self)
    def create_bulk(self, dict_of_settings):
        """Create settings"""
        return self.manager.create_bulk(self, dict_of_settings)
    def get(self, setting_name):
        """Get setting"""
        return self.manager.get(self, setting_name)
    def list(self, get_hidden = False):
        """List settings"""
        return self.manager.list(self, get_hidden)
    def test_email(self):
        """Test email settings"""
        return self.manager.test_email(self)
class SettingsManager(base.ManagerWithFind):
    """Manage :class:`Setting` resources."""
    resource_class = Setting
    def create_bulk(self, dict_of_settings):
        """Create settings bulk
        :param dict_of_settings: all settings
        """
        body = {'settings': dict_of_settings}
        return self._create('/workloads/settings', body, 'settings', return_raw = True)
    def create(self, name, value, description=None, category=None, type=None, 
               is_public=False, is_hidden=False, metadata=None ):
        """Create a setting.
        :param metadata: metadata of setting.
        :param id: The name of the setting uuid.
        :param name: The name of the setting.
        :param description: The description of the setting.
        :rtype: :class:`Setting`
        """
        body = {'settings': [{'name': name,
                            'value': value,
                            'description': description,
                            'category': category,
                            'type': type,
                            'is_public': is_public,
                            'is_hidden': is_hidden,
                            'metadata': metadata}]}
        return self._create('/settings', body, 'settings', return_raw = True)
    
    def update(self, name, value, description=None, category=None, type=None, 
               is_public=False, is_hidden=False, metadata=None ):
        """Update a setting.
        :param metadata: metadata of setting.
        :param id: The name of the setting uuid.
        :param name: The name of the setting.
        :param description: The description of the setting.
        :rtype: :class:`Setting`
        """
        body = {'settings': [{'name': name,
                            'value': value,
                            'description': description,
                            'category': category,
                            'type': type,
                            'is_public': is_public,
                            'is_hidden': is_hidden,
                            'metadata': metadata}]}
        return self._update('/settings', body)    
    def get(self, setting_name, get_hidden = False):
        """Show details of a setting.
        :param setting_id: The key of the setting to display.
        :rtype: :class:`Setting`
        """
        if get_hidden == True:
            resp, body = self.api.client.get("/settings/%s?get_hidden=true" % setting_name)
            return body['setting']
        else:
            resp, body = self.api.client.get("/settings/%s" % setting_name)
            return body['setting']
    def list(self, search_opts = None):
        """Get a list of all settings.
        :rtype: list of :class:`Setting`
        """
        if search_opts is None:
            search_opts = {}
        qparams = {}
        for opt, val in six.iteritems(search_opts):
            if val:
                qparams[opt] = val
        query_string = "?%s" % urlencode(qparams) if qparams else ""
        return self.api.client.post("/workloads/settings%s" % query_string, body=None)
    def test_email(self):
        """Tests whether email settings working
        """
        return self.api.client.get("/workloads/email/test_email")
    def delete(self, setting_name):
        """Delete a setting.
        :param setting_id: The :class:`Setting` to delete.
        """
        self._delete("/settings/%s" % base.getid(setting_name))