예제 #1
0
    def test_list_virtual_switch_json(self):
        expected_out_json = '{"virtualswitches": [{"id": "virtual-switch-01", \
"links": [{"href": \
"http://localhost:8774/v2.0/virtualswitches/virtual-switch-01", \
"rel": "self"}, {"href": \
"http://localhost:8774/virtualswitches/virtual-switch-01", \
"rel": "bookmark"}], "name": "virtual-switch-01"}, \
{"id": "virtual-switch-02", "links": \
[{"href": "http://localhost:8774/v2.0/virtualswitches/virtual-switch-02", \
"rel": "self"}, {"href": \
"http://localhost:8774/virtualswitches/virtual-switch-02", \
"rel": "bookmark"}], "name": "virtual-switch-02"}]}'

        virtual_switch_list = self.get_virtual_switch_list()
        self.mock.StubOutWithMock(api, "virtual_switch_get_all_by_filters")
        api.virtual_switch_get_all_by_filters(
            mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg()
        ).AndReturn(virtual_switch_list)
        self.mock.ReplayAll()
        request = webob.Request.blank("/v2.0/virtualswitches.json", base_url="http://localhost:8774/v2.0/")
        request.environ["nova.context"] = self.admin_context
        resp = VirtualSwitchController().index(request)
        self.assertNotEqual(resp, None, "Return json string")
        self.compare_json(expected_out_json, resp.body)

        #        self.assertEqual(self.expected_index_json, resp.body)

        self.mock.stubs.UnsetAll()
예제 #2
0
    def test_list_virtual_switch_xml_header(self):
        expected_out_xml = '<virtualswitches \
xmlns:atom="http://www.w3.org/2005/Atom" \
xmlns="http://docs.openstack.org/ext/healthnmon/api/v2.0">\
<virtualswitch id="virtual-switch-01" name="virtual-switch-01">\
<atom:link \
href="http://localhost:8774/v2.0/virtualswitches/virtual-switch-01" \
rel="self"/>\
<atom:link href="http://localhost:8774/virtualswitches/virtual-switch-01" \
rel="bookmark"/>\
</virtualswitch><virtualswitch id="virtual-switch-02" \
name="virtual-switch-02">\
<atom:link \
href="http://localhost:8774/v2.0/virtualswitches/virtual-switch-02" \
rel="self"/>\
<atom:link href="http://localhost:8774/virtualswitches/virtual-switch-02" \
rel="bookmark"/>\
</virtualswitch></virtualswitches>'

        virtual_switches = self.get_virtual_switch_list()
        self.mock.StubOutWithMock(api, "virtual_switch_get_all_by_filters")
        api.virtual_switch_get_all_by_filters(
            mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg()
        ).AndReturn(virtual_switches)
        self.mock.ReplayAll()
        request = webob.Request.blank("/v2.0/virutalswitches", base_url="http://localhost:8774/v2.0/")
        request.environ["nova.context"] = self.admin_context
        request.headers["Accept"] = "application/xml"
        resp = VirtualSwitchController().index(request)
        self.assertNotEqual(resp, None, "Return xml string")
        self.compare_xml(expected_out_xml, resp.body)

        #        self.assertEqual(resp.body, self.expected_index_xml)

        self.mock.stubs.UnsetAll()
