Example #1
0
def change_conf(next_conf=None):
    signal = "# configurations recommended by ottertune:\n"
    next_conf = next_conf or {}

    tmp_conf_in = os.path.join(dconf.TEMP_DIR,
                               os.path.basename(dconf.DB_CONF) + '.in')
    get(dconf.DB_CONF, tmp_conf_in)
    with open(tmp_conf_in, 'r') as f:
        lines = f.readlines()

    if signal not in lines:
        lines += ['\n', signal]

    signal_idx = lines.index(signal)
    lines = lines[0:signal_idx + 1]

    if dconf.DB_TYPE == 'mysql':
        lines.append('[mysqld]\n')

    if dconf.BASE_DB_CONF:
        assert isinstance(dconf.BASE_DB_CONF, dict), \
            (type(dconf.BASE_DB_CONF), dconf.BASE_DB_CONF)
        for name, value in sorted(dconf.BASE_DB_CONF.items()):
            if value is None:
                lines.append('{}\n'.format(name))
            else:
                lines.append('{} = {}\n'.format(name, value))

    if isinstance(next_conf, str):
        with open(next_conf, 'r') as f:
            recommendation = json.load(
                f, encoding="UTF-8",
                object_pairs_hook=OrderedDict)['recommendation']
    else:
        recommendation = next_conf

    assert isinstance(recommendation, dict)

    for name, value in recommendation.items():
        if dconf.DB_TYPE == 'oracle' and isinstance(value, str):
            value = value.strip('B')
        # If innodb_flush_method is set to NULL on a Unix-like system,
        # the fsync option is used by default.
        if name == 'innodb_flush_method' and value == '':
            value = "fsync"
        lines.append('{} = {}\n'.format(name, value))
    lines.append('\n')

    tmp_conf_out = os.path.join(dconf.TEMP_DIR,
                                os.path.basename(dconf.DB_CONF) + '.out')
    with open(tmp_conf_out, 'w') as f:
        f.write(''.join(lines))

    sudo('cp {0} {0}.ottertune.bak'.format(dconf.DB_CONF), remote_only=True)
    put(tmp_conf_out, dconf.DB_CONF, use_sudo=True)
    local('rm -f {} {}'.format(tmp_conf_in, tmp_conf_out))
Example #2
0
def get_active():
    form = ItemForm()
    cart = utils.get_url(API_URL+'/cart/active/'+current_user.id)['items']
    if cart == None:
        cart = []
    if form.validate_on_submit():
        items = {}
        items[form.name.data] = form.amount.data
        cart = Cart(author=current_user.id, items=items)
        utils.put(API_URL+'/cart', cart.to_json())
        return redirect(url_for('.get_active'))

    return render_template('views/base/account/account_cart.html', title='Cart', bg_img='side.jpg', form=form, cart=cart)
