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')
Exemplo n.º 11
0
 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