예제 #3
0
    def test_list_virtual_switch_xml(self):
        expected_out_xml = \
            '<virtualswitches xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/ext/healthnmon/api/v2.0">\
        <virtualswitch id="virtual-switch-01" name="virtual-switch-01">\
        <atom:link href="http://localhost:8774/v2.0/virtualswitches/virtual-switch-01" rel="self"/>\
        <atom:link href="http://localhost:8774/virtualswitches/virtual-switch-01" rel="bookmark"/>\
        </virtualswitch><virtualswitch id="virtual-switch-02" name="virtual-switch-02">\
        <atom:link href="http://localhost:8774/v2.0/virtualswitches/virtual-switch-02" rel="self"/>\
        <atom:link href="http://localhost:8774/virtualswitches/virtual-switch-02" rel="bookmark"/>\
        </virtualswitch></virtualswitches>'

        virtual_switch_list = self.get_virtual_switch_list()
        self.mock.StubOutWithMock(api, 'virtual_switch_get_all_by_filters')
        api.virtual_switch_get_all_by_filters(
            mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg(),
            mox.IgnoreArg()).AndReturn(virtual_switch_list)
        self.mock.ReplayAll()
        request = webob.Request.blank('/v2.0/virtualswitches.xml',
                                      base_url='http://localhost:8774/v2.0/')
        request.environ['nova.context'] = self.admin_context
        resp = VirtualSwitchController().index(request)
        self.assertNotEqual(resp, None, 'Return xml string')
        self.compare_xml(expected_out_xml, resp.body)

        #        self.assertEqual(resp.body, self.expected_index_xml)

        self.mock.stubs.UnsetAll()
예제 #4
0
 def test_list_virtual_switch_none_check(self):
     self.mock.StubOutWithMock(api, "virtual_switch_get_all_by_filters")
     api.virtual_switch_get_all_by_filters(
         mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg()
     ).AndReturn(None)
     self.mock.ReplayAll()
     request = webob.Request.blank("/v2.0/virtualswitches", base_url="http://localhost:8774/v2.0/")
     request.environ["nova.context"] = self.admin_context
     resp = VirtualSwitchController().index(request)
     self.assertEqual(resp.body, '{"virtualswitches": []}', "Return json string")
예제 #5
0
 def test_list_virtual_switch_detail_none_xml(self):
     virtual_switches = None
     self.mock.StubOutWithMock(api, "virtual_switch_get_all_by_filters")
     api.virtual_switch_get_all_by_filters(
         mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg()
     ).AndReturn(virtual_switches)
     self.mock.ReplayAll()
     request = webob.Request.blank("/v2.0/virtualswitches/detail.xml", base_url="http://localhost:8774/v2.0/")
     request.environ["nova.context"] = self.admin_context
     resp = VirtualSwitchController().detail(request)
     self.assertNotEqual(resp, None, "Return xml string")
예제 #6
0
 def test_list_virtual_switch_detail_none_xml(self):
     virtual_switches = None
     self.mock.StubOutWithMock(api, 'virtual_switch_get_all_by_filters')
     api.virtual_switch_get_all_by_filters(
         mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg(),
         mox.IgnoreArg()).AndReturn(virtual_switches)
     self.mock.ReplayAll()
     request = webob.Request.blank('/v2.0/virtualswitches/detail.xml',
                                   base_url='http://localhost:8774/v2.0/')
     request.environ['nova.context'] = self.admin_context
     resp = VirtualSwitchController().detail(request)
     self.assertNotEqual(resp, None, 'Return xml string')
예제 #7
0
 def test_list_virtual_switch_none_check(self):
     self.mock.StubOutWithMock(api, 'virtual_switch_get_all_by_filters')
     api.virtual_switch_get_all_by_filters(mox.IgnoreArg(), mox.IgnoreArg(),
                                           mox.IgnoreArg(),
                                           mox.IgnoreArg()).AndReturn(None)
     self.mock.ReplayAll()
     request = webob.Request.blank('/v2.0/virtualswitches',
                                   base_url='http://localhost:8774/v2.0/')
     request.environ['nova.context'] = self.admin_context
     resp = VirtualSwitchController().index(request)
     self.assertEqual(resp.body, '{"virtualswitches": []}',
                      'Return json string')
예제 #8
0
 def test_list_limited_virtual_switch_detail_xml(self):
     virtual_switches = self.get_virtual_switch_list()
     self.mock.StubOutWithMock(api, "virtual_switch_get_all_by_filters")
     api.virtual_switch_get_all_by_filters(
         mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg()
     ).AndReturn(virtual_switches)
     self.mock.ReplayAll()
     request = webob.Request.blank(
         "/v2.0/virtualswitches/detail.xml?" "limit=1&marker=virtual-switch-01",
         base_url="http://localhost:8774/v2.0/",
     )
     request.environ["nova.context"] = self.admin_context
     resp = VirtualSwitchController().detail(request)
     self.assertEqual(resp.body, self.expected_limited_detail_xml)
