Merge lp:~gz/juju-core/maas_list_networks into lp:~go-bot/juju-core/trunk
Proposed by
Martin Packman
Status: | Merged |
---|---|
Approved by: | Martin Packman |
Approved revision: | no longer in the source branch. |
Merged at revision: | 2529 |
Proposed branch: | lp:~gz/juju-core/maas_list_networks |
Merge into: | lp:~go-bot/juju-core/trunk |
Diff against target: |
118 lines (+74/-1) 3 files modified
dependencies.tsv (+1/-1) provider/maas/environ.go (+57/-0) provider/maas/environ_whitebox_test.go (+16/-0) |
To merge this branch: | bzr merge lp:~gz/juju-core/maas_list_networks |
Related bugs: | |
Related blueprints: |
Support MaaS VLANs in Juju
(Essential)
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Juju Engineering | Pending | ||
Review via email: mp+213498@code.launchpad.net |
Commit message
provider/maas: Added GetNetworkList
Added GetNetworkList to MAAS Provider, this makes it possible
to obtain a list of networks associated to a given MAAS node.
This branch depends on a change to launchpad.
that adds the required capabilities to the TestServer used
in the test suite.
https:/
R=dimitern
Description of the change
provider/maas: Added GetNetworkList
Added GetNetworkList to MAAS Provider, this makes it possible
to obtain a list of networks associated to a given MAAS node.
This branch depends on a change to launchpad.
that adds the required capabilities to the TestServer used
in the test suite.
To post a comment you must log in.
Reviewers: mp+213498_ code.launchpad. net,
Message:
Please take a look.
Description:
provider/maas: Added GetNetworkList
Added GetNetworkList to MAAS Provider, this makes it possible net/gomaasapi
to obtain a list of networks associated to a given MAAS node.
This branch depends on a change to launchpad.
that adds the required capabilities to the TestServer used
in the test suite.
https:/ /code.launchpad .net/~gz/ juju-core/ maas_list_ networks/ +merge/ 213498
(do not edit description out of merge proposal)
Please review this at https:/ /codereview. appspot. com/82690043/
Affected files (+75, -0 lines): maas/environ. go maas/environ_ whitebox_ test.go
A [revision details]
M provider/
M provider/
Index: [revision details] 20140326134028- hrndljlldotkzw2 j
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision: tarmac-
+New revision: <email address hidden>
Index: provider/ maas/environ. go maas/environ. go' maas/environ. go 2014-03-25 12:07:45 +0000 maas/environ. go 2014-03-28 19:03:16 +0000 .DataSource{ NewStorageSimpl eStreamsDataSou rce("cloud storage", e.Storage(), BaseToolsPath) }, nil (inst instance.Instance) etails, error) { maasInstance) ().GetSubObject ("networks" ) GetField( "system_ id") CallGet( "", params) MAASObject, name string) (val string) GetField( name) MAASNetworkDeta ils, len(jsonNets)) GetMAASObject( )
=== modified file 'provider/
--- provider/
+++ provider/
@@ -484,3 +484,60 @@
return []simplestreams
storage.
storage.
}
+
+type MAASNetworkDetails struct {
+ Name string
+ Ip string
+ NetworkMask string
+ VlanTag string
+ Description string
+}
+
+// GetNetworksList returns a list of strings which contain networks for a
gien maas node instance.
+func (e *maasEnviron) GetNetworksList
([]MAASNetworkD
+ maasInst := inst.(*
+ maasObj := maasInst.maasObject
+ networksClient := e.getMAASClient
+ system_id, err := maasObj.
+ if err != nil {
+ return nil, err
+ }
+ params := url.Values{"node": {system_id}}
+ json, err := networksClient.
+ if err != nil {
+ return nil, err
+ }
+ jsonNets, err := json.GetArray()
+ if err != nil {
+ return nil, err
+ }
+ var attributeError error
+ getField := func(maasNet *gomaasapi.
{
+ if attributeError != nil {
+ return
+ }
+ val, attributeError = maasNet.
+ if attributeError != nil {
+ attributeError = fmt.Errorf("cannot get %q: %v", name, attributeError)
+ }
+ return val
+ }
+ networks := make([]
+ for i, jsonNet := range jsonNets {
+ maasNet, err := jsonNet.
+ if err != nil {
+ return nil, err
+ }
+ networks[i] = MAASNetworkDetails{
+ Name: getField(&maasNet, "name"),
+ Ip: getField(&maasNet, "ip"),
+ NetworkMask: getField(&maasNet, "netmask"),
+ VlanTag: getField(&maasNet, "vlan_tag"),
+ Description: getField(&maasNet, "description"),
+ }
+ }
+ if attributeError != nil {
+ return nil, attributeError
+ }
+ return networks, attributeError
+}
Index: provider/ maas/environ_ whitebox_ test.go maas/environ_ whitebox_ test.go' maas/environ_ whitebox_ test.go 2014-03-25 ...
=== modified file 'provider/
--- provider/