示例#1
0
    def test_sync_projects_from_cmdb(self):
        Business.objects.create(cc_id=5,
                                cc_name='name_5',
                                cc_owner='owner',
                                cc_company='company')
        project.sync_projects_from_cmdb('user')

        Business.objects.update_or_create.assert_has_calls([
            mock.call(cc_id=1,
                      defaults={
                          'cc_name': 'name_1',
                          'cc_owner': 'supplier_account',
                          'cc_company': 0,
                          'time_zone': 'time_zone',
                          'life_cycle': 'life_cycle',
                          'status': 'enable'
                      }),
            mock.call(cc_id=4,
                      defaults={
                          'cc_name': 'name_4',
                          'cc_owner': 'supplier_account',
                          'cc_company': 0,
                          'time_zone': 'time_zone',
                          'life_cycle': 'life_cycle',
                          'status': 'enable'
                      }),
            mock.call(cc_id=5,
                      defaults={
                          'cc_name': 'name_5',
                          'cc_owner': 'supplier_account',
                          'cc_company': 0,
                          'time_zone': 'time_zone',
                          'life_cycle': 'life_cycle',
                          'status': 'enable'
                      })
        ])

        Project.objects.sync_project_from_cmdb_business.assert_called_once_with(
            {
                1: {
                    'cc_name': 'name_1',
                    'time_zone': 'time_zone',
                    'creator': 'user'
                },
                4: {
                    'cc_name': 'name_4',
                    'time_zone': 'time_zone',
                    'creator': 'user'
                },
                5: {
                    'cc_name': 'name_5',
                    'time_zone': 'time_zone',
                    'creator': 'user'
                }
            })
示例#2
0
 def test_sync_projects_from_cmdb__project_exist(self):
     Business.objects.create(cc_id=5,
                             cc_name="name_5",
                             cc_owner="owner",
                             cc_company="company")
     with patch(CORE_MODEL_PROJECT_SYNC_PROJECT,
                MagicMock(side_effect=IntegrityError)):
         project.sync_projects_from_cmdb("user")
         Project.objects.update_business_project_status.assert_called_once_with(
             archived_cc_ids=set(), active_cc_ids={1, 4, 5})
         self.assertEqual(len(Project.objects.all()), 0)
     project.sync_projects_from_cmdb("user")
     self.assertEqual(len(Project.objects.all()), 3)
示例#3
0
文件: tasks.py 项目: manlucas/atom
def cmdb_business_sync_task(task_id):
    with redis_lock(LOCK_ID, task_id) as acquired:
        if acquired:
            loggger.info('Start sync business from cmdb...')
            try:
                sync_projects_from_cmdb(
                    username=settings.SYSTEM_USE_API_ACCOUNT, use_cache=False)
            except exceptions.APIError as e:
                loggger.error(
                    'An error occurred when sync cmdb business, message: {msg}, trace: {trace}'
                    .format(msg=e.message, trace=traceback.format_exc()))
        else:
            loggger.info(
                'Can not get sync_business lock, sync operation abandon')
示例#4
0
    def test_sync_projects_from_cmdb__empty_business_list(self):
        project.sync_projects_from_cmdb("user")

        Project.objects.sync_project_from_cmdb_business.assert_called_once_with(
            {})
示例#5
0
    def test_sync_projects_from_cmdb(self):
        Business.objects.create(cc_id=5,
                                cc_name="name_5",
                                cc_owner="owner",
                                cc_company="company")
        project.sync_projects_from_cmdb("user")

        Business.objects.update_or_create.assert_has_calls([
            mock.call(
                cc_id=1,
                defaults={
                    "cc_name": "name_1",
                    "cc_owner": "supplier_account",
                    "cc_company": 0,
                    "time_zone": "time_zone",
                    "life_cycle": "life_cycle",
                    "status": "enable",
                },
            ),
            mock.call(
                cc_id=4,
                defaults={
                    "cc_name": "name_4",
                    "cc_owner": "supplier_account",
                    "cc_company": 0,
                    "time_zone": "time_zone",
                    "life_cycle": "life_cycle",
                    "status": "enable",
                },
            ),
            mock.call(
                cc_id=5,
                defaults={
                    "cc_name": "name_5",
                    "cc_owner": "supplier_account",
                    "cc_company": 0,
                    "time_zone": "time_zone",
                    "life_cycle": "life_cycle",
                    "status": "enable",
                },
            ),
        ])

        Project.objects.sync_project_from_cmdb_business.assert_called_once_with(
            {
                1: {
                    "cc_name": "name_1",
                    "time_zone": "time_zone",
                    "creator": "user"
                },
                4: {
                    "cc_name": "name_4",
                    "time_zone": "time_zone",
                    "creator": "user"
                },
                5: {
                    "cc_name": "name_5",
                    "time_zone": "time_zone",
                    "creator": "user"
                },
            })