예제 #9
0
 def test_list_limited_virtual_switch_detail_xml(self):
     virtual_switches = self.get_virtual_switch_list()
     self.mock.StubOutWithMock(api, 'virtual_switch_get_all_by_filters')
     api.virtual_switch_get_all_by_filters(
         mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg(),
         mox.IgnoreArg()).AndReturn(virtual_switches)
     self.mock.ReplayAll()
     request = webob.Request.blank(
         '/v2.0/virtualswitches/detail.xml?'
         'limit=1&marker=virtual-switch-01',
         base_url='http://localhost:8774/v2.0/')
     request.environ['nova.context'] = self.admin_context
     resp = VirtualSwitchController().detail(request)
     self.assertEqual(resp.body, self.expected_limited_detail_xml)
 def test_virtual_switch_get_all_by_filters_changessince(self):
     # Create VirtualSwitches
     switch_ids = ('SW1', 'SW2', 'SW3')
     switch_names = ('name1', 'name2', 'name3')
     for i in range(len(switch_ids)):
         self.__create_virtual_switch(
             id=switch_ids[i], name=switch_names[i])
     created_time = long(time.time() * 1000L)
     # Wait for 1 sec and update second switch and delete third switch
     time.sleep(1)
     second_switch = api.virtual_switch_get_by_ids(
         self.admin_context, [switch_ids[1]])[0]
     second_switch.name = 'New name'
     api.virtual_switch_save(self.admin_context, second_switch)
     api.virtual_switch_delete_by_ids(self.admin_context, [switch_ids[2]])
     # Query with filter
     expected_updated_ids = [switch_ids[1], switch_ids[2]]
     filters = {'changes-since': created_time}
     switches = api.virtual_switch_get_all_by_filters(
         self.admin_context, filters,
         None, None)
     self.assert_(switches is not None)
     self.assert_(len(switches) == 2)
     for switch in switches:
         self.assert_(switch is not None)
         self.assert_(switch.id in expected_updated_ids)
예제 #11
0
 def test_virtual_switch_get_all_by_filters_changessince(self):
     # Create VirtualSwitches
     switch_ids = ('SW1', 'SW2', 'SW3')
     switch_names = ('name1', 'name2', 'name3')
     for i in range(len(switch_ids)):
         self.__create_virtual_switch(id=switch_ids[i],
                                      name=switch_names[i])
     created_time = long(time.time() * 1000L)
     # Wait for 1 sec and update second switch and delete third switch
     time.sleep(1)
     second_switch = api.virtual_switch_get_by_ids(self.admin_context,
                                                   [switch_ids[1]])[0]
     second_switch.name = 'New name'
     api.virtual_switch_save(self.admin_context, second_switch)
     api.virtual_switch_delete_by_ids(self.admin_context, [switch_ids[2]])
     # Query with filter
     expected_updated_ids = [switch_ids[1], switch_ids[2]]
     filters = {'changes-since': created_time}
     switches = api.virtual_switch_get_all_by_filters(
         self.admin_context, filters, None, None)
     self.assert_(switches is not None)
     self.assert_(len(switches) == 2)
     for switch in switches:
         self.assert_(switch is not None)
         self.assert_(switch.id in expected_updated_ids)
 def test_virtual_switch_get_all_by_filters(self):
     # Create VirtualSwitches
     switch_ids = ("SW1", "SW2")
     switch_names = ("name1", "name2")
     for i in range(len(switch_ids)):
         self.__create_virtual_switch(id=switch_ids[i], name=switch_names[i])
     # Query with filter
     filters = {"name": switch_names[1]}
     switches = api.virtual_switch_get_all_by_filters(self.admin_context, filters, "id", DbConstants.ORDER_ASC)
     self.assert_(switches is not None)
     self.assert_(len(switches) == 1)
     self.assert_(switches[0] is not None)
     self.assert_(switches[0].id == switch_ids[1])
