def testSuccess(self): computer = api.Computer( name='fake_name', connected=True, agent_version='v1', last_register_date=u'2014-05-02T09:01:01Z', has_health_check_errors=False, policy_name='fake_policy', agent_cache_size=16, initializing=True, init_percent=100) self._PatchApiRequests(computer) response = self.testapp.get('/somerequest', {'host_id': 12345}) response_dict = json.loads(response.body) self.assertEqual('fake_name', response_dict[_HOST_HEALTH_PROPS.NAME]) self.assertEqual(True, response_dict[_HOST_HEALTH_PROPS.CONNECTED]) self.assertEqual( u'2014-05-02T09:01:01Z', response_dict[_HOST_HEALTH_PROPS.LAST_REGISTER_DATE]) self.assertEqual('v1', response_dict[_HOST_HEALTH_PROPS.AGENT_VERSION]) self.assertEqual( False, response_dict[_HOST_HEALTH_PROPS.HAS_HEALTH_CHECK_ERRORS]) self.assertEqual( 'fake_policy', response_dict[_HOST_HEALTH_PROPS.POLICY_NAME]) self.assertEqual(16, response_dict[_HOST_HEALTH_PROPS.AGENT_CACHE_SIZE]) self.assertEqual(True, response_dict[_HOST_HEALTH_PROPS.IS_INITIALIZING])
def testFailure_RetryAndSucceed(self): test_utils.CreateRuleChangeSet( self.binary.key, rule_keys=[self.local_rule.key], change_type=constants.RULE_POLICY.WHITELIST) fi = api.FileInstance( id=9012, file_catalog_id=int(self.binary.file_catalog_id), computer_id=int(self.local_rule.host_id), local_state=bit9_constants.APPROVAL_STATE.UNAPPROVED) computer = api.Computer(id=5678, sync_percent=90) computer.last_poll_date = datetime.datetime.utcnow() self._PatchApiRequests([], computer, [], computer, [], computer, [fi], fi) change_set.CommitBlockableChangeSet(self.binary.key) expected_call = mock.call('POST', api_route='fileInstance', data={ 'id': 9012, 'localState': 2, 'fileCatalogId': 1234, 'computerId': 5678 }, query_args=None) self.assertTrue( expected_call in utils.CONTEXT.ExecuteRequest.mock_calls)
def testFailure_ExceedRetryLimit(self): test_utils.CreateRuleChangeSet( self.binary.key, rule_keys=[self.local_rule.key], change_type=constants.RULE_POLICY.WHITELIST) computer = api.Computer(id=5678, sync_percent=90) computer.last_poll_date = datetime.datetime.utcnow() self._PatchApiRequests([], computer, [], computer, [], computer, [], computer) with self.assertRaises(deferred.PermanentTaskFailure): change_set.CommitBlockableChangeSet(self.binary.key)
def testMemoization(self): computer = api.Computer( name='fake_name', connected=True, agent_version='v1', last_register_date=u'2014-05-02T09:01:01Z', has_health_check_errors=False, policy_name='fake_policy', agent_cache_size=16, initializing=False, init_percent=100) self._PatchApiRequests(computer) self.testapp.get('/somerequest', {'host_id': 12345}) self.testapp.get('/somerequest', {'host_id': 12345}) self.assertEqual(1, utils.CONTEXT.ExecuteRequest.call_count)
def testSuccess(self): user = test_utils.CreateUser( email='foobar@' + settings.USER_EMAIL_DOMAIN) computer = api.Computer( id=123, name='foo', policy_id=456, users=settings.AD_DOMAIN + '\\foobar') self._PatchApiRequests([computer]) response = self.testapp.get('/%s' % user.key.id()) self.assertSameElements(['123'], response.json) hosts = bit9_db.Bit9Host.query().fetch() self.assertEqual(1, len(hosts)) host = hosts[0] self.assertEqual('123', host.key.id()) self.assertEqual(utils.ExpandHostname('foo'), host.hostname) self.assertEqual(ndb.Key(bit9_db.Bit9Policy, '456'), host.policy_key) self.assertEqual(['foobar'], host.users)
def testWhitelist_GlobalRule(self): change = test_utils.CreateRuleChangeSet( self.binary.key, rule_keys=[self.global_rule.key], change_type=constants.RULE_POLICY.WHITELIST) self._PatchApiRequests(api.Computer(id=5678)) change_set.CommitBlockableChangeSet(self.binary.key) utils.CONTEXT.ExecuteRequest.assert_has_calls([ mock.call('POST', api_route='fileRule', data={ 'fileCatalogId': 1234, 'fileState': 2 }, query_args=None) ]) self.assertTrue(self.global_rule.key.get().is_committed) self.assertIsNone(change.key.get())
def testWhitelist_LocalRule_NotFulfilled(self): change = test_utils.CreateRuleChangeSet( self.binary.key, rule_keys=[self.local_rule.key], change_type=constants.RULE_POLICY.WHITELIST) computer = api.Computer(id=5678, sync_percent=100) computer.last_poll_date = datetime.datetime.utcnow() self._PatchApiRequests([], computer) change_set.CommitBlockableChangeSet(self.binary.key) utils.CONTEXT.ExecuteRequest.assert_has_calls([ mock.call( 'GET', api_route='fileInstance', query_args=[r'q=computerId:5678', 'q=fileCatalogId:1234']) ]) self.assertIsNotNone(self.local_rule.key.get().is_fulfilled) self.assertFalse(self.local_rule.key.get().is_fulfilled) self.assertTrue(self.local_rule.key.get().is_committed) self.assertIsNone(change.key.get())