Example #3
0
    def test_put(self):
        r = MagicMock(status_code=200)
        r.json = MagicMock(return_value={})
        self.mock_requests.put.return_value = r

        put(json_page="some_page", action='some_action', new_data="here it is")
        self.mock_requests.put.assert_called_with(
            url="https://testserver.vosfactures.fr/some_page.json",
            headers={
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            data=
            '{"api_token": "anotsorandomapitoken", "some_action": {"new_data": "here it is"}}'
        )
def get_config(dnac,templateId, params):
    body = {
             "templateId": templateId,
            "params": params
                }
    response = put(dnac, "template-programmer/template/preview", payload=json.dumps(body))
    print (response.json()['cliPreview'])
Example #5
0
def change_conf(next_conf=None):
    signal = "# configurations recommended by ottertune:\n"
    next_conf = next_conf or {}

    tmp_conf_in = os.path.join(dconf.TEMP_DIR,
                               os.path.basename(dconf.DB_CONF) + '.in')
    get(dconf.DB_CONF, tmp_conf_in)
    with open(tmp_conf_in, 'r') as f:
        lines = f.readlines()

    if signal not in lines:
        lines += ['\n', signal]

    signal_idx = lines.index(signal)
    lines = lines[0:signal_idx + 1]
    if dconf.BASE_DB_CONF:
        assert isinstance(dconf.BASE_DB_CONF, dict), \
            (type(dconf.BASE_DB_CONF), dconf.BASE_DB_CONF)
        base_conf = [
            '{} = {}\n'.format(*c) for c in sorted(dconf.BASE_DB_CONF.items())
        ]
        lines.extend(base_conf)

    if isinstance(next_conf, str):
        with open(next_conf, 'r') as f:
            recommendation = json.load(
                f, encoding="UTF-8",
                object_pairs_hook=OrderedDict)['recommendation']
    else:
        recommendation = next_conf

    assert isinstance(recommendation, dict)

    for name, value in recommendation.items():
        if dconf.DB_TYPE == 'oracle' and isinstance(value, str):
            value = value.strip('B')
        lines.append('{} = {}\n'.format(name, value))
    lines.append('\n')

    tmp_conf_out = os.path.join(dconf.TEMP_DIR,
                                os.path.basename(dconf.DB_CONF) + '.out')
    with open(tmp_conf_out, 'w') as f:
        f.write(''.join(lines))

    sudo('cp {0} {0}.ottertune.bak'.format(dconf.DB_CONF))
    put(tmp_conf_out, dconf.DB_CONF, use_sudo=False)
    local('rm -f {} {}'.format(tmp_conf_in, tmp_conf_out))
Example #6
0
 def dispatch (_s):
     try: 
     # try:# csrf protection
         if _s.request.method == "POST" \
         and not _s.request.path.startswith('/tq'): # tq indicates a TaskQueue handler: they are internal therefore not required to have csrf token
             ssnTok  = _s.ssn.get('_csrf_token')
             postTok = _s.request.get('_csrf_token')
             if (not ssnTok  # toks differ or if both are the same falsy
             or  ssnTok != postTok):
                 logging.warning('path = %r',_s.request.path)
                 logging.warning('ssn  csrf token = %r',ssnTok)
                 logging.warning('post csrf token = %r',postTok)
                 logging.warning('CSRF attack or bad or missing csrf token?')
                 wa2.abort(403) # 'Forbidden'
                 #_s.response.set_status(403)
 
         wa2.RequestHandler.dispatch (_s) # Dispatch the request.this is needed for wa2 sessions to work
     finally:
         u = _s.user
         if u and u.modified:
             u.put() # lazy put() to not put user more than once per request 
         _s.ssn.save() # Save ssn after every request
def delete_group(groupid):
    '''Delete a scaling group.'''
    data = {
    "name": "workers",
    "cooldown": 60,
    "minEntities": 0,
    "maxEntities": 0,
    "metadata": {
                "firstkey": "this is a string",
                "secondkey": "1"
    }
}
    print 'Updating config for group %s...' % groupid
    put = utils.put(endpoint % (auth_data['id'], 'groups/%s/config' % groupid),
                    data=data, token=auth_data['token'])
    print put.status_code, json.dumps(put.json, indent=4)
    delete = utils.delete(endpoint % (auth_data['id'],
            'groups/%s' % groupid), token=auth_data['token'])
    print delete.status_code, json.dumps(delete.json, indent=4)
Example #8
0
def get_config(dnac, templateId, params):
    body = {"templateId": templateId, "params": params}
    response = put(dnac,
                   "template-programmer/template/preview",
                   payload=json.dumps(body))
    print(response.json()['cliPreview'])
Example #9
0
 def put(self, *args, **kwargs):
     if self.gui_running:
         s = utils.put_format(*args, **kwargs)
         self.gui_stdout.append(s)
     else:
         return utils.put(*args, **kwargs)
Example #10
0
 def banner(self, role=''):
     utils.put('=' * 20, self.now, role)
Example #11
0
 def putRequest(self, url, headers, data):
     return utils.put(url, headers, data, ssl=self.ssl)