Exemple #1
0
    def test_oc_get_nodes(self, mock_get_nodes):
        ''' Test running 'oc get nodes (allowed) '''
        node_list = '''NAME                            STATUS                     AGE
ip-172-31-49-119.ec2.internal   Ready,SchedulingDisabled   45d
ip-172-31-49-14.ec2.internal    Ready,SchedulingDisabled   45d
ip-172-31-49-245.ec2.internal   Ready,SchedulingDisabled   45d
ip-172-31-50-220.ec2.internal   Ready                      45d
ip-172-31-52-126.ec2.internal   Ready,SchedulingDisabled   45d
ip-172-31-55-174.ec2.internal   Ready,SchedulingDisabled   45d
ip-172-31-56-150.ec2.internal   Ready,SchedulingDisabled   45d
ip-172-31-57-154.ec2.internal   Ready,SchedulingDisabled   45d
ip-172-31-58-0.ec2.internal     Ready                      45d
ip-172-31-60-174.ec2.internal   Ready                      45d
ip-172-31-60-254.ec2.internal   Ready,SchedulingDisabled   45d
ip-172-31-61-118.ec2.internal   Ready                      45d
ip-172-31-61-149.ec2.internal   Ready                      45d
ip-172-31-61-94.ec2.internal    Ready                      45d
ip-172-31-62-44.ec2.internal    Ready,SchedulingDisabled   45d
'''
        os.environ['SSH_ORIGINAL_COMMAND'] = 'oc get nodes'
        dg = DevGet()
        mock_get_nodes.side_effect = [node_list]

        dg.main()
        assert mock_get_nodes.called
Exemple #2
0
    def test_oc_get_nodes_json(self, mock_get_nodes):
        ''' Test running oc get nodes -ojson (supported) '''
        os.environ['SSH_ORIGINAL_COMMAND'] = 'oc get nodes -ndefault'
        dg = DevGet()
        mock_get_nodes.side_effect = ['json list of nodes ']

        dg.main()
        assert mock_get_nodes.called
Exemple #3
0
    def test_unsupported_command(self):
        ''' Test trying to run a command that isn't supported '''
        os.environ['SSH_ORIGINAL_COMMAND'] = '/usr/bin/blah'
        dg = DevGet()
        with self.assertRaises(SystemExit) as cm:
            dg.main()

        self.assertEqual(cm.exception.code, 1)
Exemple #4
0
 def test_group_command_uname(self):
     ''' Test superperson membership in super_role (which allows 'uname') '''
     os.environ['SSH_ORIGINAL_COMMAND'] = 'uname'
     dg = DevGet()
     myfunc = MagicMock()
     myfunc.side_effect = ['Linux 4.x']
     with patch.dict(dg._command_dict, {'uname': myfunc}):
         dg.main()
         assert myfunc.called
Exemple #5
0
    def test_invalid_param_value(self):
        ''' Test oc get pods -n-test '''
        os.environ['SSH_ORIGINAL_COMMAND'] = 'oc get pods -n-test'
        with self.assertRaises(DevGetError):
            dg = DevGet()

        os.environ['SSH_ORIGINAL_COMMAND'] = 'oc get pods -ntest-'
        with self.assertRaises(DevGetError):
            dg = DevGet()
Exemple #6
0
    def test_user_with_no_defined_roles(self, mock_rpm_qa):
        ''' Test user with no defined roles (ie only default role membership) '''
        os.environ['SSH_ORIGINAL_COMMAND'] = 'rpm -qa'
        sys.argv = ['devaccess_wrap.py', 'READ_SSH', 'noroleuser']
        dg = DevGet()

        mock_rpm_qa.side_effect = ['rpm-4.13.0.1-1.fc25.x86_64']
        dg.main()
        assert mock_rpm_qa.called
Exemple #7
0
    def test_oc_get_routes(self, mock_get_routes):
        ''' Test oc get routes -ndefault '''
        route_list = '''NAME              HOST/PORT                         PATH      SERVICES          PORT      TERMINATION   WILDCARD
docker-registry   registry.free-stg.openshift.com             docker-registry   <all>     reencrypt     None
'''
        os.environ['SSH_ORIGINAL_COMMAND'] = 'oc get routes -n default'
        dg = DevGet()

        mock_get_routes.side_effect = [route_list]
        dg.main()

        assert mock_get_routes.called
Exemple #8
0
    def test_param_without_value(self):
        ''' Test oc get pods -n (no actual namespace) '''
        os.environ['SSH_ORIGINAL_COMMAND'] = 'oc get pods -n'
        with self.assertRaises(DevGetError):
            dg = DevGet()

        os.environ['SSH_ORIGINAL_COMMAND'] = 'oc logs pod -c'
        with self.assertRaises(DevGetError):
            dg = DevGet()

        os.environ['SSH_ORIGINAL_COMMAND'] = 'oc get pods -o'
        with self.assertRaises(DevGetError):
            dg = DevGet()
Exemple #9
0
    def test_oc_get_pods(self, mock_get_pods):
        ''' Test oc get pods -ndefault '''
        pod_list = '''NAME                         READY     STATUS    RESTARTS   AGE
docker-registry-10-ps647     1/1       Running   0          17d
docker-registry-10-rx0zx     1/1       Running   1          18d
oso-rhel7-zagg-web-1-k6hsk   1/1       Running   1          18d
oso-rhel7-zagg-web-1-thn2z   1/1       Running   1          18d
router-435-7xjn4             1/1       Running   0          17d
router-435-zzx1x             1/1       Running   2          18d
'''
        os.environ['SSH_ORIGINAL_COMMAND'] = 'oc get pods -n default'
        dg = DevGet()

        mock_get_pods.side_effect = [pod_list]
        dg.main()

        assert mock_get_pods.called
Exemple #10
0
 def test_invalid_username(self):
     ''' Test invalid user name '''
     os.environ['SSH_ORIGINAL_COMMAND'] = 'test command'
     sys.argv = ['devaccess_wrap.py', 'READ_SSH', 'inval$d']
     with self.assertRaises(DevGetError):
         dg = DevGet()
Exemple #11
0
 def test_params_with_same_value(self):
     ''' Test oc get pods -n test -o test (different params with same value) '''
     os.environ['SSH_ORIGINAL_COMMAND'] = 'oc get pods -n test -o test'
     dg = DevGet()
     assert dg._oc_cmd.normalized_cmd() == 'oc get pods -ntest -otest'
Exemple #12
0
 def test_leading_dash_param_single_token(self):
     ''' Test oc -n-blah (leading '-' as value of param) '''
     os.environ['SSH_ORIGINAL_COMMAND'] = 'oc -n-blah'
     with self.assertRaises(DevGetError):
         dg = DevGet()
Exemple #13
0
 def test_leading_dash_parameters(self):
     ''' Test oc -n -n (next token has leading '-') '''
     os.environ['SSH_ORIGINAL_COMMAND'] = 'oc -n -n'
     with self.assertRaises(DevGetError):
         dg = DevGet()