File: oci-os-provision-project

package info (click to toggle)
openstack-cluster-installer 43.0.25
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,564 kB
  • sloc: php: 19,169; sh: 18,247; ruby: 75; makefile: 31; xml: 8
file content (49 lines) | stat: -rw-r--r-- 1,703 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh

set -e

if ! [ -r /etc/oci-poc/openstack-ci.conf ] ; then
	echo "Cannot read /etc/oci-poc/openstack-ci.conf: exiting."
	exit 1
fi
. /etc/oci-poc/openstack-ci.conf

OCI_PROJECT=oci-ci
OCI_USERNAME=oci-ci
OCI_PASSWORD=$(openssl rand -hex 32)

if [ "${OS_PROJECT_NAME}" != "admin" ] || [ "${OS_USERNAME}" != "admin" ] ; then
	echo "OS_PROJECT_NAME or OS_USERNAME is not admin: please source admin creds."
	exit 1
fi

echo "===> Creating project ${OCI_PROJECT}"
if [ ""$(openstack project show ${OCI_PROJECT} --format value -c name || true) != "${OCI_PROJECT}" ] ; then
	openstack project create ${OCI_PROJECT}
	echo "-> created."
else
	echo "-> Already exists."
fi

echo "===> Creating user ${OCI_USERNAME}"
if [ ""$(openstack user show ${OCI_USERNAME} --format value -c name || true) != "${OCI_USERNAME}" ] ; then
	openstack user create --password ${OCI_PASSWORD} --email postmaster@example.com ${OCI_USERNAME}
	echo "-> Created."
else
	echo "-> Already exists."
fi

echo "===> Checking assigned roles"
for ROLE in member creator load-balancer_member SwiftOperator ; do
	echo "---> Checking $ROLE"
	MYROLE=$(openstack role assignment list --user ${OCI_USERNAME} --project ${OCI_PROJECT} --names --format csv | q -d, -H "SELECT Role FROM - WHERE User='oci-ci@Default' AND Project='oci-ci@Default' AND Role='${ROLE}'")
	if [ "${MYROLE}" != "${ROLE}" ] ; then
		openstack role add --user ${OCI_USERNAME} --project ${OCI_PROJECT} ${ROLE}
		echo "-> Role added."
	else
		echo "-> Already exists."
	fi
done

echo "===> Setting-up quota for ${OCI_PROJECT}"
openstack quota set --cores 160 --gigabytes 1000 --ram 256000 --secgroups 100 --secgroup-rules 500 --volumes 50 --key-pairs 100 --instances 100