예제 #13
0
    def test_list_virtual_switch_json(self):
        expected_out_json = \
            '{"virtualswitches": [{"id": "virtual-switch-01", "links": [{"href": "http://localhost:8774/v2.0/virtualswitches/virtual-switch-01", "rel": "self"}, \
        {"href": "http://localhost:8774/virtualswitches/virtual-switch-01", "rel": "bookmark"}], "name": "virtual-switch-01"}, \
        {"id": "virtual-switch-02", "links": [{"href": "http://localhost:8774/v2.0/virtualswitches/virtual-switch-02", "rel": "self"}, \
        {"href": "http://localhost:8774/virtualswitches/virtual-switch-02", "rel": "bookmark"}], "name": "virtual-switch-02"}]}'

        virtual_switch_list = self.get_virtual_switch_list()
        self.mock.StubOutWithMock(api, 'virtual_switch_get_all_by_filters')
        api.virtual_switch_get_all_by_filters(
            mox.IgnoreArg(), mox.IgnoreArg(), mox.IgnoreArg(),
            mox.IgnoreArg()).AndReturn(virtual_switch_list)
        self.mock.ReplayAll()
        request = webob.Request.blank('/v2.0/virtualswitches.json',
                                      base_url='http://localhost:8774/v2.0/')
        request.environ['nova.context'] = self.admin_context
        resp = VirtualSwitchController().index(request)
        self.assertNotEqual(resp, None, 'Return json string')
        self.compare_json(expected_out_json, resp.body)

        #        self.assertEqual(self.expected_index_json, resp.body)

        self.mock.stubs.UnsetAll()
예제 #14
0
 def test_virtual_switch_get_all_by_filters(self):
     # Create VirtualSwitches
     switch_ids = ('SW1', 'SW2')
     switch_names = ('name1', 'name2')
     for i in range(len(switch_ids)):
         self.__create_virtual_switch(id=switch_ids[i],
                                      name=switch_names[i])
     # Query with filter
     filters = {'name': switch_names[1]}
     switches = api.virtual_switch_get_all_by_filters(
         self.admin_context, filters, 'id', DbConstants.ORDER_ASC)
     self.assert_(switches is not None)
     self.assert_(len(switches) == 1)
     self.assert_(switches[0] is not None)
     self.assert_(switches[0].id == switch_ids[1])
예제 #15
0
def virtual_switch_get_all_by_filters(context, filters, sort_key, sort_dir):
    """ This API will make a call to db layer to fetch the list of all the
        VirtualSwitch objects.
        Parameters:
            context - nova.context.RequestContext object
            filters - dictionary of filters to be applied
                      keys should be fields of VirtualSwitch model
                      if value is simple value = filter is applied and
                      if value is list or tuple 'IN' filter is applied
                      eg : {'switchType':'abc', 'name':['n1', 'n2']} will filter as
                      switchType = 'abc' AND name in ('n1', 'n2')
            sort_key - Field on which sorting is to be applied
            sort_dir - asc for Ascending sort direction, desc for descending sort direction
        Returns:
            list of virtual_switch that match all filters and sorted with sort_key
    """
    return api.virtual_switch_get_all_by_filters(context, filters, sort_key, sort_dir)
 def test_virtual_switch_get_all_by_filters_sort_desc(self):
     # Create VirtualSwitches
     switch_ids = ('SW1', 'SW2')
     switch_names = ('name1', 'name2')
     for i in range(len(switch_ids)):
         self.__create_virtual_switch(
             id=switch_ids[i], name=switch_names[i])
     # Query with sort
     switches = api.virtual_switch_get_all_by_filters(
         self.admin_context, {'name': switch_names},
         'name', DbConstants.ORDER_DESC)
     self.assert_(switches is not None)
     self.assert_(len(switches) == 2)
     self.assert_(switches[0] is not None)
     self.assert_(switches[0].id == switch_ids[1])
     self.assert_(switches[1] is not None)
     self.assert_(switches[1].id == switch_ids[0])
 def test_virtual_switch_get_all_by_filters_contains(self):
     # Create VirtualSwitches
     switch_ids = ("SW1", "SW2", "SW3")
     switch_names = ("name1", "name2", "name3")
     switch_net_intfs = (["vnet1"], ["vnet1", "vnet3"], ["vnet3"])
     for i in range(len(switch_ids)):
         self.__create_virtual_switch(id=switch_ids[i], name=switch_names[i], networkInterfaces=switch_net_intfs[i])
     # Query with sort
     switches = api.virtual_switch_get_all_by_filters(
         self.admin_context, {"networkInterfaces": "vnet1"}, "id", DbConstants.ORDER_ASC
     )
     self.assert_(switches is not None)
     self.assert_(len(switches) == 2)
     self.assert_(switches[0] is not None)
     self.assert_(switches[0].id == switch_ids[0])
     self.assert_(switches[1] is not None)
     self.assert_(switches[1].id == switch_ids[1])
 def test_virtual_switch_get_all_by_filters_not_deleted(self):
     # Create VirtualSwitches
     switch_ids = ('SW1', 'SW2')
     switch_names = ('name1', 'name2')
     for i in range(len(switch_ids)):
         self.__create_virtual_switch(
             id=switch_ids[i], name=switch_names[i])
     # Delete one switch
     api.virtual_switch_delete_by_ids(self.admin_context, [switch_ids[0]])
     # Query with filter
     filters = {'deleted': False}
     switches = api.virtual_switch_get_all_by_filters(
         self.admin_context, filters,
         'id', DbConstants.ORDER_ASC)
     self.assert_(switches is not None)
     self.assert_(len(switches) == 1)
     self.assert_(switches[0] is not None)
     self.assert_(switches[0].id == switch_ids[1])
