def test_controller_create_success(self): cloud = CmdbCloudConfig() tracker_class = cloud.task_tracker full_cloud_task_class_name = "%s.%s" % (MockVpsControlTask.__module__, MockVpsControlTask.__name__) task_tracker1 = tracker_class(task_class=full_cloud_task_class_name) task_tracker1.context = {'some': 'value'} task_tracker1.save() task_tracker2 = tracker_class(task_class=full_cloud_task_class_name) task_tracker2.context = {'some': 'value'} task_tracker2.failed('some error') task_tracker2.save() response_err = self.client.patch('/v1/cloud_tasks/%s/' % task_tracker1.id) self.assertEqual(405, response_err.status_code) response1 = self.client.get('/v1/cloud_tasks/%s/' % task_tracker1.id) self.assertEqual(200, response1.status_code) self.assertEqual(task_tracker1.id, response1.data['id']) self.assertEqual('success', response1.data['status']) response2 = self.client.get('/v1/cloud_tasks/%s/' % task_tracker2.id) self.assertEqual(200, response2.status_code) self.assertEqual(task_tracker2.id, response2.data['id']) self.assertEqual('failed', response2.data['status']) self.assertEqual('some error', response2.data['error'])
def test_controller_create_success(self): cloud = CmdbCloudConfig() tracker_class = cloud.task_tracker task_tracker1 = tracker_class(task_class='SomeClassName') task_tracker1.context = {'some': 'value'} task_tracker1.save() task_tracker2 = tracker_class(task_class='SomeClassName') task_tracker2.context = {'some': 'value'} task_tracker2.failed('some error') task_tracker2.save() self.assertEqual(task_tracker1.id, tracker_class.get(task_tracker1.id).id) self.assertEqual(task_tracker2.id, tracker_class.get(task_tracker2.id).id) self.assertEqual(2, len(tracker_class.find())) self.assertEqual( 1, len(tracker_class.find(status=TaskTrackerStatus.STATUS_NEW))) self.assertEqual( 1, len(tracker_class.find(status=TaskTrackerStatus.STATUS_FAILED))) self.assertEqual( 0, len(tracker_class.find(status=TaskTrackerStatus.STATUS_SUCCESS)))
def setUp(self): super(ResourcesAPITests, self).setUp() user_name = 'admin' user, created = User.objects.get_or_create(username=user_name, password=user_name, email='*****@*****.**', is_staff=True) token, created = Token.objects.get_or_create(user=user) self.client.credentials(HTTP_AUTHORIZATION='Token ' + token.key) Resource.objects.all().delete() self.moscow = RegionResource.objects.create(name='Moscow') self.dc1 = Datacenter.objects.create(name='Test DC 1', parent=self.moscow) self.rack1 = Rack.objects.create(name='Test Rack 1', parent=self.dc1) self.srv1 = Server.objects.create(name='Test hypervisor 1', role='hypervisor', parent=self.rack1) self.pools_group1 = RegionResource.objects.create( name='Test DC 1 IP Pools', parent=self.dc1) self.pool1 = IPAddressPoolFactory.from_network( '192.168.0.0/23', parent=self.pools_group1, dns1='46.17.46.200', dns2='46.17.40.200') GlobalIPManager.get_ip('192.168.0.1').lock() self.pool11 = IPAddressPoolFactory.from_network( '192.169.0.0/23', parent=self.pools_group1, dns1='46.17.46.200', dns2='46.17.40.200') self.pool11.use() GlobalIPManager.get_ip('192.169.0.1').lock() self.srv1.set_option('agentd_taskqueue', 'test_task_queue') MockVpsControlTask.REMOTE_WORKER.sent_tasks = [] self.cloud = CmdbCloudConfig() self.backend = ProxMoxJBONServiceBackend(self.cloud) ProxMoxJBONServiceBackend.TASK_CREATE = MockVpsControlTask ProxMoxJBONServiceBackend.TASK_START = MockVpsControlTask ProxMoxJBONServiceBackend.TASK_STOP = MockVpsControlTask
def stop(self, request, pk=None): indata = StartStopSerializer(data=request.data) if not indata.is_valid(): return Response(indata.errors, status=status.HTTP_400_BAD_REQUEST) logger.info("Stopping VPS: %s" % indata.data) # hardcoded backend cloud = CmdbCloudConfig() backend = ProxMoxJBONServiceBackend(cloud) tracker = backend.stop_vps(**indata.data) serializer = CloudTaskTrackerSerializer(tracker) return Response(serializer.data)
def create(self, request, *args, **kwargs): indata = CreateVpsSerializer(data=request.data) if not indata.is_valid(): return Response(indata.errors, status=status.HTTP_400_BAD_REQUEST) logger.info("Creating VPS: %s" % indata.data) # hardcoded backend cloud = CmdbCloudConfig() backend = ProxMoxJBONServiceBackend(cloud) tracker = backend.create_vps(**indata.data) serializer = CloudTaskTrackerSerializer(tracker) return Response(serializer.data)
def setUp(self): Resource.objects.all().delete() self.moscow = RegionResource.objects.create(name='Moscow') self.dc1 = Datacenter.objects.create(name='Test DC 1', parent=self.moscow) self.rack1 = Rack.objects.create(name='Test Rack 1', parent=self.dc1) self.srv1 = Server.objects.create(name='Test hypervisor 1', role='hypervisor', parent=self.rack1) self.pools_group1 = RegionResource.objects.create(name='Test DC 1 IP Pools', parent=self.dc1) self.pool1 = IPNetworkPool.objects.create(network='192.168.0.0/23', parent=self.pools_group1, status=Resource.STATUS_FREE) self.pool11 = IPNetworkPool.objects.create(network='192.169.0.0/23', parent=self.pools_group1, status=Resource.STATUS_INUSE) self.srv1.set_option('agentd_taskqueue', 'test_task_queue') MockVpsControlTask.REMOTE_WORKER.sent_tasks = [] self.cloud = CmdbCloudConfig() self.backend = ProxMoxJBONServiceBackend(self.cloud) ProxMoxJBONServiceBackend.TASK_CREATE = MockVpsControlTask ProxMoxJBONServiceBackend.TASK_START = MockVpsControlTask ProxMoxJBONServiceBackend.TASK_STOP = MockVpsControlTask
def setUp(self): Resource.objects.all().delete() self.moscow = RegionResource.objects.create(name='Moscow') self.dc1 = Datacenter.objects.create(name='Test DC 1', parent=self.moscow) self.rack1 = Rack.objects.create(name='Test Rack 1', parent=self.dc1) self.srv1 = Server.objects.create(name='Test hypervisor 1', role='hypervisor', parent=self.rack1) self.pools_group1 = RegionResource.objects.create( name='Test DC 1 IP Pools', parent=self.dc1) self.pool1 = IPAddressPoolFactory.from_network( '192.168.0.0/23', parent=self.pools_group1, dns1='46.17.46.200', dns2='46.17.40.200') GlobalIPManager.get_ip('192.168.0.1').lock() self.pool11 = IPAddressPoolFactory.from_network( '192.169.0.0/23', parent=self.pools_group1, dns1='46.17.46.200', dns2='46.17.40.200') self.pool11.use() GlobalIPManager.get_ip('192.169.0.1').lock() self.srv1.set_option('agentd_taskqueue', 'test_task_queue') MockVpsControlTask.REMOTE_WORKER.sent_tasks = [] self.cloud = CmdbCloudConfig() self.backend = ProxMoxJBONServiceBackend(self.cloud) ProxMoxJBONServiceBackend.TASK_CREATE = MockVpsControlTask ProxMoxJBONServiceBackend.TASK_START = MockVpsControlTask ProxMoxJBONServiceBackend.TASK_STOP = MockVpsControlTask
def setUp(self): Resource.objects.all().delete() self.cloud = CmdbCloudConfig()
def __init__(self, stdout=None, stderr=None, no_color=False): super(Command, self).__init__(stdout, stderr, no_color) self.cloud = CmdbCloudConfig() self.task_tracker = self.cloud.task_tracker self.backend = ProxMoxJBONServiceBackend(self.cloud)