mirror of
https://github.com/rancher/os.git
synced 2025-08-28 11:12:59 +00:00
Fix issue with depulicate ssh keys after save
The CloudConfig.Save() did not load the metadata resulting in the diff function always thinking the SSH keys were new. This would cause them to be saved over and over again just getting bigger and bigger.
This commit is contained in:
parent
77242012e7
commit
ce915927be
@ -163,6 +163,9 @@ func (c *CloudConfig) Save() error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
exCfg = mergeMetadata(exCfg, readMetadata())
|
||||
|
||||
exData := map[interface{}]interface{}{}
|
||||
if err := util.Convert(exCfg, &exData); err != nil {
|
||||
return err
|
||||
|
43
tests/integration/rostest/test_08_ssh_key_merge.py
Normal file
43
tests/integration/rostest/test_08_ssh_key_merge.py
Normal file
@ -0,0 +1,43 @@
|
||||
import pytest
|
||||
import rostest.util as u
|
||||
from rostest.util import SSH
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def qemu(request):
|
||||
q = u.run_qemu(request)
|
||||
u.flush_out(q.stdout)
|
||||
return q
|
||||
|
||||
|
||||
def test_ssh_key_merging(qemu):
|
||||
SSH(qemu).check_call('bash', '-c', '''cat > test-merge << "SCRIPT"
|
||||
set -x -e
|
||||
rm /var/lib/rancher/conf/cloud-config.yml
|
||||
|
||||
EXISTING=$(ros config get ssh_authorized_keys | head -1)
|
||||
cat > /var/lib/rancher/conf/metadata << EOF
|
||||
SSHPublicKeys:
|
||||
"0": zero
|
||||
"1": one
|
||||
"2": two
|
||||
EOF
|
||||
ros config set hostname one
|
||||
ros config set hostname two
|
||||
ros config set hostname three
|
||||
|
||||
cat > expected << EOF
|
||||
$EXISTING
|
||||
- zero
|
||||
- one
|
||||
- two
|
||||
|
||||
EOF
|
||||
|
||||
ros config get ssh_authorized_keys > got
|
||||
|
||||
diff got expected
|
||||
|
||||
SCRIPT
|
||||
sudo bash test-merge
|
||||
'''.strip())
|
Loading…
Reference in New Issue
Block a user