Skip to content
Snippets Groups Projects
Select Git revision
  • ebfeba2c4fb9ceeb4f782e6cf8041a1f1f0b0fa3
  • master default
2 results

README.rst

Blame
    • Imran Iqbal's avatar
      ebfeba2c
      feat: use `semantic-release` cross-formula standard structure · ebfeba2c
      Imran Iqbal authored
      * Semi-automated using https://github.com/myii/ssf-formula/pull/31
      * Includes:
        - Update TOFS
        - Use `bin/kitchen`
        - Use `dist: bionic` in Travis
        - Add `yamllint` and apply rules
        - Use `pillars_from_files` throughout
        - Replace EOL images in Kitchen & Travis
        - Add `develop` images in Kitchen & Travis
      * Fix (or ignore)  errors shown below:
      
      ```bash
      salt-formula$ yamllint -s .
      ./pillar.example
        1:1       warning  missing document start "---"  (document-start)
        5:23      warning  truthy value should be one of [false, true]  (truthy)
        8:25      warning  truthy value should be one of [false, true]  (truthy)
        11:25     warning  truthy value should be one of [false, true]  (truthy)
        19:21     warning  truthy value should be one of [false, true]  (truthy)
        40:89     error    line too long (108 > 88 characters)  (line-length)
        41:89     error    line too long (112 > 88 characters)  (line-length)
        43:89     error    line too long (112 > 88 characters)  (line-length)
        45:89     error    line too long (110 > 88 characters)  (line-length)
        47:89     error    line too long (89 > 88 characters)  (line-length)
        74:27     warning  truthy value should be one of [false, true]  (truthy)
        82:9      error    wrong indentation: expected 10 but found 8  (indentation)
        101:14    warning  truthy value should be one of [false, true]  (truthy)
        102:20    warning  truthy value should be one of [false, true]  (truthy)
        103:89    error    line too long (119 > 88 characters)  (line-length)
        121:7     warning  comment not indented like content  (comments-indentation)
        122:24    error    syntax error: found character '%' that cannot start any token
        310:89    error    line too long (102 > 88 characters)  (line-length)
        330:89    error    line too long (113 > 88 characters)  (line-length)
        433:1     error    too many blank lines (1 > 0)  (empty-lines)
      
      ./salt/osmap.yaml
        4:2       error    syntax error: found character '%' that cannot start any token
        6:89      error    line too long (93 > 88 characters)  (line-length)
        22:89     error    line too long (137 > 88 characters)  (line-length)
        23:89     error    line too long (134 > 88 characters)  (line-length)
        33:89     error    line too long (149 > 88 characters)  (line-length)
        34:89     error    line too long (146 > 88 characters)  (line-length)
      
      ./salt/osfamilymap.yaml
        4:2       error    syntax error: found character '%' that cannot start any token
        6:89      error    line too long (94 > 88 characters)  (line-length)
        24:89     error    line too long (149 > 88 characters)  (line-length)
        25:89     error    line too long (146 > 88 characters)  (line-length)
        39:89     error    line too long (105 > 88 characters)  (line-length)
        40:89     error    line too long (127 > 88 characters)  (line-length)
        56:89     error    line too long (101 > 88 characters)  (line-length)
      
      ./salt/ospyvermap.yaml
        4:1       warning  missing document start "---"  (document-start)
      
      ./salt/defaults.yaml
        3:1       warning  missing document start "---"  (document-start)
        7:21      warning  truthy value should be one of [false, true]  (truthy)
        8:12      warning  truthy value should be one of [false, true]  (truthy)
        9:23      warning  truthy value should be one of [false, true]  (truthy)
        10:19     warning  truthy value should be one of [false, true]  (truthy)
        14:25     warning  truthy value should be one of [false, true]  (truthy)
        15:25     warning  truthy value should be one of [false, true]  (truthy)
        16:27     warning  truthy value should be one of [false, true]  (truthy)
        17:27     warning  truthy value should be one of [false, true]  (truthy)
        39:28     warning  truthy value should be one of [false, true]  (truthy)
        41:28     warning  truthy value should be one of [false, true]  (truthy)
        45:24     warning  truthy value should be one of [false, true]  (truthy)
        49:30     warning  truthy value should be one of [false, true]  (truthy)
        54:28     warning  truthy value should be one of [false, true]  (truthy)
        63:25     warning  truthy value should be one of [false, true]  (truthy)
        68:15     warning  truthy value should be one of [false, true]  (truthy)
      ```
      feat: use `semantic-release` cross-formula standard structure
      Imran Iqbal authored
      * Semi-automated using https://github.com/myii/ssf-formula/pull/31
      * Includes:
        - Update TOFS
        - Use `bin/kitchen`
        - Use `dist: bionic` in Travis
        - Add `yamllint` and apply rules
        - Use `pillars_from_files` throughout
        - Replace EOL images in Kitchen & Travis
        - Add `develop` images in Kitchen & Travis
      * Fix (or ignore)  errors shown below:
      
      ```bash
      salt-formula$ yamllint -s .
      ./pillar.example
        1:1       warning  missing document start "---"  (document-start)
        5:23      warning  truthy value should be one of [false, true]  (truthy)
        8:25      warning  truthy value should be one of [false, true]  (truthy)
        11:25     warning  truthy value should be one of [false, true]  (truthy)
        19:21     warning  truthy value should be one of [false, true]  (truthy)
        40:89     error    line too long (108 > 88 characters)  (line-length)
        41:89     error    line too long (112 > 88 characters)  (line-length)
        43:89     error    line too long (112 > 88 characters)  (line-length)
        45:89     error    line too long (110 > 88 characters)  (line-length)
        47:89     error    line too long (89 > 88 characters)  (line-length)
        74:27     warning  truthy value should be one of [false, true]  (truthy)
        82:9      error    wrong indentation: expected 10 but found 8  (indentation)
        101:14    warning  truthy value should be one of [false, true]  (truthy)
        102:20    warning  truthy value should be one of [false, true]  (truthy)
        103:89    error    line too long (119 > 88 characters)  (line-length)
        121:7     warning  comment not indented like content  (comments-indentation)
        122:24    error    syntax error: found character '%' that cannot start any token
        310:89    error    line too long (102 > 88 characters)  (line-length)
        330:89    error    line too long (113 > 88 characters)  (line-length)
        433:1     error    too many blank lines (1 > 0)  (empty-lines)
      
      ./salt/osmap.yaml
        4:2       error    syntax error: found character '%' that cannot start any token
        6:89      error    line too long (93 > 88 characters)  (line-length)
        22:89     error    line too long (137 > 88 characters)  (line-length)
        23:89     error    line too long (134 > 88 characters)  (line-length)
        33:89     error    line too long (149 > 88 characters)  (line-length)
        34:89     error    line too long (146 > 88 characters)  (line-length)
      
      ./salt/osfamilymap.yaml
        4:2       error    syntax error: found character '%' that cannot start any token
        6:89      error    line too long (94 > 88 characters)  (line-length)
        24:89     error    line too long (149 > 88 characters)  (line-length)
        25:89     error    line too long (146 > 88 characters)  (line-length)
        39:89     error    line too long (105 > 88 characters)  (line-length)
        40:89     error    line too long (127 > 88 characters)  (line-length)
        56:89     error    line too long (101 > 88 characters)  (line-length)
      
      ./salt/ospyvermap.yaml
        4:1       warning  missing document start "---"  (document-start)
      
      ./salt/defaults.yaml
        3:1       warning  missing document start "---"  (document-start)
        7:21      warning  truthy value should be one of [false, true]  (truthy)
        8:12      warning  truthy value should be one of [false, true]  (truthy)
        9:23      warning  truthy value should be one of [false, true]  (truthy)
        10:19     warning  truthy value should be one of [false, true]  (truthy)
        14:25     warning  truthy value should be one of [false, true]  (truthy)
        15:25     warning  truthy value should be one of [false, true]  (truthy)
        16:27     warning  truthy value should be one of [false, true]  (truthy)
        17:27     warning  truthy value should be one of [false, true]  (truthy)
        39:28     warning  truthy value should be one of [false, true]  (truthy)
        41:28     warning  truthy value should be one of [false, true]  (truthy)
        45:24     warning  truthy value should be one of [false, true]  (truthy)
        49:30     warning  truthy value should be one of [false, true]  (truthy)
        54:28     warning  truthy value should be one of [false, true]  (truthy)
        63:25     warning  truthy value should be one of [false, true]  (truthy)
        68:15     warning  truthy value should be one of [false, true]  (truthy)
      ```
    saltapis.py 2.07 KiB
    from django.conf import settings
    
    import requests
    from getpass import getpass
    
    
    class AbstractApi(object):
        '''
            Defines an abstract api to inherit from.
            You MUST specify a BASE_URL for your api to build a proper request url.
        '''
    
        BASE_URL = ''
    
        def __init__(self, username='', password='', token=''):
            ''' Set a token to work with '''
            if not self.BASE_URL:
                raise NotImplementedError('Please provide an BASE_URL')
    
            if token:
                self.token = token
            else:
                self.token = self.obtain_auth_token(username, password)
    
        def request(self, method='get', resource='/', headers={}, data={}):
            return getattr(requests, method)(
                self.BASE_URL + resource,
                headers=headers,
                data=data
            )
    
        def obtain_auth_token(self, username, password):
            res = self.request('post', '/login', headers={'Accept': 'application/json'}, data={
                'username': username,
                'password': password,
                'eauth': 'pam'
            })
    
            if res.status_code != 200:
                raise Exception('{} - {}'.format(res.status_code, res.text))
    
            return res.json().get('return')[0].get('token')
    
    
    class SaltCherrypy(AbstractApi):
    
        BASE_URL = '{protocol}://{host}:{port}'.format(**settings.SALT_API['cherrypy'])
    
        def logout(self):
            return self.request('post', '/logout', headers={
                'Accept': 'application/json',
                'X-Auth-Token': self.token
            })
    
        def get(self, module, target='*', api_args=[], api_kwargs={}):
            return self.request(
                'post',
                data={
                    'client': 'local',
                    'fun': module,
                    'tgt': target,
                    'arg': api_args,
                    'kwarg': api_kwargs
                },
                headers={
                    'Accept': 'application/json',
                    'X-Auth-Token': self.token
                }
            ).json().get('return')[0]
    
    
    class SaltTornado(AbstractApi):
    
        BASE_URL = '{protocol}://{host}:{port}'.format(**settings.SALT_API['tornado'])