~juju-qa/ubuntu/xenial/juju/2.0-rc2

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/core/description/model.go

  • Committer: Nicholas Skaggs
  • Date: 2016-09-30 14:39:30 UTC
  • mfrom: (1.8.1)
  • Revision ID: nicholas.skaggs@canonical.com-20160930143930-vwwhrefh6ftckccy
import upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
        m.setSubnets(nil)
51
51
        m.setIPAddresses(nil)
52
52
        m.setSSHHostKeys(nil)
 
53
        m.setCloudImageMetadatas(nil)
53
54
        m.setActions(nil)
54
55
        m.setVolumes(nil)
55
56
        m.setFilesystems(nil)
122
123
        Applications_     applications     `yaml:"applications"`
123
124
        Relations_        relations        `yaml:"relations"`
124
125
        Spaces_           spaces           `yaml:"spaces"`
125
 
        LinkLayerDevices_ linklayerdevices `yaml:"linklayerdevices"`
126
 
        IPAddresses_      ipaddresses      `yaml:"ipaddresses"`
 
126
        LinkLayerDevices_ linklayerdevices `yaml:"link-layer-devices"`
 
127
        IPAddresses_      ipaddresses      `yaml:"ip-addresses"`
127
128
        Subnets_          subnets          `yaml:"subnets"`
128
 
        Actions_          actions          `yaml:"actions"`
129
 
 
130
 
        SSHHostKeys_ sshHostKeys `yaml:"sshhostkeys"`
 
129
 
 
130
        CloudImageMetadata_ cloudimagemetadataset `yaml:"cloud-image-metadata"`
 
131
 
 
132
        Actions_ actions `yaml:"actions"`
 
133
 
 
134
        SSHHostKeys_ sshHostKeys `yaml:"ssh-host-keys"`
131
135
 
132
136
        Sequences_ map[string]int `yaml:"sequences"`
133
137
 
406
410
        }
407
411
}
408
412
 
 
413
// CloudImageMetadatas implements Model.
 
414
func (m *model) CloudImageMetadata() []CloudImageMetadata {
 
415
        var result []CloudImageMetadata
 
416
        for _, addr := range m.CloudImageMetadata_.CloudImageMetadata_ {
 
417
                result = append(result, addr)
 
418
        }
 
419
        return result
 
420
}
 
421
 
409
422
// Actions implements Model.
410
423
func (m *model) Actions() []Action {
411
424
        var result []Action
415
428
        return result
416
429
}
417
430
 
 
431
// AddCloudImageMetadata implements Model.
 
432
func (m *model) AddCloudImageMetadata(args CloudImageMetadataArgs) CloudImageMetadata {
 
433
        addr := newCloudImageMetadata(args)
 
434
        m.CloudImageMetadata_.CloudImageMetadata_ = append(m.CloudImageMetadata_.CloudImageMetadata_, addr)
 
435
        return addr
 
436
}
 
437
 
 
438
func (m *model) setCloudImageMetadatas(cloudimagemetadataList []*cloudimagemetadata) {
 
439
        m.CloudImageMetadata_ = cloudimagemetadataset{
 
440
                Version:             1,
 
441
                CloudImageMetadata_: cloudimagemetadataList,
 
442
        }
 
443
}
 
444
 