예제 #19
0
def virtual_switch_get_all_by_filters(context, filters, sort_key, sort_dir):
    """ This API will make a call to db layer to fetch the list of all the
        VirtualSwitch objects.
        Parameters:
            context - nova.context.RequestContext object
            filters - dictionary of filters to be applied
                      keys should be fields of VirtualSwitch model
                      if value is simple value = filter is applied and
                      if value is list or tuple 'IN' filter is applied
                      eg : {'switchType':'abc', 'name':['n1', 'n2']} will filter as
                      switchType = 'abc' AND name in ('n1', 'n2')
            sort_key - Field on which sorting is to be applied
            sort_dir - asc for Ascending sort direction, desc for descending sort direction
        Returns:
            list of virtual_switch that match all filters and sorted with sort_key
    """
    return api.virtual_switch_get_all_by_filters(context, filters, sort_key,
                                                 sort_dir)
예제 #20
0
 def test_virtual_switch_get_all_by_filters_contains(self):
     # Create VirtualSwitches
     switch_ids = ('SW1', 'SW2', 'SW3')
     switch_names = ('name1', 'name2', 'name3')
     switch_net_intfs = (['vnet1'], ['vnet1', 'vnet3'], ['vnet3'])
     for i in range(len(switch_ids)):
         self.__create_virtual_switch(id=switch_ids[i],
                                      name=switch_names[i],
                                      networkInterfaces=switch_net_intfs[i])
     # Query with sort
     switches = api.virtual_switch_get_all_by_filters(
         self.admin_context, {'networkInterfaces': 'vnet1'}, 'id',
         DbConstants.ORDER_ASC)
     self.assert_(switches is not None)
     self.assert_(len(switches) == 2)
     self.assert_(switches[0] is not None)
     self.assert_(switches[0].id == switch_ids[0])
     self.assert_(switches[1] is not None)
     self.assert_(switches[1].id == switch_ids[1])
 def test_virtual_switch_get_all_by_filters_contains(self):
     # Create VirtualSwitches
     switch_ids = ('SW1', 'SW2', 'SW3')
     switch_names = ('name1', 'name2', 'name3')
     switch_net_intfs = (['vnet1'], ['vnet1', 'vnet3'],
                         ['vnet3'])
     for i in range(len(switch_ids)):
         self.__create_virtual_switch(
             id=switch_ids[i], name=switch_names[i],
             networkInterfaces=switch_net_intfs[i])
     # Query with sort
     switches = api.virtual_switch_get_all_by_filters(
         self.admin_context, {
             'networkInterfaces': 'vnet1'},
         'id', DbConstants.ORDER_ASC)
     self.assert_(switches is not None)
     self.assert_(len(switches) == 2)
     self.assert_(switches[0] is not None)
     self.assert_(switches[0].id == switch_ids[0])
     self.assert_(switches[1] is not None)
     self.assert_(switches[1].id == switch_ids[1])
