Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions osreport/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# OpenStack Report Plugin

Collects OpenStack information for a cloud.

Usage: openstack-toolkit.osreport <options>

Description:
Collects OpenStack information for a cloud and builds useful relations
between the cloud resources.

Options:
--help: Print this info.
--plugins <plugins>: Can be any of: neutron, nova, nova-hypervisors or octavia. You can
use multiple options separated by commas.
--all-plugins: Runs all the above plugins. Can take some time to run.

Environment:
OS_AUTH_URL
OS_AUTH_VERSION
OS_IDENTITY_API_VERSION
OS_PASSWORD
OS_PROJECT_DOMAIN_NAME
OS_PROJECT_NAME
OS_REGION_NAME
OS_USERNAME
OS_USER_DOMAIN_NAME



1 change: 1 addition & 0 deletions osreport/api/plugins.d/agent/README
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Plugins that can be run on a host running agents.
47 changes: 47 additions & 0 deletions osreport/api/plugins.d/neutron
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/bin/bash -eu

OUTPUT_DIR=${OSREPORT_OUTPUT_DIR}/neutron_info
mkdir -p ${OUTPUT_DIR}

NETWORKS_OUTPUT_DIR=${OUTPUT_DIR}/networks
mkdir -p ${NETWORKS_OUTPUT_DIR}
openstack network list > ${NETWORKS_OUTPUT_DIR}/list
for i in $(openstack network list -c ID -f value); do
mkdir -p ${NETWORKS_OUTPUT_DIR}/${i}
openstack network show ${i} > ${NETWORKS_OUTPUT_DIR}/${i}/info
mkdir -p ${NETWORKS_OUTPUT_DIR}/${i}/ports
openstack port list --network ${i} > ${NETWORKS_OUTPUT_DIR}/${i}/ports/list
for j in $(openstack port list --network ${i} -c ID -f value); do
ln -rs ${OUTPUT_DIR}/ports/${j} ${NETWORKS_OUTPUT_DIR}/${i}/ports/${j}
done
done

SUBNETS_OUTPUT_DIR=${OUTPUT_DIR}/subnets
mkdir -p ${SUBNETS_OUTPUT_DIR}
openstack subnet list > ${SUBNETS_OUTPUT_DIR}/list
for i in $(openstack subnet list -c ID -f value); do
mkdir -p ${SUBNETS_OUTPUT_DIR}/${i}
openstack subnet show ${i} > ${SUBNETS_OUTPUT_DIR}/${i}/info
done

SECGROUP_OUTPUT_DIR=${OUTPUT_DIR}/secgroups
mkdir -p ${SECGROUP_OUTPUT_DIR}
openstack security group list > ${SECGROUP_OUTPUT_DIR}/list
for i in $(openstack security group list -c ID -f value); do
mkdir -p ${SECGROUP_OUTPUT_DIR}/${i}
openstack security group show ${i} > ${SECGROUP_OUTPUT_DIR}/${i}/info
done

ROUTERS_OUTPUT_DIR=${OUTPUT_DIR}/routers
mkdir -p ${ROUTERS_OUTPUT_DIR}
openstack router list > ${ROUTERS_OUTPUT_DIR}/list
for i in $(openstack router list -c ID -f value); do
mkdir -p ${ROUTERS_OUTPUT_DIR}/${i}
openstack router show ${i} > ${ROUTERS_OUTPUT_DIR}/${i}/info

mkdir -p ${ROUTERS_OUTPUT_DIR}/${i}/ports
openstack port list --router ${i} > ${ROUTERS_OUTPUT_DIR}/${i}/ports/list
for j in $(openstack port list --router ${i} -c ID -f value); do
ln -rs ${OUTPUT_DIR}/ports/${j} ${ROUTERS_OUTPUT_DIR}/${i}/ports/${j}
done
done
20 changes: 20 additions & 0 deletions osreport/api/plugins.d/neutron-common
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash -eux

OUTPUT_DIR=${OSREPORT_OUTPUT_DIR}/neutron_info
mkdir -p ${OUTPUT_DIR}

PORTS_OUTPUT_DIR=${OUTPUT_DIR}/ports
mkdir -p ${PORTS_OUTPUT_DIR}
openstack port list > ${PORTS_OUTPUT_DIR}/list
for i in $(openstack port list -c ID -f value); do
mkdir -p ${PORTS_OUTPUT_DIR}/${i}
openstack port show ${i} > ${PORTS_OUTPUT_DIR}/${i}/info
done

