コード例 #1
0
 def test_purge_old_workspaces(self, mock_delete_clone, mock_get_workspaces,
                               mock_get_projects, mock_db_config,
                               mock_connect_db):
     """Test purge workspace > purge_limit"""
     mock_db_config.return_value = {
         'ontap_api': 'a',
         'ontap_apiuser': '******',
         'ontap_apipass': '******',
         'ontap_svm_name': 'd',
         'ontap_aggr_name': 'e',
         'ontap_data_ip': 'f'
     }
     mock_get_projects.return_value = [{
         "name": "proj_1",
         "workspace_purge_limit": 1
     }, {
         "name": "proj_2",
         "workspace_purge_limit": 2
     }]
     mock_get_workspaces.side_effect = [
         [
             Mock(value='proj_1_ws_1'),  # for proj_1 => return 2 workspaces
             Mock(value='proj_1_ws_2')
         ],
         [Mock(value='proj_2_ws_1')]  # for proj_2 => return 1 workspace
     ]
     mock_delete_clone.side_effect = [
         (True, None),  # proj_1_ws_1
         (False, None),  # proj_1_ws_2
         (True, None)
     ]  # proj_2_ws_1
     count, workspaces = workspace.purge_old_workspaces()
     self.assertEqual(count, 2)
     self.assertEqual(workspaces, ['proj_1_ws_1', 'proj_2_ws_1'])
コード例 #2
0
 def test_purge_old_workspaces(self, mock_delete_clone, mock_get_workspaces,
                               mock_get_projects, mock_connect_db):
     '''Test purge workspace > purge_limit'''
     mock_get_projects.return_value = [{
         "name": "proj_1",
         "workspace_purge_limit": 1
     }, {
         "name": "proj_2",
         "workspace_purge_limit": 2
     }]
     mock_get_workspaces.side_effect = [
         [
             Mock(value='proj_1_ws_1'),  #for proj_1 => return 2 workspaces
             Mock(value='proj_1_ws_2')
         ],
         [Mock(value='proj_2_ws_1')]  #for proj_2 => return 1 workspace
     ]
     mock_delete_clone.side_effect = [
         (True, None),  #proj_1_ws_1
         (False, None),  #proj_1_ws_2
         (True, None)
     ]  #proj_2_ws_1
     count, workspaces = workspace.purge_old_workspaces()
     self.assertEqual(count, 2)
     self.assertEqual(workspaces, ['proj_1_ws_1', 'proj_2_ws_1'])
コード例 #3
0
def workspace_purge():
    """
    Purge workspaces older than workspace_purge_limit days
    The workspace limit is setup in the project's initial configuration
    ---
    tags:
      - workspace
    responses:
      200:
        description: workspaces have been purged successfully

    """
    count, purged_workspaces = workspace_obj.purge_old_workspaces()
    response = {
        'code': 200,
        'resource': 'purge',
        'customer_instance': app.config['DATABASE_NAME'],
        'message': "Purged %s workspaces" % count,
        'purged_workspaces': purged_workspaces,
        'status': 'COMPLETED'
    }
    return jsonify(response)
コード例 #4
0
ファイル: views.py プロジェクト: likhitha614/build-at-scale
def workspace_purge():
    """
    purge workspaces greater than workspace_purge_limit set in project config
    ---
    tags:
      - workspace
    parameters:

    responses:
      200:
        description: workspace was modified successfully

    """
    count, purged_workspaces = workspace_obj.purge_old_workspaces()
    response = {
        'code': 200,
        'resource': 'purge',
        'customer_instance': app.config['DATABASE_NAME'],
        'message': "Purged %s workspaces" % count,
        'purged_workspaces': purged_workspaces,
        'status': 'COMPLETED'
    }
    return jsonify(response)