예제 #22
0
 def test_timestamp_columns(self):
     """
         Test the time stamp columns createEpoch, modifiedEpoch and deletedEpoch
     """
     vmhost = VmHost()
     vmhost.set_id('VH1')
     virSw1 = VirtualSwitch()
     virSw1.set_id('VS1_VH1')
     portGrp1 = PortGroup()
     portGrp1.set_id('PG1_VH1')
     virSw1.add_portGroups(portGrp1)
     vmhost.add_virtualSwitches(virSw1)
     vmhost.add_portGroups(portGrp1)
     # Check for createEpoch
     epoch_before = utils.get_current_epoch_ms()
     healthnmon_db_api.vm_host_save(self.admin_context, vmhost)
     epoch_after = utils.get_current_epoch_ms()
     vmhost_queried = healthnmon_db_api.vm_host_get_by_ids(
         self.admin_context, [vmhost.get_id()])[0]
     self.assert_(
         test_utils.is_timestamp_between(epoch_before, epoch_after,
                                         vmhost_queried.get_createEpoch()))
     for virSw in vmhost_queried.get_virtualSwitches():
         self.assert_(
             test_utils.is_timestamp_between(epoch_before, epoch_after,
                                             virSw.get_createEpoch()))
         for pg in virSw.get_portGroups():
             self.assert_(
                 test_utils.is_timestamp_between(epoch_before, epoch_after,
                                                 pg.get_createEpoch()))
     # Check for lastModifiedEpoch after modifying host
     vmhost_modified = vmhost_queried
     test_utils.unset_timestamp_fields(vmhost_modified)
     vmhost_modified.set_name('changed_name')
     epoch_before = utils.get_current_epoch_ms()
     healthnmon_db_api.vm_host_save(self.admin_context, vmhost_modified)
     epoch_after = utils.get_current_epoch_ms()
     vmhost_queried = healthnmon_db_api.vm_host_get_by_ids(
         self.admin_context, [vmhost.get_id()])[0]
     self.assert_(vmhost_modified.get_createEpoch() ==
                  vmhost_queried.get_createEpoch())
     self.assert_(
         test_utils.is_timestamp_between(
             epoch_before, epoch_after,
             vmhost_queried.get_lastModifiedEpoch()))
     for virSw in vmhost_queried.get_virtualSwitches():
         self.assert_(
             test_utils.is_timestamp_between(epoch_before, epoch_after,
                                             virSw.get_lastModifiedEpoch()))
         for pg in virSw.get_portGroups():
             self.assert_(
                 test_utils.is_timestamp_between(
                     epoch_before, epoch_after, pg.get_lastModifiedEpoch()))
     # Check for createdEpoch after adding switch and portgroup to host
     vmhost_modified = vmhost_queried
     test_utils.unset_timestamp_fields(vmhost_modified)
     virSw2 = VirtualSwitch()
     virSw2.set_id('VS2_VH1')
     portGrp2 = PortGroup()
     portGrp2.set_id('PG2_VH1')
     virSw2.add_portGroups(portGrp2)
     vmhost_modified.add_virtualSwitches(virSw2)
     vmhost_modified.add_portGroups(portGrp2)
     epoch_before = utils.get_current_epoch_ms()
     healthnmon_db_api.vm_host_save(self.admin_context, vmhost_modified)
     epoch_after = utils.get_current_epoch_ms()
     vmhost_queried = healthnmon_db_api.vm_host_get_by_ids(
         self.admin_context, [vmhost.get_id()])[0]
     self.assert_(vmhost_modified.get_createEpoch() ==
                  vmhost_queried.get_createEpoch())
     self.assert_(
         test_utils.is_timestamp_between(
             epoch_before, epoch_after,
             vmhost_queried.get_lastModifiedEpoch()))
     for virSw in vmhost_queried.get_virtualSwitches():
         if virSw.get_id() == virSw2.get_id():
             self.assert_(
                 test_utils.is_timestamp_between(epoch_before, epoch_after,
                                                 virSw.get_createEpoch()))
         else:
             self.assert_(
                 test_utils.is_timestamp_between(
                     epoch_before, epoch_after,
                     virSw.get_lastModifiedEpoch()))
         for pg in virSw.get_portGroups():
             if pg.get_id() == portGrp2.get_id():
                 self.assert_(
                     test_utils.is_timestamp_between(
                         epoch_before, epoch_after, pg.get_createEpoch()))
             else:
                 self.assert_(
                     test_utils.is_timestamp_between(
                         epoch_before, epoch_after,
                         pg.get_lastModifiedEpoch()))
     # Check for deletedEpoch
     epoch_before = utils.get_current_epoch_ms()
     healthnmon_db_api.vm_host_delete_by_ids(self.admin_context,
                                             [vmhost_queried.get_id()])
     epoch_after = utils.get_current_epoch_ms()
     deleted_host = healthnmon_db_api.vm_host_get_all_by_filters(
         self.admin_context, {"id": vmhost_queried.get_id()}, None, None)[0]
     self.assertTrue(deleted_host.get_deleted())
     self.assert_(
         test_utils.is_timestamp_between(epoch_before, epoch_after,
                                         deleted_host.get_deletedEpoch()))
     deleted_switches = healthnmon_db_api.virtual_switch_get_all_by_filters(
         self.admin_context, {"id": (virSw1.get_id(), virSw2.get_id())},
         None, None)
     for deleted_switch in deleted_switches:
         self.assertTrue(deleted_switch.get_deleted())
         self.assert_(
             test_utils.is_timestamp_between(
                 epoch_before, epoch_after,
                 deleted_switch.get_deletedEpoch()))
         for deleted_portgrp in deleted_switch.get_portGroups():
             self.assertTrue(deleted_portgrp.get_deleted())
             self.assert_(
                 test_utils.is_timestamp_between(
                     epoch_before, epoch_after,
                     deleted_portgrp.get_deletedEpoch()))
