55 lines
1.8 KiB
Plaintext
55 lines
1.8 KiB
Plaintext
|
|
#!/bin/bash
|
||
|
|
source /etc/profile
|
||
|
|
|
||
|
|
arangodb_host={{ groups.arangodb[0] | default('localhost') }}
|
||
|
|
username=root
|
||
|
|
pin="{{ arangodb_default_pin }}"
|
||
|
|
database="{{ arangodb_database }}"
|
||
|
|
|
||
|
|
function create_database() {
|
||
|
|
# 检查数据库是否存在
|
||
|
|
sleep 2
|
||
|
|
check_database=$(curl -u $username:$pin -s -o /dev/null -w "%{http_code}" http://$arangodb_host:8529/_db/$database/_api/database/current)
|
||
|
|
if [[ $check_database -eq 200 ]]; then
|
||
|
|
echo "Database $database already exists."
|
||
|
|
else
|
||
|
|
# 创建数据库
|
||
|
|
local response_code=$(curl -u $username:$pin -s -o /dev/null -w "%{http_code}" -X POST -H "accept: application/json" -d "{\"name\": \"$database\"}" http://$arangodb_host:8529/_api/database)
|
||
|
|
if [[ $response_code -eq 201 ]]; then
|
||
|
|
echo "Database $database created successfully."
|
||
|
|
else
|
||
|
|
echo "Failed to create database $database."
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
sleep 2
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function create_collection() {
|
||
|
|
local collection_name=$1
|
||
|
|
local collection_type=$2
|
||
|
|
sleep 2
|
||
|
|
# 检查文档是否存在
|
||
|
|
check_collection=$(curl -u $username:$pin -s -o /dev/null -w "%{http_code}" http://$arangodb_host:8529/_db/$database/_api/collection/$collection_name)
|
||
|
|
if [[ $check_collection -eq 200 ]]; then
|
||
|
|
echo "Collection $collection_name already exists."
|
||
|
|
else
|
||
|
|
# 创建文档$collection_name
|
||
|
|
local response_code=$(curl -u $username:$pin -s -o /dev/null -w "%{http_code}" -X POST -H 'accept: application/json' -d "{\"name\": \"$collection_name\",\"type\": $collection_type }" http://$arangodb_host:8529/_db/$database/_api/collection?isSystem=false)
|
||
|
|
if [[ $response_code -eq 201 ]]; then
|
||
|
|
echo "Collection $collection_name created successfully."
|
||
|
|
else
|
||
|
|
echo "Failed to create collection $collection_name."
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
sleep 2
|
||
|
|
}
|
||
|
|
|
||
|
|
# 2: document 3: edges
|
||
|
|
create_database
|
||
|
|
create_collection IP 2
|
||
|
|
create_collection R_LOCATE_FQDN2IP 3
|
||
|
|
|