func (s *keyManagerSuite) TestDeleteKeys(c *gc.C) { key1 := sshtesting.ValidKeyOne.Key + " user@host" key2 := sshtesting.ValidKeyTwo.Key initialKeys := []string{key1, key2, "bad key"} s.setAuthorisedKeys(c, strings.Join(initialKeys, "\n")) args := params.ModifyUserSSHKeys{ User: state.AdminUser, Keys: []string{sshtesting.ValidKeyTwo.Fingerprint, sshtesting.ValidKeyThree.Fingerprint, "invalid-key"}, } results, err := s.keymanager.DeleteKeys(args) c.Assert(err, gc.IsNil) c.Assert(results, gc.DeepEquals, params.ErrorResults{ Results: []params.ErrorResult{ {Error: nil}, {Error: apiservertesting.ServerError("invalid ssh key: " + sshtesting.ValidKeyThree.Fingerprint)}, {Error: apiservertesting.ServerError("invalid ssh key: invalid-key")}, }, }) s.assertEnvironKeys(c, []string{"bad key", key1}) }
func (s *keyManagerSuite) TestAddKeys(c *gc.C) { key1 := sshtesting.ValidKeyOne.Key + " user@host" key2 := sshtesting.ValidKeyTwo.Key initialKeys := []string{key1, key2, "bad key"} s.setAuthorisedKeys(c, strings.Join(initialKeys, "\n")) newKey := sshtesting.ValidKeyThree.Key + " newuser@host" args := params.ModifyUserSSHKeys{ User: state.AdminUser, Keys: []string{key2, newKey, "invalid-key"}, } results, err := s.keymanager.AddKeys(args) c.Assert(err, gc.IsNil) c.Assert(results, gc.DeepEquals, params.ErrorResults{ Results: []params.ErrorResult{ {Error: apiservertesting.ServerError(fmt.Sprintf("duplicate ssh key: %s", key2))}, {Error: nil}, {Error: apiservertesting.ServerError("invalid ssh key: invalid-key")}, }, }) s.assertEnvironKeys(c, append(initialKeys, newKey)) }
func (s *keyManagerSuite) TestImportKeys(c *gc.C) { s.PatchValue(&keymanager.RunSSHImportId, keymanagertesting.FakeImport) key1 := sshtesting.ValidKeyOne.Key + " user@host" key2 := sshtesting.ValidKeyTwo.Key key3 := sshtesting.ValidKeyThree.Key initialKeys := []string{key1, key2, "bad key"} s.setAuthorisedKeys(c, strings.Join(initialKeys, "\n")) args := params.ModifyUserSSHKeys{ User: state.AdminUser, Keys: []string{"lp:existing", "lp:validuser", "invalid-key"}, } results, err := s.keymanager.ImportKeys(args) c.Assert(err, gc.IsNil) c.Assert(results, gc.DeepEquals, params.ErrorResults{ Results: []params.ErrorResult{ {Error: apiservertesting.ServerError(fmt.Sprintf("duplicate ssh key: %s", key2))}, {Error: nil}, {Error: apiservertesting.ServerError("invalid ssh key id: invalid-key")}, }, }) s.assertEnvironKeys(c, append(initialKeys, key3)) }