namos/namos/db/sample.py

445 lines
15 KiB
Python

# -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from namos.db import api
REGION_LIST = [
# {'f7dcd175-27ef-46b5-997f-e6e572f320af':
# {'name': 'RegionOne',
# 'keystone_region_id': 'region_one',
# 'extra': {'location': 'bangalore'}}
# },
# {'f7dcd175-27ef-46b5-997f-e6e572f320b0':
# {'name': 'RegionTwo',
# 'keystone_region_id': 'region_two',
# 'extra': {'location': 'chennai'}}
# }
]
DEVICE_LIST = [
# vCenter
# {'91007d3c-9c95-40c5-8f94-c7b071f9b577':
# {
# 'name': 'Vmware_vCenter_1',
# 'display_name': 'VMWare vCenter 1',
# 'description': 'vCenter 5.0',
# 'status': 'active',
# 'extra': {'owner': 'mkr1481@namos.com'},
# 'region_id': 'f7dcd175-27ef-46b5-997f-e6e572f320af'}
# },
# # Clusters
# {'d468ea2e-74f6-4a55-a7f4-a56d18e91c66':
# {
# 'name': 'vmware_vc_Cluster_1',
# 'display_name': 'VMWare vCenter 1 Cluster 1',
# 'description': 'Cluster 1 having 3 hosts',
# 'status': 'active',
# 'extra': {'owner': 'mkr1481@namos.com',
# 'vcpus': 1000,
# 'ram_in_gb': 1024},
# 'parent_id': '91007d3c-9c95-40c5-8f94-c7b071f9b577',
# 'region_id': 'f7dcd175-27ef-46b5-997f-e6e572f320af'}
# },
# {'6c97f476-8e27-4e21-8528-a5ec236306f3':
# {'name': 'vmware_vc_Cluster_2',
# 'display_name': 'VMWare vCenter 1 Cluster 2',
# 'description': 'Cluster 2 having 5 hosts',
# 'status': 'active',
# 'extra': {'owner': 'mkr1481@namos.com'},
# 'parent_id': '91007d3c-9c95-40c5-8f94-c7b071f9b577',
# 'region_id': 'f7dcd175-27ef-46b5-997f-e6e572f320af'}
# },
# # Datastores
# {'fdab6c51-38fb-4fb1-a76f-9c243a8b8296':
# {'name': 'Vmware_vCenter_1_datastore_1',
# 'display_name': 'VMWare vCenter 1 datastore 1',
# 'description': 'vCenter 5.0 Datastore created from FC',
# 'status': 'active',
# 'extra': {'owner': 'mkr1481@namos.com',
# 'size_in_gb': '102400'},
# 'parent_id': '91007d3c-9c95-40c5-8f94-c7b071f9b577',
# 'region_id': 'f7dcd175-27ef-46b5-997f-e6e572f320af'}
# },
# {'05b935b3-942c-439c-a6a4-9c3c73285430':
# {'name': 'Vmware_vCenter_1_datastore_2',
# 'display_name': 'VMWare vCenter 1 datastore 2',
# 'description': 'vCenter 5.0 Datastore created from FC',
# 'status': 'active',
# 'extra': {'owner': 'mkr1481@namos.com',
# 'size_in_gb': '10240'},
# 'parent_id': '91007d3c-9c95-40c5-8f94-c7b071f9b577',
# 'region_id': 'f7dcd175-27ef-46b5-997f-e6e572f320af'}
# },
# # Switch
# {'f062556b-45c4-417d-80fa-4283b9c58da3':
# {'name': 'Vmware_vCenter_1_switch_1',
# 'display_name': 'VMWare vCenter 1 Dist. vSwitch 1',
# 'description': 'vCenter 5.0 distributed virtual switch',
# 'status': 'active',
# 'extra': {'owner': 'mkr1481@namos.com'},
# 'parent_id': '91007d3c-9c95-40c5-8f94-c7b071f9b577',
# 'region_id': 'f7dcd175-27ef-46b5-997f-e6e572f320af'}
# }
]
ENDPOINT_LIST = [
# {'7403bf80-9376-4081-89ee-d2501661ca84':{
# 'name': 'vcenter1_connection',
# 'connection': {'host_ip': '10.1.1.3',
# 'host_port': 443,
# 'host_username': 'adminstrator',
# 'host_password': 'password'},
# 'device_id': '91007d3c-9c95-40c5-8f94-c7b071f9b577'
# }}
]
DEVICE_DRIVER_CLASS_LIST = [
# {'0664e8c0-ff02-427e-8fa3-8788c017ad84': {
# 'python_class': 'nova...vcdriver',
# 'type': 'compute',
# 'vendor': 'vmware-community'
# }},
# {'11caf99c-f820-4266-a461-5a15437a8144': {
# 'python_class': 'cinder...vmdkdriver',
# 'type': 'volume',
# 'vendor': 'vmware-community'
# }},
# {'bb99ea96-fe6b-49e6-a761-faea92b79f75': {
# 'python_class': 'neutron...nsxdriver',
# 'type': 'network',
# 'vendor': 'vmware-community'
# }}
]
DEVICE_DRIVER_LIST = [
# # nova
# {'3c089cdb-e1d5-4182-9a8e-cef9899fd7e5':{
# 'endpoint_id': '7403bf80-9376-4081-89ee-d2501661ca84',
# 'device_driver_class_id': '0664e8c0-ff02-427e-8fa3-8788c017ad84',
# 'device_id': 'd468ea2e-74f6-4a55-a7f4-a56d18e91c66'
# }},
# # nova
# {'4e0360ae-0728-4bfd-a557-3ad867231787':{
# 'endpoint_id': '7403bf80-9376-4081-89ee-d2501661ca84',
# 'device_driver_class_id': '0664e8c0-ff02-427e-8fa3-8788c017ad84',
# 'device_id': '6c97f476-8e27-4e21-8528-a5ec236306f3'
# }},
# # cinder
# {'92d5e2c1-511b-4837-a57d-5e6ee723060c':{
# 'endpoint_id': '7403bf80-9376-4081-89ee-d2501661ca84',
# 'device_driver_class_id': '11caf99c-f820-4266-a461-5a15437a8144',
# 'device_id': 'fdab6c51-38fb-4fb1-a76f-9c243a8b8296'
# }},
# # cinder
# {'f3d807a0-eff0-4473-8ae5-594967136e05':{
# 'endpoint_id': '7403bf80-9376-4081-89ee-d2501661ca84',
# 'python_class_id': '11caf99c-f820-4266-a461-5a15437a8144',
# 'device_id': '05b935b3-942c-439c-a6a4-9c3c73285430'
# }},
# # neutron
# {'f27eb548-929c-45e2-a2a7-dc123e2a1bc7':{
# 'endpoint_id': '7403bf80-9376-4081-89ee-d2501661ca84',
# 'python_class_id': 'bb99ea96-fe6b-49e6-a761-faea92b79f75',
# 'device_id': 'f062556b-45c4-417d-80fa-4283b9c58da3'
# }}
]
SERVICE_LIST = [
# {'11367a37-976f-468a-b8dd-77b28ee63cf4': {
# 'name': 'nova_service',
# 'keystone_service_id': 'b9c2549f-f685-4bc2-92e9-ba8af9c18599'
# }},
# {'809e04c1-2f3b-43af-9677-3428a0154216': {
# 'name': 'cinder_service',
# 'keystone_service_id': '9cc4c374-abb5-4bdc-9129-f0fa4bba0e0b'
# }},
# {'3495fa07-39d9-4d87-9f97-0a582a3e25c3': {
# 'name': 'neutron_service',
# 'keystone_service_id': 'b24e2884-75bc-4876-81d1-5b4fb6e92afc'
# }}
]
SERVICE_NODE_LIST = [
# {
# 'a5073d58-2dbb-4146-b47c-4e5f7dc11fbe': {
# 'name': 'd_network_node_1',
# 'fqdn': 'network_node_1.devstack1.abc.com',
# 'region_id': 'f7dcd175-27ef-46b5-997f-e6e572f320af'
# }
# },
# {
# '4e99a641-dbe9-416e-8c0a-78015dc55a2a': {
# 'name': 'd_compute_node_1',
# 'fqdn': 'compute_node_1.devstack.abc.com',
# 'region_id': 'f7dcd175-27ef-46b5-997f-e6e572f320af'
# }
# },
# {
# 'b92f4811-7970-421b-a611-d51c62972388': {
# 'name': 'd_cloud-controller-1',
# 'fqdn': 'cloud_controller_1.devstack1.abc.com',
# 'region_id': 'f7dcd175-27ef-46b5-997f-e6e572f320af'
# }
# },
# {
# 'e5913cd3-a416-40e1-889f-1a1b1c53001c': {
# 'name': 'd_storage_node_1',
# 'fqdn': 'storage_node_1.devstack.abc.com',
# 'region_id': 'f7dcd175-27ef-46b5-997f-e6e572f320af'
# }
# }
]
SERVICE_COMPONENT_LIST = [
# # nova
# {
# '7259a9ff-2e6f-4e8d-b2fb-a529188825dd': {
# 'name': 'd_nova-compute',
# 'node_id': '4e99a641-dbe9-416e-8c0a-78015dc55a2a',
# 'service_id': '11367a37-976f-468a-b8dd-77b28ee63cf4'
# }
# },
# {
# 'e5e366ea-9029-4ba0-8bbc-f658e642aa54': {
# 'name': 'd_nova-scheduler',
# 'node_id': 'b92f4811-7970-421b-a611-d51c62972388',
# 'service_id': '11367a37-976f-468a-b8dd-77b28ee63cf4'
# }
# },
# {
# 'f7813622-85ee-4588-871d-42c3128fa14f': {
# 'name': 'd_nova-api',
# 'node_id': 'b92f4811-7970-421b-a611-d51c62972388',
# 'service_id': '11367a37-976f-468a-b8dd-77b28ee63cf4'
# }
# },
# # cinder
# {
# 'b0e9ac3f-5600-406c-95e4-f698b1eecfc6': {
# 'name': 'd_cinder-volume',
# 'node_id': 'e5913cd3-a416-40e1-889f-1a1b1c53001c',
# 'service_id': '809e04c1-2f3b-43af-9677-3428a0154216'
# }
# },
# # neutron
# {
# '54f608bd-fb01-4614-9653-acbb803aeaf7':{
# 'name': 'd_neutron-agent',
# 'node_id': 'a5073d58-2dbb-4146-b47c-4e5f7dc11fbe',
# 'service_id': '3495fa07-39d9-4d87-9f97-0a582a3e25c3'
# }
# }
]
SERVICE_WORKER_LIST = [
# # cluster-1
# {
# '65dbd695-fa92-4950-b8b4-d46aa0408f6a': {
# 'name': 'd_nova-compute-esx-cluster1',
# 'pid': '1233454343',
# 'host': 'd_nova-compute-esx-cluster1',
# 'service_component_id': '7259a9ff-2e6f-4e8d-b2fb-a529188825dd',
# 'device_driver_id': '3c089cdb-e1d5-4182-9a8e-cef9899fd7e5'
# }
# },
# # cluster-2
# {
# '50d2c0c6-741d-4108-a3a2-2090eaa0be37': {
# 'name': 'd_nova-compute-esx-cluster2',
# 'pid': '1233454344',
# 'host': 'd_nova-compute-esx-cluster2',
# 'service_component_id': '7259a9ff-2e6f-4e8d-b2fb-a529188825dd',
# 'device_driver_id': '4e0360ae-0728-4bfd-a557-3ad867231787'
# }
# },
# # datastore-1
# {
# '77e3ee16-fa2b-4e12-ad1c-226971d1a482': {
# 'name': 'd_cinder-volume-vmdk-1',
# 'pid': '09878654',
# 'host': 'd_cinder-volume-vmdk-1',
# 'service_component_id': 'b0e9ac3f-5600-406c-95e4-f698b1eecfc6',
# 'device_driver_id': '92d5e2c1-511b-4837-a57d-5e6ee723060c'
# }
# },
# # datastore-2
# {
# '8633ce68-2b02-4efd-983c-49a460f6d7ef': {
# 'name': 'd_cinder-volume-vmdk-2',
# 'pid': '4353453',
# 'host': 'd_cinder-volume-vmdk-2',
# 'service_component_id': 'b0e9ac3f-5600-406c-95e4-f698b1eecfc6',
# 'device_driver_id': 'f3d807a0-eff0-4473-8ae5-594967136e05'
# }
# },
# # vswitch
# {
# '5a3ac5b9-9186-45d8-928c-9e702368dfb4': {
# 'name': 'd_neutron-agent',
# 'pid': '2359234',
# 'host': 'd_neutron-agent',
# 'service_component_id': '54f608bd-fb01-4614-9653-acbb803aeaf7',
# 'device_driver_id': 'f27eb548-929c-45e2-a2a7-dc123e2a1bc7'
# }
# },
]
CONFIG_LIST = [
# {
# 'dc6aa02f-ba70-4410-a59c-5e113e629fe5': {
# 'name': 'vmware.host_ip',
# 'value': '10.1.0.1',
# 'help': 'VMWare vcenter IP address',
# 'default': '',
# 'type': 'String',
# 'required':True,
# 'secret': False,
# 'config_file': '/etc/nova/nova.conf',
# 'service_worker_id': '65dbd695-fa92-4950-b8b4-d46aa0408f6a'
# }
# },
# {
# 'dc6aa02f-ba70-4410-a59c-5e113e629f10': {
# 'name': 'vmware.host_username',
# 'value': 'Administraotr',
# 'help': 'VMWare vcenter Username',
# 'default': 'Administrator',
# 'type': 'String',
# 'required':True,
# 'secret': False,
# 'file': '/etc/nova/nova.conf',
# 'service_worker_id': '65dbd695-fa92-4950-b8b4-d46aa0408f6a'
# }
# },
# {
# 'dc6aa02f-ba70-4410-a59c-5e113e629f11': {
# 'name': 'vmware.host_password',
# 'value': 'password',
# 'help': 'VMWare vcenter password',
# 'default': '',
# 'type': 'String',
# 'required':True,
# 'secret': True,
# 'file': '/etc/nova/nova.conf',
# 'service_worker_id': '65dbd695-fa92-4950-b8b4-d46aa0408f6a'
# },
# }
]
def inject_id(value):
if isinstance(value, dict):
_id = value.keys()[0]
value1 = value[_id].copy()
value1['id'] = _id
return value1
return value
def _device_populate_demo_data():
for region in REGION_LIST:
region = inject_id(region)
api.region_create(None, region)
for device in DEVICE_LIST:
device = inject_id(device)
api.device_create(None, device)
for device_endpoint in ENDPOINT_LIST:
device_endpoint = inject_id(device_endpoint)
api.device_endpoint_create(None, device_endpoint)
# TODO(kanagaraj-manickam) Move this to alembic upgrade
for device_driver_class in DEVICE_DRIVER_CLASS_LIST:
device_driver_class = inject_id(device_driver_class)
api.device_driver_class_create(None, device_driver_class)
for device_driver in DEVICE_DRIVER_LIST:
device_driver = inject_id(device_driver)
api.device_driver_create(None, device_driver)
def _service_populate_demo_data():
for service in SERVICE_LIST:
service = inject_id(service)
api.service_create(None, service)
for service_node in SERVICE_NODE_LIST:
service_node = inject_id(service_node)
api.service_node_create(None, service_node)
for service_component in SERVICE_COMPONENT_LIST:
service_component = inject_id(service_component)
api.service_component_create(None, service_component)
for service_worker in SERVICE_WORKER_LIST:
service_worker = inject_id(service_worker)
api.service_worker_create(None, service_worker)
# for config in CONFIG_LIST:
# config = inject_id(config)
# api.config_create(None, config)
def populate_demo_data():
_device_populate_demo_data()
_service_populate_demo_data()
def _device_purge_demo_data():
for device_driver in DEVICE_DRIVER_LIST:
api.device_driver_delete(None, device_driver.keys()[0])
for device_endpoint in ENDPOINT_LIST:
api.device_endpoint_delete(None, device_endpoint.keys()[0])
# Reverse the order of delete from child to parent device
for device in DEVICE_LIST[::-1]:
api.device_delete(None, device.keys()[0])
# TODO(kanagaraj-manickam) Move this to alembic downgrade
for device_driver_class in DEVICE_DRIVER_CLASS_LIST:
api.device_driver_class_delete(None, device_driver_class.keys()[0])
def _service_purge_demo_data():
# for config in CONFIG_LIST:
# api.config_delete(None, config.keys()[0])
for service_worker in SERVICE_WORKER_LIST:
api.service_worker_delete(None, service_worker.keys()[0])
for service_component in SERVICE_COMPONENT_LIST:
api.service_component_delete(None, service_component.keys()[0])
for service_node in SERVICE_NODE_LIST:
api.service_node_delete(None, service_node.keys()[0])
for service in SERVICE_LIST:
api.service_delete(None, service.keys()[0])
def _region_purge_demo_data():
for region in REGION_LIST:
api.region_delete(None, region.keys()[0])
def purge_demo_data():
_service_purge_demo_data()
_device_purge_demo_data()
# _region_purge_demo_data()