445 lines
15 KiB
Python
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()
|