def testUpdateLabs_calculateHostCountByHarnessVersion(self):
        host_count_by_harness_version_1 = {
            'v1': 5,
            'v2': 3,
        }
        cluster1 = datastore_test_util.CreateCluster(
            'cluster1',
            lab_name='alab',
            host_count_by_harness_version=host_count_by_harness_version_1)
        host_count_by_harness_version_2 = {
            'v1': 5,
            'v3': 7,
        }
        cluster2 = datastore_test_util.CreateCluster(
            'cluster2',
            lab_name='alab',
            host_count_by_harness_version=host_count_by_harness_version_2)

        device_monitor._UpdateLabs([cluster1, cluster2])
        lab_info = datastore_entities.LabInfo.get_by_id('alab')

        expected_host_count_by_harness_version = {
            'v1': 10,
            'v2': 3,
            'v3': 7,
        }
        self.assertDictEqual(expected_host_count_by_harness_version,
                             lab_info.host_count_by_harness_version)
 def testUpdateLabs_calculateHostUpdateStateSummaryWithExistingLab(self):
     cluster1 = datastore_test_util.CreateCluster(
         'cluster1',
         lab_name='alab',
         host_update_state_summary=datastore_entities.
         HostUpdateStateSummary(total=13,
                                pending=1,
                                syncing=2,
                                shutting_down=3,
                                restarting=4,
                                errored=3))
     cluster2 = datastore_test_util.CreateCluster(
         'cluster2',
         lab_name='alab',
         host_update_state_summary=datastore_entities.
         HostUpdateStateSummary(total=14,
                                shutting_down=3,
                                restarting=4,
                                errored=2,
                                timed_out=2,
                                succeeded=1,
                                unknown=2))
     device_monitor._UpdateLabs([cluster1, cluster2])
     lab_info = datastore_entities.LabInfo.get_by_id('alab')
     self.assertEqual(27, lab_info.host_update_state_summary.total)
     self.assertEqual(1, lab_info.host_update_state_summary.pending)
     self.assertEqual(2, lab_info.host_update_state_summary.syncing)
     self.assertEqual(6, lab_info.host_update_state_summary.shutting_down)
     self.assertEqual(8, lab_info.host_update_state_summary.restarting)
     self.assertEqual(5, lab_info.host_update_state_summary.errored)
     self.assertEqual(2, lab_info.host_update_state_summary.timed_out)
     self.assertEqual(1, lab_info.host_update_state_summary.succeeded)
     self.assertEqual(2, lab_info.host_update_state_summary.unknown)
 def testUpdateLabs_withUnknownLabFromClusterInfo(self):
     cluster1 = datastore_test_util.CreateCluster('cluster_nolabname',
                                                  lab_name=None)
     device_monitor._UpdateLabs([cluster1])
     labs = datastore_entities.LabInfo.query()
     lab_names = {lab.lab_name for lab in labs}
     self.assertCountEqual(['UNKNOWN'], lab_names)
    def testUpdateLabs_calculateUpdateStateSummaryPerVersionFromClusters(self):
        cluster1 = datastore_test_util.CreateCluster(
            'cluster1',
            lab_name='alab',
            host_update_state_summaries_by_version=[
                datastore_entities.HostUpdateStateSummary(total=17,
                                                          pending=1,
                                                          syncing=2,
                                                          shutting_down=3,
                                                          restarting=4,
                                                          errored=3,
                                                          timed_out=1,
                                                          succeeded=3,
                                                          target_version='v1'),
                datastore_entities.HostUpdateStateSummary(total=6,
                                                          pending=1,
                                                          syncing=1,
                                                          shutting_down=1,
                                                          restarting=1,
                                                          errored=2,
                                                          target_version='v2'),
            ])
        cluster2 = datastore_test_util.CreateCluster(
            'cluster2',
            lab_name='alab',
            host_update_state_summaries_by_version=[
                datastore_entities.HostUpdateStateSummary(total=11,
                                                          pending=2,
                                                          syncing=2,
                                                          shutting_down=2,
                                                          restarting=2,
                                                          errored=0,
                                                          timed_out=2,
                                                          succeeded=1,
                                                          target_version='v1'),
                datastore_entities.HostUpdateStateSummary(total=7,
                                                          pending=2,
                                                          syncing=0,
                                                          shutting_down=2,
                                                          restarting=1,
                                                          errored=2,
                                                          target_version='v3'),
            ])

        device_monitor._UpdateLabs([cluster1, cluster2])

        lab_info = datastore_entities.LabInfo.get_by_id('alab')
        version_to_summaries = {
            summary.target_version: summary
            for summary in lab_info.host_update_state_summaries_by_version
        }

        self.assertEqual(28, version_to_summaries['v1'].total)
        self.assertEqual(3, version_to_summaries['v1'].pending)
        self.assertEqual(4, version_to_summaries['v1'].syncing)
        self.assertEqual(5, version_to_summaries['v1'].shutting_down)
        self.assertEqual(6, version_to_summaries['v1'].restarting)
        self.assertEqual(3, version_to_summaries['v1'].errored)
        self.assertEqual(3, version_to_summaries['v1'].timed_out)
        self.assertEqual(4, version_to_summaries['v1'].succeeded)
        self.assertEqual(0, version_to_summaries['v1'].unknown)

        self.assertEqual(6, version_to_summaries['v2'].total)
        self.assertEqual(1, version_to_summaries['v2'].pending)
        self.assertEqual(1, version_to_summaries['v2'].syncing)
        self.assertEqual(1, version_to_summaries['v2'].shutting_down)
        self.assertEqual(1, version_to_summaries['v2'].restarting)
        self.assertEqual(2, version_to_summaries['v2'].errored)
        self.assertEqual(0, version_to_summaries['v2'].timed_out)
        self.assertEqual(0, version_to_summaries['v2'].succeeded)
        self.assertEqual(0, version_to_summaries['v2'].unknown)

        self.assertEqual(7, version_to_summaries['v3'].total)
        self.assertEqual(2, version_to_summaries['v3'].pending)
        self.assertEqual(0, version_to_summaries['v3'].syncing)
        self.assertEqual(2, version_to_summaries['v3'].shutting_down)
        self.assertEqual(1, version_to_summaries['v3'].restarting)
        self.assertEqual(2, version_to_summaries['v3'].errored)
        self.assertEqual(0, version_to_summaries['v3'].timed_out)
        self.assertEqual(0, version_to_summaries['v3'].succeeded)
        self.assertEqual(0, version_to_summaries['v3'].unknown)
