# -*- 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()