AGENTS_OUTPUT_DIR=${OUTPUT_DIR}/agents
mkdir -p ${AGENTS_OUTPUT_DIR}
openstack network agent list > ${AGENTS_OUTPUT_DIR}/list
for i in $(openstack network agent list -c ID -f value); do
mkdir -p ${AGENTS_OUTPUT_DIR}/${i}
openstack network agent show ${i} > ${AGENTS_OUTPUT_DIR}/${i}/info
done
3 changes: 3 additions & 0 deletions osreport/api/plugins.d/nova
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash -eu

# Basic nova information already collected in the nova-common module
27 changes: 27 additions & 0 deletions osreport/api/plugins.d/nova-common
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/bin/bash -eu

# Depends-on neutron

OUTPUT_DIR=${OSREPORT_OUTPUT_DIR}/nova_info
mkdir -p ${OUTPUT_DIR}

SERVERS_OUTPUT_DIR=${OUTPUT_DIR}/servers
mkdir -p ${SERVERS_OUTPUT_DIR}
openstack server list > ${SERVERS_OUTPUT_DIR}/list
for i in $(openstack server list -c ID -f value); do
mkdir -p ${SERVERS_OUTPUT_DIR}/${i}
openstack server show ${i} > ${OUTPUT_DIR}/servers/${i}/info
mkdir -p ${SERVERS_OUTPUT_DIR}/${i}/ports
openstack port list --server ${i} > ${OUTPUT_DIR}/servers/${i}/ports/list
for j in $(openstack port list --server ${i} -c ID -f value); do
ln -rs ${OSREPORT_OUTPUT_DIR}/neutron_info/ports/${j}/ ${OUTPUT_DIR}/servers/${i}/ports/${j}
done
done

AGENTS_OUTPUT_DIR=${OUTPUT_DIR}/agents
mkdir -p ${AGENTS_OUTPUT_DIR}
openstack port list > ${AGENTS_OUTPUT_DIR}/list
for i in $(openstack port list -c ID -f value); do
mkdir -p ${AGENTS_OUTPUT_DIR}/${i}
openstack port show ${i} > ${AGENTS_OUTPUT_DIR}/${i}/info
done
25 changes: 25 additions & 0 deletions osreport/api/plugins.d/nova-hypervisors
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash -eu

OUTPUT_DIR=${OSREPORT_OUTPUT_DIR}/nova-hypervisors_info
mkdir -p ${OUTPUT_DIR}

HYPERVISORS_OUTPUT_DIR=${OUTPUT_DIR}/hypervisors
mkdir -p ${HYPERVISORS_OUTPUT_DIR}
openstack hypervisor list > ${HYPERVISORS_OUTPUT_DIR}/list
for i in $(openstack hypervisor list -c 'Hypervisor Hostname' -f value); do
mkdir -p ${HYPERVISORS_OUTPUT_DIR}/${i}
openstack hypervisor show ${i} > ${HYPERVISORS_OUTPUT_DIR}/${i}/info
mkdir -p ${HYPERVISORS_OUTPUT_DIR}/${i}/servers
openstack server list --all-projects --host ${i} > ${HYPERVISORS_OUTPUT_DIR}/${i}/servers/list
for j in $(openstack server list --all-projects --host ${i} -c ID -f value); do
ln -rs ${OSREPORT_OUTPUT_DIR}/nova_info/servers/${j} ${HYPERVISORS_OUTPUT_DIR}/${i}/servers/${j}
done

mkdir -p ${HYPERVISORS_OUTPUT_DIR}/${i}/agents/network
openstack network agent list --host ${i} > ${HYPERVISORS_OUTPUT_DIR}/${i}/agents/network/list

for j in $(openstack network agent list -c ID -f value); do
ln -rs ${OSREPORT_OUTPUT_DIR}/neutron_info/agents/${j} ${HYPERVISORS_OUTPUT_DIR}/${i}/agents/network/${j}
done
done

85 changes: 85 additions & 0 deletions osreport/api/plugins.d/octavia
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
#!/bin/bash -eu

OUTPUT_DIR=${OSREPORT_OUTPUT_DIR}/octavia_info
mkdir -p ${OUTPUT_DIR}

openstack loadbalancer list > ${OUTPUT_DIR}/openstack_loadbalancer_list.out
mkdir -p ${OUTPUT_DIR}/loadbalancer_info
mkdir -p ${OUTPUT_DIR}/loadbalancer_stats
mkdir -p ${OUTPUT_DIR}/loadbalancer_status
for i in $(openstack loadbalancer list -c id -f value); do
openstack loadbalancer show ${i} > ${OUTPUT_DIR}/loadbalancer_info/${i}.out
openstack loadbalancer stats show ${i} > ${OUTPUT_DIR}/loadbalancer_stats/${i}.out
openstack loadbalancer status show ${i} > ${OUTPUT_DIR}/loadbalancer_status/${i}.out
done