Beispiel #5
0
  def setUp(self):
    api_test.ApiTest.setUp(self)
    self.host_update_state_summary_0 = (
        datastore_entities.HostUpdateStateSummary(
            total=2,
            succeeded=2,
            target_version='v1'))
    host_count_by_harness_version = {
        'version1': 72,
        'version2': 20,
    }
    self.cluster_0 = datastore_test_util.CreateCluster(
        cluster='free',
        total_devices=10,
        offline_devices=1,
        available_devices=2,
        allocated_devices=7,
        device_count_timestamp=self.TIMESTAMP,
        host_update_state_summary=self.host_update_state_summary_0,
        host_update_state_summaries_by_version=[
            self.host_update_state_summary_0],
        host_count_by_harness_version=host_count_by_harness_version)
    self.cluster_1 = datastore_test_util.CreateCluster(
        cluster='paid',
        total_devices=2,
        offline_devices=0,
        available_devices=1,
        allocated_devices=1,
        device_count_timestamp=self.TIMESTAMP)
    datastore_test_util.CreateHost(cluster='free', hostname='host_0')
    datastore_test_util.CreateDevice(
        cluster='free',
        hostname='host_0',
        device_serial='device_0',
        device_type=api_messages.DeviceTypeMessage.PHYSICAL,
        battery_level='100',
        run_target='shamu')
    datastore_test_util.CreateHost(cluster='free', hostname='host_1')
    datastore_test_util.CreateDevice(
        cluster='free',
        hostname='host_1',
        device_serial='device_1',
        device_type=api_messages.DeviceTypeMessage.PHYSICAL,
        timestamp=self.TIMESTAMP,
        run_target='flounder')

    datastore_test_util.CreateHost(cluster='paid', hostname='host_2')
    datastore_test_util.CreateDevice(
        cluster='paid',
        hostname='host_2',
        device_serial='device_2',
        device_type=api_messages.DeviceTypeMessage.PHYSICAL,
        run_target='shamu')
    # A hidden device
    datastore_test_util.CreateDevice(
        cluster='paid',
        hostname='host_2',
        device_serial='device_3',
        device_type=api_messages.DeviceTypeMessage.PHYSICAL,
        run_target='shamu',
        hidden=True)
    # A hidden host
    datastore_test_util.CreateHost(
        cluster='paid', hostname='host_3', hidden=True)

    self.note = datastore_entities.Note(user='******',
                                        timestamp=self.TIMESTAMP,
                                        message='Hello, World')
    cluster_note = datastore_entities.ClusterNote(cluster='free')
    cluster_note.note = self.note
    cluster_note.put()