github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/cmd/juju/machine/show_test.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for info. 3 4 package machine_test 5 6 import ( 7 "github.com/juju/cmd" 8 "github.com/juju/cmd/cmdtesting" 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 12 "github.com/juju/juju/cmd/juju/machine" 13 "github.com/juju/juju/testing" 14 ) 15 16 type MachineShowCommandSuite struct { 17 testing.FakeJujuXDGDataHomeSuite 18 } 19 20 var _ = gc.Suite(&MachineShowCommandSuite{}) 21 22 func newMachineShowCommand() cmd.Command { 23 return machine.NewShowCommandForTest(&fakeStatusAPI{}) 24 } 25 26 func (s *MachineShowCommandSuite) SetUpTest(c *gc.C) { 27 s.FakeJujuXDGDataHomeSuite.SetUpTest(c) 28 } 29 30 func (s *MachineShowCommandSuite) TestShowMachine(c *gc.C) { 31 context, err := cmdtesting.RunCommand(c, newMachineShowCommand()) 32 c.Assert(err, jc.ErrorIsNil) 33 // TODO(macgreagoir) Spaces in dummyenv? 34 c.Assert(cmdtesting.Stdout(context), gc.Equals, ""+ 35 "model: dummyenv\n"+ 36 "machines:\n"+ 37 " \"0\":\n"+ 38 " juju-status:\n"+ 39 " current: started\n"+ 40 " dns-name: 10.0.0.1\n"+ 41 " ip-addresses:\n"+ 42 " - 10.0.0.1\n"+ 43 " - 10.0.1.1\n"+ 44 " instance-id: juju-badd06-0\n"+ 45 " series: trusty\n"+ 46 " network-interfaces:\n"+ 47 " eth0:\n"+ 48 " ip-addresses:\n"+ 49 " - 10.0.0.1\n"+ 50 " - 10.0.1.1\n"+ 51 " mac-address: aa:bb:cc:dd:ee:ff\n"+ 52 " is-up: true\n"+ 53 " constraints: mem=3584M\n"+ 54 " hardware: availability-zone=us-east-1\n"+ 55 " \"1\":\n"+ 56 " juju-status:\n"+ 57 " current: started\n"+ 58 " dns-name: 10.0.0.2\n"+ 59 " ip-addresses:\n"+ 60 " - 10.0.0.2\n"+ 61 " - 10.0.1.2\n"+ 62 " instance-id: juju-badd06-1\n"+ 63 " series: trusty\n"+ 64 " network-interfaces:\n"+ 65 " eth0:\n"+ 66 " ip-addresses:\n"+ 67 " - 10.0.0.2\n"+ 68 " - 10.0.1.2\n"+ 69 " mac-address: aa:bb:cc:dd:ee:ff\n"+ 70 " is-up: true\n"+ 71 " containers:\n"+ 72 " 1/lxd/0:\n"+ 73 " juju-status:\n"+ 74 " current: pending\n"+ 75 " dns-name: 10.0.0.3\n"+ 76 " ip-addresses:\n"+ 77 " - 10.0.0.3\n"+ 78 " - 10.0.1.3\n"+ 79 " instance-id: juju-badd06-1-lxd-0\n"+ 80 " series: trusty\n"+ 81 " network-interfaces:\n"+ 82 " eth0:\n"+ 83 " ip-addresses:\n"+ 84 " - 10.0.0.3\n"+ 85 " - 10.0.1.3\n"+ 86 " mac-address: aa:bb:cc:dd:ee:ff\n"+ 87 " is-up: true\n"+ 88 " lxd-profiles:\n"+ 89 " lxd-profile-name:\n"+ 90 " config:\n"+ 91 " environment.http_proxy: \"\"\n"+ 92 " description: lxd-profile description\n"+ 93 " devices:\n"+ 94 " tun:\n"+ 95 " path: /dev/net/tun\n"+ 96 " type: unix-char\n", 97 ) 98 } 99 func (s *MachineShowCommandSuite) TestShowSingleMachine(c *gc.C) { 100 context, err := cmdtesting.RunCommand(c, newMachineShowCommand(), "0") 101 c.Assert(err, jc.ErrorIsNil) 102 // TODO(macgreagoir) Spaces in dummyenv? 103 c.Assert(cmdtesting.Stdout(context), gc.Equals, ""+ 104 "model: dummyenv\n"+ 105 "machines:\n"+ 106 " \"0\":\n"+ 107 " juju-status:\n"+ 108 " current: started\n"+ 109 " dns-name: 10.0.0.1\n"+ 110 " ip-addresses:\n"+ 111 " - 10.0.0.1\n"+ 112 " - 10.0.1.1\n"+ 113 " instance-id: juju-badd06-0\n"+ 114 " series: trusty\n"+ 115 " network-interfaces:\n"+ 116 " eth0:\n"+ 117 " ip-addresses:\n"+ 118 " - 10.0.0.1\n"+ 119 " - 10.0.1.1\n"+ 120 " mac-address: aa:bb:cc:dd:ee:ff\n"+ 121 " is-up: true\n"+ 122 " constraints: mem=3584M\n"+ 123 " hardware: availability-zone=us-east-1\n") 124 } 125 126 func (s *MachineShowCommandSuite) TestShowTabularMachine(c *gc.C) { 127 context, err := cmdtesting.RunCommand(c, newMachineShowCommand(), "--format", "tabular", "0", "1") 128 c.Assert(err, jc.ErrorIsNil) 129 c.Assert(cmdtesting.Stdout(context), gc.Equals, ""+ 130 "Machine State DNS Inst id Series AZ Message\n"+ 131 "0 started 10.0.0.1 juju-badd06-0 trusty us-east-1 \n"+ 132 "1 started 10.0.0.2 juju-badd06-1 trusty \n"+ 133 "1/lxd/0 pending 10.0.0.3 juju-badd06-1-lxd-0 trusty \n"+ 134 "\n") 135 } 136 137 func (s *MachineShowCommandSuite) TestShowJsonMachine(c *gc.C) { 138 context, err := cmdtesting.RunCommand(c, newMachineShowCommand(), "--format", "json", "0", "1") 139 c.Assert(err, jc.ErrorIsNil) 140 // TODO(macgreagoir) Spaces in dummyenv? 141 c.Assert(cmdtesting.Stdout(context), gc.Equals, ""+ 142 "{\"model\":\"dummyenv\",\"machines\":{\"0\":{\"juju-status\":{\"current\":\"started\"},\"dns-name\":\"10.0.0.1\",\"ip-addresses\":[\"10.0.0.1\",\"10.0.1.1\"],\"instance-id\":\"juju-badd06-0\",\"machine-status\":{},\"series\":\"trusty\",\"network-interfaces\":{\"eth0\":{\"ip-addresses\":[\"10.0.0.1\",\"10.0.1.1\"],\"mac-address\":\"aa:bb:cc:dd:ee:ff\",\"is-up\":true}},\"constraints\":\"mem=3584M\",\"hardware\":\"availability-zone=us-east-1\"},\"1\":{\"juju-status\":{\"current\":\"started\"},\"dns-name\":\"10.0.0.2\",\"ip-addresses\":[\"10.0.0.2\",\"10.0.1.2\"],\"instance-id\":\"juju-badd06-1\",\"machine-status\":{},\"series\":\"trusty\",\"network-interfaces\":{\"eth0\":{\"ip-addresses\":[\"10.0.0.2\",\"10.0.1.2\"],\"mac-address\":\"aa:bb:cc:dd:ee:ff\",\"is-up\":true}},\"containers\":{\"1/lxd/0\":{\"juju-status\":{\"current\":\"pending\"},\"dns-name\":\"10.0.0.3\",\"ip-addresses\":[\"10.0.0.3\",\"10.0.1.3\"],\"instance-id\":\"juju-badd06-1-lxd-0\",\"machine-status\":{},\"series\":\"trusty\",\"network-interfaces\":{\"eth0\":{\"ip-addresses\":[\"10.0.0.3\",\"10.0.1.3\"],\"mac-address\":\"aa:bb:cc:dd:ee:ff\",\"is-up\":true}}}},\"lxd-profiles\":{\"lxd-profile-name\":{\"config\":{\"environment.http_proxy\":\"\"},\"description\":\"lxd-profile description\",\"devices\":{\"tun\":{\"path\":\"/dev/net/tun\",\"type\":\"unix-char\"}}}}}}}\n") 143 }