예제 #1
0
    def test_image_present_and_force(self):
        '''
        According following sls,

        .. code-block:: yaml

            image:latest:
              dockerng.image_present:
                - force: true

        if ``image:latest`` is not downloaded and force is true
        should pull a new image successfuly.
        '''
        dockerng_inspect_image = Mock(side_effect=CommandExecutionError(
            'Error 404: No such image/container: image:latest'))
        dockerng_pull = Mock(
            return_value={
                'Layers': {
                    'Already_Pulled': ['abcdefghijk'],
                    'Pulled': ['abcdefghijk']
                },
                'Status': "Image 'image:latest' was pulled",
                'Time_Elapsed': 1.1
            })
        dockerng_list_tags = Mock(side_effect=[[], ['image:latest']])
        __salt__ = {
            'dockerng.list_tags': dockerng_list_tags,
            'dockerng.pull': dockerng_pull,
            'dockerng.inspect_image': dockerng_inspect_image,
        }
        with patch.dict(dockerng_state.__dict__, {'__salt__': __salt__}):
            ret = dockerng_state.image_present('image:latest', force=True)
        self.assertEqual(
            ret, {
                'changes': {
                    'Layers': {
                        'Already_Pulled': ['abcdefghijk'],
                        'Pulled': ['abcdefghijk']
                    },
                    'Status': "Image 'image:latest' was pulled",
                    'Time_Elapsed': 1.1
                },
                'result': True,
                'comment': "Image 'image:latest' was pulled",
                'name': 'image:latest',
            })
예제 #2
0
파일: dockerng_test.py 프로젝트: mahak/salt
    def test_image_present_and_force(self):
        '''
        According following sls,

        .. code-block:: yaml

            image:latest:
              dockerng.image_present:
                - force: true

        if ``image:latest`` is not downloaded and force is true
        should pull a new image successfuly.
        '''
        dockerng_inspect_image = Mock(
            side_effect=CommandExecutionError(
                'Error 404: No such image/container: image:latest'))
        dockerng_pull = Mock(
            return_value={'Layers':
                          {'Already_Pulled': ['abcdefghijk'],
                           'Pulled': ['abcdefghijk']},
                          'Status': "Image 'image:latest' was pulled",
                          'Time_Elapsed': 1.1})
        dockerng_list_tags = Mock(
            side_effect=[[], ['image:latest']]
        )
        __salt__ = {'dockerng.list_tags': dockerng_list_tags,
                    'dockerng.pull': dockerng_pull,
                    'dockerng.inspect_image': dockerng_inspect_image,
                    }
        with patch.dict(dockerng_state.__dict__,
                        {'__salt__': __salt__}):
            ret = dockerng_state.image_present('image:latest', force=True)
        self.assertEqual(ret,
                         {'changes': {
                             'Layers': {'Already_Pulled': ['abcdefghijk'],
                                        'Pulled': ['abcdefghijk']},
                             'Status': "Image 'image:latest' was pulled",
                             'Time_Elapsed': 1.1},
                             'result': True,
                             'comment': "Image 'image:latest' was pulled",
                             'name': 'image:latest',
                         })
예제 #3
0
    def test_image_present_already_local(self):
        '''
        According following sls,

        .. code-block:: yaml

            image:latest:
              dockerng.image_present:
                - force: true

        if ``image:latest`` is already downloaded locally the state
        should not report changes.
        '''
        dockerng_inspect_image = Mock(return_value={'Id': 'abcdefghijk'})
        dockerng_pull = Mock(
            return_value={
                'Layers': {
                    'Already_Pulled': ['abcdefghijk'],
                    'Pulled': []
                },
                'Status': 'Image is up to date for image:latest',
                'Time_Elapsed': 1.1
            })
        dockerng_list_tags = Mock(return_value=['image:latest'])
        __salt__ = {
            'dockerng.list_tags': dockerng_list_tags,
            'dockerng.pull': dockerng_pull,
            'dockerng.inspect_image': dockerng_inspect_image,
        }
        with patch.dict(dockerng_state.__dict__, {'__salt__': __salt__}):
            ret = dockerng_state.image_present('image:latest', force=True)
            self.assertEqual(
                ret, {
                    'changes': {},
                    'result': True,
                    'comment': "Image 'image:latest' was pulled, "
                    "but there were no changes",
                    'name': 'image:latest',
                })
예제 #4
0
파일: dockerng_test.py 프로젝트: mahak/salt
    def test_image_present_already_local(self):
        '''
        According following sls,

        .. code-block:: yaml

            image:latest:
              dockerng.image_present:
                - force: true

        if ``image:latest`` is already downloaded locally the state
        should not report changes.
        '''
        dockerng_inspect_image = Mock(
            return_value={'Id': 'abcdefghijk'})
        dockerng_pull = Mock(
            return_value={'Layers':
                          {'Already_Pulled': ['abcdefghijk'],
                           'Pulled': []},
                          'Status': 'Image is up to date for image:latest',
                          'Time_Elapsed': 1.1})
        dockerng_list_tags = Mock(
            return_value=['image:latest']
        )
        __salt__ = {'dockerng.list_tags': dockerng_list_tags,
                    'dockerng.pull': dockerng_pull,
                    'dockerng.inspect_image': dockerng_inspect_image,
                    }
        with patch.dict(dockerng_state.__dict__,
                        {'__salt__': __salt__}):
            ret = dockerng_state.image_present('image:latest', force=True)
            self.assertEqual(ret,
                             {'changes': {},
                              'result': True,
                              'comment': "Image 'image:latest' was pulled, "
                              "but there were no changes",
                              'name': 'image:latest',
                              })