def __init__(self, edw_service_spec):
        super(Redshift, self).__init__(edw_service_spec)
        # pkb setup attribute
        self.project = None
        self.cmd_prefix = list(util.AWS_PREFIX)
        if FLAGS.zones:
            self.zone = FLAGS.zones[0]
            self.region = util.GetRegionFromZone(self.zone)
        else:
            self.region = GetDefaultRegion()
        self.cmd_prefix += ['--region', self.region]

        # Redshift specific attribute (see if they can be set)
        self.cluster_subnet_group = None
        self.cluster_parameter_group = None
        self.arn = ''
        self.cluster_subnet_group = aws_cluster_subnet_group.RedshiftClusterSubnetGroup(
            self.cmd_prefix)
        self.cluster_parameter_group = aws_cluster_parameter_group.RedshiftClusterParameterGroup(
            self.cmd_prefix)

        if self.db is None:
            self.db = DEFAULT_DATABASE_NAME
        self.client_interface = GetRedshiftClientInterface(
            self.db, self.user, self.password)
Exemple #2
0
 def testValidClusterParameterGroupCreation(self):
     cpg = aws_cluster_parameter_group.RedshiftClusterParameterGroup(
         list(util.AWS_PREFIX))
     self.assertEqual(cpg.name, 'pkb-%s' % TEST_RUN_URI)
     with mock.patch(vm_util.__name__ + '.IssueCommand',
                     return_value=('out_', 'err_', 0)) as mock_issue:
         cpg._Create()
         self.assertEqual(mock_issue.call_count, 1)
Exemple #3
0
 def testValidClusterParameterGroupDeletion(self):
     cpg = aws_cluster_parameter_group.RedshiftClusterParameterGroup(
         1, list(util.AWS_PREFIX))
     self.assertEqual(cpg.name, 'pkb-%s' % TEST_RUN_URI)
     with mock.patch(vm_util.__name__ + '.IssueCommand',
                     return_value=('out_', 'err_', 0)) as mock_issue:
         cpg._Delete()
         mock_issue.assert_called_once()
         mock_issue.assert_called_with([
             'aws', '--output', 'json', 'redshift',
             'delete-cluster-parameter-group', '--parameter-group-name',
             'pkb-%s' % TEST_RUN_URI
         ])
 def testValidClusterParameterGroupCreation(self):
     cpg = aws_cluster_parameter_group.RedshiftClusterParameterGroup(
         1, list(util.AWS_PREFIX))
     self.assertEqual(cpg.name, 'pkb-%s' % TEST_RUN_URI)
     with mock.patch(vm_util.__name__ + '.IssueCommand',
                     return_value=('out_', 'err_', 0)) as mock_issue:
         cpg._Create()
         self.assertEqual(mock_issue.call_count, 2)
         mock_issue.assert_called_with([
             'aws', '--output', 'json', 'redshift',
             'modify-cluster-parameter-group', '--parameter-group-name',
             'pkb-%s' % TEST_RUN_URI, '--parameters',
             ('[{"ParameterName":"wlm_json_configuration","ParameterValue":"'
              '[{\\"query_concurrency\\":1}]","ApplyType":"dynamic"}]')
         ])