def test_instance_rescue_unrescue(self): self.assertTrue(self._eventsloaded) self._create_instance5() instance5 = self.getObjByPath('components/server-instance5') self.assertIsNotNone(instance5) evt = buildEventFromDict(self._eventData['compute.instance.rescue.start']) self.process_event(evt) evt = buildEventFromDict(self._eventData['compute.instance.exists']) self.process_event(evt) evt = buildEventFromDict(self._eventData['compute.instance.rescue.end']) self.process_event(evt) self.assertTrue(instance5.serverStatus.lower() == 'rescued') self.assertTrue(evt.summary == 'Instance instance5 placed in rescue mode') evt = buildEventFromDict(self._eventData['compute.instance.unrescue.start']) evt = buildEventFromDict(self._eventData['compute.instance.unrescue.end']) self.process_event(evt) self.assertTrue(instance5.serverStatus.lower() == 'active') self.assertTrue(evt.summary == 'Instance instance5 removed from rescue mode')
def test_instance_power_on(self): self._create_instance5() instance5 = self.getObjByPath('components/server-instance5') self.assertIsNotNone(instance5) instance5.serverStatus = 'stopped' self.assertTrue(instance5.serverStatus.lower() == 'stopped') evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|compute.instance.power_on.start', 'eventKey': u'66a24089-185b-4df2-ae3c-29854f1c783d', 'severity': 2, 'summary': '', u'trait_disk_gb': 1, u'trait_display_name': u'instance5', u'trait_ephemeral_gb': 0, u'trait_flavor_name': u'flavor1', u'trait_host_name': u'computehost1', u'trait_instance_id': u'instance5', u'trait_launched_at': u'2014-09-05T01:48:54.000000', u'trait_memory_mb': 512, u'trait_request_id': u'req-245217ba-e4d9-4c7e-8d59-9cc93b648ac0', u'trait_root_gb': 1, u'trait_service': u'compute', u'trait_state': u'stopped', u'trait_tenant_id': u'tenant1', u'trait_user_id': u'user1', u'trait_vcpus': 1}) self.process_event(evt) self.assertTrue(instance5.serverStatus.lower() == 'stopped') evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|compute.instance.power_on.end', 'eventKey': u'05a0aecb-0bbd-4799-b3bc-2db3e89b5654', 'severity': 2, 'summary': '', u'trait_disk_gb': 1, u'trait_display_name': u'instance5', u'trait_ephemeral_gb': 0, u'trait_flavor_name': u'flavor1', u'trait_host_name': u'computehost1', u'trait_instance_id': u'instance5', u'trait_launched_at': u'2014-09-05T01:48:54.000000', u'trait_memory_mb': 512, u'trait_request_id': u'req-245217ba-e4d9-4c7e-8d59-9cc93b648ac0', u'trait_root_gb': 1, u'trait_service': u'compute', u'trait_state': u'active', u'trait_tenant_id': u'tenant1', u'trait_user_id': u'user1', u'trait_vcpus': 1}) self.process_event(evt) self.assertTrue(instance5.serverStatus.lower() == 'active') self.assertTrue(evt.summary == 'Instance instance5 powered on (status changed to active)')
def test_instance_suspend_resume(self): self._create_instance5() instance5 = self.getObjByPath('components/server-instance5') self.assertIsNotNone(instance5) evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|compute.instance.suspend', 'eventKey': u'252a9e83-cc66-42ab-838a-832f2f49f4bd', 'severity': 2, 'summary': '', u'trait_disk_gb': 1, u'trait_display_name': u'instance5', u'trait_ephemeral_gb': 0, u'trait_flavor_name': u'flavor1', u'trait_host_name': u'computehost1', u'trait_instance_id': u'instance5', u'trait_launched_at': u'2014-09-05T19:50:11.000000', u'trait_memory_mb': 512, u'trait_request_id': u'req-b59f0f93-bf8a-41e4-8b4e-bc7c50fb20bb', u'trait_root_gb': 1, u'trait_service': u'compute', u'trait_state': u'suspended', u'trait_state_description': u'', u'trait_tenant_id': u'tenant1', u'trait_user_id': u'user1', u'trait_vcpus': 1}) self.process_event(evt) self.assertTrue(instance5.serverStatus.lower() == 'suspended') self.assertTrue(evt.summary == 'Instance instance5 suspended') evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|compute.instance.resume', 'eventKey': u'd46b69a0-e9bb-4201-83e7-8c46d3172fe9', 'severity': 2, 'summary': '', u'trait_disk_gb': 1, u'trait_display_name': u'instance5', u'trait_ephemeral_gb': 0, u'trait_flavor_name': u'flavor1', u'trait_host_name': u'computehost1', u'trait_instance_id': u'instance5', u'trait_launched_at': u'2014-09-05T19:50:11.000000', u'trait_memory_mb': 512, u'trait_request_id': u'req-1ad65fd8-2d7f-477f-96e3-682ef8779064', u'trait_root_gb': 1, u'trait_service': u'compute', u'trait_state': u'active', u'trait_state_description': u'', u'trait_tenant_id': u'tenant1', u'trait_user_id': u'user1', u'trait_vcpus': 1}) self.process_event(evt) self.assertTrue(instance5.serverStatus.lower() == 'active') self.assertTrue(evt.summary == 'Instance instance5 resumed')
def test_instance_reboot(self): self._create_instance5() instance5 = self.getObjByPath('components/server-instance5') self.assertIsNotNone(instance5) self.assertTrue(instance5.serverStatus.lower() == 'active') evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|compute.instance.reboot.start', 'eventKey': u'ab29f32e-125f-4e89-8702-11a734042d4b', 'severity': 2, 'summary': '', u'trait_disk_gb': 1, u'trait_display_name': u'instance5', u'trait_ephemeral_gb': 0, u'trait_flavor_name': u'flavor1', u'trait_host_name': u'computehost1', u'trait_instance_id': u'instance5', u'trait_launched_at': u'2014-09-05T01:48:54.000000', u'trait_memory_mb': 512, u'trait_request_id': u'req-29bb4086-13a6-4cbe-af29-892693089b15', u'trait_root_gb': 1, u'trait_service': u'compute', u'trait_state': u'active', u'trait_state_description': u'reboot_pending', u'trait_tenant_id': u'tenant1', u'trait_user_id': u'user1', u'trait_vcpus': 1}) self.process_event(evt) evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|compute.instance.reboot.end', 'eventKey': u'94485eb4-763e-40e5-8e97-1c61129e2430', 'severity': 2, 'summary': '', u'trait_disk_gb': 1, u'trait_display_name': u'instance5', u'trait_ephemeral_gb': 0, u'trait_flavor_name': u'flavor1', u'trait_host_name': u'computehost1', u'trait_instance_id': u'instance5', u'trait_launched_at': u'2014-09-05T01:48:54.000000', u'trait_memory_mb': 512, u'trait_request_id': u'req-29bb4086-13a6-4cbe-af29-892693089b15', u'trait_root_gb': 1, u'trait_service': u'compute', u'trait_state': u'active', u'trait_state_description': u'', u'trait_tenant_id': u'tenant1', u'trait_user_id': u'user1', u'trait_vcpus': 1}) self.process_event(evt) self.assertTrue(evt.summary == 'Instance instance5 rebooted (status changed to active)')
def test_instance_reboot(self): self.assertTrue(self._eventsloaded) self._create_instance5() instance5 = self.getObjByPath('components/server-instance5') self.assertIsNotNone(instance5) self.assertTrue(instance5.serverStatus.lower() == 'active') evt = buildEventFromDict(self._eventData['compute.instance.reboot.start']) self.process_event(evt) evt = buildEventFromDict(self._eventData['compute.instance.reboot.end']) self.process_event(evt) self.assertTrue(evt.summary == 'Instance instance5 rebooted (status changed to active)')
def _create_router(self, network_id, subnet_id, router_id): ''' Build router_id using events, network_id, subnet_id. The network_id, subnet_id must already exist. ''' log.info("Create router '%s'" % router_id) gateway_info = "{u'network_id': u'%s', u'enable_snat': True, " \ "u'external_fixed_ips': [{u'subnet_id': u'%s', " \ "u'ip_address': u'192.168.117.226'}]}" \ % (network_id, subnet_id) evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|router.create.end', 'eventKey': u'9ccdf8c7-9d7d-4b0e-bc10-65aafa37f52c', 'severity': 2, 'summary': '', 'trait_admin_state_up': True, 'trait_id': router_id, 'trait_external_gateway': gateway_info, 'trait_name': router_id, 'trait_network_id': network_id, 'trait_routes': [], 'trait_status': 'ACTIVE', 'trait_tenant_id': 'tenant1', }) self.process_event(evt) router = self.getObjByPath('components/router-' + router_id) return router
def _create_port(self, network_id, port_id): ''' Build port_id using events and network_id. The network/network_id must already exist. ''' log.info("Create port '%s'" % port_id) evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|port.create.end', 'eventKey': u'9ccdf8c7-9d7d-4b0e-bc10-65aafa37f52c', 'severity': 2, 'summary': '', 'trait_admin_state_up': True, 'trait_binding:vif_type': 'ovs', 'trait_device_owner': 'zenoss', 'trait_id': port_id, 'trait_mac_address': 'fa:16:3e:23:bd:ce', 'trait_name': port_id, 'trait_network_id': network_id, 'trait_status': 'ACTIVE', 'trait_tenant_id': 'tenant1', }) self.process_event(evt) port = self.getObjByPath('components/port-' + port_id) return port
def _create_floatingip(self, network_id, router_id, port_id, floatingip_id): ''' Build floatingip_id using events, network_id, subnet_id. The network_id, subnet_id must already exist. ''' log.info("Create floatingip '%s'" % floatingip_id) evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|floatingip.create.end', 'eventKey': u'01cdf8c7-9d7d-4b0e-bc10-65aafa37f52c', 'severity': 2, 'summary': '', 'trait_fixed_ip_address': '10.1.7.100', 'trait_floating_ip_address': '10.31.7.3', 'trait_floating_network_id': network_id, 'trait_id': floatingip_id, 'trait_port_id': port_id, 'trait_router_id': router_id, 'trait_status': 'ACTIVE', 'trait_tenant_id': 'tenant1', }) self.process_event(evt) floatingip = self.getObjByPath('components/floatingip-' + floatingip_id) return floatingip
def _createDummyEvent(self): """ creates a dummy event """ device = self.device eventData = dict( device= device.id, component= "", eventClass= "/Status/Snmp", eventKey="pepe1", summary= "2.5 second timeout connecting to device 10.87.209.147", message= "2.5 second timeout connecting to device 10.87.209.147", severity= 4, eventState= 0, eventClassKey= "testEventClassKey", eventGroup= "SnmpTest", stateChange= "2010-09-24 07:12:19", count= 1, prodState= 1000, suppid= "", manager= "localhost", agent= "zenperfsnmp", DeviceClass= "/Server/Darwin", Location= "testLocation", Systems= "System1|System2", DeviceGroups= "Group1|Group2", ipAddress= "10.87.209.147", facility= "unknown", priority= 1, ownerid = "admin", ntevid= 0, evid="123456789", DevicePriority= 3, monitor= "localhost") return buildEventFromDict(eventData)
def test_instance_suspend_resume(self): self.assertTrue(self._eventsloaded) self._create_instance5() instance5 = self.getObjByPath('components/server-instance5') self.assertIsNotNone(instance5) evt = buildEventFromDict(self._eventData['compute.instance.suspend']) self.process_event(evt) self.assertTrue(instance5.serverStatus.lower() == 'suspended') self.assertTrue(evt.summary == 'Instance instance5 suspended') evt = buildEventFromDict(self._eventData['compute.instance.resume']) self.process_event(evt) self.assertTrue(instance5.serverStatus.lower() == 'active') self.assertTrue(evt.summary == 'Instance instance5 resumed')
def _createDummyEvent(self): """ creates a dummy event """ device = self.device eventData = dict( device=device.id, component="", eventClass="/Status/Snmp", eventKey="pepe1", summary="2.5 second timeout connecting to device 10.87.209.147", message="2.5 second timeout connecting to device 10.87.209.147", severity=4, eventState=0, eventClassKey="testEventClassKey", eventGroup="SnmpTest", stateChange="2010-09-24 07:12:19", count=1, prodState=1000, suppid="", manager="localhost", agent="zenperfsnmp", DeviceClass="/Server/Darwin", Location="testLocation", Systems="System1|System2", DeviceGroups="Group1|Group2", ipAddress="10.87.209.147", facility="unknown", priority=1, ownerid="admin", ntevid=0, evid="123456789", DevicePriority=3, monitor="localhost") return buildEventFromDict(eventData)
def test_instance_rebuild(self): self.assertTrue(self._eventsloaded) self._create_instance5() instance5 = self.getObjByPath('components/server-instance5') self.assertIsNotNone(instance5) evt = buildEventFromDict(self._eventData['compute.instance.rebuild.start']) self.process_event(evt) evt = buildEventFromDict(self._eventData['compute.instance.power_off.start']) self.process_event(evt) evt = buildEventFromDict(self._eventData['compute.instance.power_off.end']) self.process_event(evt) evt = buildEventFromDict(self._eventData['compute.instance.rebuild.end']) self.process_event(evt)
def _delete_port(self, port_id): self.assertTrue(self._eventsloaded) ''' Delete port using events and port_id''' log.info("Delete port '%s'" % port_id) evt = buildEventFromDict(self._eventData['port.delete.end']) self.process_event(evt) port = self.getObjByPath('components/port-' + port_id) return port
def _delete_network(self, network_id): self.assertTrue(self._eventsloaded) ''' Delete network using events and network_id''' log.info("Delete network '%s'" % network_id) evt = buildEventFromDict(self._eventData['network.delete.end']) self.process_event(evt) network = self.getObjByPath('components/network-' + network_id) return network
def _delete_floatingip(self, floatingip_id): self.assertTrue(self._eventsloaded) ''' Delete floatingip using events and floatingip_id''' log.info("Delete floatingip '%s'" % floatingip_id) evt = buildEventFromDict(self._eventData['floatingip.delete.end']) self.process_event(evt) floatingip = self.getObjByPath('components/floatingip-' + floatingip_id) return floatingip
def _delete_router(self, router_id): self.assertTrue(self._eventsloaded) ''' Delete router using events and router_id''' log.info("Delete router '%s'" % router_id) evt = buildEventFromDict(self._eventData['router.delete.end']) self.process_event(evt) router = self.getObjByPath('components/router-' + router_id) return router
def _delete_subnet(self, subnet_id): self.assertTrue(self._eventsloaded) ''' Delete subnet using events and subnet_id''' log.info("Delete Subnet '%s'" % subnet_id) evt = buildEventFromDict(self._eventData['subnet.delete.end']) self.process_event(evt) subnet = self.getObjByPath('components/subnet-' + subnet_id) return subnet
def _delete_securitygroup(self, securitygroup_id): self.assertTrue(self._eventsloaded) ''' Delete securitygroup using events and securitygroup_id''' log.info("Delete securityGroup '%s'" % securitygroup_id) evt = buildEventFromDict(self._eventData['security_group.delete.end']) self.process_event(evt) securitygroup = self.getObjByPath('components/securitygroup-' + securitygroup_id) return securitygroup
def _attach_volume_end(self, volume_id): self.assertTrue(self._eventsloaded) ''' Build volume_id using events. ''' log.info("Attach volume '%s'" % volume_id) evt = buildEventFromDict(self._eventData['volume.attach.end']) self.process_event(evt) volume = self.getObjByPath('components/volume-' + volume_id) return volume
def _delete_volume_start(self, volume_id): self.assertTrue(self._eventsloaded) ''' Build volume_id using events. ''' log.info("Delete volume '%s'" % volume_id) evt = buildEventFromDict(self._eventData['volume.delete.start']) self.process_event(evt) volume = self.getObjByPath('components/volume-' + volume_id) return volume
def _delete_volsnapshot_end(self, volsnapshot_id): self.assertTrue(self._eventsloaded) ''' Build volume snapshot using events. ''' log.info("Delete volume snapshot '%s'" % volsnapshot_id) evt = buildEventFromDict(self._eventData['volsnapshot.delete.end']) self.process_event(evt) volsnapshot = self.getObjByPath('components/volsnapshot-' + volsnapshot_id) return volsnapshot
def test_instance_delete(self): self.assertTrue(self._eventsloaded) self._create_instance5() instance5 = self.getObjByPath('components/server-instance5') self.assertIsNotNone(instance5) evt = buildEventFromDict(self._eventData['compute.instance.delete.start']) self.process_event(evt) evt = buildEventFromDict(self._eventData['compute.instance.shutdown.start']) self.process_event(evt) evt = buildEventFromDict(self._eventData['compute.instance.shutdown.end']) self.process_event(evt) evt = buildEventFromDict(self._eventData['compute.instance.delete.end']) self.process_event(evt) instance5 = self.getObjByPath('components/server-instance5') self.assertIsNone(instance5)
def _create_port(self, network_id, port_id): self.assertTrue(self._eventsloaded) ''' Build port_id using events and network_id. The network/network_id must already exist. ''' log.info("Create port '%s'" % port_id) evt = buildEventFromDict(self._eventData['port.create.end']) self.process_event(evt) port = self.getObjByPath('components/port-' + port_id) return port
def _create_subnet(self, network_id, subnet_id): self.assertTrue(self._eventsloaded) ''' Build subnet_id using events and network_id. The network/network_id must already exist. ''' log.info("Create Subnet '%s'" % subnet_id) evt = buildEventFromDict(self._eventData['subnet.create.end']) self.process_event(evt) subnet = self.getObjByPath('components/subnet-' + subnet_id) return subnet
def _create_floatingip(self, network_id, router_id, port_id, floatingip_id): self.assertTrue(self._eventsloaded) ''' Build floatingip_id using events, network_id, subnet_id. The network_id, subnet_id must already exist. ''' log.info("Create floatingip '%s'" % floatingip_id) evt = buildEventFromDict(self._eventData['floatingip.create.end']) self.process_event(evt) floatingip = self.getObjByPath('components/floatingip-' + floatingip_id) return floatingip
def test_instance_creation(self): self.assertTrue(self._eventsloaded) evt = buildEventFromDict(self._eventData['scheduler.run_instance.end']) self.process_event(evt) evt = buildEventFromDict(self._eventData['compute.instance.create.start']) self.process_event(evt) instance5 = self.getObjByPath('components/server-instance5') self.assertIsNotNone(instance5, msg="Incremental model created instance 'instance5'") self.assertTrue(instance5.publicIps is None or instance5.publicIps == []) self.assertTrue(instance5.privateIps is None or instance5.privateIps == []) evt = buildEventFromDict(self._eventData['compute.instance.create.end']) # json would not allow evt.trait_fixed_ips to be a string # but events.py requires it to be a string evt.trait_fixed_ips = str(evt.trait_fixed_ips) self.process_event(evt) self.assertTrue(instance5.privateIps == [u'172.24.4.229']) self.assertTrue(instance5.publicIps is None or instance5.publicIps == [])
def _delete_floatingip(self, floatingip_id): ''' Delete floatingip using events and floatingip_id''' log.info("Delete floatingip '%s'" % floatingip_id) evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|floatingip.delete.end', 'eventKey': u'0dddf8c7-9d7d-4b0e-bc10-65aafa37f52c', 'severity': 2, 'summary': '', 'trait_id': floatingip_id, }) self.process_event(evt) floatingip = self.getObjByPath('components/floatingip-' + floatingip_id) return floatingip
def _delete_router(self, router_id): ''' Delete router using events and router_id''' log.info("Delete router '%s'" % router_id) evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|router.delete.end', 'eventKey': u'9dddf8c7-9d7d-4b0e-bc10-65aafa37f52c', 'severity': 2, 'summary': '', 'trait_id': router_id, }) self.process_event(evt) router = self.getObjByPath('components/router-' + router_id) return router
def _delete_subnet(self, subnet_id): ''' Delete subnet using events and subnet_id''' log.info("Delete Subnet '%s'" % subnet_id) evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|subnet.delete.end', 'eventKey': u'8dcdf8c7-9d7d-4b0e-bc10-65aafa37f52c', 'severity': 2, 'summary': '', 'trait_id': subnet_id, }) self.process_event(evt) subnet = self.getObjByPath('components/subnet-' + subnet_id) return subnet
def _delete_securitygroup(self, securitygroup_id): ''' Delete securitygroup using events and securitygroup_id''' log.info("Delete securityGroup '%s'" % securitygroup_id) evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|security_group.delete.end', 'eventKey': u'0dddf8c7-9d7d-4b0e-bc10-65aafa37f52c', 'severity': 2, 'summary': '', 'trait_id': securitygroup_id, }) self.process_event(evt) securitygroup = self.getObjByPath('components/securitygroup-' + securitygroup_id) return securitygroup
def _delete_port(self, port_id): ''' Delete port using events and port_id''' log.info("Delete port '%s'" % port_id) evt = buildEventFromDict({ 'device': 'endpoint', 'eventClassKey': u'openstack|port.delete.end', 'eventKey': u'9dcdf8c7-9d7d-4b0e-bc10-65aafa37f52c', 'severity': 2, 'summary': '', 'trait_id': port_id, }) self.process_event(evt) port = self.getObjByPath('components/port-' + port_id) return port