示例#1
0
    def test_hdfs_cloud_replication_crud(self):
        service = ApiService(self.resource, 'hdfs1', 'HDFS')
        service.__dict__['clusterRef'] = ApiClusterRef(self.resource,
                                                       clusterName='cluster1')

        hdfs_args = ApiHdfsCloudReplicationArguments(self.resource)
        hdfs_args.sourceService = ApiServiceRef('cluster2', 'hdfs2')
        hdfs_args.sourcePath = '/src'
        hdfs_args.destinationPath = 's3a://somebucket/dst'
        hdfs_args.destinationAccount = 'someTestAccount'

        return_sched = ApiReplicationSchedule(self.resource,
                                              interval=2,
                                              intervalUnit='DAY')
        return_sched.hdfsCloudArguments = hdfs_args
        return_sched.__dict__['id'] = 1
        return_list = ApiList([return_sched]).to_json_dict()

        self.resource.expect("POST",
                             "/clusters/cluster1/services/hdfs1/replications",
                             retdata=return_list)

        sched = service.create_replication_schedule(None,
                                                    None,
                                                    'DAY',
                                                    2,
                                                    True,
                                                    hdfs_args,
                                                    alert_on_fail=True)
        self.assertEqual(return_sched.intervalUnit, sched.intervalUnit)
        self.assertEqual(return_sched.interval, sched.interval)
        self.assertIsInstance(sched.hdfsCloudArguments,
                              ApiHdfsCloudReplicationArguments)

        self.resource.expect("GET",
                             "/clusters/cluster1/services/hdfs1/replications",
                             retdata=return_list)
        service.get_replication_schedules()

        self.resource.expect(
            "GET",
            "/clusters/cluster1/services/hdfs1/replications/1",
            retdata=return_sched.to_json_dict())
        service.get_replication_schedule(1)

        self.resource.expect(
            "PUT",
            "/clusters/cluster1/services/hdfs1/replications/1",
            data=return_sched,
            retdata=return_sched.to_json_dict())
        service.update_replication_schedule(1, return_sched)

        self.resource.expect(
            "DELETE",
            "/clusters/cluster1/services/hdfs1/replications/1",
            retdata=return_sched.to_json_dict())
        service.delete_replication_schedule(1)
示例#2
0
    def test_snapshot(self):
        service = ApiService(self.resource, 'hdfs1', 'HDFS')
        service.__dict__['clusterRef'] = ApiClusterRef(self.resource,
                                                       clusterName='cluster1')

        hdfs_args = ApiHdfsSnapshotPolicyArguments(self.resource,
                                                   pathPatterns='/user/oozie')

        return_policy = ApiSnapshotPolicy(self.resource,
                                          name='sn1',
                                          weeklySnapshots=2,
                                          hdfsArguments=hdfs_args)
        return_policy.__dict__['id'] = 1
        return_list = ApiList([return_policy]).to_json_dict()
        self.resource.expect(
            "POST",
            "/clusters/cluster1/services/hdfs1/snapshots/policies",
            retdata=return_list)

        policy = service.create_snapshot_policy(return_policy)
        self._test_policy(return_policy, policy)

        self.resource.expect(
            "GET",
            "/clusters/cluster1/services/hdfs1/snapshots/policies",
            retdata=return_list)
        policies = service.get_snapshot_policies()
        self.assertEqual(1, len(policies))
        self._test_policy(return_policy, policies[0])

        self.resource.expect(
            "GET",
            "/clusters/cluster1/services/hdfs1/snapshots/policies/sn1",
            retdata=return_policy.to_json_dict())
        self._test_policy(return_policy, service.get_snapshot_policy("sn1"))

        return_policy.dayOfWeek = 5
        self.resource.expect(
            "PUT",
            "/clusters/cluster1/services/hdfs1/snapshots/policies/sn1",
            data=return_policy,
            retdata=return_policy.to_json_dict())
        policy = service.update_snapshot_policy('sn1', return_policy)
        self._test_policy(return_policy, policy)

        self.resource.expect(
            "DELETE",
            "/clusters/cluster1/services/hdfs1/snapshots/policies/sn1",
            retdata=return_policy.to_json_dict())
        policy = service.delete_snapshot_policy('sn1')
        self._test_policy(return_policy, policy)