418
445
// AddAction implements Model.
419
446
func (m *model) AddAction(args ActionArgs) Action {
420
447
        addr := newAction(args)
866
893
 
867
894
func importModelV1(source map[string]interface{}) (*model, error) {
868
895
        fields := schema.Fields{
869
 
                "owner":            schema.String(),
870
 
                "cloud":            schema.String(),
871
 
                "cloud-region":     schema.String(),
872
 
                "config":           schema.StringMap(schema.Any()),
873
 
                "latest-tools":     schema.String(),
874
 
                "blocks":           schema.StringMap(schema.String()),
875
 
                "users":            schema.StringMap(schema.Any()),
876
 
                "machines":         schema.StringMap(schema.Any()),
877
 
                "applications":     schema.StringMap(schema.Any()),
878
 
                "relations":        schema.StringMap(schema.Any()),
879
 
                "sshhostkeys":      schema.StringMap(schema.Any()),
880
 
                "actions":          schema.StringMap(schema.Any()),
881
 
                "ipaddresses":      schema.StringMap(schema.Any()),
882
 
                "spaces":           schema.StringMap(schema.Any()),
883
 
                "subnets":          schema.StringMap(schema.Any()),
884
 
                "linklayerdevices": schema.StringMap(schema.Any()),
885
 
                "volumes":          schema.StringMap(schema.Any()),
886
 
                "filesystems":      schema.StringMap(schema.Any()),
887
 
                "storages":         schema.StringMap(schema.Any()),
888
 
                "storage-pools":    schema.StringMap(schema.Any()),
889
 
                "sequences":        schema.StringMap(schema.Int()),
 
896
                "owner":                schema.String(),
 
897
                "cloud":                schema.String(),
 
898
                "cloud-region":         schema.String(),
 
899
                "config":               schema.StringMap(schema.Any()),
 
900
                "latest-tools":         schema.String(),
 
901
                "blocks":               schema.StringMap(schema.String()),
 
902
                "users":                schema.StringMap(schema.Any()),
 
903
                "machines":             schema.StringMap(schema.Any()),
 
904
                "applications":         schema.StringMap(schema.Any()),
 
905
                "relations":            schema.StringMap(schema.Any()),
 
906
                "ssh-host-keys":        schema.StringMap(schema.Any()),
 
907
                "cloud-image-metadata": schema.StringMap(schema.Any()),
 
908
                "actions":              schema.StringMap(schema.Any()),
 
909
                "ip-addresses":         schema.StringMap(schema.Any()),
 
910
                "spaces":               schema.StringMap(schema.Any()),
 
911
                "subnets":              schema.StringMap(schema.Any()),
 
912
                "link-layer-devices":   schema.StringMap(schema.Any()),
 
913
                "volumes":              schema.StringMap(schema.Any()),
 
914
                "filesystems":          schema.StringMap(schema.Any()),
 
915
                "storages":             schema.StringMap(schema.Any()),
 
916
                "storage-pools":        schema.StringMap(schema.Any()),
 
917
                "sequences":            schema.StringMap(schema.Int()),
890
918
        }
891
919
        // Some values don't have to be there.
892
920
        defaults := schema.Defaults{
979
1007
        }
980
1008
        result.setSpaces(spaces)
981
1009
 
982
 
        deviceMap := valid["linklayerdevices"].(map[string]interface{})
 
1010
        deviceMap := valid["link-layer-devices"].(map[string]interface{})
983
1011
        devices, err := importLinkLayerDevices(deviceMap)
984
1012
        if err != nil {
985
 
                return nil, errors.Annotate(err, "linklayerdevices")
 
1013
                return nil, errors.Annotate(err, "link-layer-devices")
986
1014
        }
987
1015
        result.setLinkLayerDevices(devices)
988
1016
 
993
1021
        }
994
1022
        result.setSubnets(subnets)
995
1023
 
996
 
        addressMap := valid["ipaddresses"].(map[string]interface{})
 
1024
        addressMap := valid["ip-addresses"].(map[string]interface{})
997
1025
        addresses, err := importIPAddresses(addressMap)
998
1026
        if err != nil {
999
 
                return nil, errors.Annotate(err, "ipaddresses")
 
1027
                return nil, errors.Annotate(err, "ip-addresses")
1000
1028
        }
1001
1029
        result.setIPAddresses(addresses)
1002
1030
 
1003
 
        sshHostKeyMap := valid["sshhostkeys"].(map[string]interface{})
 
1031
        sshHostKeyMap := valid["ssh-host-keys"].(map[string]interface{})
1004
1032
        hostKeys, err := importSSHHostKeys(sshHostKeyMap)
1005
1033
        if err != nil {
1006
 
                return nil, errors.Annotate(err, "sshhostkeys")
 
1034
                return nil, errors.Annotate(err, "ssh-host-keys")
1007
1035
        }
1008
1036
        result.setSSHHostKeys(hostKeys)
1009
1037
 
 
1038
        cloudimagemetadataMap := valid["cloud-image-metadata"].(map[string]interface{})
 
1039
        cloudimagemetadata, err := importCloudImageMetadata(cloudimagemetadataMap)
 
1040
        if err != nil {
 
1041
                return nil, errors.Annotate(err, "cloud-image-metadata")
 
1042
        }
 
1043
        result.setCloudImageMetadatas(cloudimagemetadata)
 
1044
 
1010
1045
        actionsMap := valid["actions"].(map[string]interface{})
1011
1046
        actions, err := importActions(actionsMap)
1012
1047
        if err != nil {