diff options
| author | Daniel Watkins <daniel.watkins@canonical.com> | 2015-04-20 15:24:22 +0100 | 
|---|---|---|
| committer | Daniel Watkins <daniel.watkins@canonical.com> | 2015-04-20 15:24:22 +0100 | 
| commit | 4fc65f02ae3fbf1a2062e6169ee39b5c5d5e23bc (patch) | |
| tree | 0c948074b8d1cdd139da1b3ecc1b556d4880bf55 /tests/unittests/test_datasource | |
| parent | 6e84c05d2dc402de8cc4ae414af8657b97317218 (diff) | |
| download | vyos-cloud-init-4fc65f02ae3fbf1a2062e6169ee39b5c5d5e23bc.tar.gz vyos-cloud-init-4fc65f02ae3fbf1a2062e6169ee39b5c5d5e23bc.zip | |
GCE instance-level SSH keys override project-level keys. (LP: #1403617)
Diffstat (limited to 'tests/unittests/test_datasource')
| -rw-r--r-- | tests/unittests/test_datasource/test_gce.py | 38 | 
1 files changed, 34 insertions, 4 deletions
| diff --git a/tests/unittests/test_datasource/test_gce.py b/tests/unittests/test_datasource/test_gce.py index 540a55d0..1fb100f7 100644 --- a/tests/unittests/test_datasource/test_gce.py +++ b/tests/unittests/test_datasource/test_gce.py @@ -113,10 +113,6 @@ class TestDataSourceGCE(test_helpers.HttprettyTestCase):          self.assertEqual(GCE_META.get('instance/attributes/user-data'),                           self.ds.get_userdata_raw()) -        # we expect a list of public ssh keys with user names stripped -        self.assertEqual(['ssh-rsa AA2..+aRD0fyVw== root@server'], -                         self.ds.get_public_ssh_keys()) -      # test partial metadata (missing user-data in particular)      @httpretty.activate      def test_metadata_partial(self): @@ -152,3 +148,37 @@ class TestDataSourceGCE(test_helpers.HttprettyTestCase):                                     body=_new_request_callback(meta))              self.assertEqual(False, self.ds.get_data())              httpretty.reset() + +    @httpretty.activate +    def test_project_level_ssh_keys_are_used(self): +        httpretty.register_uri(httpretty.GET, MD_URL_RE, +                               body=_new_request_callback()) +        self.ds.get_data() + +        # we expect a list of public ssh keys with user names stripped +        self.assertEqual(['ssh-rsa AA2..+aRD0fyVw== root@server'], +                         self.ds.get_public_ssh_keys()) + +    @httpretty.activate +    def test_instance_level_ssh_keys_are_used(self): +        key_content = 'ssh-rsa JustAUser root@server' +        meta = GCE_META.copy() +        meta['instance/attributes/sshKeys'] = 'user:{0}'.format(key_content) + +        httpretty.register_uri(httpretty.GET, MD_URL_RE, +                               body=_new_request_callback(meta)) +        self.ds.get_data() + +        self.assertIn(key_content, self.ds.get_public_ssh_keys()) + +    @httpretty.activate +    def test_instance_level_keys_replace_project_level_keys(self): +        key_content = 'ssh-rsa JustAUser root@server' +        meta = GCE_META.copy() +        meta['instance/attributes/sshKeys'] = 'user:{0}'.format(key_content) + +        httpretty.register_uri(httpretty.GET, MD_URL_RE, +                               body=_new_request_callback(meta)) +        self.ds.get_data() + +        self.assertEqual([key_content], self.ds.get_public_ssh_keys()) | 