openstack loadbalancer amphora list > ${OUTPUT_DIR}/openstack_loadbalancer_amphora_list.out
mkdir -p ${OUTPUT_DIR}/amphora_info
mkdir -p ${OUTPUT_DIR}/amphora_stats
for i in $(openstack loadbalancer amphora list -c id -f value); do
openstack loadbalancer amphora show ${i} > ${OUTPUT_DIR}/amphora_info/${i}.out
openstack loadbalancer amphora stats show ${i} > ${OUTPUT_DIR}/amphora_stats/${i}.out
done

openstack loadbalancer availabilityzone list > ${OUTPUT_DIR}/openstack_loadbalancer_availabilityzone_list.out
mkdir -p ${OUTPUT_DIR}/availabilityzone_info
for i in $(openstack loadbalancer availabilityzone list -c id -f value); do
openstack loadbalancer availabilityzone show ${i} > ${OUTPUT_DIR}/availabilityzone_info/${i}.out
done

openstack loadbalancer flavor list > ${OUTPUT_DIR}/openstack_loadbalancer_flavor_list.out
mkdir -p ${OUTPUT_DIR}/flavor_info
for i in $(openstack loadbalancer flavor list -c id -f value); do
openstack loadbalancer flavor show ${i} > ${OUTPUT_DIR}/flavor_info/${i}.out
done

openstack loadbalancer flavorprofile list > ${OUTPUT_DIR}/openstack_loadbalancer_flavorprofile_list.out
mkdir -p ${OUTPUT_DIR}/flavorprofile_info
for i in $(openstack loadbalancer flavorprofile list -c id -f value); do
openstack loadbalancer flavorprofile show ${i} > ${OUTPUT_DIR}/flavorprofile_info/${i}.out
done

openstack loadbalancer healthmonitor list > ${OUTPUT_DIR}/openstack_loadbalancer_healthmonitor_list.out
mkdir -p ${OUTPUT_DIR}/healthmonitor_info
for i in $(openstack loadbalancer healthmonitor list -c id -f value); do
openstack loadbalancer healthmonitor show ${i} > ${OUTPUT_DIR}/healthmonitor_info/${i}.out
done

openstack loadbalancer l7policy list > ${OUTPUT_DIR}/openstack_loadbalancer_l7policy_list.out
mkdir -p ${OUTPUT_DIR}/l7policy_info
for i in $(openstack loadbalancer l7policy list -c id -f value); do
openstack loadbalancer l7policy show ${i} > ${OUTPUT_DIR}/l7policy_info/${i}.out
openstack loadbalancer l7rule list ${i} > ${OUTPUT_DIR}/l7policy_info/${i}_rules.out
mkdir -p ${OUTPUT_DIR}/l7policy_info/${i}_rules_info
mkdir -p ${OUTPUT_DIR}/l7rule_info
for j in $(openstack loadbalancer l7rule list ${i} -c id -f value); do
openstack loadbalancer l7rule show ${i} ${j} > ${OUTPUT_DIR}/l7rule_info/${j}.out
done
done

openstack loadbalancer listener list > ${OUTPUT_DIR}/openstack_loadbalancer_listener_list.out
mkdir -p ${OUTPUT_DIR}/listener_info
mkdir -p ${OUTPUT_DIR}/listener_stats
for i in $(openstack loadbalancer listener list -c id -f value); do
openstack loadbalancer listener show ${i} > ${OUTPUT_DIR}/listener_info/${i}.out
openstack loadbalancer listener stats show ${i} > ${OUTPUT_DIR}/listener_stats/${i}.out
done

openstack loadbalancer pool list > ${OUTPUT_DIR}/openstack_loadbalancer_pool_list.out
mkdir -p ${OUTPUT_DIR}/pool_info
for i in $(openstack loadbalancer pool list -c id -f value); do
openstack loadbalancer pool show ${i} > ${OUTPUT_DIR}/pool_info/${i}.out
openstack loadbalancer member list ${i} > ${OUTPUT_DIR}/pool_info/${i}_member_list.out
mkdir -p ${OUTPUT_DIR}/pool_info/${i}_member_list_info
for j in $(openstack loadbalancer member list ${i} -c id -f value); do
openstack loadbalancer member show ${i} ${j} > ${OUTPUT_DIR}/pool_info/${i}_member_list_info/${j}.out
done
done

openstack loadbalancer quota defaults show > ${OUTPUT_DIR}/openstack_loadbalancer_quota_defaults_show.out

openstack loadbalancer quota list > ${OUTPUT_DIR}/openstack_loadbalancer_quota_list.out
mkdir -p ${OUTPUT_DIR}/quota_info
for i in $(openstack loadbalancer quota list -c project_id -f value); do
openstack loadbalancer quota show ${i} > ${OUTPUT_DIR}/quota_info/${i}.out
done
Loading