how create a organization and bucket in influxdb with python? i have a python script for creating a org and bucket in influx db but it wont work and return unauthorized response
can any body help me in this issue with influxdb apis?
HTTP response body:
{ "code": "unauthorized", "message": "write:orgs is unauthorized" }
Python Code:
from influxdb_client import InfluxDBClient, BucketRetentionRules
from influxdb_client.rest import ApiException
def create_org_and_bucket(url, token, org_name, bucket_name, bucket_retention_days):
# Convert retention days to seconds
if bucket_retention_days == -1:
bucket_retention_seconds = None # No expiration
else:
bucket_retention_seconds = bucket_retention_days * 86400 # Convert days to seconds
# Connect to InfluxDB
client = InfluxDBClient(url=url, token=token)
orgs_api = client.organizations_api()
buckets_api = client.buckets_api()
try:
# Create organization
org = orgs_api.create_organization(name=org_name)
print(f"Organization '{org_name}' created successfully.")
try:
# Create bucket
if bucket_retention_seconds is None:
retention_rules = []
else:
retention_rules = [BucketRetentionRules(type="expire", every_seconds=bucket_retention_seconds)]
bucket = buckets_api.create_bucket(name=bucket_name, org_id=org.id, retention_rules=retention_rules)
print(f"Bucket '{bucket_name}' in organization '{org_name}' created successfully.")
return org, bucket
except ApiException as e:
# If bucket creation fails, delete the created organization
print(f"Error creating bucket: {e}")
orgs_api.delete_organizations_id(org.id)
print(f"Rolled back organization '{org_name}'.")
return False
except ApiException as e:
print(f"Error creating organization: {e}")
return False
finally:
# Close the connection to InfluxDB
client.close()
url = "http://localhost:8086/"
token = ""
org_name = input("org name: ")
bucket_name = input("bucket name: ")
bucket_retention_days = -1
result = create_org_and_bucket(url, token, org_name, bucket_name, bucket_retention_days)
if result:
org, bucket = result
print(f"Successfully created organization '{org.name}' and bucket '{bucket.name}'.")
else:
print("Failed to create organization and bucket.")
i try this and also ask gpt and gemini but it wont work and returns same error
I had same problem, In Influxdb
there are 3 types of tokens.
All Access Token
which has the access to all orgs
, buckets
Write/Read
which you can specify the access of token base on
read
, write
operations.Operator Token
which will created throw Influxdb
setup process.For what you need to do (create org
, create bucket
) you will need Operator Token
Read More: https://docs.influxdata.com/influxdb/v2/admin/tokens/#operator-token