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  }