Example #1
0
func (s *systemSSHKeyReduxSuite) TestReduxIdempotent(c *gc.C) {
	err := upgrades.EnsureSystemSSHKeyRedux(s.ctx)
	c.Assert(err, jc.ErrorIsNil)

	privateKey, err := ioutil.ReadFile(s.keyFile())
	c.Assert(err, jc.ErrorIsNil)

	err = upgrades.EnsureSystemSSHKeyRedux(s.ctx)
	c.Assert(err, jc.ErrorIsNil)

	// Ensure we haven't generated the key again a second time.
	privateKey2, err := ioutil.ReadFile(s.keyFile())
	c.Assert(err, jc.ErrorIsNil)
	c.Assert(privateKey, gc.DeepEquals, privateKey2)
}
Example #2
0
func (s *systemSSHKeyReduxSuite) TestReduxUpdatesAgentConfig(c *gc.C) {
	err := upgrades.EnsureSystemSSHKeyRedux(s.ctx)
	c.Assert(err, jc.ErrorIsNil)

	info, _ := s.ctx.AgentConfig().StateServingInfo()
	c.Assert(info.SystemIdentity, gc.Not(gc.Equals), "")
}
Example #3
0
func (s *systemSSHKeyReduxSuite) TestReduxSystemKeyCreated(c *gc.C) {
	err := upgrades.EnsureSystemSSHKeyRedux(s.ctx)
	c.Assert(err, jc.ErrorIsNil)
	s.assertKeyCreation(c)

	// Config authorized keys should be unaltered.
	cfg, err := s.JujuConnSuite.State.EnvironConfig()
	c.Assert(err, jc.ErrorIsNil)
	c.Assert(cfg.AuthorizedKeys(), gc.Equals, testing.FakeAuthKeys)
}
Example #4
0
func (s *systemSSHKeyReduxSuite) TestReduxExistsOnDisk(c *gc.C) {
	err := ioutil.WriteFile(s.keyFile(), []byte("ssh-private-key"), 0600)
	c.Assert(err, jc.ErrorIsNil)

	err = upgrades.EnsureSystemSSHKeyRedux(s.ctx)
	c.Assert(err, jc.ErrorIsNil)

	info, err := s.State.StateServingInfo()
	c.Assert(err, jc.ErrorIsNil)
	c.Assert(info.SystemIdentity, gc.Equals, "ssh-private-key")
}
Example #5
0
func (s *systemSSHKeyReduxSuite) TestReduxExistsInStateServingInfo(c *gc.C) {
	err := state.SetSystemIdentity(s.State, "ssh-private-key")
	c.Assert(err, jc.ErrorIsNil)

	err = upgrades.EnsureSystemSSHKeyRedux(s.ctx)
	c.Assert(err, jc.ErrorIsNil)

	info, err := s.State.StateServingInfo()
	c.Assert(err, jc.ErrorIsNil)
	c.Assert(info.SystemIdentity, gc.Equals, "ssh-private-key")
}
Example #6
0
func (s *updateAuthKeysSuite) SetUpTest(c *gc.C) {
	s.JujuConnSuite.SetUpTest(c)

	mockAgent := &mockAgentConfig{dataDir: s.DataDir()}
	// The ensure system ssh redux has already run.
	err := upgrades.EnsureSystemSSHKeyRedux(&mockContext{
		agentConfig: mockAgent,
		state:       s.State,
	})
	c.Assert(err, jc.ErrorIsNil)
	s.systemIdentity = s.assertKeyCreation(c)

	apiState, _ := s.OpenAPIAsNewMachine(c, state.JobManageEnviron)
	s.ctx = &mockContext{
		agentConfig: mockAgent,
		apiState:    apiState,
	}
	// Bootstrap adds juju-system-key; remove it.
	err = s.State.UpdateEnvironConfig(map[string]interface{}{
		"authorized-keys": testing.FakeAuthKeys,
	}, nil, nil)
	c.Assert(err, jc.ErrorIsNil)
}