예제 #1
0
    def test_add_database_user_bad_permissions(self):
        cli = InfluxDBClient()

        with self.assertRaisesRegexp(
                Exception,
                "'permissions' must be \(readFrom, writeTo\) tuple"):
            cli.add_database_user(new_password='******',
                                  new_username='******',
                                  permissions=('hello', 'hello', 'hello'))
예제 #2
0
    def test_add_database_user_bad_permissions(self):
        cli = InfluxDBClient()

        with self.assertRaisesRegexp(
                Exception,
                "'permissions' must be \(readFrom, writeTo\) tuple"
        ):
            cli.add_database_user(
                new_password='******',
                new_username='******',
                permissions=('hello', 'hello', 'hello')
            )
예제 #3
0
파일: client.py 프로젝트: qursaan/myslice
def createDatabase(request, slicename):
    result = {}

    Config = config(request)

    server = Config.get('influxdb', 'server')
    #port = Config.get('influxdb', 'port', 8086)
    port = 8086
    user = Config.get('influxdb', 'user')
    password = Config.get('influxdb', 'password')

    dbname = slicename
    dbuser = request.user.username
    dbpassword = generatePassword()

    query = Query().get('user').filter_by('user_email', '==',
                                          dbuser).select('slices')
    slices = execute_query(request, query)

    if not slicename in slices:
        result['status'] = 'fail'
        result['message'] = 'no permissions'
        return HttpResponse(json.dumps(result),
                            content_type="application/json")

    client = InfluxDBClient(server, port, user, password, dbname)

    try:
        client.create_database(dbname)
    except Exception as e:
        print e

    # Add database user
    try:
        client.add_database_user(dbuser, dbpassword)
    except Exception as e:
        print e

    # Make user a database admin
    client.set_database_admin(dbuser)

    # Insert an entry in the Influxdb table
    i = MeasurementsDB(backend='influxdb',
                       server=server,
                       port=port,
                       dbname=dbname,
                       dbuser=dbuser,
                       dbpassword=dbpassword)
    i.save()

    result['status'] = 'ok'

    return HttpResponse(json.dumps(result), content_type="application/json")
예제 #4
0
def main(host='localhost', port=8086):
    user = '******'
    password = '******'
    dbname = 'example'
    dbuser = '******'
    dbuser_password = '******'
    query = 'select column_one from foo;'
    json_body = [{
        "points": [
            ["1", 1, 1.0],
            ["2", 2, 2.0]
        ],
        "name": "foo",
        "columns": ["column_one", "column_two", "column_three"]
    }]

    client = InfluxDBClient(host, port, user, password, dbname)

    print("Create database: " + dbname)
    client.create_database(dbname)

    dbusers = client.get_database_users()
    print("Get list of database users: {0}".format(dbusers))

    print("Add database user: "******"Make user a database admin")
    client.set_database_admin(dbuser)

    print("Remove admin privilege from user")
    client.unset_database_admin(dbuser)

    dbusers = client.get_database_users()
    print("Get list of database users again: {0}".format(dbusers))

    print("Switch user: "******"Write points: {0}".format(json_body))
    client.write_points(json_body)

    print("Queying data: " + query)
    result = client.query(query)

    print("Result: {0}".format(result))

    print("Switch user: "******"Delete database: " + dbname)
    client.delete_database(dbname)
예제 #5
0
    def test_add_database_user(self):
        with requests_mock.Mocker() as m:
            m.register_uri(requests_mock.POST,
                           "http://localhost:8086/db/db/users")
            cli = InfluxDBClient(database='db')
            cli.add_database_user(new_username='******',
                                  new_password='******',
                                  permissions=('.*', '.*'))

            self.assertDictEqual(
                json.loads(m.last_request.body), {
                    'writeTo': '.*',
                    'password': '******',
                    'readFrom': '.*',
                    'name': 'paul'
                })
예제 #6
0
    def test_add_database_user(self):
        with requests_mock.Mocker() as m:
            m.register_uri(
                requests_mock.POST,
                "http://localhost:8086/db/db/users"
            )
            cli = InfluxDBClient(database='db')
            cli.add_database_user(
                new_username='******',
                new_password='******',
                permissions=('.*', '.*')
            )

            self.assertDictEqual(
                json.loads(m.last_request.body),
                {
                    'writeTo': '.*',
                    'password': '******',
                    'readFrom': '.*',
                    'name': 'paul'
                }
            )