예제 #23
0
 def test_timestamp_columns(self):
     """
         Test the time stamp columns createEpoch, modifiedEpoch and deletedEpoch
     """
     vmhost = VmHost()
     vmhost.set_id('VH1')
     virSw1 = VirtualSwitch()
     virSw1.set_id('VS1_VH1')
     portGrp1 = PortGroup()
     portGrp1.set_id('PG1_VH1')
     virSw1.add_portGroups(portGrp1)
     vmhost.add_virtualSwitches(virSw1)
     vmhost.add_portGroups(portGrp1)
     # Check for createEpoch
     epoch_before = utils.get_current_epoch_ms()
     healthnmon_db_api.vm_host_save(self.admin_context, vmhost)
     epoch_after = utils.get_current_epoch_ms()
     vmhost_queried = healthnmon_db_api.vm_host_get_by_ids(
         self.admin_context, [vmhost.get_id()])[0]
     self.assert_(test_utils.is_timestamp_between(
         epoch_before, epoch_after, vmhost_queried.get_createEpoch()))
     for virSw in vmhost_queried.get_virtualSwitches():
         self.assert_(test_utils.is_timestamp_between(
             epoch_before, epoch_after, virSw.get_createEpoch()))
         for pg in virSw.get_portGroups():
             self.assert_(test_utils.is_timestamp_between(
                 epoch_before, epoch_after, pg.get_createEpoch()))
     # Check for lastModifiedEpoch after modifying host
     vmhost_modified = vmhost_queried
     test_utils.unset_timestamp_fields(vmhost_modified)
     vmhost_modified.set_name('changed_name')
     epoch_before = utils.get_current_epoch_ms()
     healthnmon_db_api.vm_host_save(self.admin_context, vmhost_modified)
     epoch_after = utils.get_current_epoch_ms()
     vmhost_queried = healthnmon_db_api.vm_host_get_by_ids(
         self.admin_context, [vmhost.get_id()])[0]
     self.assert_(vmhost_modified.get_createEpoch(
     ) == vmhost_queried.get_createEpoch())
     self.assert_(test_utils.is_timestamp_between(
         epoch_before, epoch_after, vmhost_queried.get_lastModifiedEpoch()))
     for virSw in vmhost_queried.get_virtualSwitches():
         self.assert_(test_utils.is_timestamp_between(
             epoch_before, epoch_after, virSw.get_lastModifiedEpoch()))
         for pg in virSw.get_portGroups():
             self.assert_(test_utils.is_timestamp_between(
                 epoch_before, epoch_after, pg.get_lastModifiedEpoch()))
     # Check for createdEpoch after adding switch and portgroup to host
     vmhost_modified = vmhost_queried
     test_utils.unset_timestamp_fields(vmhost_modified)
     virSw2 = VirtualSwitch()
     virSw2.set_id('VS2_VH1')
     portGrp2 = PortGroup()
     portGrp2.set_id('PG2_VH1')
     virSw2.add_portGroups(portGrp2)
     vmhost_modified.add_virtualSwitches(virSw2)
     vmhost_modified.add_portGroups(portGrp2)
     epoch_before = utils.get_current_epoch_ms()
     healthnmon_db_api.vm_host_save(self.admin_context, vmhost_modified)
     epoch_after = utils.get_current_epoch_ms()
     vmhost_queried = healthnmon_db_api.vm_host_get_by_ids(
         self.admin_context, [vmhost.get_id()])[0]
     self.assert_(vmhost_modified.get_createEpoch(
     ) == vmhost_queried.get_createEpoch())
     self.assert_(test_utils.is_timestamp_between(
         epoch_before, epoch_after, vmhost_queried.get_lastModifiedEpoch()))
     for virSw in vmhost_queried.get_virtualSwitches():
         if virSw.get_id() == virSw2.get_id():
             self.assert_(test_utils.is_timestamp_between(
                 epoch_before, epoch_after, virSw.get_createEpoch()))
         else:
             self.assert_(test_utils.is_timestamp_between(
                 epoch_before, epoch_after, virSw.get_lastModifiedEpoch()))
         for pg in virSw.get_portGroups():
             if pg.get_id() == portGrp2.get_id():
                 self.assert_(test_utils.is_timestamp_between(
                     epoch_before, epoch_after, pg.get_createEpoch()))
             else:
                 self.assert_(test_utils.is_timestamp_between(
                     epoch_before, epoch_after, pg.get_lastModifiedEpoch()))
     # Check for deletedEpoch
     epoch_before = utils.get_current_epoch_ms()
     healthnmon_db_api.vm_host_delete_by_ids(
         self.admin_context, [vmhost_queried.get_id()])
     epoch_after = utils.get_current_epoch_ms()
     deleted_host = healthnmon_db_api.vm_host_get_all_by_filters(
         self.admin_context,
         {"id": vmhost_queried.get_id()}, None, None)[0]
     self.assertTrue(deleted_host.get_deleted())
     self.assert_(test_utils.is_timestamp_between(
         epoch_before, epoch_after, deleted_host.get_deletedEpoch()))
     deleted_switches = healthnmon_db_api.virtual_switch_get_all_by_filters(self.admin_context,
                                                                            {"id": (virSw1.get_id(), virSw2.get_id())}, None, None)
     for deleted_switch in deleted_switches:
         self.assertTrue(deleted_switch.get_deleted())
         self.assert_(test_utils.is_timestamp_between(
             epoch_before, epoch_after, deleted_switch.get_deletedEpoch()))
         for deleted_portgrp in deleted_switch.get_portGroups():
             self.assertTrue(deleted_portgrp.get_deleted())
             self.assert_(test_utils.is_timestamp_between(
                 epoch_before, epoch_after, deleted_portgrp.get_deletedEpoch()))