diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 08066caac1c..99a202b1dd8 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -64,6 +64,8 @@ https://github.com/elastic/beats/compare/v6.0.0-beta2...master[Check the HEAD di - Fix the fetching of process information when some data is missing under MacOS X. {issue}5337[5337] - Change `MySQL active connections` visualization title to `MySQL total connections`. {issue}4812[4812] - Fix map overwrite in docker diskio module. {issue}5582[5582] +- Fix error `datastore '*' not found` in Vsphere module. {issue}4879[4879] +- Fix error `NotAuthenticated` in Vsphere module. {issue}4673[4673] - Fix connection leak in mongodb module. {issue}5688[5688] *Packetbeat* diff --git a/NOTICE.txt b/NOTICE.txt index cc7386fdc25..39ebbd3bccd 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1134,7 +1134,7 @@ Apache License 2.0 -------------------------------------------------------------------- Dependency: github.com/google/uuid -Revision: 6a5e28554805e78ea6141142aba763936c4761c0 +Revision: 281f560d28af7174109514e936f94c2ab2cb2823 License type (autodetected): BSD 3-clause license ./metricbeat/module/vsphere/vendor/github.com/google/uuid/LICENSE: -------------------------------------------------------------------- @@ -3501,7 +3501,7 @@ Apache License 2.0 -------------------------------------------------------------------- Dependency: github.com/vmware/govmomi -Revision: 9bfdc5ce62c0585b48b154cc460f8664dcd124c3 +Revision: 2cad15190b417804d82edb4981e7b3e62907c4ee License type (autodetected): Apache License 2.0 ./metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/LICENSE.txt: -------------------------------------------------------------------- @@ -3510,7 +3510,7 @@ Apache License 2.0 -------------------------------------------------------------------- Dependency: github.com/vmware/govmomi/vim25/xml -Revision: 5072cda664c79ada30834d171d2ed1f76317d3b2 +Revision: 2cad15190b417804d82edb4981e7b3e62907c4ee License type (autodetected): BSD 3-clause license ./metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/LICENSE: -------------------------------------------------------------------- @@ -3542,15 +3542,6 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------- -Dependency: github.com/vmware/vic -Revision: a2b2afb419d70009cd4d0b58f37b1a095c58b526 -License type (autodetected): Apache License 2.0 -./metricbeat/module/vsphere/vendor/github.com/vmware/vic/LICENSE: --------------------------------------------------------------------- -Apache License 2.0 - - -------------------------------------------------------------------- Dependency: github.com/yuin/gopher-lua Revision: b402f3114ec730d8bddb074a6c137309f561aa78 diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 7db09e00b43..d8ed956b833 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -11287,14 +11287,6 @@ datastore -[float] -=== `vsphere.datastore.datacenter` - -type: keyword - -Datacenter name - - [float] === `vsphere.datastore.name` @@ -11358,14 +11350,6 @@ host -[float] -=== `vsphere.host.datacenter` - -type: keyword - -Datacenter name - - [float] === `vsphere.host.name` @@ -11436,11 +11420,11 @@ virtualmachine [float] -=== `vsphere.virtualmachine.datacenter` +=== `vsphere.virtualmachine.host` type: keyword -Datacenter name +Host name [float] diff --git a/metricbeat/docs/modules/vsphere.asciidoc b/metricbeat/docs/modules/vsphere.asciidoc index b7d936ae4d4..689a19662fb 100644 --- a/metricbeat/docs/modules/vsphere.asciidoc +++ b/metricbeat/docs/modules/vsphere.asciidoc @@ -31,6 +31,7 @@ metricbeat.modules: insecure: false # Get custom fields when using virtualmachine metric set. Default false. # get_custom_fields: false + ---- [float] diff --git a/metricbeat/metricbeat.reference.yml b/metricbeat/metricbeat.reference.yml index 0dcae707814..fbe7d3976c1 100644 --- a/metricbeat/metricbeat.reference.yml +++ b/metricbeat/metricbeat.reference.yml @@ -461,6 +461,7 @@ metricbeat.modules: insecure: false # Get custom fields when using virtualmachine metric set. Default false. # get_custom_fields: false + #------------------------------- Windows Module ------------------------------ - module: windows diff --git a/metricbeat/module/vsphere/_meta/config.yml b/metricbeat/module/vsphere/_meta/config.yml index f305061defa..c53563791d0 100644 --- a/metricbeat/module/vsphere/_meta/config.yml +++ b/metricbeat/module/vsphere/_meta/config.yml @@ -9,3 +9,4 @@ insecure: false # Get custom fields when using virtualmachine metric set. Default false. # get_custom_fields: false + diff --git a/metricbeat/module/vsphere/datastore/_meta/data.json b/metricbeat/module/vsphere/datastore/_meta/data.json index 72135333786..31254240da3 100644 --- a/metricbeat/module/vsphere/datastore/_meta/data.json +++ b/metricbeat/module/vsphere/datastore/_meta/data.json @@ -25,9 +25,8 @@ "pct": 88 } }, - "datacenter": "ha-datacenter", "fstype": "local", "name": "LocalDS_0" } } -} \ No newline at end of file +} diff --git a/metricbeat/module/vsphere/datastore/_meta/fields.yml b/metricbeat/module/vsphere/datastore/_meta/fields.yml index f803641a727..f9545509cae 100644 --- a/metricbeat/module/vsphere/datastore/_meta/fields.yml +++ b/metricbeat/module/vsphere/datastore/_meta/fields.yml @@ -4,10 +4,6 @@ datastore release: beta fields: - - name: datacenter - type: keyword - description: > - Datacenter name - name: name type: keyword description: > diff --git a/metricbeat/module/vsphere/datastore/datastore.go b/metricbeat/module/vsphere/datastore/datastore.go index 6d0a971637f..594746d2ad2 100644 --- a/metricbeat/module/vsphere/datastore/datastore.go +++ b/metricbeat/module/vsphere/datastore/datastore.go @@ -8,13 +8,9 @@ import ( "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/metricbeat/mb" - "github.com/pkg/errors" "github.com/vmware/govmomi" - "github.com/vmware/govmomi/find" - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/view" "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" ) func init() { @@ -25,7 +21,8 @@ func init() { type MetricSet struct { mb.BaseMetricSet - Client *vim25.Client + HostURL *url.URL + Insecure bool } func New(base mb.BaseMetricSet) (mb.MetricSet, error) { @@ -48,80 +45,71 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { u.User = url.UserPassword(config.Username, config.Password) - c, err := govmomi.NewClient(context.TODO(), u, config.Insecure) - if err != nil { - return nil, err - } - return &MetricSet{ BaseMetricSet: base, - Client: c.Client, + HostURL: u, + Insecure: config.Insecure, }, nil } func (m *MetricSet) Fetch() ([]common.MapStr, error) { - f := find.NewFinder(m.Client, true) ctx, cancel := context.WithCancel(context.Background()) defer cancel() - // Get all data centers. - dcs, err := f.DatacenterList(ctx, "*") + events := []common.MapStr{} + + client, err := govmomi.NewClient(ctx, m.HostURL, m.Insecure) if err != nil { return nil, err } - var events []common.MapStr - for _, dc := range dcs { - f.SetDatacenter(dc) + defer client.Logout(ctx) - dss, err := f.DatastoreList(ctx, "*") - if err != nil { - return nil, errors.Wrap(err, "failed to get datastore list") - } + c := client.Client - pc := property.DefaultCollector(m.Client) + // Create a view of Datastore objects + mgr := view.NewManager(c) - // Convert datastores into list of references. - var refs []types.ManagedObjectReference - for _, ds := range dss { - refs = append(refs, ds.Reference()) - } + v, err := mgr.CreateContainerView(ctx, c.ServiceContent.RootFolder, []string{"Datastore"}, true) + if err != nil { + return nil, err + } - // Retrieve summary property. - var dst []mo.Datastore - err = pc.Retrieve(ctx, refs, []string{"summary"}, &dst) - if err != nil { - return nil, err - } + defer v.Destroy(ctx) - for _, ds := range dst { - var usedSpacePercent int64 - if ds.Summary.Capacity > 0 { - usedSpacePercent = 100 * (ds.Summary.Capacity - ds.Summary.FreeSpace) / ds.Summary.Capacity - } - usedSpaceBytes := ds.Summary.Capacity - ds.Summary.FreeSpace - - event := common.MapStr{ - "datacenter": dc.Name(), - "name": ds.Summary.Name, - "fstype": ds.Summary.Type, - "capacity": common.MapStr{ - "total": common.MapStr{ - "bytes": ds.Summary.Capacity, - }, - "free": common.MapStr{ - "bytes": ds.Summary.FreeSpace, - }, - "used": common.MapStr{ - "bytes": usedSpaceBytes, - "pct": usedSpacePercent, - }, - }, - } + // Retrieve summary property for all datastores + var dst []mo.Datastore + err = v.Retrieve(ctx, []string{"Datastore"}, []string{"summary"}, &dst) + if err != nil { + return nil, err + } - events = append(events, event) + for _, ds := range dst { + var usedSpacePercent int64 + if ds.Summary.Capacity > 0 { + usedSpacePercent = 100 * (ds.Summary.Capacity - ds.Summary.FreeSpace) / ds.Summary.Capacity } + usedSpaceBytes := ds.Summary.Capacity - ds.Summary.FreeSpace + + event := common.MapStr{ + "name": ds.Summary.Name, + "fstype": ds.Summary.Type, + "capacity": common.MapStr{ + "total": common.MapStr{ + "bytes": ds.Summary.Capacity, + }, + "free": common.MapStr{ + "bytes": ds.Summary.FreeSpace, + }, + "used": common.MapStr{ + "bytes": usedSpaceBytes, + "pct": usedSpacePercent, + }, + }, + } + + events = append(events, event) } return events, nil diff --git a/metricbeat/module/vsphere/datastore/datastore_test.go b/metricbeat/module/vsphere/datastore/datastore_test.go index c36fa3f42e1..3c2cb9de688 100644 --- a/metricbeat/module/vsphere/datastore/datastore_test.go +++ b/metricbeat/module/vsphere/datastore/datastore_test.go @@ -6,7 +6,7 @@ import ( mbtest "github.com/elastic/beats/metricbeat/mb/testing" "github.com/stretchr/testify/assert" - "github.com/vmware/vic/pkg/vsphere/simulator" + "github.com/vmware/govmomi/simulator" ) func TestFetchEventContents(t *testing.T) { @@ -28,7 +28,6 @@ func TestFetchEventContents(t *testing.T) { t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - assert.EqualValues(t, "ha-datacenter", event["datacenter"]) assert.EqualValues(t, "LocalDS_0", event["name"]) assert.EqualValues(t, "local", event["fstype"]) diff --git a/metricbeat/module/vsphere/host/_meta/data.json b/metricbeat/module/vsphere/host/_meta/data.json index 9c96c5a167f..e534f98aa65 100644 --- a/metricbeat/module/vsphere/host/_meta/data.json +++ b/metricbeat/module/vsphere/host/_meta/data.json @@ -24,7 +24,6 @@ "mhz": 67 } }, - "datacenter": "ha-datacenter", "memory": { "free": { "bytes": 2822230016 @@ -39,4 +38,4 @@ "name": "localhost.localdomain" } } -} \ No newline at end of file +} diff --git a/metricbeat/module/vsphere/host/_meta/fields.yml b/metricbeat/module/vsphere/host/_meta/fields.yml index f689e84a866..315a339c930 100644 --- a/metricbeat/module/vsphere/host/_meta/fields.yml +++ b/metricbeat/module/vsphere/host/_meta/fields.yml @@ -4,10 +4,6 @@ host release: beta fields: - - name: datacenter - type: keyword - description: > - Datacenter name - name: name type: keyword description: > diff --git a/metricbeat/module/vsphere/host/data.go b/metricbeat/module/vsphere/host/data.go index 4c45bca3cd3..5b8dc864255 100644 --- a/metricbeat/module/vsphere/host/data.go +++ b/metricbeat/module/vsphere/host/data.go @@ -6,15 +6,14 @@ import ( "github.com/vmware/govmomi/vim25/mo" ) -func eventMapping(hs mo.HostSystem, datacenterName string) common.MapStr { +func eventMapping(hs mo.HostSystem) common.MapStr { totalCpu := int64(hs.Summary.Hardware.CpuMhz) * int64(hs.Summary.Hardware.NumCpuCores) freeCpu := int64(totalCpu) - int64(hs.Summary.QuickStats.OverallCpuUsage) usedMemory := int64(hs.Summary.QuickStats.OverallMemoryUsage) * 1024 * 1024 freeMemory := int64(hs.Summary.Hardware.MemorySize) - usedMemory event := common.MapStr{ - "datacenter": datacenterName, - "name": hs.Summary.Config.Name, + "name": hs.Summary.Config.Name, "cpu": common.MapStr{ "used": common.MapStr{ "mhz": hs.Summary.QuickStats.OverallCpuUsage, diff --git a/metricbeat/module/vsphere/host/data_test.go b/metricbeat/module/vsphere/host/data_test.go index 0368d04598a..15e7a606467 100644 --- a/metricbeat/module/vsphere/host/data_test.go +++ b/metricbeat/module/vsphere/host/data_test.go @@ -28,10 +28,7 @@ func TestEventMapping(t *testing.T) { }, } - event := eventMapping(HostSystemTest, "test") - - datacenter, _ := event.GetValue("datacenter") - assert.EqualValues(t, "test", datacenter) + event := eventMapping(HostSystemTest) cpuUsed, _ := event.GetValue("cpu.used.mhz") assert.EqualValues(t, 67, cpuUsed) diff --git a/metricbeat/module/vsphere/host/host.go b/metricbeat/module/vsphere/host/host.go index b5ced80f088..a9ace046704 100644 --- a/metricbeat/module/vsphere/host/host.go +++ b/metricbeat/module/vsphere/host/host.go @@ -8,13 +8,9 @@ import ( "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/metricbeat/mb" - "github.com/pkg/errors" "github.com/vmware/govmomi" - "github.com/vmware/govmomi/find" - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/view" "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" ) func init() { @@ -25,7 +21,8 @@ func init() { type MetricSet struct { mb.BaseMetricSet - Client *vim25.Client + HostURL *url.URL + Insecure bool } func New(base mb.BaseMetricSet) (mb.MetricSet, error) { @@ -48,87 +45,78 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { u.User = url.UserPassword(config.Username, config.Password) - c, err := govmomi.NewClient(context.TODO(), u, config.Insecure) - if err != nil { - return nil, err - } - return &MetricSet{ BaseMetricSet: base, - Client: c.Client, + HostURL: u, + Insecure: config.Insecure, }, nil } func (m *MetricSet) Fetch() ([]common.MapStr, error) { - f := find.NewFinder(m.Client, true) ctx, cancel := context.WithCancel(context.Background()) defer cancel() - // Get all data centers. - dcs, err := f.DatacenterList(ctx, "*") + events := []common.MapStr{} + + client, err := govmomi.NewClient(ctx, m.HostURL, m.Insecure) if err != nil { return nil, err } - events := []common.MapStr{} - for _, dc := range dcs { - f.SetDatacenter(dc) + defer client.Logout(ctx) - hss, err := f.HostSystemList(ctx, "*") - if err != nil { - return nil, errors.Wrap(err, "failed to get hostsystem list") - } + c := client.Client - pc := property.DefaultCollector(m.Client) + // Create a view of HostSystem objects. + mgr := view.NewManager(c) - // Convert hosts into list of references. - var refs []types.ManagedObjectReference - for _, hs := range hss { - refs = append(refs, hs.Reference()) - } + v, err := mgr.CreateContainerView(ctx, c.ServiceContent.RootFolder, []string{"HostSystem"}, true) + if err != nil { + return nil, err + } - // Retrieve summary property (HostListSummary). - var hst []mo.HostSystem - err = pc.Retrieve(ctx, refs, []string{"summary"}, &hst) - if err != nil { - return nil, err - } + defer v.Destroy(ctx) + + // Retrieve summary property for all hosts. + var hst []mo.HostSystem + err = v.Retrieve(ctx, []string{"HostSystem"}, []string{"summary"}, &hst) + if err != nil { + return nil, err + } + + for _, hs := range hst { + totalCPU := int64(hs.Summary.Hardware.CpuMhz) * int64(hs.Summary.Hardware.NumCpuCores) + freeCPU := int64(totalCPU) - int64(hs.Summary.QuickStats.OverallCpuUsage) + freeMemory := int64(hs.Summary.Hardware.MemorySize) - (int64(hs.Summary.QuickStats.OverallMemoryUsage) * 1024 * 1024) - for _, hs := range hst { - totalCpu := int64(hs.Summary.Hardware.CpuMhz) * int64(hs.Summary.Hardware.NumCpuCores) - freeCpu := int64(totalCpu) - int64(hs.Summary.QuickStats.OverallCpuUsage) - freeMemory := int64(hs.Summary.Hardware.MemorySize) - (int64(hs.Summary.QuickStats.OverallMemoryUsage) * 1024 * 1024) - - event := common.MapStr{ - "datacenter": dc.Name(), - "name": hs.Summary.Config.Name, - "cpu": common.MapStr{ - "used": common.MapStr{ - "mhz": hs.Summary.QuickStats.OverallCpuUsage, - }, - "total": common.MapStr{ - "mhz": totalCpu, - }, - "free": common.MapStr{ - "mhz": freeCpu, - }, + event := common.MapStr{ + "name": hs.Summary.Config.Name, + "cpu": common.MapStr{ + "used": common.MapStr{ + "mhz": hs.Summary.QuickStats.OverallCpuUsage, }, - "memory": common.MapStr{ - "used": common.MapStr{ - "bytes": (int64(hs.Summary.QuickStats.OverallMemoryUsage) * 1024 * 1024), - }, - "total": common.MapStr{ - "bytes": hs.Summary.Hardware.MemorySize, - }, - "free": common.MapStr{ - "bytes": freeMemory, - }, + "total": common.MapStr{ + "mhz": totalCPU, }, - } - - events = append(events, event) + "free": common.MapStr{ + "mhz": freeCPU, + }, + }, + "memory": common.MapStr{ + "used": common.MapStr{ + "bytes": (int64(hs.Summary.QuickStats.OverallMemoryUsage) * 1024 * 1024), + }, + "total": common.MapStr{ + "bytes": hs.Summary.Hardware.MemorySize, + }, + "free": common.MapStr{ + "bytes": freeMemory, + }, + }, } + + events = append(events, event) } return events, nil diff --git a/metricbeat/module/vsphere/host/host_test.go b/metricbeat/module/vsphere/host/host_test.go index 4ef1d42af72..f5722bac856 100644 --- a/metricbeat/module/vsphere/host/host_test.go +++ b/metricbeat/module/vsphere/host/host_test.go @@ -7,7 +7,7 @@ import ( mbtest "github.com/elastic/beats/metricbeat/mb/testing" "github.com/stretchr/testify/assert" - "github.com/vmware/vic/pkg/vsphere/simulator" + "github.com/vmware/govmomi/simulator" ) func TestFetchEventContents(t *testing.T) { @@ -31,7 +31,6 @@ func TestFetchEventContents(t *testing.T) { t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - assert.EqualValues(t, "ha-datacenter", event["datacenter"]) assert.EqualValues(t, "localhost.localdomain", event["name"]) cpu := event["cpu"].(common.MapStr) diff --git a/metricbeat/module/vsphere/vendor/github.com/google/uuid/uuid.go b/metricbeat/module/vsphere/vendor/github.com/google/uuid/uuid.go index b7b9ced315a..23161a86c08 100644 --- a/metricbeat/module/vsphere/vendor/github.com/google/uuid/uuid.go +++ b/metricbeat/module/vsphere/vendor/github.com/google/uuid/uuid.go @@ -176,7 +176,7 @@ func (v Variant) String() string { return fmt.Sprintf("BadVariant%d", int(v)) } -// SetRand sets the random number generator to r, which implents io.Reader. +// SetRand sets the random number generator to r, which implements io.Reader. // If r.Read returns an error when the package requests random data then // a panic will be issued. // diff --git a/metricbeat/module/vsphere/vendor/github.com/google/uuid/version1.go b/metricbeat/module/vsphere/vendor/github.com/google/uuid/version1.go index 22dc07cdcea..199a1ac6540 100644 --- a/metricbeat/module/vsphere/vendor/github.com/google/uuid/version1.go +++ b/metricbeat/module/vsphere/vendor/github.com/google/uuid/version1.go @@ -13,7 +13,7 @@ import ( // or SetNodeInterface then it will be set automatically. If the NodeID cannot // be set NewUUID returns nil. If clock sequence has not been set by // SetClockSequence then it will be set automatically. If GetTime fails to -// return the current NewUUID returns Nil and an error. +// return the current NewUUID returns nil and an error. // // In most cases, New should be used. func NewUUID() (UUID, error) { diff --git a/metricbeat/module/vsphere/vendor/github.com/google/uuid/version4.go b/metricbeat/module/vsphere/vendor/github.com/google/uuid/version4.go index 390dd2cad4a..74c4e6c9f5a 100644 --- a/metricbeat/module/vsphere/vendor/github.com/google/uuid/version4.go +++ b/metricbeat/module/vsphere/vendor/github.com/google/uuid/version4.go @@ -6,7 +6,7 @@ package uuid import "io" -// New is creates a new random UUID or panics. New is equivalent to +// New creates a new random UUID or panics. New is equivalent to // the expression // // uuid.Must(uuid.NewRandom()) @@ -19,7 +19,7 @@ func New() UUID { // The strength of the UUIDs is based on the strength of the crypto/rand // package. // -// A note about uniqueness derived from from the UUID Wikipedia entry: +// A note about uniqueness derived from the UUID Wikipedia entry: // // Randomly generated UUIDs have 122 random bits. One's annual risk of being // hit by a meteorite is estimated to be one chance in 17 billion, that diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CHANGELOG.md b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CHANGELOG.md index ea4dd68db02..2dc436bf18f 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CHANGELOG.md +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CHANGELOG.md @@ -1,5 +1,24 @@ # changelog +### 0.15.0 (2017-06-19) + +* WaitOptions.MaxWaitSeconds is now optional + +* Support removal of ExtraConfig entries + +* GuestPosixFileAttributes OwnerId and GroupId fields are now pointers, + rather than omitempty ints to allow chown with root uid:gid + +* Updated examples/ using view package + +* Add DatastoreFile.TailFunc method + +* Export VirtualMachine.FindSnapshot method + +* Add AuthorizationManager {Enable,Disable}Methods + +* Add PBM client + ### 0.14.0 (2017-04-08) * Add view.ContainerView type and methods diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTING.md b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTING.md index f87c6061029..f6645cbf4f1 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTING.md +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTING.md @@ -17,6 +17,16 @@ git remote add $USER git@github.com:$USER/govmomi.git git fetch $USER ``` +## Installing from source + +Compile the govmomi libraries and install govc using: + +``` shell +go install -v github.com/vmware/govmomi/govc +``` + +Note that **govc/build.sh** is only used for building release binaries. + ## Contribution flow This is a rough outline of what a contributor's workflow looks like: diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTORS b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTORS index 6afdb9f56f0..22630d95e51 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTORS +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTORS @@ -5,10 +5,14 @@ abrarshivani Alvaro Miranda +amandahla Amit Bathla Andrew Chin +aniketGslab Arran Walker +Aryeh Weinreb Austin Parker +Balu Dontu bastienbc Bob Killen Brad Fitzpatrick @@ -35,6 +39,7 @@ gthombare Hasan Mahmood Henrik Hodne Isaac Rodman +Ivan Porto Carrero Jason Kincl Jeremy Canady Louie Jiang @@ -48,6 +53,7 @@ Sergey Ignatov Steve Purcell Takaaki Furukawa Ted Zlatanov +Thibaut Ackermann Vadim Egorov Yang Yang Yuya Kusakabe diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/Makefile b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/Makefile index cbaa3624994..9886b45ceb5 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/Makefile +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/Makefile @@ -11,13 +11,19 @@ goimports: govet: @echo checking go vet... - @go tool vet -structtags=false -methods=false . + @go tool vet -structtags=false -methods=false $$(find . -mindepth 1 -maxdepth 1 -type d -not -name vendor) -test: +install: + go install -v github.com/vmware/govmomi/govc + go install -v github.com/vmware/govmomi/vcsim + +go-test: go test -v $(TEST_OPTS) ./... -install: - go install github.com/vmware/govmomi/govc +govc-test: install + (cd govc/test && ./vendor/github.com/sstephenson/bats/libexec/bats -t .) + +test: go-test govc-test doc: install ./govc/usage.sh > ./govc/USAGE.md diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/README.md b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/README.md index 7ebdf1b17c8..b5978ddb055 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/README.md +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/README.md @@ -23,7 +23,7 @@ The code in the `govmomi` package is a wrapper for the code that is generated fr It primarily provides convenience functions for working with the vSphere API. See [godoc.org][godoc] for documentation. -[apiref]:http://pubs.vmware.com/vsphere-60/index.jsp#com.vmware.wssdk.apiref.doc/right-pane.html +[apiref]:http://pubs.vmware.com/vsphere-6-5/index.jsp#com.vmware.wssdk.apiref.doc/right-pane.html [godoc]:http://godoc.org/github.com/vmware/govmomi [drone]:https://drone.io [dronesrc]:https://github.com/drone/drone diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/recurser.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/recurser.go index b62e93a6f82..806029568ee 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/recurser.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/recurser.go @@ -20,6 +20,7 @@ import ( "context" "os" "path" + "strings" "github.com/vmware/govmomi/list" "github.com/vmware/govmomi/object" @@ -177,6 +178,7 @@ func (r recurser) List(ctx context.Context, s *spec, root list.Element, parts [] return in, nil } + all := parts pattern := parts[0] parts = parts[1:] @@ -188,6 +190,12 @@ func (r recurser) List(ctx context.Context, s *spec, root list.Element, parts [] } if !matched { + matched = strings.HasSuffix(e.Path, path.Join(all...)) + if matched { + // name contains a '/' + out = append(out, e) + } + continue } diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease.go new file mode 100644 index 00000000000..2032380572b --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease.go @@ -0,0 +1,205 @@ +/* +Copyright (c) 2015-2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package nfc + +import ( + "context" + "errors" + "fmt" + "io" + + "github.com/vmware/govmomi/property" + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/progress" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type Lease struct { + types.ManagedObjectReference + + c *vim25.Client +} + +func NewLease(c *vim25.Client, ref types.ManagedObjectReference) *Lease { + return &Lease{ref, c} +} + +// Abort wraps methods.Abort +func (l *Lease) Abort(ctx context.Context, fault *types.LocalizedMethodFault) error { + req := types.HttpNfcLeaseAbort{ + This: l.Reference(), + Fault: fault, + } + + _, err := methods.HttpNfcLeaseAbort(ctx, l.c, &req) + if err != nil { + return err + } + + return nil +} + +// Complete wraps methods.Complete +func (l *Lease) Complete(ctx context.Context) error { + req := types.HttpNfcLeaseComplete{ + This: l.Reference(), + } + + _, err := methods.HttpNfcLeaseComplete(ctx, l.c, &req) + if err != nil { + return err + } + + return nil +} + +// GetManifest wraps methods.GetManifest +func (l *Lease) GetManifest(ctx context.Context) error { + req := types.HttpNfcLeaseGetManifest{ + This: l.Reference(), + } + + _, err := methods.HttpNfcLeaseGetManifest(ctx, l.c, &req) + if err != nil { + return err + } + + return nil +} + +// Progress wraps methods.Progress +func (l *Lease) Progress(ctx context.Context, percent int32) error { + req := types.HttpNfcLeaseProgress{ + This: l.Reference(), + Percent: percent, + } + + _, err := methods.HttpNfcLeaseProgress(ctx, l.c, &req) + if err != nil { + return err + } + + return nil +} + +type LeaseInfo struct { + types.HttpNfcLeaseInfo + + Items []FileItem +} + +func (l *Lease) newLeaseInfo(li *types.HttpNfcLeaseInfo, items []types.OvfFileItem) (*LeaseInfo, error) { + info := &LeaseInfo{ + HttpNfcLeaseInfo: *li, + } + + for _, device := range li.DeviceUrl { + u, err := l.c.ParseURL(device.Url) + if err != nil { + return nil, err + } + + if device.SslThumbprint != "" { + // TODO: prefer host management IP + l.c.SetThumbprint(u.Host, device.SslThumbprint) + } + + for _, item := range items { + if device.ImportKey == item.DeviceId { + info.Items = append(info.Items, NewFileItem(u, item)) + break + } + } + } + + return info, nil +} + +func (l *Lease) Wait(ctx context.Context, items []types.OvfFileItem) (*LeaseInfo, error) { + var lease mo.HttpNfcLease + + pc := property.DefaultCollector(l.c) + err := property.Wait(ctx, pc, l.Reference(), []string{"state", "info", "error"}, func(pc []types.PropertyChange) bool { + done := false + + for _, c := range pc { + if c.Val == nil { + continue + } + + switch c.Name { + case "error": + val := c.Val.(types.LocalizedMethodFault) + lease.Error = &val + done = true + case "info": + val := c.Val.(types.HttpNfcLeaseInfo) + lease.Info = &val + case "state": + lease.State = c.Val.(types.HttpNfcLeaseState) + if lease.State != types.HttpNfcLeaseStateInitializing { + done = true + } + } + } + + return done + }) + + if err != nil { + return nil, err + } + + if lease.State == types.HttpNfcLeaseStateReady { + return l.newLeaseInfo(lease.Info, items) + } + + if lease.Error != nil { + return nil, errors.New(lease.Error.LocalizedMessage) + } + + return nil, fmt.Errorf("unexpected nfc lease state: %s", lease.State) +} + +func (l *Lease) StartUpdater(ctx context.Context, info *LeaseInfo) *LeaseUpdater { + return newLeaseUpdater(ctx, l, info) +} + +func (l *Lease) Upload(ctx context.Context, item FileItem, f io.Reader, opts soap.Upload) error { + if opts.Progress == nil { + opts.Progress = item + } else { + opts.Progress = progress.Tee(item, opts.Progress) + } + + // Non-disk files (such as .iso) use the PUT method. + // Overwrite: t header is also required in this case (ovftool does the same) + if item.Create { + opts.Method = "PUT" + opts.Headers = map[string]string{ + "Overwrite": "t", + } + } else { + opts.Method = "POST" + opts.Type = "application/x-vnd.vmware-streamVmdk" + } + + return l.c.Upload(f, item.URL, &opts) +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease_updater.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease_updater.go new file mode 100644 index 00000000000..0b9757d3ee0 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease_updater.go @@ -0,0 +1,137 @@ +/* +Copyright (c) 2014-2015 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package nfc + +import ( + "context" + "log" + "net/url" + "sync" + "sync/atomic" + "time" + + "github.com/vmware/govmomi/vim25/progress" + "github.com/vmware/govmomi/vim25/types" +) + +type FileItem struct { + types.OvfFileItem + URL *url.URL + + ch chan progress.Report +} + +func NewFileItem(u *url.URL, item types.OvfFileItem) FileItem { + return FileItem{ + OvfFileItem: item, + URL: u, + ch: make(chan progress.Report), + } +} + +func (o FileItem) Sink() chan<- progress.Report { + return o.ch +} + +type LeaseUpdater struct { + lease *Lease + + pos int64 // Number of bytes + total int64 // Total number of bytes + + done chan struct{} // When lease updater should stop + + wg sync.WaitGroup // Track when update loop is done +} + +func newLeaseUpdater(ctx context.Context, lease *Lease, info *LeaseInfo) *LeaseUpdater { + l := LeaseUpdater{ + lease: lease, + + done: make(chan struct{}), + } + + for _, item := range info.Items { + l.total += item.Size + go l.waitForProgress(item) + } + + // Kickstart update loop + l.wg.Add(1) + go l.run() + + return &l +} + +func (l *LeaseUpdater) waitForProgress(item FileItem) { + var pos, total int64 + + total = item.Size + + for { + select { + case <-l.done: + return + case p, ok := <-item.ch: + // Return in case of error + if ok && p.Error() != nil { + return + } + + if !ok { + // Last element on the channel, add to total + atomic.AddInt64(&l.pos, total-pos) + return + } + + // Approximate progress in number of bytes + x := int64(float32(total) * (p.Percentage() / 100.0)) + atomic.AddInt64(&l.pos, x-pos) + pos = x + } + } +} + +func (l *LeaseUpdater) run() { + defer l.wg.Done() + + tick := time.NewTicker(2 * time.Second) + defer tick.Stop() + + for { + select { + case <-l.done: + return + case <-tick.C: + // From the vim api HttpNfcLeaseProgress(percent) doc, percent == + // "Completion status represented as an integer in the 0-100 range." + // Always report the current value of percent, as it will renew the + // lease even if the value hasn't changed or is 0. + percent := int32(float32(100*atomic.LoadInt64(&l.pos)) / float32(l.total)) + err := l.lease.Progress(context.TODO(), percent) + if err != nil { + log.Printf("NFC lease progress: %s", err) + return + } + } + } +} + +func (l *LeaseUpdater) Done() { + close(l.done) + l.wg.Wait() +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/authorization_manager_internal.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/authorization_manager_internal.go new file mode 100644 index 00000000000..4fa520f5add --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/authorization_manager_internal.go @@ -0,0 +1,86 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package object + +import ( + "context" + + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type DisabledMethodRequest struct { + Method string `xml:"method"` + Reason string `xml:"reasonId"` +} + +type disableMethodsRequest struct { + This types.ManagedObjectReference `xml:"_this"` + Entity []types.ManagedObjectReference `xml:"entity"` + Method []DisabledMethodRequest `xml:"method"` + Source string `xml:"sourceId"` + Scope bool `xml:"sessionScope,omitempty"` +} + +type disableMethodsBody struct { + Req *disableMethodsRequest `xml:"urn:internalvim25 DisableMethods,omitempty"` + Res interface{} `xml:"urn:vim25 DisableMethodsResponse,omitempty"` + Err *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *disableMethodsBody) Fault() *soap.Fault { return b.Err } + +func (m AuthorizationManager) DisableMethods(ctx context.Context, entity []types.ManagedObjectReference, method []DisabledMethodRequest, source string) error { + var reqBody, resBody disableMethodsBody + + reqBody.Req = &disableMethodsRequest{ + This: m.Reference(), + Entity: entity, + Method: method, + Source: source, + } + + return m.Client().RoundTrip(ctx, &reqBody, &resBody) +} + +type enableMethodsRequest struct { + This types.ManagedObjectReference `xml:"_this"` + Entity []types.ManagedObjectReference `xml:"entity"` + Method []string `xml:"method"` + Source string `xml:"sourceId"` +} + +type enableMethodsBody struct { + Req *enableMethodsRequest `xml:"urn:internalvim25 EnableMethods,omitempty"` + Res interface{} `xml:"urn:vim25 EnableMethodsResponse,omitempty"` + Err *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` +} + +func (b *enableMethodsBody) Fault() *soap.Fault { return b.Err } + +func (m AuthorizationManager) EnableMethods(ctx context.Context, entity []types.ManagedObjectReference, method []string, source string) error { + var reqBody, resBody enableMethodsBody + + reqBody.Req = &enableMethodsRequest{ + This: m.Reference(), + Entity: entity, + Method: method, + Source: source, + } + + return m.Client().RoundTrip(ctx, &reqBody, &resBody) +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/common.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/common.go index 52feeed6503..8f0a94ff68d 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/common.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/common.go @@ -80,11 +80,6 @@ func (c *Common) SetInventoryPath(p string) { func (c Common) ObjectName(ctx context.Context) (string, error) { var o mo.ManagedEntity - name := c.Name() - if name != "" { - return name, nil - } - err := c.Properties(ctx, c.Reference(), []string{"name"}, &o) if err != nil { return "", err diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file.go index 36c95234855..a73990f12cc 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file.go @@ -1,5 +1,5 @@ /* -Copyright (c) 2016 VMware, Inc. All Rights Reserved. +Copyright (c) 2016-2017 VMware, Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import ( "net/http" "os" "path" + "sync" "time" "github.com/vmware/govmomi/vim25/soap" @@ -232,8 +233,9 @@ func (f *DatastoreFile) get() (io.Reader, error) { return f.body, nil } -func lastIndexLines(s []byte, n *int) int64 { +func lastIndexLines(s []byte, line *int, include func(l int, m string) bool) (int64, bool) { i := len(s) - 1 + done := false for i > 0 { o := bytes.LastIndexByte(s[:i], '\n') @@ -241,18 +243,27 @@ func lastIndexLines(s []byte, n *int) int64 { break } - i = o - *n-- - if *n == 0 { + msg := string(s[o+1 : i+1]) + if !include(*line, msg) { + done = true break + } else { + i = o + *line++ } } - return int64(i) + return int64(i), done } // Tail seeks to the position of the last N lines of the file. func (f *DatastoreFile) Tail(n int) error { + return f.TailFunc(n, func(line int, _ string) bool { return n > line }) +} + +// TailFunc will seek backwards in the datastore file until it hits a line that does +// not satisfy the supplied `include` function. +func (f *DatastoreFile) TailFunc(lines int, include func(line int, message string) bool) error { // Read the file in reverse using bsize chunks const bsize = int64(1024 * 16) @@ -261,13 +272,14 @@ func (f *DatastoreFile) Tail(n int) error { return err } - if n == 0 { + if lines == 0 { return nil } chunk := int64(-1) buf := bytes.NewBuffer(make([]byte, 0, bsize)) + line := 0 for { var eof bool @@ -298,19 +310,19 @@ func (f *DatastoreFile) Tail(n int) error { } b := buf.Bytes() - idx := lastIndexLines(b, &n) + 1 + idx, done := lastIndexLines(b, &line, include) - if n == 0 { + if done { if chunk == -1 { // We found all N lines in the last chunk of the file. // The seek offset is also now at the current end of file. // Save this buffer to avoid another GET request when Read() is called. - buf.Next(int(idx)) + buf.Next(int(idx + 1)) f.buf = buf return nil } - if _, err = f.Seek(pos+idx, io.SeekStart); err != nil { + if _, err = f.Seek(pos+idx+1, io.SeekStart); err != nil { return err } @@ -336,6 +348,7 @@ type followDatastoreFile struct { r *DatastoreFile c chan struct{} i time.Duration + o sync.Once } // Read reads up to len(b) bytes from the DatastoreFile being followed. @@ -387,11 +400,15 @@ func (f *followDatastoreFile) Read(p []byte) (int, error) { // Close will stop Follow polling and close the underlying DatastoreFile. func (f *followDatastoreFile) Close() error { - close(f.c) + f.o.Do(func() { close(f.c) }) return nil } // Follow returns an io.ReadCloser to stream the file contents as data is appended. func (f *DatastoreFile) Follow(interval time.Duration) io.ReadCloser { - return &followDatastoreFile{f, make(chan struct{}), interval} + return &followDatastoreFile{ + r: f, + c: make(chan struct{}), + i: interval, + } } diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file_manager.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file_manager.go index 7164fbbed7d..e484368060e 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file_manager.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file_manager.go @@ -97,6 +97,25 @@ func (m *DatastoreFileManager) DeleteVirtualDisk(ctx context.Context, name strin return task.Wait(ctx) } +// Move dispatches to the appropriate Move method based on file name extension +func (m *DatastoreFileManager) Move(ctx context.Context, src string, dst string) error { + srcp := m.Path(src) + dstp := m.Path(dst) + + f := m.FileManager.MoveDatastoreFile + + if srcp.IsVMDK() { + f = m.VirtualDiskManager.MoveVirtualDisk + } + + task, err := f(ctx, srcp.String(), m.Datacenter, dstp.String(), m.Datacenter, m.Force) + if err != nil { + return err + } + + return task.Wait(ctx) +} + // Path converts path name to a DatastorePath func (m *DatastoreFileManager) Path(name string) *DatastorePath { var p DatastorePath diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_path.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_path.go index ea152103df5..1563ee1e11d 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_path.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_path.go @@ -18,6 +18,7 @@ package object import ( "fmt" + "path" "strings" ) @@ -63,3 +64,8 @@ func (p *DatastorePath) String() string { return strings.Join([]string{s, p.Path}, " ") } + +// IsVMDK returns true if Path has a ".vmdk" extension +func (p *DatastorePath) IsVMDK() bool { + return path.Ext(p.Path) == ".vmdk" +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/http_nfc_lease.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/http_nfc_lease.go deleted file mode 100644 index 3ca53558b3f..00000000000 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/http_nfc_lease.go +++ /dev/null @@ -1,143 +0,0 @@ -/* -Copyright (c) 2015 VMware, Inc. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package object - -import ( - "context" - "errors" - "fmt" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type HttpNfcLease struct { - Common -} - -func NewHttpNfcLease(c *vim25.Client, ref types.ManagedObjectReference) *HttpNfcLease { - return &HttpNfcLease{ - Common: NewCommon(c, ref), - } -} - -// HttpNfcLeaseAbort wraps methods.HttpNfcLeaseAbort -func (o HttpNfcLease) HttpNfcLeaseAbort(ctx context.Context, fault *types.LocalizedMethodFault) error { - req := types.HttpNfcLeaseAbort{ - This: o.Reference(), - Fault: fault, - } - - _, err := methods.HttpNfcLeaseAbort(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// HttpNfcLeaseComplete wraps methods.HttpNfcLeaseComplete -func (o HttpNfcLease) HttpNfcLeaseComplete(ctx context.Context) error { - req := types.HttpNfcLeaseComplete{ - This: o.Reference(), - } - - _, err := methods.HttpNfcLeaseComplete(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// HttpNfcLeaseGetManifest wraps methods.HttpNfcLeaseGetManifest -func (o HttpNfcLease) HttpNfcLeaseGetManifest(ctx context.Context) error { - req := types.HttpNfcLeaseGetManifest{ - This: o.Reference(), - } - - _, err := methods.HttpNfcLeaseGetManifest(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// HttpNfcLeaseProgress wraps methods.HttpNfcLeaseProgress -func (o HttpNfcLease) HttpNfcLeaseProgress(ctx context.Context, percent int32) error { - req := types.HttpNfcLeaseProgress{ - This: o.Reference(), - Percent: percent, - } - - _, err := methods.HttpNfcLeaseProgress(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -func (o HttpNfcLease) Wait(ctx context.Context) (*types.HttpNfcLeaseInfo, error) { - var lease mo.HttpNfcLease - - pc := property.DefaultCollector(o.c) - err := property.Wait(ctx, pc, o.Reference(), []string{"state", "info", "error"}, func(pc []types.PropertyChange) bool { - done := false - - for _, c := range pc { - if c.Val == nil { - continue - } - - switch c.Name { - case "error": - val := c.Val.(types.LocalizedMethodFault) - lease.Error = &val - done = true - case "info": - val := c.Val.(types.HttpNfcLeaseInfo) - lease.Info = &val - case "state": - lease.State = c.Val.(types.HttpNfcLeaseState) - if lease.State != types.HttpNfcLeaseStateInitializing { - done = true - } - } - } - - return done - }) - - if err != nil { - return nil, err - } - - if lease.State == types.HttpNfcLeaseStateReady { - return lease.Info, nil - } - - if lease.Error != nil { - return nil, errors.New(lease.Error.LocalizedMessage) - } - - return nil, fmt.Errorf("unexpected nfc lease state: %s", lease.State) -} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/network.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/network.go index a76b17d91c2..d1dc7ce01f6 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/network.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/network.go @@ -20,6 +20,7 @@ import ( "context" "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/types" ) @@ -34,12 +35,20 @@ func NewNetwork(c *vim25.Client, ref types.ManagedObjectReference) *Network { } // EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this Network -func (n Network) EthernetCardBackingInfo(_ context.Context) (types.BaseVirtualDeviceBackingInfo, error) { - name := n.Name() +func (n Network) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error) { + var e mo.Network + + // Use Network.Name rather than Common.Name as the latter does not return the complete name if it contains a '/' + // We can't use Common.ObjectName here either as we need the ManagedEntity.Name field is not set since mo.Network + // has its own Name field. + err := n.Properties(ctx, n.Reference(), []string{"name"}, &e) + if err != nil { + return nil, err + } backing := &types.VirtualEthernetCardNetworkBackingInfo{ VirtualDeviceDeviceBackingInfo: types.VirtualDeviceDeviceBackingInfo{ - DeviceName: name, + DeviceName: e.Name, }, } diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/ovf_manager.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/ovf_manager.go deleted file mode 100644 index 7fedf689ff3..00000000000 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/ovf_manager.go +++ /dev/null @@ -1,104 +0,0 @@ -/* -Copyright (c) 2015 VMware, Inc. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type OvfManager struct { - Common -} - -func NewOvfManager(c *vim25.Client) *OvfManager { - o := OvfManager{ - Common: NewCommon(c, *c.ServiceContent.OvfManager), - } - - return &o -} - -// CreateDescriptor wraps methods.CreateDescriptor -func (o OvfManager) CreateDescriptor(ctx context.Context, obj Reference, cdp types.OvfCreateDescriptorParams) (*types.OvfCreateDescriptorResult, error) { - req := types.CreateDescriptor{ - This: o.Reference(), - Obj: obj.Reference(), - Cdp: cdp, - } - - res, err := methods.CreateDescriptor(ctx, o.c, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} - -// CreateImportSpec wraps methods.CreateImportSpec -func (o OvfManager) CreateImportSpec(ctx context.Context, ovfDescriptor string, resourcePool Reference, datastore Reference, cisp types.OvfCreateImportSpecParams) (*types.OvfCreateImportSpecResult, error) { - req := types.CreateImportSpec{ - This: o.Reference(), - OvfDescriptor: ovfDescriptor, - ResourcePool: resourcePool.Reference(), - Datastore: datastore.Reference(), - Cisp: cisp, - } - - res, err := methods.CreateImportSpec(ctx, o.c, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} - -// ParseDescriptor wraps methods.ParseDescriptor -func (o OvfManager) ParseDescriptor(ctx context.Context, ovfDescriptor string, pdp types.OvfParseDescriptorParams) (*types.OvfParseDescriptorResult, error) { - req := types.ParseDescriptor{ - This: o.Reference(), - OvfDescriptor: ovfDescriptor, - Pdp: pdp, - } - - res, err := methods.ParseDescriptor(ctx, o.c, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} - -// ValidateHost wraps methods.ValidateHost -func (o OvfManager) ValidateHost(ctx context.Context, ovfDescriptor string, host Reference, vhp types.OvfValidateHostParams) (*types.OvfValidateHostResult, error) { - req := types.ValidateHost{ - This: o.Reference(), - OvfDescriptor: ovfDescriptor, - Host: host.Reference(), - Vhp: vhp, - } - - res, err := methods.ValidateHost(ctx, o.c, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/resource_pool.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/resource_pool.go index 791fd38229d..55c2e2b2fde 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/resource_pool.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/resource_pool.go @@ -19,6 +19,7 @@ package object import ( "context" + "github.com/vmware/govmomi/nfc" "github.com/vmware/govmomi/vim25" "github.com/vmware/govmomi/vim25/methods" "github.com/vmware/govmomi/vim25/types" @@ -34,7 +35,7 @@ func NewResourcePool(c *vim25.Client, ref types.ManagedObjectReference) *Resourc } } -func (p ResourcePool) ImportVApp(ctx context.Context, spec types.BaseImportSpec, folder *Folder, host *HostSystem) (*HttpNfcLease, error) { +func (p ResourcePool) ImportVApp(ctx context.Context, spec types.BaseImportSpec, folder *Folder, host *HostSystem) (*nfc.Lease, error) { req := types.ImportVApp{ This: p.Reference(), Spec: spec, @@ -55,7 +56,7 @@ func (p ResourcePool) ImportVApp(ctx context.Context, spec types.BaseImportSpec, return nil, err } - return NewHttpNfcLease(p.c, res.Returnval), nil + return nfc.NewLease(p.c, res.Returnval), nil } func (p ResourcePool) Create(ctx context.Context, name string, spec types.ResourceConfigSpec) (*ResourcePool, error) { diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/task.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/task.go index 8572b4363bd..2b66aa93b7f 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/task.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/task.go @@ -22,6 +22,7 @@ import ( "github.com/vmware/govmomi/property" "github.com/vmware/govmomi/task" "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/methods" "github.com/vmware/govmomi/vim25/progress" "github.com/vmware/govmomi/vim25/types" ) @@ -51,3 +52,11 @@ func (t *Task) WaitForResult(ctx context.Context, s progress.Sinker) (*types.Tas p := property.DefaultCollector(t.c) return task.Wait(ctx, t.Reference(), p, s) } + +func (t *Task) Cancel(ctx context.Context) error { + _, err := methods.CancelTask(ctx, t.Client(), &types.CancelTask{ + This: t.Reference(), + }) + + return err +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_machine.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_machine.go index 8fd6a421b28..02c4e2371e9 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_machine.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_machine.go @@ -1,5 +1,5 @@ /* -Copyright (c) 2015 VMware, Inc. All Rights Reserved. +Copyright (c) 2015-2017 VMware, Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -518,11 +518,11 @@ func (m snapshotMap) add(parent string, tree []types.VirtualMachineSnapshotTree) } } -// findSnapshot supports snapshot lookup by name, where name can be: +// FindSnapshot supports snapshot lookup by name, where name can be: // 1) snapshot ManagedObjectReference.Value (unique) // 2) snapshot name (may not be unique) // 3) snapshot tree path (may not be unique) -func (v VirtualMachine) findSnapshot(ctx context.Context, name string) (Reference, error) { +func (v VirtualMachine) FindSnapshot(ctx context.Context, name string) (Reference, error) { var o mo.VirtualMachine err := v.Properties(ctx, v.Reference(), []string{"snapshot"}, &o) @@ -550,7 +550,7 @@ func (v VirtualMachine) findSnapshot(ctx context.Context, name string) (Referenc // RemoveSnapshot removes a named snapshot func (v VirtualMachine) RemoveSnapshot(ctx context.Context, name string, removeChildren bool, consolidate *bool) (*Task, error) { - snapshot, err := v.findSnapshot(ctx, name) + snapshot, err := v.FindSnapshot(ctx, name) if err != nil { return nil, err } @@ -586,7 +586,7 @@ func (v VirtualMachine) RevertToCurrentSnapshot(ctx context.Context, suppressPow // RevertToSnapshot reverts to a named snapshot func (v VirtualMachine) RevertToSnapshot(ctx context.Context, name string, suppressPowerOn bool) (*Task, error) { - snapshot, err := v.findSnapshot(ctx, name) + snapshot, err := v.FindSnapshot(ctx, name) if err != nil { return nil, err } diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/collector.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/collector.go index e2059d923f9..04a9e77373f 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/collector.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/collector.go @@ -30,7 +30,7 @@ import ( // Collector models the PropertyCollector managed object. // // For more information, see: -// http://pubs.vmware.com/vsphere-55/index.jsp#com.vmware.wssdk.apiref.doc/vmodl.query.PropertyCollector.html +// http://pubs.vmware.com/vsphere-60/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fvmodl.query.PropertyCollector.html // type Collector struct { roundTripper soap.RoundTripper diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/filter.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/filter.go index a6fa1de9ffd..8284b0c7d82 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/filter.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/filter.go @@ -18,7 +18,7 @@ package property import ( "fmt" - "path/filepath" + "path" "reflect" "strconv" "strings" @@ -103,7 +103,11 @@ func (f Filter) MatchProperty(prop types.DynamicProperty) bool { switch pval := prop.Val.(type) { case string: - m, _ := filepath.Match(match.(string), pval) + s := match.(string) + if s == "*" { + return true // TODO: path.Match fails if s contains a '/' + } + m, _ := path.Match(s, pval) return m default: return reflect.DeepEqual(match, pval) diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/wait.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/wait.go index 689477bfb85..fe847926ce9 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/wait.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/wait.go @@ -1,5 +1,5 @@ /* -Copyright (c) 2015 VMware, Inc. All Rights Reserved. +Copyright (c) 2015-2017 VMware, Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,73 +22,63 @@ import ( "github.com/vmware/govmomi/vim25/types" ) -// Wait waits for any of the specified properties of the specified managed -// object to change. It calls the specified function for every update it -// receives. If this function returns false, it continues waiting for -// subsequent updates. If this function returns true, it stops waiting and -// returns. -// -// To only receive updates for the specified managed object, the function -// creates a new property collector and calls CreateFilter. A new property -// collector is required because filters can only be added, not removed. -// -// The newly created collector is destroyed before this function returns (both -// in case of success or error). -// -func Wait(ctx context.Context, c *Collector, obj types.ManagedObjectReference, ps []string, f func([]types.PropertyChange) bool) error { - p, err := c.Create(ctx) - if err != nil { - return err - } +// WaitFilter provides helpers to construct a types.CreateFilter for use with property.Wait +type WaitFilter struct { + types.CreateFilter +} - // Attempt to destroy the collector using the background context, as the - // specified context may have timed out or have been cancelled. - defer p.Destroy(context.Background()) +// Add a new ObjectSpec and PropertySpec to the WaitFilter +func (f *WaitFilter) Add(obj types.ManagedObjectReference, kind string, ps []string, set ...types.BaseSelectionSpec) *WaitFilter { + spec := types.ObjectSpec{ + Obj: obj, + SelectSet: set, + } - req := types.CreateFilter{ - Spec: types.PropertyFilterSpec{ - ObjectSet: []types.ObjectSpec{ - { - Obj: obj, - }, - }, - PropSet: []types.PropertySpec{ - { - PathSet: ps, - Type: obj.Type, - }, - }, - }, + pset := types.PropertySpec{ + Type: kind, + PathSet: ps, } if len(ps) == 0 { - req.Spec.PropSet[0].All = types.NewBool(true) + pset.All = types.NewBool(true) } - err = p.CreateFilter(ctx, req) - if err != nil { - return err - } - return waitLoop(ctx, p, func(_ types.ManagedObjectReference, pc []types.PropertyChange) bool { - return f(pc) + f.Spec.ObjectSet = append(f.Spec.ObjectSet, spec) + + f.Spec.PropSet = append(f.Spec.PropSet, pset) + + return f +} + +// Wait creates a new WaitFilter and calls the specified function for each ObjectUpdate via WaitForUpdates +func Wait(ctx context.Context, c *Collector, obj types.ManagedObjectReference, ps []string, f func([]types.PropertyChange) bool) error { + filter := new(WaitFilter).Add(obj, obj.Type, ps) + + return WaitForUpdates(ctx, c, filter, func(updates []types.ObjectUpdate) bool { + for _, update := range updates { + if f(update.ChangeSet) { + return true + } + } + + return false }) } -// WaitForView waits for any of the specified properties of the managed -// objects in the View to change. It calls the specified function for every update it +// WaitForUpdates waits for any of the specified properties of the specified managed +// object to change. It calls the specified function for every update it // receives. If this function returns false, it continues waiting for // subsequent updates. If this function returns true, it stops waiting and // returns. // -// To only receive updates for the View's specified managed objects, the function +// To only receive updates for the specified managed object, the function // creates a new property collector and calls CreateFilter. A new property // collector is required because filters can only be added, not removed. // // The newly created collector is destroyed before this function returns (both // in case of success or error). // -// The code assumes that all objects in the View are the same type -func WaitForView(ctx context.Context, c *Collector, view types.ManagedObjectReference, obj types.ManagedObjectReference, ps []string, f func(types.ManagedObjectReference, []types.PropertyChange) bool) error { +func WaitForUpdates(ctx context.Context, c *Collector, filter *WaitFilter, f func([]types.ObjectUpdate) bool) error { p, err := c.Create(ctx) if err != nil { return err @@ -98,38 +88,13 @@ func WaitForView(ctx context.Context, c *Collector, view types.ManagedObjectRefe // specified context may have timed out or have been cancelled. defer p.Destroy(context.Background()) - req := types.CreateFilter{ - Spec: types.PropertyFilterSpec{ - ObjectSet: []types.ObjectSpec{ - { - Obj: view, - SelectSet: []types.BaseSelectionSpec{ - &types.TraversalSpec{ - SelectionSpec: types.SelectionSpec{ - Name: "traverseEntities", - }, - Path: "view", - Type: view.Type}}, - }, - }, - PropSet: []types.PropertySpec{ - { - Type: obj.Type, - PathSet: ps, - }, - }, - }} - - err = p.CreateFilter(ctx, req) + err = p.CreateFilter(ctx, filter.CreateFilter) if err != nil { return err } - return waitLoop(ctx, p, f) -} -func waitLoop(ctx context.Context, c *Collector, f func(types.ManagedObjectReference, []types.PropertyChange) bool) error { for version := ""; ; { - res, err := c.WaitForUpdates(ctx, version) + res, err := p.WaitForUpdates(ctx, version) if err != nil { return err } @@ -142,12 +107,9 @@ func waitLoop(ctx context.Context, c *Collector, f func(types.ManagedObjectRefer version = res.Version for _, fs := range res.FilterSet { - for _, os := range fs.ObjectSet { - if f(os.Obj, os.ChangeSet) { - return nil - } + if f(fs.ObjectSet) { + return nil } } } - } diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/cluster_compute_resource.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/cluster_compute_resource.go similarity index 68% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/cluster_compute_resource.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/cluster_compute_resource.go index 91f6b6e0849..d743c13ab2e 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/cluster_compute_resource.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/cluster_compute_resource.go @@ -1,38 +1,40 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator import ( + "github.com/vmware/govmomi/simulator/esx" "github.com/vmware/govmomi/vim25/methods" "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/soap" "github.com/vmware/govmomi/vim25/types" - "github.com/vmware/vic/pkg/vsphere/simulator/esx" ) type ClusterComputeResource struct { mo.ClusterComputeResource } -type addHostTask struct { +type addHost struct { *ClusterComputeResource req *types.AddHost_Task } -func (add *addHostTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { +func (add *addHost) Run(task *Task) (types.AnyType, types.BaseMethodFault) { spec := add.req.Spec if spec.HostName == "" { @@ -59,7 +61,7 @@ func (add *addHostTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { func (c *ClusterComputeResource) AddHostTask(add *types.AddHost_Task) soap.HasFault { r := &methods.AddHost_TaskBody{} - task := NewTask(&addHostTask{c, add}) + task := NewTask(&addHost{c, add}) r.Res = &types.AddHost_TaskResponse{ Returnval: task.Self, diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/datacenter.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datacenter.go similarity index 70% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/datacenter.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datacenter.go index dc514946534..15b5d432424 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/datacenter.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datacenter.go @@ -1,25 +1,27 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator import ( "strings" + "github.com/vmware/govmomi/simulator/esx" "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/types" - "github.com/vmware/vic/pkg/vsphere/simulator/esx" ) // Create Datacenter Folders. diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/datastore.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datastore.go similarity index 72% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/datastore.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datastore.go index 2ebe5882fb3..7b43396b90b 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/datastore.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datastore.go @@ -1,16 +1,18 @@ -// Copyright 2016-2017 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/dvs.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/dvs.go similarity index 77% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/dvs.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/dvs.go index 6b78c29482f..4b62c55ff58 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/dvs.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/dvs.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator @@ -26,7 +28,7 @@ type VmwareDistributedVirtualSwitch struct { } func (s *VmwareDistributedVirtualSwitch) AddDVPortgroupTask(c *types.AddDVPortgroup_Task) soap.HasFault { - task := CreateTask(s, "addDVPortgroupTask", func(t *Task) (types.AnyType, types.BaseMethodFault) { + task := CreateTask(s, "addDVPortgroup", func(t *Task) (types.AnyType, types.BaseMethodFault) { f := Map.getEntityParent(s, "Folder").(*Folder) for _, spec := range c.Spec { @@ -69,7 +71,7 @@ func (s *VmwareDistributedVirtualSwitch) AddDVPortgroupTask(c *types.AddDVPortgr } func (s *VmwareDistributedVirtualSwitch) ReconfigureDvsTask(req *types.ReconfigureDvs_Task) soap.HasFault { - task := CreateTask(s, "reconfigureDvsTask", func(t *Task) (types.AnyType, types.BaseMethodFault) { + task := CreateTask(s, "reconfigureDvs", func(t *Task) (types.AnyType, types.BaseMethodFault) { spec := req.Spec.GetDVSConfigSpec() for _, member := range spec.Host { diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/entity.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/entity.go new file mode 100644 index 00000000000..06c61411373 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/entity.go @@ -0,0 +1,48 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +func RenameTask(e mo.Entity, r *types.Rename_Task) soap.HasFault { + task := CreateTask(e, "rename", func(t *Task) (types.AnyType, types.BaseMethodFault) { + obj := Map.Get(r.This).(mo.Entity).Entity() + + if parent, ok := Map.Get(*obj.Parent).(*Folder); ok { + if Map.FindByName(r.NewName, parent.ChildEntity) != nil { + return nil, &types.InvalidArgument{InvalidProperty: "name"} + } + } + + obj.Name = r.NewName + + return nil, nil + }) + + task.Run() + + return &methods.Rename_TaskBody{ + Res: &types.Rename_TaskResponse{ + Returnval: task.Self, + }, + } +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/datacenter.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/datacenter.go similarity index 70% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/datacenter.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/datacenter.go index 5f2ceba6d3e..b202cbff86d 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/datacenter.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/datacenter.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package esx diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/doc.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/doc.go new file mode 100644 index 00000000000..3c0f4035ef7 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/doc.go @@ -0,0 +1,20 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* +Package esx contains SOAP responses from an ESX server, captured using `govc ... -debug`. +*/ +package esx diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_config_info.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_config_info.go new file mode 100644 index 00000000000..559a6eb3502 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_config_info.go @@ -0,0 +1,1088 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +var HostConfigInfo = types.HostConfigInfo{ + Host: types.ManagedObjectReference{Type: "HostSystem", Value: "ha-host"}, + Product: types.AboutInfo{ + Name: "VMware ESXi", + FullName: "VMware ESXi 6.5.0 build-5969303", + Vendor: "VMware, Inc.", + Version: "6.5.0", + Build: "5969303", + LocaleVersion: "INTL", + LocaleBuild: "000", + OsType: "vmnix-x86", + ProductLineId: "embeddedEsx", + ApiType: "HostAgent", + ApiVersion: "6.5", + InstanceUuid: "", + LicenseProductName: "VMware ESX Server", + LicenseProductVersion: "6.0", + }, + DeploymentInfo: &types.HostDeploymentInfo{ + BootedFromStatelessCache: types.NewBool(false), + }, + HyperThread: &types.HostHyperThreadScheduleInfo{ + Available: false, + Active: false, + Config: true, + }, + ConsoleReservation: (*types.ServiceConsoleReservationInfo)(nil), + VirtualMachineReservation: (*types.VirtualMachineMemoryReservationInfo)(nil), + StorageDevice: nil, + SystemFile: nil, + Network: &types.HostNetworkInfo{ + Vswitch: []types.HostVirtualSwitch{ + { + Name: "vSwitch0", + Key: "key-vim.host.VirtualSwitch-vSwitch0", + NumPorts: 1536, + NumPortsAvailable: 1530, + Mtu: 1500, + Portgroup: []string{"key-vim.host.PortGroup-VM Network", "key-vim.host.PortGroup-Management Network"}, + Pnic: []string{"key-vim.host.PhysicalNic-vmnic0"}, + Spec: types.HostVirtualSwitchSpec{ + NumPorts: 128, + Bridge: &types.HostVirtualSwitchBondBridge{ + HostVirtualSwitchBridge: types.HostVirtualSwitchBridge{}, + NicDevice: []string{"vmnic0"}, + Beacon: &types.HostVirtualSwitchBeaconConfig{ + Interval: 1, + }, + LinkDiscoveryProtocolConfig: &types.LinkDiscoveryProtocolConfig{ + Protocol: "cdp", + Operation: "listen", + }, + }, + Policy: &types.HostNetworkPolicy{ + Security: &types.HostNetworkSecurityPolicy{ + AllowPromiscuous: types.NewBool(false), + MacChanges: types.NewBool(true), + ForgedTransmits: types.NewBool(true), + }, + NicTeaming: &types.HostNicTeamingPolicy{ + Policy: "loadbalance_srcid", + ReversePolicy: types.NewBool(true), + NotifySwitches: types.NewBool(true), + RollingOrder: types.NewBool(false), + FailureCriteria: &types.HostNicFailureCriteria{ + CheckSpeed: "minimum", + Speed: 10, + CheckDuplex: types.NewBool(false), + FullDuplex: types.NewBool(false), + CheckErrorPercent: types.NewBool(false), + Percentage: 0, + CheckBeacon: types.NewBool(false), + }, + NicOrder: &types.HostNicOrderPolicy{ + ActiveNic: []string{"vmnic0"}, + StandbyNic: nil, + }, + }, + OffloadPolicy: &types.HostNetOffloadCapabilities{ + CsumOffload: types.NewBool(true), + TcpSegmentation: types.NewBool(true), + ZeroCopyXmit: types.NewBool(true), + }, + ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{ + Enabled: types.NewBool(false), + AverageBandwidth: 0, + PeakBandwidth: 0, + BurstSize: 0, + }, + }, + Mtu: 0, + }, + }, + }, + ProxySwitch: nil, + Portgroup: []types.HostPortGroup{ + { + Key: "key-vim.host.PortGroup-VM Network", + Port: nil, + Vswitch: "key-vim.host.VirtualSwitch-vSwitch0", + ComputedPolicy: types.HostNetworkPolicy{ + Security: &types.HostNetworkSecurityPolicy{ + AllowPromiscuous: types.NewBool(false), + MacChanges: types.NewBool(true), + ForgedTransmits: types.NewBool(true), + }, + NicTeaming: &types.HostNicTeamingPolicy{ + Policy: "loadbalance_srcid", + ReversePolicy: types.NewBool(true), + NotifySwitches: types.NewBool(true), + RollingOrder: types.NewBool(false), + FailureCriteria: &types.HostNicFailureCriteria{ + CheckSpeed: "minimum", + Speed: 10, + CheckDuplex: types.NewBool(false), + FullDuplex: types.NewBool(false), + CheckErrorPercent: types.NewBool(false), + Percentage: 0, + CheckBeacon: types.NewBool(false), + }, + NicOrder: &types.HostNicOrderPolicy{ + ActiveNic: []string{"vmnic0"}, + StandbyNic: nil, + }, + }, + OffloadPolicy: &types.HostNetOffloadCapabilities{ + CsumOffload: types.NewBool(true), + TcpSegmentation: types.NewBool(true), + ZeroCopyXmit: types.NewBool(true), + }, + ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{ + Enabled: types.NewBool(false), + AverageBandwidth: 0, + PeakBandwidth: 0, + BurstSize: 0, + }, + }, + Spec: types.HostPortGroupSpec{ + Name: "VM Network", + VlanId: 0, + VswitchName: "vSwitch0", + Policy: types.HostNetworkPolicy{ + Security: &types.HostNetworkSecurityPolicy{}, + NicTeaming: &types.HostNicTeamingPolicy{ + Policy: "", + ReversePolicy: (*bool)(nil), + NotifySwitches: (*bool)(nil), + RollingOrder: (*bool)(nil), + FailureCriteria: &types.HostNicFailureCriteria{}, + NicOrder: (*types.HostNicOrderPolicy)(nil), + }, + OffloadPolicy: &types.HostNetOffloadCapabilities{}, + ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{}, + }, + }, + }, + { + Key: "key-vim.host.PortGroup-Management Network", + Port: []types.HostPortGroupPort{ + { + Key: "key-vim.host.PortGroup.Port-33554436", + Mac: []string{"00:0c:29:81:d8:a0"}, + Type: "host", + }, + }, + Vswitch: "key-vim.host.VirtualSwitch-vSwitch0", + ComputedPolicy: types.HostNetworkPolicy{ + Security: &types.HostNetworkSecurityPolicy{ + AllowPromiscuous: types.NewBool(false), + MacChanges: types.NewBool(true), + ForgedTransmits: types.NewBool(true), + }, + NicTeaming: &types.HostNicTeamingPolicy{ + Policy: "loadbalance_srcid", + ReversePolicy: types.NewBool(true), + NotifySwitches: types.NewBool(true), + RollingOrder: types.NewBool(false), + FailureCriteria: &types.HostNicFailureCriteria{ + CheckSpeed: "minimum", + Speed: 10, + CheckDuplex: types.NewBool(false), + FullDuplex: types.NewBool(false), + CheckErrorPercent: types.NewBool(false), + Percentage: 0, + CheckBeacon: types.NewBool(false), + }, + NicOrder: &types.HostNicOrderPolicy{ + ActiveNic: []string{"vmnic0"}, + StandbyNic: nil, + }, + }, + OffloadPolicy: &types.HostNetOffloadCapabilities{ + CsumOffload: types.NewBool(true), + TcpSegmentation: types.NewBool(true), + ZeroCopyXmit: types.NewBool(true), + }, + ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{ + Enabled: types.NewBool(false), + AverageBandwidth: 0, + PeakBandwidth: 0, + BurstSize: 0, + }, + }, + Spec: types.HostPortGroupSpec{ + Name: "Management Network", + VlanId: 0, + VswitchName: "vSwitch0", + Policy: types.HostNetworkPolicy{ + Security: &types.HostNetworkSecurityPolicy{}, + NicTeaming: &types.HostNicTeamingPolicy{ + Policy: "loadbalance_srcid", + ReversePolicy: (*bool)(nil), + NotifySwitches: types.NewBool(true), + RollingOrder: types.NewBool(false), + FailureCriteria: &types.HostNicFailureCriteria{ + CheckSpeed: "", + Speed: 0, + CheckDuplex: (*bool)(nil), + FullDuplex: (*bool)(nil), + CheckErrorPercent: (*bool)(nil), + Percentage: 0, + CheckBeacon: types.NewBool(false), + }, + NicOrder: &types.HostNicOrderPolicy{ + ActiveNic: []string{"vmnic0"}, + StandbyNic: nil, + }, + }, + OffloadPolicy: &types.HostNetOffloadCapabilities{}, + ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{}, + }, + }, + }, + }, + Pnic: []types.PhysicalNic{ + { + Key: "key-vim.host.PhysicalNic-vmnic0", + Device: "vmnic0", + Pci: "0000:0b:00.0", + Driver: "nvmxnet3", + LinkSpeed: &types.PhysicalNicLinkInfo{ + SpeedMb: 10000, + Duplex: true, + }, + ValidLinkSpecification: []types.PhysicalNicLinkInfo{ + { + SpeedMb: 10000, + Duplex: true, + }, + }, + Spec: types.PhysicalNicSpec{ + Ip: &types.HostIpConfig{}, + LinkSpeed: &types.PhysicalNicLinkInfo{ + SpeedMb: 10000, + Duplex: true, + }, + }, + WakeOnLanSupported: false, + Mac: "00:0c:29:81:d8:a0", + FcoeConfiguration: &types.FcoeConfig{ + PriorityClass: 3, + SourceMac: "00:0c:29:81:d8:a0", + VlanRange: []types.FcoeConfigVlanRange{ + {}, + }, + Capabilities: types.FcoeConfigFcoeCapabilities{ + PriorityClass: false, + SourceMacAddress: false, + VlanRange: true, + }, + FcoeActive: false, + }, + VmDirectPathGen2Supported: types.NewBool(false), + VmDirectPathGen2SupportedMode: "", + ResourcePoolSchedulerAllowed: types.NewBool(true), + ResourcePoolSchedulerDisallowedReason: nil, + AutoNegotiateSupported: types.NewBool(false), + }, + { + Key: "key-vim.host.PhysicalNic-vmnic1", + Device: "vmnic1", + Pci: "0000:13:00.0", + Driver: "nvmxnet3", + LinkSpeed: &types.PhysicalNicLinkInfo{ + SpeedMb: 10000, + Duplex: true, + }, + ValidLinkSpecification: []types.PhysicalNicLinkInfo{ + { + SpeedMb: 10000, + Duplex: true, + }, + }, + Spec: types.PhysicalNicSpec{ + Ip: &types.HostIpConfig{}, + LinkSpeed: &types.PhysicalNicLinkInfo{ + SpeedMb: 10000, + Duplex: true, + }, + }, + WakeOnLanSupported: false, + Mac: "00:0c:29:81:d8:aa", + FcoeConfiguration: &types.FcoeConfig{ + PriorityClass: 3, + SourceMac: "00:0c:29:81:d8:aa", + VlanRange: []types.FcoeConfigVlanRange{ + {}, + }, + Capabilities: types.FcoeConfigFcoeCapabilities{ + PriorityClass: false, + SourceMacAddress: false, + VlanRange: true, + }, + FcoeActive: false, + }, + VmDirectPathGen2Supported: types.NewBool(false), + VmDirectPathGen2SupportedMode: "", + ResourcePoolSchedulerAllowed: types.NewBool(true), + ResourcePoolSchedulerDisallowedReason: nil, + AutoNegotiateSupported: types.NewBool(false), + }, + }, + Vnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "key-vim.host.PortGroup.Port-33554436", + }, + }, + ConsoleVnic: nil, + DnsConfig: &types.HostDnsConfig{ + Dhcp: true, + VirtualNicDevice: "vmk0", + HostName: "localhost", + DomainName: "localdomain", + Address: []string{"8.8.8.8"}, + SearchDomain: []string{"localdomain"}, + }, + IpRouteConfig: &types.HostIpRouteConfig{ + DefaultGateway: "127.0.0.1", + GatewayDevice: "", + IpV6DefaultGateway: "", + IpV6GatewayDevice: "", + }, + ConsoleIpRouteConfig: nil, + RouteTableInfo: &types.HostIpRouteTableInfo{ + IpRoute: []types.HostIpRouteEntry{ + { + Network: "0.0.0.0", + PrefixLength: 0, + Gateway: "127.0.0.1", + DeviceName: "vmk0", + }, + { + Network: "127.0.0.0", + PrefixLength: 8, + Gateway: "0.0.0.0", + DeviceName: "vmk0", + }, + }, + Ipv6Route: nil, + }, + Dhcp: nil, + Nat: nil, + IpV6Enabled: types.NewBool(false), + AtBootIpV6Enabled: types.NewBool(false), + NetStackInstance: []types.HostNetStackInstance{ + { + Key: "vSphereProvisioning", + Name: "", + DnsConfig: &types.HostDnsConfig{}, + IpRouteConfig: &types.HostIpRouteConfig{}, + RequestedMaxNumberOfConnections: 11000, + CongestionControlAlgorithm: "newreno", + IpV6Enabled: types.NewBool(true), + RouteTableConfig: (*types.HostIpRouteTableConfig)(nil), + }, + { + Key: "vmotion", + Name: "", + DnsConfig: &types.HostDnsConfig{}, + IpRouteConfig: &types.HostIpRouteConfig{}, + RequestedMaxNumberOfConnections: 11000, + CongestionControlAlgorithm: "newreno", + IpV6Enabled: types.NewBool(true), + RouteTableConfig: (*types.HostIpRouteTableConfig)(nil), + }, + { + Key: "defaultTcpipStack", + Name: "defaultTcpipStack", + DnsConfig: &types.HostDnsConfig{ + Dhcp: true, + VirtualNicDevice: "vmk0", + HostName: "localhost", + DomainName: "localdomain", + Address: []string{"8.8.8.8"}, + SearchDomain: []string{"localdomain"}, + }, + IpRouteConfig: &types.HostIpRouteConfig{ + DefaultGateway: "127.0.0.1", + GatewayDevice: "", + IpV6DefaultGateway: "", + IpV6GatewayDevice: "", + }, + RequestedMaxNumberOfConnections: 11000, + CongestionControlAlgorithm: "newreno", + IpV6Enabled: types.NewBool(true), + RouteTableConfig: &types.HostIpRouteTableConfig{ + IpRoute: []types.HostIpRouteOp{ + { + ChangeOperation: "ignore", + Route: types.HostIpRouteEntry{ + Network: "0.0.0.0", + PrefixLength: 0, + Gateway: "127.0.0.1", + DeviceName: "vmk0", + }, + }, + { + ChangeOperation: "ignore", + Route: types.HostIpRouteEntry{ + Network: "127.0.0.0", + PrefixLength: 8, + Gateway: "0.0.0.0", + DeviceName: "vmk0", + }, + }, + }, + Ipv6Route: nil, + }, + }, + }, + OpaqueSwitch: nil, + OpaqueNetwork: nil, + }, + Vmotion: &types.HostVMotionInfo{ + NetConfig: &types.HostVMotionNetConfig{ + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "VMotionConfig.vmotion.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: "", + }, + IpConfig: (*types.HostIpConfig)(nil), + }, + VirtualNicManagerInfo: &types.HostVirtualNicManagerInfo{ + NetConfig: []types.VirtualNicManagerNetConfig{ + { + NicType: "faultToleranceLogging", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "faultToleranceLogging.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "management", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "management.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: []string{"management.key-vim.host.VirtualNic-vmk0"}, + }, + { + NicType: "vSphereProvisioning", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vSphereProvisioning.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "vSphereReplication", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vSphereReplication.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "vSphereReplicationNFC", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vSphereReplicationNFC.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "vmotion", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vmotion.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "vsan", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vsan.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + { + NicType: "vsanWitness", + MultiSelectAllowed: true, + CandidateVnic: []types.HostVirtualNic{ + { + Device: "vmk0", + Key: "vsanWitness.key-vim.host.VirtualNic-vmk0", + Portgroup: "Management Network", + Spec: types.HostVirtualNicSpec{ + Ip: &types.HostIpConfig{ + Dhcp: true, + IpAddress: "127.0.0.1", + SubnetMask: "255.0.0.0", + IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), + }, + Mac: "00:0c:29:81:d8:a0", + DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), + Portgroup: "Management Network", + Mtu: 1500, + TsoEnabled: types.NewBool(true), + NetStackInstanceKey: "defaultTcpipStack", + OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), + ExternalId: "", + PinnedPnic: "", + IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), + }, + Port: "", + }, + }, + SelectedVnic: nil, + }, + }, + }, + Capabilities: &types.HostNetCapabilities{ + CanSetPhysicalNicLinkSpeed: true, + SupportsNicTeaming: true, + NicTeamingPolicy: []string{"loadbalance_ip", "loadbalance_srcmac", "loadbalance_srcid", "failover_explicit"}, + SupportsVlan: true, + UsesServiceConsoleNic: false, + SupportsNetworkHints: true, + MaxPortGroupsPerVswitch: 0, + VswitchConfigSupported: true, + VnicConfigSupported: true, + IpRouteConfigSupported: true, + DnsConfigSupported: true, + DhcpOnVnicSupported: true, + IpV6Supported: types.NewBool(true), + }, + DatastoreCapabilities: &types.HostDatastoreSystemCapabilities{ + NfsMountCreationRequired: true, + NfsMountCreationSupported: true, + LocalDatastoreSupported: false, + VmfsExtentExpansionSupported: types.NewBool(true), + }, + OffloadCapabilities: &types.HostNetOffloadCapabilities{ + CsumOffload: types.NewBool(true), + TcpSegmentation: types.NewBool(true), + ZeroCopyXmit: types.NewBool(true), + }, + Service: &types.HostServiceInfo{ + Service: []types.HostService{ + { + Key: "DCUI", + Label: "Direct Console UI", + Required: false, + Uninstallable: false, + Running: true, + Ruleset: nil, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "TSM", + Label: "ESXi Shell", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: nil, + Policy: "off", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "TSM-SSH", + Label: "SSH", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: nil, + Policy: "off", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "lbtd", + Label: "Load-Based Teaming Daemon", + Required: false, + Uninstallable: false, + Running: true, + Ruleset: nil, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "lwsmd", + Label: "Active Directory Service", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: nil, + Policy: "off", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "ntpd", + Label: "NTP Daemon", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: []string{"ntpClient"}, + Policy: "off", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "pcscd", + Label: "PC/SC Smart Card Daemon", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: nil, + Policy: "off", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "sfcbd-watchdog", + Label: "CIM Server", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: []string{"CIMHttpServer", "CIMHttpsServer"}, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "snmpd", + Label: "SNMP Server", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: []string{"snmp"}, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "vmsyslogd", + Label: "Syslog Server", + Required: true, + Uninstallable: false, + Running: true, + Ruleset: nil, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "vpxa", + Label: "VMware vCenter Agent", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: []string{"vpxHeartbeats"}, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-base", + Description: "This VIB contains all of the base functionality of vSphere ESXi.", + }, + }, + { + Key: "xorg", + Label: "X.Org Server", + Required: false, + Uninstallable: false, + Running: false, + Ruleset: nil, + Policy: "on", + SourcePackage: &types.HostServiceSourcePackage{ + SourcePackageName: "esx-xserver", + Description: "This VIB contains X Server used for virtual machine 3D hardware acceleration.", + }, + }, + }, + }, + Firewall: &HostFirewallInfo, + AutoStart: &types.HostAutoStartManagerConfig{ + Defaults: &types.AutoStartDefaults{ + Enabled: (*bool)(nil), + StartDelay: 120, + StopDelay: 120, + WaitForHeartbeat: types.NewBool(false), + StopAction: "PowerOff", + }, + PowerInfo: nil, + }, + ActiveDiagnosticPartition: &types.HostDiagnosticPartition{ + StorageType: "directAttached", + DiagnosticType: "singleHost", + Slots: -15, + Id: types.HostScsiDiskPartition{ + DiskName: "mpx.vmhba0:C0:T0:L0", + Partition: 9, + }, + }, + Option: nil, + OptionDef: nil, + Flags: &types.HostFlagInfo{}, + AdminDisabled: (*bool)(nil), + LockdownMode: "lockdownDisabled", + Ipmi: (*types.HostIpmiInfo)(nil), + SslThumbprintInfo: (*types.HostSslThumbprintInfo)(nil), + SslThumbprintData: nil, + Certificate: []uint8{0x31, 0x30}, + PciPassthruInfo: nil, + AuthenticationManagerInfo: &types.HostAuthenticationManagerInfo{ + AuthConfig: []types.BaseHostAuthenticationStoreInfo{ + &types.HostLocalAuthenticationInfo{ + HostAuthenticationStoreInfo: types.HostAuthenticationStoreInfo{ + Enabled: true, + }, + }, + &types.HostActiveDirectoryInfo{ + HostDirectoryStoreInfo: types.HostDirectoryStoreInfo{}, + JoinedDomain: "", + TrustedDomain: nil, + DomainMembershipStatus: "", + SmartCardAuthenticationEnabled: types.NewBool(false), + }, + }, + }, + FeatureVersion: nil, + PowerSystemCapability: &types.PowerSystemCapability{ + AvailablePolicy: []types.HostPowerPolicy{ + { + Key: 1, + Name: "PowerPolicy.static.name", + ShortName: "static", + Description: "PowerPolicy.static.description", + }, + { + Key: 2, + Name: "PowerPolicy.dynamic.name", + ShortName: "dynamic", + Description: "PowerPolicy.dynamic.description", + }, + { + Key: 3, + Name: "PowerPolicy.low.name", + ShortName: "low", + Description: "PowerPolicy.low.description", + }, + { + Key: 4, + Name: "PowerPolicy.custom.name", + ShortName: "custom", + Description: "PowerPolicy.custom.description", + }, + }, + }, + PowerSystemInfo: &types.PowerSystemInfo{ + CurrentPolicy: types.HostPowerPolicy{ + Key: 2, + Name: "PowerPolicy.dynamic.name", + ShortName: "dynamic", + Description: "PowerPolicy.dynamic.description", + }, + }, + CacheConfigurationInfo: []types.HostCacheConfigurationInfo{ + { + Key: types.ManagedObjectReference{Type: "Datastore", Value: "5980f676-21a5db76-9eef-000c2981d8a0"}, + SwapSize: 0, + }, + }, + WakeOnLanCapable: types.NewBool(false), + FeatureCapability: nil, + MaskedFeatureCapability: nil, + VFlashConfigInfo: nil, + VsanHostConfig: &types.VsanHostConfigInfo{ + Enabled: types.NewBool(false), + HostSystem: &types.ManagedObjectReference{Type: "HostSystem", Value: "ha-host"}, + ClusterInfo: &types.VsanHostConfigInfoClusterInfo{}, + StorageInfo: &types.VsanHostConfigInfoStorageInfo{ + AutoClaimStorage: types.NewBool(false), + DiskMapping: nil, + DiskMapInfo: nil, + ChecksumEnabled: (*bool)(nil), + }, + NetworkInfo: &types.VsanHostConfigInfoNetworkInfo{}, + FaultDomainInfo: &types.VsanHostFaultDomainInfo{}, + }, + DomainList: nil, + ScriptCheckSum: nil, + HostConfigCheckSum: nil, + GraphicsInfo: nil, + SharedPassthruGpuTypes: nil, + GraphicsConfig: &types.HostGraphicsConfig{ + HostDefaultGraphicsType: "shared", + SharedPassthruAssignmentPolicy: "performance", + DeviceType: nil, + }, + IoFilterInfo: []types.HostIoFilterInfo{ + { + IoFilterInfo: types.IoFilterInfo{ + Id: "VMW_spm_1.0.0", + Name: "spm", + Vendor: "VMW", + Version: "1.0.230", + Type: "datastoreIoControl", + Summary: "VMware Storage I/O Control", + ReleaseDate: "2016-07-21", + }, + Available: true, + }, + { + IoFilterInfo: types.IoFilterInfo{ + Id: "VMW_vmwarevmcrypt_1.0.0", + Name: "vmwarevmcrypt", + Vendor: "VMW", + Version: "1.0.0", + Type: "encryption", + Summary: "VMcrypt IO Filter", + ReleaseDate: "2016-07-21", + }, + Available: true, + }, + }, + SriovDevicePool: nil, +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_firewall_system.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_firewall_system.go new file mode 100644 index 00000000000..9c890bfa11d --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_firewall_system.go @@ -0,0 +1,1422 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +var HostFirewallInfo = types.HostFirewallInfo{ + DynamicData: types.DynamicData{}, + DefaultPolicy: types.HostFirewallDefaultPolicy{ + DynamicData: types.DynamicData{}, + IncomingBlocked: types.NewBool(true), + OutgoingBlocked: types.NewBool(true), + }, + Ruleset: []types.HostFirewallRuleset{ + { + DynamicData: types.DynamicData{}, + Key: "CIMHttpServer", + Label: "CIM Server", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 5988, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "sfcbd-watchdog", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "CIMHttpsServer", + Label: "CIM Secure Server", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 5989, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "sfcbd-watchdog", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "CIMSLP", + Label: "CIM SLP", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 427, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 427, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 427, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 427, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "DHCPv6", + Label: "DHCPv6", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 547, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 546, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 547, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 546, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "DVFilter", + Label: "DVFilter", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 2222, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "DVSSync", + Label: "DVSSync", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 8302, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8301, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8301, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8302, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "HBR", + Label: "HBR", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 31031, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 44046, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "NFC", + Label: "NFC", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 902, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 902, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "WOL", + Label: "WOL", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 9, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "activeDirectoryAll", + Label: "Active Directory All", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 88, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 88, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 123, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 137, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 139, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 389, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 389, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 445, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 464, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 464, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 3268, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 7476, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 2020, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "cmmds", + Label: "Virtual SAN Clustering Service", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 12345, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 23451, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 12345, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 23451, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 12321, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 12321, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "dhcp", + Label: "DHCP Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 68, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 68, + EndPort: 0, + Direction: "outbound", + PortType: "src", + Protocol: "udp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "dns", + Label: "DNS Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 53, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 53, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 53, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "esxupdate", + Label: "esxupdate", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 443, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "faultTolerance", + Label: "Fault Tolerance", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 80, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8300, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8300, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "ftpClient", + Label: "FTP Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 21, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 20, + EndPort: 0, + Direction: "inbound", + PortType: "src", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "gdbserver", + Label: "gdbserver", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 1000, + EndPort: 9999, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 50000, + EndPort: 50999, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "httpClient", + Label: "httpClient", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 80, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 443, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "iSCSI", + Label: "Software iSCSI Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 3260, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "iofiltervp", + Label: "iofiltervp", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 9080, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "ipfam", + Label: "NSX Distributed Logical Router Service", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 6999, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 6999, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "nfs41Client", + Label: "nfs41Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "nfsClient", + Label: "NFS Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "ntpClient", + Label: "NTP Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 123, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "ntpd", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "pvrdma", + Label: "pvrdma", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 28250, + EndPort: 28761, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 28250, + EndPort: 28761, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "rabbitmqproxy", + Label: "rabbitmqproxy", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 5671, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "rdt", + Label: "Virtual SAN Transport", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 2233, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 2233, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "remoteSerialPort", + Label: "VM serial port connected over network", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 23, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 1024, + EndPort: 65535, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "snmp", + Label: "SNMP Server", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 161, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "snmpd", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "sshClient", + Label: "SSH Client", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 22, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "sshServer", + Label: "SSH Server", + Required: true, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 22, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "syslog", + Label: "syslog", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 514, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 514, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 1514, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "updateManager", + Label: "vCenter Update Manager", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 80, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 9000, + EndPort: 9100, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vMotion", + Label: "vMotion", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 8000, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8000, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vSPC", + Label: "VM serial port connected to vSPC", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vSphereClient", + Label: "vSphere Web Client", + Required: true, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 902, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 443, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vpxHeartbeats", + Label: "VMware vCenter Agent", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 902, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "vpxa", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vsanEncryption", + Label: "vsanEncryption", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vsanhealth-multicasttest", + Label: "vsanhealth-multicasttest", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 5001, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "udp", + }, + { + DynamicData: types.DynamicData{}, + Port: 5001, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "udp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vsanvp", + Label: "vsanvp", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 8080, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + { + DynamicData: types.DynamicData{}, + Port: 8080, + EndPort: 0, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "vvold", + Label: "vvold", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 0, + EndPort: 65535, + Direction: "outbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: false, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + { + DynamicData: types.DynamicData{}, + Key: "webAccess", + Label: "vSphere Web Access", + Required: false, + Rule: []types.HostFirewallRule{ + { + DynamicData: types.DynamicData{}, + Port: 80, + EndPort: 0, + Direction: "inbound", + PortType: "dst", + Protocol: "tcp", + }, + }, + Service: "", + Enabled: true, + AllowedHosts: &types.HostFirewallRulesetIpList{ + DynamicData: types.DynamicData{}, + IpAddress: nil, + IpNetwork: nil, + AllIp: true, + }, + }, + }, +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_hardware_info.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_hardware_info.go new file mode 100644 index 00000000000..a1c9ad7389f --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_hardware_info.go @@ -0,0 +1,861 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import ( + "time" + + "github.com/vmware/govmomi/vim25/types" +) + +var HostHardwareInfo = &types.HostHardwareInfo{ + SystemInfo: types.HostSystemInfo{ + Vendor: "VMware, Inc.", + Model: "VMware Virtual Platform", + Uuid: "e88d4d56-9f1e-3ea1-71fa-13a8e1a7fd70", + OtherIdentifyingInfo: []types.HostSystemIdentificationInfo{ + { + IdentifierValue: " No Asset Tag", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + Label: "Asset Tag", + Summary: "Asset tag of the system", + }, + Key: "AssetTag", + }, + }, + { + IdentifierValue: "[MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7]", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + Label: "OEM specific string", + Summary: "OEM specific string", + }, + Key: "OemSpecificString", + }, + }, + { + IdentifierValue: "Welcome to the Virtual Machine", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + Label: "OEM specific string", + Summary: "OEM specific string", + }, + Key: "OemSpecificString", + }, + }, + { + IdentifierValue: "VMware-56 4d 8d e8 1e 9f a1 3e-71 fa 13 a8 e1 a7 fd 70", + IdentifierType: &types.ElementDescription{ + Description: types.Description{ + Label: "Service tag", + Summary: "Service tag of the system", + }, + Key: "ServiceTag", + }, + }, + }, + }, + CpuPowerManagementInfo: &types.HostCpuPowerManagementInfo{ + CurrentPolicy: "Balanced", + HardwareSupport: "", + }, + CpuInfo: types.HostCpuInfo{ + NumCpuPackages: 2, + NumCpuCores: 2, + NumCpuThreads: 2, + Hz: 3591345000, + }, + CpuPkg: []types.HostCpuPackage{ + { + Index: 0, + Vendor: "intel", + Hz: 3591345000, + BusHz: 115849838, + Description: "Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz", + ThreadId: []int16{0}, + CpuFeature: []types.HostCpuIdInfo{ + { + Level: 0, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:1101", + Ebx: "0111:0101:0110:1110:0110:0101:0100:0111", + Ecx: "0110:1100:0110:0101:0111:0100:0110:1110", + Edx: "0100:1001:0110:0101:0110:1110:0110:1001", + }, + { + Level: 1, + Vendor: "", + Eax: "0000:0000:0000:0010:0000:0110:1101:0111", + Ebx: "0000:0000:0000:0001:0000:1000:0000:0000", + Ecx: "1001:0111:1011:1010:0010:0010:0010:1011", + Edx: "0000:1111:1010:1011:1111:1011:1111:1111", + }, + { + Level: -2147483648, + Vendor: "", + Eax: "1000:0000:0000:0000:0000:0000:0000:1000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + { + Level: -2147483647, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:0000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0001", + Edx: "0010:1000:0001:0000:0000:1000:0000:0000", + }, + { + Level: -2147483640, + Vendor: "", + Eax: "0000:0000:0000:0000:0011:0000:0010:1010", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + }, + }, + { + Index: 1, + Vendor: "intel", + Hz: 3591345000, + BusHz: 115849838, + Description: "Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz", + ThreadId: []int16{1}, + CpuFeature: []types.HostCpuIdInfo{ + { + Level: 0, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:1101", + Ebx: "0111:0101:0110:1110:0110:0101:0100:0111", + Ecx: "0110:1100:0110:0101:0111:0100:0110:1110", + Edx: "0100:1001:0110:0101:0110:1110:0110:1001", + }, + { + Level: 1, + Vendor: "", + Eax: "0000:0000:0000:0010:0000:0110:1101:0111", + Ebx: "0000:0010:0000:0001:0000:1000:0000:0000", + Ecx: "1001:0111:1011:1010:0010:0010:0010:1011", + Edx: "0000:1111:1010:1011:1111:1011:1111:1111", + }, + { + Level: -2147483648, + Vendor: "", + Eax: "1000:0000:0000:0000:0000:0000:0000:1000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + { + Level: -2147483647, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:0000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0001", + Edx: "0010:1000:0001:0000:0000:1000:0000:0000", + }, + { + Level: -2147483640, + Vendor: "", + Eax: "0000:0000:0000:0000:0011:0000:0010:1010", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + }, + }, + }, + MemorySize: 4294430720, + NumaInfo: &types.HostNumaInfo{ + Type: "NUMA", + NumNodes: 1, + NumaNode: []types.HostNumaNode{ + { + TypeId: 0x0, + CpuID: []int16{1, 0}, + MemoryRangeBegin: 4294967296, + MemoryRangeLength: 1073741824, + }, + }, + }, + SmcPresent: types.NewBool(false), + PciDevice: []types.HostPciDevice{ + { + Id: "0000:00:00.0", + ClassId: 1536, + Bus: 0x0, + Slot: 0x0, + Function: 0x0, + VendorId: -32634, + SubVendorId: 5549, + VendorName: "Intel Corporation", + DeviceId: 29072, + SubDeviceId: 6518, + ParentBridge: "", + DeviceName: "Virtual Machine Chipset", + }, + { + Id: "0000:00:01.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x1, + Function: 0x0, + VendorId: -32634, + SubVendorId: 0, + VendorName: "Intel Corporation", + DeviceId: 29073, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "440BX/ZX/DX - 82443BX/ZX/DX AGP bridge", + }, + { + Id: "0000:00:07.0", + ClassId: 1537, + Bus: 0x0, + Slot: 0x7, + Function: 0x0, + VendorId: -32634, + SubVendorId: 5549, + VendorName: "Intel Corporation", + DeviceId: 28944, + SubDeviceId: 6518, + ParentBridge: "", + DeviceName: "Virtual Machine Chipset", + }, + { + Id: "0000:00:07.1", + ClassId: 257, + Bus: 0x0, + Slot: 0x7, + Function: 0x1, + VendorId: -32634, + SubVendorId: 5549, + VendorName: "Intel Corporation", + DeviceId: 28945, + SubDeviceId: 6518, + ParentBridge: "", + DeviceName: "PIIX4 for 430TX/440BX/MX IDE Controller", + }, + { + Id: "0000:00:07.3", + ClassId: 1664, + Bus: 0x0, + Slot: 0x7, + Function: 0x3, + VendorId: -32634, + SubVendorId: 5549, + VendorName: "Intel Corporation", + DeviceId: 28947, + SubDeviceId: 6518, + ParentBridge: "", + DeviceName: "Virtual Machine Chipset", + }, + { + Id: "0000:00:07.7", + ClassId: 2176, + Bus: 0x0, + Slot: 0x7, + Function: 0x7, + VendorId: 5549, + SubVendorId: 5549, + VendorName: "VMware", + DeviceId: 1856, + SubDeviceId: 1856, + ParentBridge: "", + DeviceName: "Virtual Machine Communication Interface", + }, + { + Id: "0000:00:0f.0", + ClassId: 768, + Bus: 0x0, + Slot: 0xf, + Function: 0x0, + VendorId: 5549, + SubVendorId: 5549, + VendorName: "VMware", + DeviceId: 1029, + SubDeviceId: 1029, + ParentBridge: "", + DeviceName: "SVGA II Adapter", + }, + { + Id: "0000:00:11.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x11, + Function: 0x0, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1936, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI bridge", + }, + { + Id: "0000:00:15.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x0, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.1", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x1, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.2", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x2, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.3", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x3, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.4", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x4, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.5", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x5, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.6", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x6, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:15.7", + ClassId: 1540, + Bus: 0x0, + Slot: 0x15, + Function: 0x7, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x0, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.1", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x1, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.2", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x2, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.3", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x3, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.4", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x4, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.5", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x5, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.6", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x6, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:16.7", + ClassId: 1540, + Bus: 0x0, + Slot: 0x16, + Function: 0x7, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x0, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.1", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x1, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.2", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x2, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.3", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x3, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.4", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x4, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.5", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x5, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.6", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x6, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:17.7", + ClassId: 1540, + Bus: 0x0, + Slot: 0x17, + Function: 0x7, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.0", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x0, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.1", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x1, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.2", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x2, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.3", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x3, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.4", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x4, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.5", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x5, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.6", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x6, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:00:18.7", + ClassId: 1540, + Bus: 0x0, + Slot: 0x18, + Function: 0x7, + VendorId: 5549, + SubVendorId: 0, + VendorName: "VMware", + DeviceId: 1952, + SubDeviceId: 0, + ParentBridge: "", + DeviceName: "PCI Express Root Port", + }, + { + Id: "0000:03:00.0", + ClassId: 263, + Bus: 0x3, + Slot: 0x0, + Function: 0x0, + VendorId: 5549, + SubVendorId: 5549, + VendorName: "VMware", + DeviceId: 1984, + SubDeviceId: 1984, + ParentBridge: "0000:00:15.0", + DeviceName: "PVSCSI SCSI Controller", + }, + { + Id: "0000:0b:00.0", + ClassId: 512, + Bus: 0xb, + Slot: 0x0, + Function: 0x0, + VendorId: 5549, + SubVendorId: 5549, + VendorName: "VMware Inc.", + DeviceId: 1968, + SubDeviceId: 1968, + ParentBridge: "0000:00:16.0", + DeviceName: "vmxnet3 Virtual Ethernet Controller", + }, + { + Id: "0000:13:00.0", + ClassId: 512, + Bus: 0x13, + Slot: 0x0, + Function: 0x0, + VendorId: 5549, + SubVendorId: 5549, + VendorName: "VMware Inc.", + DeviceId: 1968, + SubDeviceId: 1968, + ParentBridge: "0000:00:17.0", + DeviceName: "vmxnet3 Virtual Ethernet Controller", + }, + }, + CpuFeature: []types.HostCpuIdInfo{ + { + Level: 0, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:1101", + Ebx: "0111:0101:0110:1110:0110:0101:0100:0111", + Ecx: "0110:1100:0110:0101:0111:0100:0110:1110", + Edx: "0100:1001:0110:0101:0110:1110:0110:1001", + }, + { + Level: 1, + Vendor: "", + Eax: "0000:0000:0000:0010:0000:0110:1101:0111", + Ebx: "0000:0000:0000:0001:0000:1000:0000:0000", + Ecx: "1001:0111:1011:1010:0010:0010:0010:1011", + Edx: "0000:1111:1010:1011:1111:1011:1111:1111", + }, + { + Level: -2147483648, + Vendor: "", + Eax: "1000:0000:0000:0000:0000:0000:0000:1000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + { + Level: -2147483647, + Vendor: "", + Eax: "0000:0000:0000:0000:0000:0000:0000:0000", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0001", + Edx: "0010:1000:0001:0000:0000:1000:0000:0000", + }, + { + Level: -2147483640, + Vendor: "", + Eax: "0000:0000:0000:0000:0011:0000:0010:1010", + Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", + Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", + Edx: "0000:0000:0000:0000:0000:0000:0000:0000", + }, + }, + BiosInfo: &types.HostBIOSInfo{ + BiosVersion: "6.00", + ReleaseDate: nil, + Vendor: "", + MajorRelease: 0, + MinorRelease: 0, + FirmwareMajorRelease: 0, + FirmwareMinorRelease: 0, + }, + ReliableMemoryInfo: &types.HostReliableMemoryInfo{}, +} + +func init() { + date, _ := time.Parse("2006-01-02", "2015-07-02") + + HostHardwareInfo.BiosInfo.ReleaseDate = &date +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/host_system.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_system.go similarity index 97% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/host_system.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_system.go index 523a03f811e..e25f39a59a9 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/host_system.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_system.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package esx @@ -1708,38 +1710,16 @@ var HostSystem = mo.HostSystem{ }, Runtime: (*types.HostRuntimeInfo)(nil), Config: types.HostConfigSummary{ - DynamicData: types.DynamicData{}, - Name: "localhost.localdomain", - Port: 902, - SslThumbprint: "", - Product: &types.AboutInfo{ - DynamicData: types.DynamicData{}, - Name: "VMware ESXi", - FullName: "VMware ESXi 6.0.0 build-3634798", - Vendor: "VMware, Inc.", - Version: "6.0.0", - Build: "3634798", - LocaleVersion: "INTL", - LocaleBuild: "000", - OsType: "vmnix-x86", - ProductLineId: "embeddedEsx", - ApiType: "HostAgent", - ApiVersion: "6.0", - InstanceUuid: "", - LicenseProductName: "VMware ESX Server", - LicenseProductVersion: "6.0", - }, + DynamicData: types.DynamicData{}, + Name: "localhost.localdomain", + Port: 902, + SslThumbprint: "", + Product: &HostConfigInfo.Product, VmotionEnabled: false, FaultToleranceEnabled: types.NewBool(true), - FeatureVersion: []types.HostFeatureVersionInfo{ - { - DynamicData: types.DynamicData{}, - Key: "faultTolerance", - Value: "6.0.0-6.0.0-6.0.0", - }, - }, - AgentVmDatastore: (*types.ManagedObjectReference)(nil), - AgentVmNetwork: (*types.ManagedObjectReference)(nil), + FeatureVersion: nil, + AgentVmDatastore: (*types.ManagedObjectReference)(nil), + AgentVmNetwork: (*types.ManagedObjectReference)(nil), }, QuickStats: types.HostListSummaryQuickStats{ DynamicData: types.DynamicData{}, @@ -1799,7 +1779,7 @@ var HostSystem = mo.HostSystem{ VsanInternalSystem: &types.ManagedObjectReference{Type: "HostVsanInternalSystem", Value: "ha-vsan-internal-system"}, CertificateManager: &types.ManagedObjectReference{Type: "HostCertificateManager", Value: "ha-certificate-manager"}, }, - Config: (*types.HostConfigInfo)(nil), + Config: &HostConfigInfo, Vm: nil, Datastore: nil, Network: nil, diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/resource_pool.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/resource_pool.go similarity index 88% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/resource_pool.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/resource_pool.go index 973c7298c73..08d6da5d12a 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/resource_pool.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/resource_pool.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package esx diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/root_folder.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/root_folder.go similarity index 71% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/root_folder.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/root_folder.go index 3d972d18009..bb40706fe75 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/root_folder.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/root_folder.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package esx diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/service_content.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/service_content.go similarity index 87% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/service_content.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/service_content.go index c54171cd3b4..88f2cbbb292 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/service_content.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/service_content.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package esx diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/setting.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/setting.go new file mode 100644 index 00000000000..c5c6ae601df --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/setting.go @@ -0,0 +1,28 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package esx + +import "github.com/vmware/govmomi/vim25/types" + +// Setting is captured from ESX's HostSystem.configManager.advancedOption +var Setting = []types.BaseOptionValue{ + // This list is currently pruned to include a single option for testing + &types.OptionValue{ + Key: "Config.HostAgent.log.level", + Value: "info", + }, +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/virtual_device.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/virtual_device.go similarity index 91% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/virtual_device.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/virtual_device.go index 69a82a27e2d..0d3943644fc 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/virtual_device.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/virtual_device.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package esx diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/file_manager.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/file_manager.go new file mode 100644 index 00000000000..29161b8654f --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/file_manager.go @@ -0,0 +1,193 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "os" + "path" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type FileManager struct { + mo.FileManager +} + +func NewFileManager(ref types.ManagedObjectReference) object.Reference { + m := &FileManager{} + m.Self = ref + return m +} + +func (f *FileManager) findDatastore(dc *types.ManagedObjectReference, name string) (*Datastore, types.BaseMethodFault) { + if dc == nil { + dc = &esx.Datacenter.Self + } + + folder := Map.Get(Map.Get(*dc).(*mo.Datacenter).DatastoreFolder).(*Folder) + + ds := Map.FindByName(name, folder.ChildEntity) + if ds == nil { + return nil, &types.InvalidDatastore{Name: name} + } + + return ds.(*Datastore), nil +} + +func (f *FileManager) fault(name string, err error, fault types.BaseFileFault) types.BaseMethodFault { + switch { + case os.IsNotExist(err): + fault = new(types.FileNotFound) + } + + fault.GetFileFault().File = name + + return fault.(types.BaseMethodFault) +} + +func (f *FileManager) DeleteDatastoreFileTask(d *types.DeleteDatastoreFile_Task) soap.HasFault { + task := CreateTask(f, "deleteDatastoreFile", func(t *Task) (types.AnyType, types.BaseMethodFault) { + p, fault := parseDatastorePath(d.Name) + if fault != nil { + return nil, fault + } + + ds, fault := f.findDatastore(d.Datacenter, p.Datastore) + if fault != nil { + return nil, fault + } + + dir := ds.Info.GetDatastoreInfo().Url + file := path.Join(dir, p.Path) + + _, err := os.Stat(file) + if err != nil { + if os.IsNotExist(err) { + return nil, f.fault(file, err, new(types.CannotDeleteFile)) + } + } + + err = os.RemoveAll(file) + if err != nil { + return nil, f.fault(file, err, new(types.CannotDeleteFile)) + } + + return nil, nil + }) + + task.Run() + + return &methods.DeleteDatastoreFile_TaskBody{ + Res: &types.DeleteDatastoreFile_TaskResponse{ + Returnval: task.Self, + }, + } +} + +func (f *FileManager) MakeDirectory(r *types.MakeDirectory) soap.HasFault { + body := &methods.MakeDirectoryBody{} + + p, fault := parseDatastorePath(r.Name) + if fault != nil { + body.Fault_ = Fault("", fault) + return body + } + + ds, fault := f.findDatastore(r.Datacenter, p.Datastore) + if fault != nil { + body.Fault_ = Fault("", fault) + return body + } + + name := path.Join(ds.Info.GetDatastoreInfo().Url, p.Path) + + mkdir := os.Mkdir + + if isTrue(r.CreateParentDirectories) { + mkdir = os.MkdirAll + } + + err := mkdir(name, 0700) + if err != nil { + fault = f.fault(r.Name, err, new(types.CannotCreateFile)) + body.Fault_ = Fault(err.Error(), fault) + return body + } + + return body +} + +func (f *FileManager) MoveDatastoreFileTask(d *types.MoveDatastoreFile_Task) soap.HasFault { + task := CreateTask(f, "moveDatastoreFile", func(t *Task) (types.AnyType, types.BaseMethodFault) { + src, fault := parseDatastorePath(d.SourceName) + if fault != nil { + return nil, fault + } + + srcDs, fault := f.findDatastore(d.SourceDatacenter, src.Datastore) + if fault != nil { + return nil, fault + } + + srcDir := srcDs.Info.GetDatastoreInfo().Url + srcFile := path.Join(srcDir, src.Path) + + dst, fault := parseDatastorePath(d.DestinationName) + if fault != nil { + return nil, fault + } + + dstDs, fault := f.findDatastore(d.DestinationDatacenter, dst.Datastore) + if fault != nil { + return nil, fault + } + + dstDir := dstDs.Info.GetDatastoreInfo().Url + dstFile := path.Join(dstDir, dst.Path) + + if !isTrue(d.Force) { + _, err := os.Stat(dstFile) + if err == nil { + return nil, &types.FileAlreadyExists{ + FileFault: types.FileFault{ + File: dstFile, + }, + } + } + } + + err := os.Rename(srcFile, dstFile) + if err != nil { + return nil, f.fault(srcFile, err, new(types.CannotAccessFile)) + } + + return nil, nil + }) + + task.Run() + + return &methods.MoveDatastoreFile_TaskBody{ + Res: &types.MoveDatastoreFile_TaskResponse{ + Returnval: task.Self, + }, + } +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/folder.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/folder.go similarity index 83% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/folder.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/folder.go index 03c306c7e6a..5660d89385a 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/folder.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/folder.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator @@ -38,8 +40,13 @@ type Folder struct { func (f *Folder) update(o mo.Reference, u func(types.ManagedObjectReference, []types.ManagedObjectReference) []types.ManagedObjectReference) { ref := o.Reference() - if f.Parent == nil || ref.Type == "Datacenter" { - return // don't bother with Datacenter or the root folder + if f.Parent == nil { + return // this is the root folder + } + + switch ref.Type { + case "Datacenter", "Folder": + return // nothing to update } dc := Map.getEntityDatacenter(f) @@ -87,13 +94,13 @@ func (f *Folder) typeNotSupported() *soap.Fault { return Fault(fmt.Sprintf("%s supports types: %#v", f.Self, f.ChildType), &types.NotSupported{}) } -type addStandaloneHostTask struct { +type addStandaloneHost struct { *Folder req *types.AddStandaloneHost_Task } -func (add *addStandaloneHostTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { +func (add *addStandaloneHost) Run(task *Task) (types.AnyType, types.BaseMethodFault) { host, err := CreateStandaloneHost(add.Folder, add.req.Spec) if err != nil { return nil, err @@ -110,7 +117,7 @@ func (f *Folder) AddStandaloneHostTask(a *types.AddStandaloneHost_Task) soap.Has r := &methods.AddStandaloneHost_TaskBody{} if f.hasChildType("ComputeResource") && f.hasChildType("Folder") { - task := NewTask(&addStandaloneHostTask{f, a}) + task := NewTask(&addStandaloneHost{f, a}) r.Res = &types.AddStandaloneHost_TaskResponse{ Returnval: task.Self, @@ -217,7 +224,7 @@ func (f *Folder) CreateClusterEx(c *types.CreateClusterEx) soap.HasFault { return r } -type createVMTask struct { +type createVM struct { *Folder req *types.CreateVM_Task @@ -225,7 +232,7 @@ type createVMTask struct { register bool } -func (c *createVMTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { +func (c *createVM) Run(task *Task) (types.AnyType, types.BaseMethodFault) { vm, err := NewVirtualMachine(&c.req.Config) if err != nil { return nil, err @@ -263,11 +270,19 @@ func (c *createVMTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { c.Folder.putChild(vm) + host := Map.Get(*vm.Runtime.Host).(*HostSystem) + host.Vm = append(host.Vm, vm.Self) + + for i := range vm.Datastore { + ds := Map.Get(vm.Datastore[i]).(*Datastore) + ds.Vm = append(ds.Vm, vm.Self) + } + switch rp := Map.Get(*vm.ResourcePool).(type) { case *ResourcePool: - rp.Vm = append(rp.Vm, vm.Reference()) + rp.Vm = append(rp.Vm, vm.Self) case *VirtualApp: - rp.Vm = append(rp.Vm, vm.Reference()) + rp.Vm = append(rp.Vm, vm.Self) } return vm.Reference(), nil @@ -276,7 +291,7 @@ func (c *createVMTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { func (f *Folder) CreateVMTask(c *types.CreateVM_Task) soap.HasFault { r := &methods.CreateVM_TaskBody{} - task := NewTask(&createVMTask{f, c, false}) + task := NewTask(&createVM{f, c, false}) r.Res = &types.CreateVM_TaskResponse{ Returnval: task.Self, @@ -287,13 +302,13 @@ func (f *Folder) CreateVMTask(c *types.CreateVM_Task) soap.HasFault { return r } -type registerVMTask struct { +type registerVM struct { *Folder req *types.RegisterVM_Task } -func (c *registerVMTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { +func (c *registerVM) Run(task *Task) (types.AnyType, types.BaseMethodFault) { if c.req.AsTemplate { return nil, &types.NotSupported{} } @@ -327,7 +342,7 @@ func (c *registerVMTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) c.req.Name = path.Dir(p.Path) } - create := NewTask(&createVMTask{ + create := NewTask(&createVM{ Folder: c.Folder, register: true, req: &types.CreateVM_Task{ @@ -355,7 +370,7 @@ func (c *registerVMTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) func (f *Folder) RegisterVMTask(c *types.RegisterVM_Task) soap.HasFault { r := &methods.RegisterVM_TaskBody{} - task := NewTask(®isterVMTask{f, c}) + task := NewTask(®isterVM{f, c}) r.Res = &types.RegisterVM_TaskResponse{ Returnval: task.Self, @@ -418,3 +433,7 @@ func (f *Folder) CreateDVSTask(c *types.CreateDVS_Task) soap.HasFault { }, } } + +func (f *Folder) RenameTask(r *types.Rename_Task) soap.HasFault { + return RenameTask(f, r) +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_datastore_browser.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_browser.go similarity index 76% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_datastore_browser.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_browser.go index 613a7cf883b..2ae9baeb1f1 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_datastore_browser.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_browser.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator @@ -30,7 +32,7 @@ type HostDatastoreBrowser struct { mo.HostDatastoreBrowser } -type searchDatastoreTask struct { +type searchDatastore struct { *HostDatastoreBrowser DatastorePath string @@ -41,7 +43,7 @@ type searchDatastoreTask struct { recurse bool } -func (s *searchDatastoreTask) addFile(file os.FileInfo, res *types.HostDatastoreBrowserSearchResults) { +func (s *searchDatastore) addFile(file os.FileInfo, res *types.HostDatastoreBrowserSearchResults) { details := s.SearchSpec.Details if details == nil { details = new(types.FileQueryFlags) @@ -53,7 +55,7 @@ func (s *searchDatastoreTask) addFile(file os.FileInfo, res *types.HostDatastore Path: name, } - var finfo types.BaseFileInfo + var finfo types.BaseFileInfo = &info if details.FileSize { info.FileSize = file.Size() @@ -88,15 +90,13 @@ func (s *searchDatastoreTask) addFile(file os.FileInfo, res *types.HostDatastore finfo = &types.VmDiskFileInfo{FileInfo: info} case ".vmx": finfo = &types.VmConfigFileInfo{FileInfo: info} - default: - finfo = &info } } res.File = append(res.File, finfo) } -func (s *searchDatastoreTask) search(ds *types.ManagedObjectReference, folder string, dir string) error { +func (s *searchDatastore) search(ds *types.ManagedObjectReference, folder string, dir string) error { files, err := ioutil.ReadDir(dir) if err != nil { log.Printf("search %s: %s", dir, err) @@ -128,7 +128,7 @@ func (s *searchDatastoreTask) search(ds *types.ManagedObjectReference, folder st return nil } -func (s *searchDatastoreTask) Run(Task *Task) (types.AnyType, types.BaseMethodFault) { +func (s *searchDatastore) Run(Task *Task) (types.AnyType, types.BaseMethodFault) { p, fault := parseDatastorePath(s.DatastorePath) if fault != nil { return nil, fault @@ -148,11 +148,12 @@ func (s *searchDatastoreTask) Run(Task *Task) (types.AnyType, types.BaseMethodFa ff := types.FileFault{ File: p.Path, } + if os.IsNotExist(err) { return nil, &types.FileNotFound{FileFault: ff} } - return nil, &ff + return nil, &types.InvalidArgument{InvalidProperty: p.Path} } if s.recurse { @@ -165,7 +166,7 @@ func (s *searchDatastoreTask) Run(Task *Task) (types.AnyType, types.BaseMethodFa } func (b *HostDatastoreBrowser) SearchDatastoreTask(s *types.SearchDatastore_Task) soap.HasFault { - task := NewTask(&searchDatastoreTask{ + task := NewTask(&searchDatastore{ HostDatastoreBrowser: b, DatastorePath: s.DatastorePath, SearchSpec: s.SearchSpec, @@ -181,7 +182,7 @@ func (b *HostDatastoreBrowser) SearchDatastoreTask(s *types.SearchDatastore_Task } func (b *HostDatastoreBrowser) SearchDatastoreSubFoldersTask(s *types.SearchDatastoreSubFolders_Task) soap.HasFault { - task := NewTask(&searchDatastoreTask{ + task := NewTask(&searchDatastore{ HostDatastoreBrowser: b, DatastorePath: s.DatastorePath, SearchSpec: s.SearchSpec, diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_datastore_system.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_system.go similarity index 84% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_datastore_system.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_system.go index 554a0d7d60a..32da7d0eb0f 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_datastore_system.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_system.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_firewall_system.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_firewall_system.go new file mode 100644 index 00000000000..fd596386aa1 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_firewall_system.go @@ -0,0 +1,87 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type HostFirewallSystem struct { + mo.HostFirewallSystem +} + +func NewHostFirewallSystem(_ *mo.HostSystem) *HostFirewallSystem { + info := esx.HostFirewallInfo + + return &HostFirewallSystem{ + HostFirewallSystem: mo.HostFirewallSystem{ + FirewallInfo: &info, + }, + } +} + +func DisableRuleset(info *types.HostFirewallInfo, id string) bool { + for i := range info.Ruleset { + if info.Ruleset[i].Key == id { + info.Ruleset[i].Enabled = false + return true + } + } + + return false +} + +func (s *HostFirewallSystem) DisableRuleset(req *types.DisableRuleset) soap.HasFault { + body := &methods.DisableRulesetBody{} + + if DisableRuleset(s.HostFirewallSystem.FirewallInfo, req.Id) { + body.Res = new(types.DisableRulesetResponse) + return body + } + + body.Fault_ = Fault("", &types.NotFound{}) + + return body +} + +func EnableRuleset(info *types.HostFirewallInfo, id string) bool { + for i := range info.Ruleset { + if info.Ruleset[i].Key == id { + info.Ruleset[i].Enabled = true + return true + } + } + + return false +} + +func (s *HostFirewallSystem) EnableRuleset(req *types.EnableRuleset) soap.HasFault { + body := &methods.EnableRulesetBody{} + + if EnableRuleset(s.HostFirewallSystem.FirewallInfo, req.Id) { + body.Res = new(types.EnableRulesetResponse) + return body + } + + body.Fault_ = Fault("", &types.NotFound{}) + + return body +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_network_system.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_network_system.go similarity index 84% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_network_system.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_network_system.go index e14c718d5ae..d0502c9a7ef 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_network_system.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_network_system.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_system.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_system.go similarity index 70% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_system.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_system.go index dd36d868c44..779c578c6dc 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/host_system.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_system.go @@ -1,25 +1,28 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator import ( "time" + "github.com/google/uuid" + "github.com/vmware/govmomi/simulator/esx" "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/types" - "github.com/vmware/vic/pkg/vsphere/simulator/esx" ) type HostSystem struct { @@ -33,6 +36,14 @@ func NewHostSystem(host mo.HostSystem) *HostSystem { host.Summary.Runtime = &host.Runtime host.Summary.Runtime.BootTime = &now + hw := *host.Summary.Hardware // shallow copy + hw.Uuid = uuid.New().String() + host.Summary.Hardware = &hw + + info := *esx.HostHardwareInfo + info.SystemInfo.Uuid = hw.Uuid + host.Hardware = &info + hs := &HostSystem{ HostSystem: host, } @@ -43,6 +54,8 @@ func NewHostSystem(host mo.HostSystem) *HostSystem { }{ {&hs.ConfigManager.DatastoreSystem, &HostDatastoreSystem{Host: &hs.HostSystem}}, {&hs.ConfigManager.NetworkSystem, NewHostNetworkSystem(&hs.HostSystem)}, + {&hs.ConfigManager.AdvancedOption, NewOptionManager(nil, esx.Setting)}, + {&hs.ConfigManager.FirewallSystem, NewHostFirewallSystem(&hs.HostSystem)}, } for _, c := range config { diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/license_manager.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/license_manager.go similarity index 80% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/license_manager.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/license_manager.go index 6e774344b2c..adabfc54b3e 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/license_manager.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/license_manager.go @@ -1,3 +1,18 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ // Copyright 2017 VMware, Inc. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/model.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/model.go similarity index 90% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/model.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/model.go index 40f3c29028f..acb6458f190 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/model.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/model.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator @@ -21,10 +23,10 @@ import ( "os" "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/simulator/esx" + "github.com/vmware/govmomi/simulator/vpx" "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/types" - "github.com/vmware/vic/pkg/vsphere/simulator/esx" - "github.com/vmware/vic/pkg/vsphere/simulator/vc" ) // Model is used to populate a Model with an initial set of managed entities. @@ -92,8 +94,8 @@ func ESX() *Model { // VPX is the default Model for a vCenter instance func VPX() *Model { return &Model{ - ServiceContent: vc.ServiceContent, - RootFolder: vc.RootFolder, + ServiceContent: vpx.ServiceContent, + RootFolder: vpx.RootFolder, Datacenter: 1, Portgroup: 1, Host: 1, @@ -217,9 +219,15 @@ func (m *Model) Create() error { pool, _ = host.ResourcePool(ctx) } - devices := []types.BaseVirtualDevice{&nic} + var devices object.VirtualDeviceList + + scsi, _ := devices.CreateSCSIController("pvscsi") + ide, _ := devices.CreateIDEController() + cdrom, _ := devices.CreateCdrom(ide.(*types.VirtualIDEController)) + + devices = append(devices, scsi, cdrom, &nic) - config.DeviceChange, _ = object.VirtualDeviceList(devices).ConfigSpec(types.VirtualDeviceConfigSpecOperationAdd) + config.DeviceChange, _ = devices.ConfigSpec(types.VirtualDeviceConfigSpecOperationAdd) task, err := folders.VmFolder.CreateVM(ctx, config, pool, host) if err != nil { diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/option_manager.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/option_manager.go new file mode 100644 index 00000000000..4615882c364 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/option_manager.go @@ -0,0 +1,59 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "strings" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type OptionManager struct { + mo.OptionManager +} + +func NewOptionManager(ref *types.ManagedObjectReference, setting []types.BaseOptionValue) object.Reference { + s := &OptionManager{} + if ref != nil { + s.Self = *ref + } + s.Setting = setting + return s +} + +func (m *OptionManager) QueryOptions(req *types.QueryOptions) soap.HasFault { + body := &methods.QueryOptionsBody{} + res := &types.QueryOptionsResponse{} + + for _, opt := range m.Setting { + if strings.HasPrefix(opt.GetOptionValue().Key, req.Name) { + res.Returnval = append(res.Returnval, opt) + } + } + + if len(res.Returnval) == 0 { + body.Fault_ = Fault("", &types.InvalidName{Name: req.Name}) + } else { + body.Res = res + } + + return body +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/property_collector.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_collector.go similarity index 85% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/property_collector.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_collector.go index 18222e341c2..f2b8d0a7faf 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/property_collector.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_collector.go @@ -1,16 +1,18 @@ -// Copyright 2016-2017 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator @@ -185,8 +187,8 @@ func ucFirst(s string) string { type retrieveResult struct { *types.RetrieveResult req *types.RetrievePropertiesEx - recurse map[string]bool collected map[types.ManagedObjectReference]bool + specs map[string]*types.TraversalSpec } func (rr *retrieveResult) collectAll(rval reflect.Value, rtype reflect.Type, content *types.ObjectContent) { @@ -212,8 +214,7 @@ func (rr *retrieveResult) collectAll(rval reflect.Value, rtype reflect.Type, con } } -func (rr *retrieveResult) collectFields(rval reflect.Value, fields []string, content *types.ObjectContent) []types.ManagedObjectReference { - var refs []types.ManagedObjectReference +func (rr *retrieveResult) collectFields(rval reflect.Value, fields []string, content *types.ObjectContent) { seen := make(map[string]bool) for i := range content.PropSet { @@ -230,10 +231,6 @@ func (rr *retrieveResult) collectFields(rval reflect.Value, fields []string, con val, err := fieldValue(rval, name) if err == nil { - if rr.recurse[name] { - refs = append(refs, fieldRefs(val)...) - } - prop := types.DynamicProperty{ Name: name, Val: val, @@ -255,8 +252,6 @@ func (rr *retrieveResult) collectFields(rval reflect.Value, fields []string, con }) } } - - return refs } func (rr *retrieveResult) collect(ref types.ManagedObjectReference) { @@ -277,8 +272,6 @@ func (rr *retrieveResult) collect(ref types.ManagedObjectReference) { rtype := rval.Type() - var refs []types.ManagedObjectReference - for _, spec := range rr.req.SpecSet { for _, p := range spec.PropSet { if p.Type != ref.Type { @@ -295,16 +288,54 @@ func (rr *retrieveResult) collect(ref types.ManagedObjectReference) { continue } - refs = append(refs, rr.collectFields(rval, p.PathSet, &content)...) + rr.collectFields(rval, p.PathSet, &content) } } - rr.Objects = append(rr.Objects, content) + if len(content.PropSet) != 0 || len(content.MissingSet) != 0 { + rr.Objects = append(rr.Objects, content) + } + rr.collected[ref] = true +} + +func (rr *retrieveResult) selectSet(obj reflect.Value, s []types.BaseSelectionSpec, refs *[]types.ManagedObjectReference) types.BaseMethodFault { + for _, ss := range s { + ts, ok := ss.(*types.TraversalSpec) + + if ok { + if ts.Name != "" { + rr.specs[ts.Name] = ts + } + } + } + + for _, ss := range s { + ts, ok := ss.(*types.TraversalSpec) + if !ok { + ts = rr.specs[ss.GetSelectionSpec().Name] + if ts == nil { + return &types.InvalidArgument{InvalidProperty: "undefined TraversalSpec name"} + } + } - for _, rref := range refs { - rr.collect(rref) + f, _ := fieldValue(obj, ts.Path) + + for _, ref := range fieldRefs(f) { + if isFalse(ts.Skip) { + *refs = append(*refs, ref) + } + + rval, ok := getObject(ref) + if ok { + if err := rr.selectSet(rval, ts.SelectSet, refs); err != nil { + return err + } + } + } } + + return nil } func (pc *PropertyCollector) collect(r *types.RetrievePropertiesEx) (*types.RetrieveResult, types.BaseMethodFault) { @@ -313,8 +344,8 @@ func (pc *PropertyCollector) collect(r *types.RetrievePropertiesEx) (*types.Retr rr := &retrieveResult{ RetrieveResult: &types.RetrieveResult{}, req: r, - recurse: make(map[string]bool), collected: make(map[types.ManagedObjectReference]bool), + specs: make(map[string]*types.TraversalSpec), } // Select object references @@ -333,16 +364,8 @@ func (pc *PropertyCollector) collect(r *types.RetrievePropertiesEx) (*types.Retr refs = append(refs, o.Obj) } - for _, ss := range o.SelectSet { - ts := ss.(*types.TraversalSpec) - - if ts.SelectSet != nil { - rr.recurse[ts.Path] = true - } - - f, _ := fieldValue(rval, ts.Path) - - refs = append(refs, fieldRefs(f)...) + if err := rr.selectSet(rval, o.SelectSet, &refs); err != nil { + return nil, err } } } diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_filter.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_filter.go new file mode 100644 index 00000000000..0d7d9a38daf --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_filter.go @@ -0,0 +1,42 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" +) + +type PropertyFilter struct { + mo.PropertyFilter + + pc *PropertyCollector +} + +func (f *PropertyFilter) DestroyPropertyFilter(c *types.DestroyPropertyFilter) soap.HasFault { + body := &methods.DestroyPropertyFilterBody{} + + f.pc.Filter = RemoveReference(c.This, f.pc.Filter) + + Map.Remove(c.This) + + body.Res = &types.DestroyPropertyFilterResponse{} + + return body +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/registry.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/registry.go similarity index 76% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/registry.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/registry.go index b5a268acf06..c738dc29234 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/registry.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/registry.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator @@ -24,22 +26,35 @@ import ( "github.com/vmware/govmomi/vim25/types" ) +// Map is the default Registry instance. var Map = NewRegistry() +// RegisterObject interface supports callbacks when objects are added and removed from the Registry +type RegisterObject interface { + mo.Reference + PutObject(mo.Reference) + RemoveObject(types.ManagedObjectReference) +} + +// Registry manages a map of mo.Reference objects type Registry struct { - m sync.Mutex - objects map[types.ManagedObjectReference]mo.Reference - counter int + m sync.Mutex + objects map[types.ManagedObjectReference]mo.Reference + handlers map[types.ManagedObjectReference]RegisterObject + counter int } +// NewRegistry creates a new instances of Registry func NewRegistry() *Registry { r := &Registry{ - objects: make(map[types.ManagedObjectReference]mo.Reference), + objects: make(map[types.ManagedObjectReference]mo.Reference), + handlers: make(map[types.ManagedObjectReference]RegisterObject), } return r } +// TypeName returns the type of the given object. func TypeName(item mo.Reference) string { return reflect.TypeOf(item).Elem().Name() } @@ -61,6 +76,11 @@ func (r *Registry) newReference(item mo.Reference) types.ManagedObjectReference return ref } +// AddHandler adds a RegisterObject handler to the Registry. +func (r *Registry) AddHandler(h RegisterObject) { + r.handlers[h.Reference()] = h +} + // NewEntity sets Entity().Self with a new, unique Value. // Useful for creating object instances from templates. func (r *Registry) NewEntity(item mo.Entity) mo.Entity { @@ -70,6 +90,7 @@ func (r *Registry) NewEntity(item mo.Entity) mo.Entity { return item } +// PutEntity sets item.Parent to that of parent.Self before adding item to the Registry. func (r *Registry) PutEntity(parent mo.Entity, item mo.Entity) mo.Entity { e := item.Entity() @@ -82,6 +103,7 @@ func (r *Registry) PutEntity(parent mo.Entity, item mo.Entity) mo.Entity { return item } +// Get returns the object for the given reference. func (r *Registry) Get(ref types.ManagedObjectReference) mo.Reference { r.m.Lock() defer r.m.Unlock() @@ -103,6 +125,7 @@ func (r *Registry) Any(kind string) mo.Entity { return nil } +// Put adds a new object to Registry, generating a ManagedObjectReference if not already set. func (r *Registry) Put(item mo.Reference) mo.Reference { r.m.Lock() defer r.m.Unlock() @@ -116,14 +139,24 @@ func (r *Registry) Put(item mo.Reference) mo.Reference { r.objects[ref] = item + for _, h := range r.handlers { + h.PutObject(item) + } + return item } +// Remove removes an object from the Registry. func (r *Registry) Remove(item types.ManagedObjectReference) { r.m.Lock() defer r.m.Unlock() + for _, h := range r.handlers { + h.RemoveObject(item) + } + delete(r.objects, item) + delete(r.handlers, item) } // getEntityParent traverses up the inventory and returns the first object of type kind. diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/resource_pool.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/resource_pool.go similarity index 70% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/resource_pool.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/resource_pool.go index 480afff295d..ed8de91d931 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/resource_pool.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/resource_pool.go @@ -1,27 +1,29 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator import ( "strings" + "github.com/vmware/govmomi/simulator/esx" "github.com/vmware/govmomi/vim25/methods" "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/soap" "github.com/vmware/govmomi/vim25/types" - "github.com/vmware/vic/pkg/vsphere/simulator/esx" ) type ResourcePool struct { @@ -197,49 +199,40 @@ func (a *VirtualApp) DestroyTask(req *types.Destroy_Task) soap.HasFault { return (&ResourcePool{ResourcePool: a.ResourcePool}).DestroyTask(req) } -type destroyPoolTask struct { - *ResourcePool -} - -func (c *destroyPoolTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { - if strings.HasSuffix(c.Parent.Type, "ComputeResource") { - // Can't destroy the root pool - return nil, &types.InvalidArgument{} - } +func (p *ResourcePool) DestroyTask(req *types.Destroy_Task) soap.HasFault { + task := CreateTask(p, "destroy", func(t *Task) (types.AnyType, types.BaseMethodFault) { + if strings.HasSuffix(p.Parent.Type, "ComputeResource") { + // Can't destroy the root pool + return nil, &types.InvalidArgument{} + } - p := Map.Get(*c.Parent).(*ResourcePool) + pp := Map.Get(*p.Parent).(*ResourcePool) - rp := &p.ResourcePool - // Remove child reference from rp - rp.ResourcePool = RemoveReference(c.Reference(), rp.ResourcePool) + parent := &pp.ResourcePool + // Remove child reference from rp + parent.ResourcePool = RemoveReference(req.This, parent.ResourcePool) - // The grandchildren become children of the parent (rp) - //..........................................hello........hello........hello.......... - rp.ResourcePool = append(rp.ResourcePool, c.ResourcePool.ResourcePool.ResourcePool...) + // The grandchildren become children of the parent (rp) + parent.ResourcePool = append(parent.ResourcePool, p.ResourcePool.ResourcePool...) - // And VMs move to the parent - vms := c.ResourcePool.ResourcePool.Vm - for _, vm := range vms { - Map.Get(vm).(*VirtualMachine).ResourcePool = &rp.Self - } + // And VMs move to the parent + vms := p.ResourcePool.Vm + for _, vm := range vms { + Map.Get(vm).(*VirtualMachine).ResourcePool = &parent.Self + } - rp.Vm = append(rp.Vm, vms...) + parent.Vm = append(parent.Vm, vms...) - Map.Remove(c.Reference()) + Map.Remove(req.This) - return nil, nil -} - -func (p *ResourcePool) DestroyTask(c *types.Destroy_Task) soap.HasFault { - r := &methods.Destroy_TaskBody{} - - task := NewTask(&destroyPoolTask{p}) - - r.Res = &types.Destroy_TaskResponse{ - Returnval: task.Self, - } + return nil, nil + }) task.Run() - return r + return &methods.Destroy_TaskBody{ + Res: &types.Destroy_TaskResponse{ + Returnval: task.Self, + }, + } } diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/search_index.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/search_index.go similarity index 65% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/search_index.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/search_index.go index c465f1371bf..c56dff2cba7 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/search_index.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/search_index.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator @@ -119,3 +121,35 @@ func (s *SearchIndex) FindChild(req *types.FindChild) soap.HasFault { return body } + +func (s *SearchIndex) FindByUuid(req *types.FindByUuid) soap.HasFault { + body := &methods.FindByUuidBody{Res: new(types.FindByUuidResponse)} + + if req.VmSearch { + // Find Virtual Machine using UUID + for ref, obj := range Map.objects { + vm, ok := obj.(*VirtualMachine) + if !ok { + continue + } + if vm.Config.Uuid == req.Uuid { + body.Res.Returnval = &ref + break + } + } + } else { + // Find Host System using UUID + for ref, obj := range Map.objects { + host, ok := obj.(*HostSystem) + if !ok { + continue + } + if host.Summary.Hardware.Uuid == req.Uuid { + body.Res.Returnval = &ref + break + } + } + } + + return body +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/service_instance.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/service_instance.go similarity index 65% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/service_instance.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/service_instance.go index 31c790d7f63..c3e7a78130a 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/service_instance.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/service_instance.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator @@ -18,6 +20,7 @@ import ( "time" "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/simulator/vpx" "github.com/vmware/govmomi/vim25/methods" "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/soap" @@ -46,8 +49,12 @@ func NewServiceInstance(content types.ServiceContent, folder mo.Folder) *Service f := &Folder{Folder: folder} Map.Put(f) + var setting []types.BaseOptionValue + if content.About.ApiType == "HostAgent" { CreateDefaultESX(f) + } else { + setting = vpx.Setting } objects := []object.Reference{ @@ -57,6 +64,8 @@ func NewServiceInstance(content types.ServiceContent, folder mo.Folder) *Service NewLicenseManager(*s.Content.LicenseManager), NewSearchIndex(*s.Content.SearchIndex), NewViewManager(*s.Content.ViewManager), + NewTaskManager(*s.Content.TaskManager), + NewOptionManager(s.Content.Setting, setting), } for _, o := range objects { diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/session_manager.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/session_manager.go similarity index 72% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/session_manager.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/session_manager.go index fdb8bcfa13c..d05d5f5d5ea 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/session_manager.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/session_manager.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/simulator.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/simulator.go similarity index 95% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/simulator.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/simulator.go index 6e2daf85d57..d88780986ea 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/simulator.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/simulator.go @@ -1,16 +1,18 @@ -// Copyright 2016-2017 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/task.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task.go similarity index 70% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/task.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task.go index 4fc3d8000a7..7ef17498c9f 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/task.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task.go @@ -1,16 +1,18 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator @@ -36,6 +38,7 @@ type Task struct { func NewTask(runner TaskRunner) *Task { ref := runner.Reference() name := reflect.TypeOf(runner).Elem().Name() + name = strings.Replace(name, "VM", "Vm", 1) // "VM" for the type to make go-lint happy, but "Vm" for the vmodl ID return CreateTask(ref, name, runner.Run) } diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task_manager.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task_manager.go new file mode 100644 index 00000000000..df271082596 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task_manager.go @@ -0,0 +1,52 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package simulator + +import ( + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" +) + +var recentTaskMax = 200 // the VC limit + +type TaskManager struct { + mo.TaskManager +} + +func NewTaskManager(ref types.ManagedObjectReference) object.Reference { + s := &TaskManager{} + s.Self = ref + Map.AddHandler(s) + return s +} + +func (m *TaskManager) PutObject(obj mo.Reference) { + ref := obj.Reference() + if ref.Type != "Task" { + return + } + + m.RecentTask = append(m.RecentTask, ref) + + if len(m.RecentTask) > recentTaskMax { + m.RecentTask = m.RecentTask[1:] + } +} + +func (m *TaskManager) RemoveObject(_ types.ManagedObjectReference) { +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/view_manager.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/view_manager.go similarity index 87% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/view_manager.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/view_manager.go index f9a222bc107..959f22847b9 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/view_manager.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/view_manager.go @@ -1,16 +1,18 @@ -// Copyright 2017 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/virtual_machine.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/virtual_machine.go similarity index 67% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/virtual_machine.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/virtual_machine.go index 7749963aa3a..30e340801aa 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/virtual_machine.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/virtual_machine.go @@ -1,16 +1,18 @@ -// Copyright 2016-2017 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ package simulator @@ -27,11 +29,11 @@ import ( "github.com/google/uuid" "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/simulator/esx" "github.com/vmware/govmomi/vim25/methods" "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/soap" "github.com/vmware/govmomi/vim25/types" - "github.com/vmware/vic/pkg/vsphere/simulator/esx" ) type VirtualMachine struct { @@ -58,9 +60,6 @@ func NewVirtualMachine(spec *types.VirtualMachineConfigSpec) (*VirtualMachine, t vm.Summary.Guest = &types.VirtualMachineGuestSummary{} vm.Summary.Storage = &types.VirtualMachineStorageSummary{} - // Add the default devices - devices, _ := object.VirtualDeviceList(esx.VirtualDevice).ConfigSpec(types.VirtualDeviceConfigSpecOperationAdd) - // Append VM Name as the directory name if not specified if strings.HasSuffix(spec.Files.VmPathName, "]") { // e.g. "[datastore1]" spec.Files.VmPathName += " " + spec.Name @@ -83,9 +82,11 @@ func NewVirtualMachine(spec *types.VirtualMachineConfigSpec) (*VirtualMachine, t SuspendDirectory: dsPath, LogDirectory: dsPath, }, - DeviceChange: devices, } + // Add the default devices + defaults.DeviceChange, _ = object.VirtualDeviceList(esx.VirtualDevice).ConfigSpec(types.VirtualDeviceConfigSpecOperationAdd) + err := vm.configure(&defaults) if err != nil { return nil, err @@ -162,9 +163,7 @@ func (vm *VirtualMachine) useDatastore(name string) *Datastore { ds := Map.FindByName(name, host.Datastore).(*Datastore) - if Map.FindByName(name, vm.Datastore) == nil { - vm.Datastore = append(vm.Datastore, ds.Reference()) - } + vm.Datastore = AddReference(ds.Self, vm.Datastore) return ds } @@ -283,6 +282,22 @@ func (vm *VirtualMachine) configureDevice(devices object.VirtualDeviceList, devi d := device.GetVirtualDevice() var controller types.BaseVirtualController + if d.Key < 0 { + // Choose a unique key + if d.Key == -1 { + d.Key = devices.NewKey() + } + + d.Key *= -1 + + for { + if devices.FindByKey(d.Key) == nil { + break + } + d.Key++ + } + } + label := devices.Name(device) summary := label @@ -315,10 +330,6 @@ func (vm *VirtualMachine) configureDevice(devices object.VirtualDeviceList, devi devices.AssignController(device, controller) } - if d.Key == -1 { - d.Key = devices.NewKey() - } - if d.DeviceInfo == nil { d.DeviceInfo = &types.Description{ Label: label, @@ -329,10 +340,9 @@ func (vm *VirtualMachine) configureDevice(devices object.VirtualDeviceList, devi func removeDevice(devices object.VirtualDeviceList, device types.BaseVirtualDevice) object.VirtualDeviceList { var result object.VirtualDeviceList - name := devices.Name(device) for i, d := range devices { - if devices.Name(d) == name { + if d.GetVirtualDevice().Key == device.GetVirtualDevice().Key { result = append(result, devices[i+1:]...) break } @@ -354,7 +364,12 @@ func (vm *VirtualMachine) configureDevices(spec *types.VirtualMachineConfigSpec) switch dspec.Operation { case types.VirtualDeviceConfigSpecOperationAdd: if devices.FindByKey(device.Key) != nil { - return invalid + if vm.Self.Value != "" { // moid isn't set until CreateVM is done + return invalid + } + + // In this case, the CreateVM() spec included one of the default devices + devices = removeDevice(devices, device) } vm.configureDevice(devices, dspec.Device) @@ -404,7 +419,8 @@ func (c *powerVMTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { func (vm *VirtualMachine) PowerOnVMTask(c *types.PowerOnVM_Task) soap.HasFault { r := &methods.PowerOnVM_TaskBody{} - task := NewTask(&powerVMTask{vm, types.VirtualMachinePowerStatePoweredOn}) + runner := &powerVMTask{vm, types.VirtualMachinePowerStatePoweredOn} + task := CreateTask(runner.Reference(), "powerOn", runner.Run) r.Res = &types.PowerOnVM_TaskResponse{ Returnval: task.Self, @@ -418,7 +434,8 @@ func (vm *VirtualMachine) PowerOnVMTask(c *types.PowerOnVM_Task) soap.HasFault { func (vm *VirtualMachine) PowerOffVMTask(c *types.PowerOffVM_Task) soap.HasFault { r := &methods.PowerOffVM_TaskBody{} - task := NewTask(&powerVMTask{vm, types.VirtualMachinePowerStatePoweredOff}) + runner := &powerVMTask{vm, types.VirtualMachinePowerStatePoweredOff} + task := CreateTask(runner.Reference(), "powerOff", runner.Run) r.Res = &types.PowerOffVM_TaskResponse{ Returnval: task.Self, @@ -429,34 +446,8 @@ func (vm *VirtualMachine) PowerOffVMTask(c *types.PowerOffVM_Task) soap.HasFault return r } -type destroyVMTask struct { - *VirtualMachine -} - -func (c *destroyVMTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { - r := c.VirtualMachine.UnregisterVM(&types.UnregisterVM{ - This: c.VirtualMachine.Reference(), - }) - - if r.Fault() != nil { - return nil, r.Fault().VimFault().(types.BaseMethodFault) - } - - // Delete VM files from the datastore (ignoring result for now) - m := Map.FileManager() - dc := Map.getEntityDatacenter(c.VirtualMachine).Reference() - - _ = m.DeleteDatastoreFileTask(&types.DeleteDatastoreFile_Task{ - This: m.Reference(), - Name: c.VirtualMachine.Config.Files.LogDirectory, - Datacenter: &dc, - }) - - return nil, nil -} - func (vm *VirtualMachine) ReconfigVMTask(req *types.ReconfigVM_Task) soap.HasFault { - task := CreateTask(vm, "reconfigVMTask", func(t *Task) (types.AnyType, types.BaseMethodFault) { + task := CreateTask(vm, "reconfigVm", func(t *Task) (types.AnyType, types.BaseMethodFault) { err := vm.configure(&req.Spec) if err != nil { return nil, err @@ -474,18 +465,36 @@ func (vm *VirtualMachine) ReconfigVMTask(req *types.ReconfigVM_Task) soap.HasFau } } -func (vm *VirtualMachine) DestroyTask(c *types.Destroy_Task) soap.HasFault { - r := &methods.Destroy_TaskBody{} +func (vm *VirtualMachine) DestroyTask(req *types.Destroy_Task) soap.HasFault { + task := CreateTask(vm, "destroy", func(t *Task) (types.AnyType, types.BaseMethodFault) { + r := vm.UnregisterVM(&types.UnregisterVM{ + This: req.This, + }) - task := NewTask(&destroyVMTask{vm}) + if r.Fault() != nil { + return nil, r.Fault().VimFault().(types.BaseMethodFault) + } - r.Res = &types.Destroy_TaskResponse{ - Returnval: task.Self, - } + // Delete VM files from the datastore (ignoring result for now) + m := Map.FileManager() + dc := Map.getEntityDatacenter(vm).Reference() + + _ = m.DeleteDatastoreFileTask(&types.DeleteDatastoreFile_Task{ + This: m.Reference(), + Name: vm.Config.Files.LogDirectory, + Datacenter: &dc, + }) + + return nil, nil + }) task.Run() - return r + return &methods.Destroy_TaskBody{ + Res: &types.Destroy_TaskResponse{ + Returnval: task.Self, + }, + } } func (vm *VirtualMachine) UnregisterVM(c *types.UnregisterVM) soap.HasFault { @@ -504,9 +513,114 @@ func (vm *VirtualMachine) UnregisterVM(c *types.UnregisterVM) soap.HasFault { Map.getEntityParent(vm, "Folder").(*Folder).removeChild(c.This) - // TODO: remove references from HostSystem and Datastore + host := Map.Get(*vm.Runtime.Host).(*HostSystem) + host.Vm = RemoveReference(vm.Self, host.Vm) + + switch pool := Map.Get(*vm.ResourcePool).(type) { + case *ResourcePool: + pool.Vm = RemoveReference(vm.Self, pool.Vm) + case *VirtualApp: + pool.Vm = RemoveReference(vm.Self, pool.Vm) + } + + for i := range vm.Datastore { + ds := Map.Get(vm.Datastore[i]).(*Datastore) + ds.Vm = RemoveReference(vm.Self, ds.Vm) + } r.Res = new(types.UnregisterVMResponse) return r } + +func (vm *VirtualMachine) CloneVMTask(req *types.CloneVM_Task) soap.HasFault { + task := CreateTask(vm, "cloneVm", func(t *Task) (types.AnyType, types.BaseMethodFault) { + folder := Map.Get(req.Folder).(*Folder) + + config := types.VirtualMachineConfigSpec{ + Name: req.Name, + GuestId: vm.Config.GuestId, + Files: &types.VirtualMachineFileInfo{ + VmPathName: strings.Replace(vm.Config.Files.VmPathName, vm.Name, req.Name, -1), + }, + } + + res := folder.CreateVMTask(&types.CreateVM_Task{ + This: folder.Self, + Config: config, + Pool: *vm.ResourcePool, + }) + + ctask := Map.Get(res.(*methods.CreateVM_TaskBody).Res.Returnval).(*Task) + if ctask.Info.Error != nil { + return nil, ctask.Info.Error.Fault + } + + return ctask.Info.Result.(types.ManagedObjectReference), nil + }) + + task.Run() + + return &methods.CloneVM_TaskBody{ + Res: &types.CloneVM_TaskResponse{ + Returnval: task.Self, + }, + } +} + +func (vm *VirtualMachine) RelocateVMTask(req *types.RelocateVM_Task) soap.HasFault { + task := CreateTask(vm, "relocateVm", func(t *Task) (types.AnyType, types.BaseMethodFault) { + if ref := req.Spec.Datastore; ref != nil { + ds := Map.Get(*ref).(*Datastore) + ds.Vm = RemoveReference(*ref, ds.Vm) + + vm.Datastore = []types.ManagedObjectReference{*ref} + + // TODO: migrate vm.Config.Files (and vm.Summary.Config.VmPathName) + } + + if ref := req.Spec.Pool; ref != nil { + pool := Map.Get(*ref).(*ResourcePool) + pool.Vm = RemoveReference(*ref, pool.Vm) + + vm.ResourcePool = ref + } + + if ref := req.Spec.Host; ref != nil { + host := Map.Get(*ref).(*HostSystem) + host.Vm = RemoveReference(*ref, host.Vm) + + vm.Runtime.Host = ref + } + + return nil, nil + }) + + task.Run() + + return &methods.RelocateVM_TaskBody{ + Res: &types.RelocateVM_TaskResponse{ + Returnval: task.Self, + }, + } +} + +func (vm *VirtualMachine) ShutdownGuest(c *types.ShutdownGuest) soap.HasFault { + r := &methods.ShutdownGuestBody{} + // should be poweron + if vm.Runtime.PowerState == types.VirtualMachinePowerStatePoweredOff { + r.Fault_ = Fault("", &types.InvalidPowerState{ + RequestedState: types.VirtualMachinePowerStatePoweredOn, + ExistingState: vm.Runtime.PowerState, + }) + + return r + } + // change state + vm.Runtime.PowerState = types.VirtualMachinePowerStatePoweredOff + vm.Summary.Runtime.PowerState = types.VirtualMachinePowerStatePoweredOff + + r.Res = new(types.ShutdownGuestResponse) + + return r +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/doc.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/doc.go new file mode 100644 index 00000000000..ca98ec730ff --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/doc.go @@ -0,0 +1,20 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* +Package vpx contains SOAP responses from a vCenter server, captured using `govc ... -debug`. +*/ +package vpx diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/vc/root_folder.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/root_folder.go similarity index 68% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/vc/root_folder.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/root_folder.go index 445989864ad..a1cce0d8d94 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/vc/root_folder.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/root_folder.go @@ -1,18 +1,20 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. -package vc +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package vpx import ( "github.com/vmware/govmomi/vim25/mo" diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/vc/service_content.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/service_content.go similarity index 89% rename from metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/vc/service_content.go rename to metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/service_content.go index 1da5bba5323..1c570f8025b 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/vc/service_content.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/service_content.go @@ -1,18 +1,20 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. -package vc +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package vpx import "github.com/vmware/govmomi/vim25/types" diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/setting.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/setting.go new file mode 100644 index 00000000000..dfbb28b7ab4 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/setting.go @@ -0,0 +1,60 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package vpx + +import "github.com/vmware/govmomi/vim25/types" + +// Setting is captured from VC's ServiceContent.OptionManager.setting +var Setting = []types.BaseOptionValue{ + // This list is currently pruned to include sso options only with sso.enabled set to false + &types.OptionValue{ + Key: "config.vpxd.sso.sts.uri", + Value: "https://127.0.0.1/sts/STSService/vsphere.local", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.solutionUser.privateKey", + Value: "/etc/vmware-vpx/ssl/vcsoluser.key", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.solutionUser.name", + Value: "vpxd-b643d01c-928f-469b-96a5-d571d762a78e@vsphere.local", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.solutionUser.certificate", + Value: "/etc/vmware-vpx/ssl/vcsoluser.crt", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.groupcheck.uri", + Value: "https://127.0.0.1/sso-adminserver/sdk/vsphere.local", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.enabled", + Value: "false", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.default.isGroup", + Value: "false", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.default.admin", + Value: "Administrator@vsphere.local", + }, + &types.OptionValue{ + Key: "config.vpxd.sso.admin.uri", + Value: "https://127.0.0.1/sso-adminserver/sdk/vsphere.local", + }, +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/container_view.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/container_view.go new file mode 100644 index 00000000000..0e3268b85ef --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/container_view.go @@ -0,0 +1,130 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package view + +import ( + "context" + + "github.com/vmware/govmomi/property" + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" +) + +type ContainerView struct { + ManagedObjectView +} + +func NewContainerView(c *vim25.Client, ref types.ManagedObjectReference) *ContainerView { + return &ContainerView{ + ManagedObjectView: *NewManagedObjectView(c, ref), + } +} + +// Retrieve populates dst as property.Collector.Retrieve does, for all entities in the view of types specified by kind. +func (v ContainerView) Retrieve(ctx context.Context, kind []string, ps []string, dst interface{}) error { + pc := property.DefaultCollector(v.Client()) + + ospec := types.ObjectSpec{ + Obj: v.Reference(), + Skip: types.NewBool(true), + SelectSet: []types.BaseSelectionSpec{ + &types.TraversalSpec{ + Type: v.Reference().Type, + Path: "view", + }, + }, + } + + var pspec []types.PropertySpec + + if len(kind) == 0 { + kind = []string{"ManagedEntity"} + } + + for _, t := range kind { + spec := types.PropertySpec{ + Type: t, + } + + if len(ps) == 0 { + spec.All = types.NewBool(true) + } else { + spec.PathSet = ps + } + + pspec = append(pspec, spec) + } + + req := types.RetrieveProperties{ + SpecSet: []types.PropertyFilterSpec{ + { + ObjectSet: []types.ObjectSpec{ospec}, + PropSet: pspec, + }, + }, + } + + res, err := pc.RetrieveProperties(ctx, req) + if err != nil { + return err + } + + if d, ok := dst.(*[]types.ObjectContent); ok { + *d = res.Returnval + return nil + } + + return mo.LoadRetrievePropertiesResponse(res, dst) +} + +// RetrieveWithFilter populates dst as Retrieve does, but only for entities matching the given filter. +func (v ContainerView) RetrieveWithFilter(ctx context.Context, kind []string, ps []string, dst interface{}, filter property.Filter) error { + if len(filter) == 0 { + return v.Retrieve(ctx, kind, ps, dst) + } + + var content []types.ObjectContent + + err := v.Retrieve(ctx, kind, filter.Keys(), &content) + if err != nil { + return err + } + + objs := filter.MatchObjectContent(content) + + pc := property.DefaultCollector(v.Client()) + + return pc.Retrieve(ctx, objs, ps, dst) +} + +// Find returns object references for entities of type kind, matching the given filter. +func (v ContainerView) Find(ctx context.Context, kind []string, filter property.Filter) ([]types.ManagedObjectReference, error) { + if len(filter) == 0 { + // Ensure we have at least 1 filter to avoid retrieving all properties. + filter = property.Filter{"name": "*"} + } + + var content []types.ObjectContent + + err := v.Retrieve(ctx, kind, filter.Keys(), &content) + if err != nil { + return nil, err + } + + return filter.MatchObjectContent(content), nil +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/list_view.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/list_view.go new file mode 100644 index 00000000000..e8cfb504341 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/list_view.go @@ -0,0 +1,62 @@ +/* +Copyright (c) 2015-2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package view + +import ( + "context" + + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/types" +) + +type ListView struct { + ManagedObjectView +} + +func NewListView(c *vim25.Client, ref types.ManagedObjectReference) *ListView { + return &ListView{ + ManagedObjectView: *NewManagedObjectView(c, ref), + } +} + +func (v ListView) Add(ctx context.Context, refs []types.ManagedObjectReference) error { + req := types.ModifyListView{ + This: v.Reference(), + Add: refs, + } + _, err := methods.ModifyListView(ctx, v.Client(), &req) + return err +} + +func (v ListView) Remove(ctx context.Context, refs []types.ManagedObjectReference) error { + req := types.ModifyListView{ + This: v.Reference(), + Remove: refs, + } + _, err := methods.ModifyListView(ctx, v.Client(), &req) + return err +} + +func (v ListView) Reset(ctx context.Context, refs []types.ManagedObjectReference) error { + req := types.ResetListView{ + This: v.Reference(), + Obj: refs, + } + _, err := methods.ResetListView(ctx, v.Client(), &req) + return err +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/managed_object_view.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/managed_object_view.go new file mode 100644 index 00000000000..805c8643107 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/managed_object_view.go @@ -0,0 +1,52 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package view + +import ( + "context" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/types" +) + +type ManagedObjectView struct { + object.Common +} + +func NewManagedObjectView(c *vim25.Client, ref types.ManagedObjectReference) *ManagedObjectView { + return &ManagedObjectView{ + Common: object.NewCommon(c, ref), + } +} + +func (v *ManagedObjectView) TraversalSpec() *types.TraversalSpec { + return &types.TraversalSpec{ + Path: "view", + Type: v.Reference().Type, + } +} + +func (v *ManagedObjectView) Destroy(ctx context.Context) error { + req := types.DestroyView{ + This: v.Reference(), + } + + _, err := methods.DestroyView(ctx, v.Client(), &req) + return err +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/manager.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/manager.go new file mode 100644 index 00000000000..d44def0cd99 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/manager.go @@ -0,0 +1,69 @@ +/* +Copyright (c) 2015 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package view + +import ( + "context" + + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/methods" + "github.com/vmware/govmomi/vim25/types" +) + +type Manager struct { + object.Common +} + +func NewManager(c *vim25.Client) *Manager { + m := Manager{ + object.NewCommon(c, *c.ServiceContent.ViewManager), + } + + return &m +} + +func (m Manager) CreateListView(ctx context.Context, objects []types.ManagedObjectReference) (*ListView, error) { + req := types.CreateListView{ + This: m.Common.Reference(), + Obj: objects, + } + + res, err := methods.CreateListView(ctx, m.Client(), &req) + if err != nil { + return nil, err + } + + return NewListView(m.Client(), res.Returnval), nil +} + +func (m Manager) CreateContainerView(ctx context.Context, container types.ManagedObjectReference, managedObjectTypes []string, recursive bool) (*ContainerView, error) { + + req := types.CreateContainerView{ + This: m.Common.Reference(), + Container: container, + Recursive: recursive, + Type: managedObjectTypes, + } + + res, err := methods.CreateContainerView(ctx, m.Client(), &req) + if err != nil { + return nil, err + } + + return NewContainerView(m.Client(), res.Returnval), nil +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/task_view.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/task_view.go new file mode 100644 index 00000000000..68f62f8d107 --- /dev/null +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/task_view.go @@ -0,0 +1,125 @@ +/* +Copyright (c) 2017 VMware, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package view + +import ( + "context" + + "github.com/vmware/govmomi/property" + "github.com/vmware/govmomi/vim25/types" +) + +// TaskView extends ListView such that it can follow a ManagedEntity's recentTask updates. +type TaskView struct { + *ListView + + Follow bool + + Watch *types.ManagedObjectReference +} + +// CreateTaskView creates a new ListView that optionally watches for a ManagedEntity's recentTask updates. +func (m Manager) CreateTaskView(ctx context.Context, watch *types.ManagedObjectReference) (*TaskView, error) { + l, err := m.CreateListView(ctx, nil) + if err != nil { + return nil, err + } + + tv := &TaskView{ + ListView: l, + Watch: watch, + } + + return tv, nil +} + +// Collect calls function f for each Task update. +func (v TaskView) Collect(ctx context.Context, f func([]types.TaskInfo)) error { + // Using TaskHistoryCollector would be less clunky, but it isn't supported on ESX at all. + ref := v.Reference() + filter := new(property.WaitFilter).Add(ref, "Task", []string{"info"}, v.TraversalSpec()) + + if v.Watch != nil { + filter.Add(*v.Watch, v.Watch.Type, []string{"recentTask"}) + } + + pc := property.DefaultCollector(v.Client()) + + completed := make(map[string]bool) + + return property.WaitForUpdates(ctx, pc, filter, func(updates []types.ObjectUpdate) bool { + var infos []types.TaskInfo + var prune []types.ManagedObjectReference + var tasks []types.ManagedObjectReference + var reset func() + + for _, update := range updates { + for _, change := range update.ChangeSet { + if change.Name == "recentTask" { + tasks = change.Val.(types.ArrayOfManagedObjectReference).ManagedObjectReference + if len(tasks) != 0 { + reset = func() { + _ = v.Reset(ctx, tasks) + + // Remember any tasks we've reported as complete already, + // to avoid reporting multiple times when Reset is triggered. + rtasks := make(map[string]bool) + for i := range tasks { + if _, ok := completed[tasks[i].Value]; ok { + rtasks[tasks[i].Value] = true + } + } + completed = rtasks + } + } + + continue + } + + info, ok := change.Val.(types.TaskInfo) + if !ok { + continue + } + + if !completed[info.Task.Value] { + infos = append(infos, info) + } + + if v.Follow && info.CompleteTime != nil { + prune = append(prune, info.Task) + completed[info.Task.Value] = true + } + } + } + + if len(infos) != 0 { + f(infos) + } + + if reset != nil { + reset() + } else if len(prune) != 0 { + _ = v.Remove(ctx, prune) + } + + if len(tasks) != 0 && len(infos) == 0 { + return false + } + + return !v.Follow + }) +} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/client.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/client.go index 9ac3cc4d6d9..8747e07b54f 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/client.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/client.go @@ -1,5 +1,5 @@ /* -Copyright (c) 2014-2015 VMware, Inc. All Rights Reserved. +Copyright (c) 2014-2017 VMware, Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -655,33 +655,24 @@ func (c *Client) Download(u *url.URL, param *Download) (io.ReadCloser, int64, er return nil, 0, err } - return res.Body, res.ContentLength, nil + r := res.Body + + return r, res.ContentLength, nil } -// DownloadFile GETs the given URL to a local file -func (c *Client) DownloadFile(file string, u *url.URL, param *Download) error { +func (c *Client) WriteFile(file string, src io.Reader, size int64, s progress.Sinker) error { var err error - if param == nil { - param = &DefaultDownload - } - rc, contentLength, err := c.Download(u, param) - if err != nil { - return err - } - defer rc.Close() - - var r io.Reader = rc + r := src fh, err := os.Create(file) if err != nil { return err } - defer fh.Close() - if param.Progress != nil { - pr := progress.NewReader(param.Progress, r, contentLength) - r = pr + if s != nil { + pr := progress.NewReader(s, src, size) + src = pr // Mark progress reader as done when returning from this function. defer func() { @@ -690,16 +681,27 @@ func (c *Client) DownloadFile(file string, u *url.URL, param *Download) error { } _, err = io.Copy(fh, r) - if err != nil { - return err + + cerr := fh.Close() + + if err == nil { + err = cerr + } + + return err +} + +// DownloadFile GETs the given URL to a local file +func (c *Client) DownloadFile(file string, u *url.URL, param *Download) error { + var err error + if param == nil { + param = &DefaultDownload } - // Assign error before returning so that it gets picked up by the deferred - // function marking the progress reader as done. - err = fh.Close() + rc, contentLength, err := c.Download(u, param) if err != nil { return err } - return nil + return c.WriteFile(file, rc, contentLength, param.Progress) } diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/types.go b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/types.go index fa62c01815d..cb703582409 100644 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/types.go +++ b/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/types.go @@ -18341,9 +18341,9 @@ func init() { type GuestPosixFileAttributes struct { GuestFileAttributes - OwnerId int32 `xml:"ownerId,omitempty"` - GroupId int32 `xml:"groupId,omitempty"` - Permissions int64 `xml:"permissions,omitempty"` + OwnerId *int32 `xml:"ownerId"` + GroupId *int32 `xml:"groupId"` + Permissions int64 `xml:"permissions,omitempty"` } func init() { @@ -28546,7 +28546,7 @@ func init() { type MethodActionArgument struct { DynamicData - Value AnyType `xml:"value,omitempty,typeattr"` + Value AnyType `xml:"value,typeattr"` } func init() { @@ -31074,7 +31074,7 @@ type OptionValue struct { DynamicData Key string `xml:"key"` - Value AnyType `xml:"value,omitempty,typeattr"` + Value AnyType `xml:"value,typeattr"` } func init() { @@ -53154,8 +53154,8 @@ type WaitForUpdatesResponse struct { type WaitOptions struct { DynamicData - MaxWaitSeconds int32 `xml:"maxWaitSeconds,omitempty"` - MaxObjectUpdates int32 `xml:"maxObjectUpdates,omitempty"` + MaxWaitSeconds *int32 `xml:"maxWaitSeconds"` + MaxObjectUpdates int32 `xml:"maxObjectUpdates,omitempty"` } func init() { diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/LICENSE b/metricbeat/module/vsphere/vendor/github.com/vmware/vic/LICENSE deleted file mode 100644 index 0ddf637ab64..00000000000 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/LICENSE +++ /dev/null @@ -1,5541 +0,0 @@ -LICENSE - -vSphere Integrated Containers Engine 1.1.0 GA - -Copyright 2017 VMware, Inc. All rights reserved. - -This product is licensed to you under the Apache License version 2.0 (the -License). You may not use this product except in compliance with the License. - - Apache License Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and -distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the -copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other -entities that control, are controlled by, or are under common control with -that entity. For the purposes of this definition, "control" means (i) the -power, direct or indirect, to cause the direction or management of such -entity, whether by contract or otherwise, or (ii) ownership of fifty percent -(50%) or more of the outstanding shares, or (iii) beneficial ownership of such -entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation source, and -configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or -translation of a Source form, including but not limited to compiled object -code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, -made available under the License, as indicated by a copyright notice that is -included in or attached to the work (an example is provided in the Appendix -below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that -is based on (or derived from) the Work and for which the editorial revisions, -annotations, elaborations, or other modifications represent, as a whole, an -original work of authorship. For the purposes of this License, Derivative -Works shall not include works that remain separable from, or merely link (or -bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original -version of the Work and any modifications or additions to that Work or -Derivative Works thereof, that is intentionally submitted to Licensor for -inclusion in the Work by the copyright owner or by an individual or Legal -Entity authorized to submit on behalf of the copyright owner. For the purposes -of this definition, "submitted" means any form of electronic, verbal, or -written communication sent to the Licensor or its representatives, including -but not limited to communication on electronic mailing lists, source code -control systems, and issue tracking systems that are managed by, or on behalf -of, the Licensor for the purpose of discussing and improving the Work, but -excluding communication that is conspicuously marked or otherwise designated -in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf -of whom a Contribution has been received by Licensor and subsequently -incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this -License, each Contributor hereby grants to You a perpetual, worldwide, -non-exclusive, no-charge, royalty-free, irrevocable copyright license to -reproduce, prepare Derivative Works of, publicly display, publicly perform, -sublicense, and distribute the Work and such Derivative Works in Source or -Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this -License, each Contributor hereby grants to You a perpetual, worldwide, -non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this -section) patent license to make, have made, use, offer to sell, sell, import, -and otherwise transfer the Work, where such license applies only to those -patent claims licensable by such Contributor that are necessarily infringed by -their Contribution(s) alone or by combination of their Contribution(s) with -the Work to which such Contribution(s) was submitted. If You institute patent -litigation against any entity (including a cross-claim or counterclaim in a -lawsuit) alleging that the Work or a Contribution incorporated within the Work -constitutes direct or contributory patent infringement, then any patent -licenses granted to You under this License for that Work shall terminate as of -the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or -Derivative Works thereof in any medium, with or without modifications, and in -Source or Object form, provided that You meet the following conditions: - -(a) You must give any other recipients of the Work or Derivative Works a copy -of this License; and - -(b) You must cause any modified files to carry prominent notices stating that -You changed the files; and - -(c) You must retain, in the Source form of any Derivative Works that You -distribute, all copyright, patent, trademark, and attribution notices from the -Source form of the Work, excluding those notices that do not pertain to any -part of the Derivative Works; and - -(d) If the Work includes a "NOTICE" text file as part of its distribution, -then any Derivative Works that You distribute must include a readable copy of -the attribution notices contained within such NOTICE file, excluding those -notices that do not pertain to any part of the Derivative Works, in at least -one of the following places: within a NOTICE text file distributed as part of -the Derivative Works; within the Source form or documentation, if provided -along with the Derivative Works; or, within a display generated by the -Derivative Works, if and wherever such third-party notices normally appear. -The contents of the NOTICE file are for informational purposes only and do not -modify the License. You may add Your own attribution notices within Derivative -Works that You distribute, alongside or as an addendum to the NOTICE text from -the Work, provided that such additional attribution notices cannot be -construed as modifying the License. - -You may add Your own copyright statement to Your modifications and may provide -additional or different license terms and conditions for use, reproduction, or -distribution of Your modifications, or for any such Derivative Works as a -whole, provided Your use, reproduction, and distribution of the Work otherwise -complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any -Contribution intentionally submitted for inclusion in the Work by You to the -Licensor shall be under the terms and conditions of this License, without any -additional terms or conditions. Notwithstanding the above, nothing herein -shall supersede or modify the terms of any separate license agreement you may -have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, -trademarks, service marks, or product names of the Licensor, except as -required for reasonable and customary use in describing the origin of the Work -and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in -writing, Licensor provides the Work (and each Contributor provides its -Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied, including, without limitation, any warranties -or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any risks -associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in -tort (including negligence), contract, or otherwise, unless required by -applicable law (such as deliberate and grossly negligent acts) or agreed to in -writing, shall any Contributor be liable to You for damages, including any -direct, indirect, special, incidental, or consequential damages of any -character arising as a result of this License or out of the use or inability -to use the Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all other -commercial damages or losses), even if such Contributor has been advised of -the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work -or Derivative Works thereof, You may choose to offer, and charge a fee for, -acceptance of support, warranty, indemnity, or other liability obligations -and/or rights consistent with this License. However, in accepting such -obligations, You may act only on Your own behalf and on Your sole -responsibility, not on behalf of any other Contributor, and only if You agree -to indemnify, defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason of your -accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - -To apply the Apache License to your work, attach the following boilerplate -notice, with the fields enclosed by brackets "[]" replaced with your own -identifying information. (Don't include the brackets!) The text should be -enclosed in the appropriate comment syntax for the file format. We also -recommend that a file or class name and description of purpose be included on -the same "printed page" as the copyright notice for easier identification -within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -====================================================================== - -vSphere Integrated Containers Engine 1.1.0 GA - -vSphere Integrated Containers Engine 1.1.0 GA includes a number of components -with separate copyright notices and license terms. This product does not -necessarily use all the open source components referred to below. Your use of -the source code for these components is subject to the terms and conditions of -the following licenses. - -=========================================================================== - -The following copyright statements and licenses apply to various open source -software packages (or portions thereof) that are distributed with this VMware -Product. - -The VMware Product may also include other VMware components, which may contain -additional open source software packages. One or more such -open_source_licenses.txt files may therefore accompany this VMware Product. - -The VMware Product that includes this file does not necessarily use all the -open source software packages referred to below and may also only use portions -of a given package. - - -=============== TABLE OF CONTENTS ============================= - - -The following is a listing of the open source components detailed in this -document. This list is provided for your convenience; please read further if -you wish to review the copyright notice(s) and the full text of the license -associated with each component. - - - -SECTION 1: BSD-STYLE, MIT-STYLE, OR SIMILAR STYLE LICENSES - - >>> airbrake gobrake.v2-c9d51adc624b5cc4c1bf8de730a09af4878ffe2d - >>> armon/go-radix-4239b77079c7b5d1243b7b4736304ce8ddb6f0f2 - >>> assertions-287b4346dc4e71a038c346375a9d572453bc469b - >>> backoff-b02f2bbce11d7ea6b97f282ef1771b0fe2f65ef3 - >>> context-07b51741c1d6423d4a6abab1c49940ec09cb1aaf - >>> cpuguy83/go-md2man-a65d4d2de4d5f7c74868dfa9b202a3c8be315aaa - >>> davecgh/go-xdr/xdr2-4930550ba2e22f87187498acfd78348b15f4e7a8 denco - >>> -9af2ba0e24214bac003821f4a501b131b2e04c75 - >>> dhcp4-f0e4d29ff0231dce36e250b2ed9ff08412584bca - >>> dustin/go-humanize-259d2a102b871d17f30e3cd9881a642961a1e486 - >>> easyjson-304d3dc6fae850e62b7db2aee661d9d7b628cef0 - >>> fdawg4l/go-nfs-client/nfs-ba0907caa92da3d762b621a251af64688fa1222b - >>> gemnasium - >>> logrus-airbrake-hook.v2-31e6fd4bd5a98d8ee7673d24bc54ec73c31810dd - >>> gizak/termui-798ffb9cbbe4073ef1f88e6069ca4a2c6aa6676b gls - >>> -8ddce2a84170772b95dd5d576c48d517b22cac63 go-1.8.0 - >>> go-ansiterm-70b2c90b260171e829f1ebd7c17f600c11858dbe - >>> go-check/check-20d25e2804050c1cd24a7eea1e7a6447dd0e74ec go-difflib - >>> -792786c7400a136282c1664665ae0a8db921c6c2 go-flags - >>> -97448c91aac742cbca3d020b3e769013a420a06f - >>> go-httpclient-31f0106b4474f14bc441575c19d3a5fa21aa1f6c - >>> go-patricia-d87fea6fbcb44d59ff7dacbbcc347c66fca67724 go-spew - >>> -5215b55f46b2b919f50a1df0eaa5886afe4e3b3d - >>> go-winio-24a3e3d3fc7451805e09d11e11e95d9a0a4f205e - >>> gogo/protobuf-6a92c871a8f5333cf106b2cdf937567208dbb2b7 - >>> goimports-99be5a0b85664c12d36a536b14d0d0b85c74da45 - >>> golang/lint-cb00e5669539f047b2f4c53a421a01b0c8e172c6 - >>> golang/protobuf-1f49d83d9aa00e6ce4fc8258c71cc7786aec968a - >>> googleapis/gax-go-da06d194a00e19ce00d9011a13931c3f6f6887c7 govalidator - >>> -9699ab6b38bee2e02cd3fe8b99ecf67665395c96 - >>> graceful-d7d7a205e779a4738d38eda0671fff8bfc965f14 - >>> gvt-50d83ea21cb0405e81efd284951e111b3a68d701 - >>> hcsshim-d327ca738085de7d617aa1df16d98fe7a64c2455 inflect -8961c3750a47 - >>> mattn/go-runewidth-14207d285c6c197daabb5c9793d63e7af9ab2d50 - >>> miekg/dns-ca336a1f95a6b89be9c250df26c7a41742eb4a6f - >>> mitchellh/go-wordwrap-ad45545899c7b13c020ea92b2072220eefad42b8 - >>> mitchellh/mapstructure-5a0325d7fafaac12dda6e7fb8bd222ec1b69875e - >>> mux-acf3be1b335c8ce30b2c8d51300984666f0ceefa negroni - >>> -c7477ad8e330bef55bf1ebe300cf8aa67c492d1b - >>> nsf/termbox-go-91bae1bb5fa9ee504905ecbe7043fa30e92feaa3 - >>> profile-8a808a6967b79da66deacfe508b26d398a69518f - >>> pty-f7ee69f31298ecbe5d2b349c711e2547a617d398 - >>> purell-d69616f51cdfcd7514d6a380847a152dfc2a749d - >>> securecookie-fa5329f913702981df43dcb2a380bac429c810b5 - >>> serial-edb66533729585748de3d69af96aa8c2deeb8aac - >>> sessions-ca9ada44574153444b00d3fd9c8559e4cc95f896 - >>> siphash-6d8617816bb5d8268011ffbfb8720f17ce9af63c - >>> sirupsen_logrus-d26492970760ca5d33129d2d799e34be5c4782eb smartystreets - >>> goconvey-bf58a9a1291224109919756b4dcc469c670cc7e4 stretchr - >>> objx-1a9d0bb9f541897e62256577b352fdbc1fb4fd94 stretchr - >>> testify-9f9027faeb0dad515336ed2f28317f9f8f527ab4 - >>> tail-a30252cb686a21eb2d0b98132633053ec2f7f1e5 - >>> tomb.v1-dd632973f1e7218eb1089048e0798ec9ae7dceb8 - >>> ugorji/go/codec-708a42d246822952f38190a8d8c4e6b16a0e600c - >>> urfave/cli.v1-0bdeddeeb0f650497d603c4ad7b20cfe685682f6 urlesc - >>> -5fa9ff0392746aeae1c4b37fcc42c65afa7a9587 - >>> uuid-f3f4b54b2fabcf1f11dcc939025bb0c109b00ed8 - >>> vburenin/nsync-9a75d1c80410815ac45d65fc01ccabac9c98dd4a - - - -SECTION 2: Apache License, V2.0 - - >>> coreos/etcd/client-781196fa8746d6c34ace2a62898051af6dc46002 - >>> coreos/etcd/pkg/pathutil-a4624666fec6b9f82400ea873d5c3d2f968fb737 - >>> coreos/etcd/pkg/types-a4624666fec6b9f82400ea873d5c3d2f968fb737 - >>> coreos/go-semver/semver-5e3acbb5668c4c3deb4842615c4098eb61fb6b1e docker - >>> distribution-2.6.0 docker-1.13.0 - >>> gas-1c8e7ff6861b2ee1c4d48a279b5eee07448baa5f - >>> github.com/coreos/etcd/version-781196fa8746d6c34ace2a62898051af6dc46002 - >>> go-openapi/analysis-7222828b8ce19afee3c595aef6643b9e42150120 - >>> go-openapi/analysis-d5a75b7d751ca3f11ad5d93cfe97405f2c3f6a47 - >>> go-openapi/errors-fc3f73a224499b047eda7191e5d22e1e9631e86f - >>> go-openapi/jsonpointer-779f45308c19820f1a69e9a4cd965f496e0da10f - >>> go-openapi/jsonreference-36d33bfe519efae5632669801b180bf1a245da3b - >>> go-openapi/loads-6bb6486231e079ea125c0f39994ed3d0c53399ed - >>> go-openapi/runtime-3b13ebb46790d871d74a6c2450fa4b1280f90854 - >>> go-openapi/spec-e072eb2390d3a03736a6eb617d30f48369160447 - >>> go-openapi/strfmt-0cb3db44c13bad3b3f567b762a66751972a310cc - >>> go-openapi/swag-96d7b9ebd181a1735a1c9ac87914f2b32fbf56c9 - >>> go-openapi/validate-035dcd74f1f61e83debe1c22950dc53556e7e4b2 - >>> go-swagger-04e27555375e7d9a3251bfb35fcb9ae13cec99a1 - >>> go-systemd-7b2428fec40033549c68f54e26e89e7ca9a9ce31 - >>> gocloud-cd0da878c66091060d2e7403abd62192b3e387e0 - >>> golang/glog-23def4e6c14b4da8ac2ed8007337bc5eb5007998 - >>> golang/groupcache/lru-72d04f9fcdec7d3821820cc4a6f150eae553639a - >>> maruel/panicparse/stack-25bcac0d793cf4109483505a0d66e066a3a90a80 - >>> shakers-24d7f1d6a71aa5d9cbe7390e4afb66b7eef9e1b3 - >>> sigma/bdoor-b9c82b7b3c0b1e57ec2f8809b6219fbe6a58d92a - >>> syncutil/singleflight-7ce08ca145dbe0e66a127c447b80ee7914f3e4f9 - >>> vishvananda/netlink-482f7a52b758233521878cb6c5904b6bd63f3457 - >>> vishvananda/netns-604eaf189ee867d8c147fafc28def2394e878d25 - >>> vmware/govmomi-2cb26d57e70f93bd98a4e3b66580c2638736e40e - >>> vmware/vmw-guestinfo-0b8dbcdd226303bf776dcac49c2d5f3b8a8190fd - >>> yaml.v2-4c78c975fe7c825c6d1466c42be594d1d6f3aba6 - - - -APPENDIX. Standard License Files - - >>> Apache License, V2.0 - - >>> Mozilla Public License, V2.0 - - >>> Creative Commons Attribution 4.0 International - - >>> Creative Commons Attribution License, V3.0 - - - ---------------- SECTION 1: BSD-STYLE, MIT-STYLE, OR SIMILAR STYLE LICENSES ----------- - -BSD-STYLE, MIT-STYLE, OR SIMILAR STYLE LICENSES are applicable to the -following component(s). - - ->>> airbrake gobrake.v2-c9d51adc624b5cc4c1bf8de730a09af4878ffe2d - -Copyright (c) 2014 The Gobrake Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> armon/go-radix-4239b77079c7b5d1243b7b4736304ce8ddb6f0f2 - -The MIT License (MIT) - -Copyright (c) 2014 Armon Dadgar - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> assertions-287b4346dc4e71a038c346375a9d572453bc469b - -Copyright (c) 2015 SmartyStreets, LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -NOTE: Various optional and subordinate components carry their own licensing -requirements and restrictions. Use of those components is subject to the -terms and conditions outlined the respective license of each component. - -ADDITIONAL LICENSE INFORMATION: - -> BSD (Style) - -assertions-master.zip\assertions-master\internal\go-render\LICENSE - -Copyright (c) 2015 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> Apache 2.0 - -assertions-master.zip\assertions-master\internal\oglematchers\all_of.go - -Copyright 2011 Aaron Jacobs. All Rights Reserved. Author: -aaronjjacobs@gmail.com (Aaron Jacobs) - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> backoff-b02f2bbce11d7ea6b97f282ef1771b0fe2f65ef3 - -The MIT License (MIT) - -Copyright (c) 2014 Cenk Alti - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> context-07b51741c1d6423d4a6abab1c49940ec09cb1aaf - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> cpuguy83/go-md2man-a65d4d2de4d5f7c74868dfa9b202a3c8be315aaa - -Copyright (c) 2015 Dmitri Shuralyov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> davecgh/go-xdr/xdr2-4930550ba2e22f87187498acfd78348b15f4e7a8 - -Copyright (c) 2012-2014 Dave Collins - -Permission to use, copy, modify, and distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright -notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - - ->>> denco -9af2ba0e24214bac003821f4a501b131b2e04c75 - -Copyright (c) 2014 Naoya Inada - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> dhcp4-f0e4d29ff0231dce36e250b2ed9ff08412584bca - -Copyright (c) 2013 Skagerrak Software Limited. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of Skagerrak Software Limited nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> dustin/go-humanize-259d2a102b871d17f30e3cd9881a642961a1e486 - -Copyright (c) 2005-2008 Dustin Sallings - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - - ->>> easyjson-304d3dc6fae850e62b7db2aee661d9d7b628cef0 - -Copyright (c) 2016 Mail.Ru Group - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> fdawg4l/go-nfs-client/nfs-ba0907caa92da3d762b621a251af64688fa1222b - -Go-nfs-client version 0.1 - -Copyright 2017 VMware, Inc. All rights reserved - -The BSD-2 license (the License) set forth below applies to all parts of the -Go-nfs-client project. You may not use this file except in compliance with -the License. - -BSD-2 License - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - - -ADDITIONAL LICENSE INFORMATION: - ->MIT - -go-nfs-client-master.zip\go-nfs-client-master\README.md - -This is forked from and builds upon the work done here -[here](https:github.com/davecheney/nfs) which was put in the [public -domain](https:github.com/davecheney/nfs/issues/1#issuecomment-280563247). - ->Apache 2.0 - -go-nfs-client-master.zip\go-nfs-client-master\nfs\util\log.go - -Copyright 2017 VMware, Inc. All Rights Reserved. SPDX-License-Identifier: -BSD-2-Clause - -Copyright 2016 VMware, Inc. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> gemnasium logrus-airbrake-hook.v2-31e6fd4bd5a98d8ee7673d24bc54ec73c31810dd - -The MIT License (MIT) - -Copyright (c) 2015 Gemnasium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> gizak/termui-798ffb9cbbe4073ef1f88e6069ca4a2c6aa6676b - -The MIT License (MIT) - -Copyright (c) 2015 Zack Guo - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> gls -8ddce2a84170772b95dd5d576c48d517b22cac63 - -Copyright (c) 2013, Space Monkey, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> go-1.8.0 - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by Google as -part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, -royalty-free, irrevocable (except as stated in this section) patent license to -make, have made, use, offer to sell, sell, import, transfer and otherwise run, -modify and propagate the contents of this implementation of Go, where such -license applies only to those patent claims, both currently owned or -controlled by Google and acquired in the future, licensable by Google that are -necessarily infringed by this implementation of Go. This grant does not -include claims that would be infringed only as a consequence of further -modification of this implementation. If you or your agent or exclusive -licensee institute or order or agree to the institution of patent litigation -against any entity (including a cross-claim or counterclaim in a lawsuit) -alleging that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent infringement, -or inducement of patent infringement, then any patent rights granted to you -under this License for this implementation of Go shall terminate as of the -date such litigation is filed. - -ADDITIONAL LICENSE INFORMATION: - -> Public Domain - -go-go1.8.tar.gz\go-go1.8.tar\lib\time\README - - -The zoneinfo.zip archive contains time zone files compiled using the code and -data maintained as part of the IANA Time Zone Database. The IANA asserts that -the database is in the public domain. - -> CC- Attribution 3.0 - -go-go1.8.tar.gz\go-go1.8.tar\doc\gopher\README - -The Go gopher was designed by Renee French. (http:reneefrench.blogspot.com/) -The design is licensed under the Creative Commons 3.0 Attributions license. -Read this article for more details: https:blog.golang.org/gopher - -> MIT - -go-go1.8.tar.gz\go-go1.8.tar\src\runtime\vlrt.go - - -Copyright 1994-1999 Lucent Technologies Inc. All rights reserved. Revisions -Copyright 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All -rights reserved. Portions Copyright 2009 The Go Authors. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -> GPL3.0 - -*****[VMware does not distribute the sub-components licensed under GPL -3.0]***** - -go-go1.8.tar.gz\go-go1.8.tar\doc\debugging_with_gdb.html - -Copyright (C) 2010 Free Software Foundation, Inc. License GPLv 3+: GNU GPL -version 3 or later <http:gnu.org/licenses/gpl.html> Type "show copying" -and "show warranty" for licensing/warranty details. This GDB was configured -as "x86_64-linux" - -> MIT Style - -go-go1.8.tar.gz\go-go1.8.tar\src\math\acosh.go - -Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - -Developed at SunPro, a Sun Microsystems, Inc. business. Permission to use, -copy, modify, and distribute this software is freely granted, provided that -this notice is preserved. - - ->>> go-ansiterm-70b2c90b260171e829f1ebd7c17f600c11858dbe - -The MIT License (MIT) - -Copyright (c) 2015 Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> go-check/check-20d25e2804050c1cd24a7eea1e7a6447dd0e74ec - -Gocheck - A rich testing framework for Go - -Copyright (c) 2010-2013 Gustavo Niemeyer - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. 2. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -ADDITIONAL LICENSE INFORMATION : - -> BSD-3 - -check-1.zip\check-1\benchmark.go - -Copyright (c) 2012 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> go-difflib -792786c7400a136282c1664665ae0a8db921c6c2 - -Copyright (c) 2013, Patrick Mezard All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. The names of its contributors may not be used to -endorse or promote products derived from this software without specific prior -written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> go-flags -97448c91aac742cbca3d020b3e769013a420a06f - -Copyright (c) 2012 Jesse van den Kieboom. All rights reserved. Redistribution -and use in source and binary forms, with or without modification, are -permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> go-httpclient-31f0106b4474f14bc441575c19d3a5fa21aa1f6c - -The MIT License (MIT) - -Copyright (c) 2012 Matt Reiferson - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> go-patricia-d87fea6fbcb44d59ff7dacbbcc347c66fca67724 - -The MIT License (MIT) - -Copyright (c) 2014 The AUTHORS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> go-spew -5215b55f46b2b919f50a1df0eaa5886afe4e3b3d - -Copyright (c) 2012-2013 Dave Collins - -Permission to use, copy, modify, and distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright -notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - - ->>> go-winio-24a3e3d3fc7451805e09d11e11e95d9a0a4f205e - -The MIT License (MIT) - -Copyright (c) 2015 Microsoft - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -ADDITIONAL LICENSE INFORMATION : - -> BSD-3 - -go-winio-master.zip\go-winio-master\archive\tar\writer_test.go - -Copyright 2009 The Go Authors. All rights reserved. - -Use of this source code is governed by a BSD-style license that can be found -in the LICENSE file. Copyright (c) 2012 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this -list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. - -Neither the name of Google Inc. nor the names of its contributors may be used -to endorse or promote products derived from this software without specific -prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> gogo/protobuf-6a92c871a8f5333cf106b2cdf937567208dbb2b7 - -Protocol Buffers for Go with Gadgets - -Copyright (c) 2013, The GoGo Authors. All rights reserved. -http:github.com/gogo/protobuf - -Go support for Protocol Buffers - Google's data interchange format - -Copyright 2010 The Go Authors. All rights reserved. -https:github.com/golang/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -ADDITIONAL LICENSE INFORMATION: - -> BSD 2 Clause - -protobuf-master.zip\protobuf-master\version\version.go - -Protocol Buffers for Go with Gadgets - -Copyright (c) 2013, The GoGo Authors. All rights reserved. -http:github.com/gogo/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> goimports-99be5a0b85664c12d36a536b14d0d0b85c74da45 - -Copyright (c) 2013 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> golang/lint-cb00e5669539f047b2f4c53a421a01b0c8e172c6 - -Copyright (c) 2013 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> golang/protobuf-1f49d83d9aa00e6ce4fc8258c71cc7786aec968a - -Go support for Protocol Buffers - Google's data interchange format - -Copyright 2010 The Go Authors. All rights reserved. -https://github.com/golang/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this -list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. - -Neither the name of Google Inc. nor the names of its contributors may be used -to endorse or promote products derived from this software without specific -prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> googleapis/gax-go-da06d194a00e19ce00d9011a13931c3f6f6887c7 - -Copyright 2016, Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> govalidator -9699ab6b38bee2e02cd3fe8b99ecf67665395c96 - -The MIT License (MIT) - -Copyright (c) 2014 Alex Saskevich - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> graceful-d7d7a205e779a4738d38eda0671fff8bfc965f14 - -The MIT License (MIT) - -Copyright (c) 2014 Tyler Bunnell - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> gvt-50d83ea21cb0405e81efd284951e111b3a68d701 - -The MIT License (MIT) - -Copyright (c) 2015 constabulary Copyright (c) 2015 Filippo Valsorda - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -ADDITIONAL LICENSE INFORMATION: - -> BSD 3 Clause - -gvt-master.zip\gvt-master\vendor\golang.org\x\tools\imports\LICENSE - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> BSD Style - -gvt-master.zip\gvt-master\vendor\golang.org\x\tools\imports\sortimports.go - -Copyright 2016 The Go Authors. All rights reserved. Use of this source code -is governed by a BSD-style license that can be found in the LICENSE file. - -> BSD 2 Clause - -gvt-master.zip\gvt-master\vendor\github.com\wadey\gocovmerge\LICENSE - -Copyright (c) 2015, Wade Simmons All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. 2. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> hcsshim-d327ca738085de7d617aa1df16d98fe7a64c2455 - -The MIT License (MIT) - -Copyright (c) 2015 Microsoft - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, andor sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -ADDITIONAL LICENSE INFORMATION: - -> BSD-style - -hcsshim-master.zip\hcsshim-master\mksyscall_windows.go - -Copyright 2013 The Go Authors. All rights reserved. Use of this source code -is governed by a BSD-style license that can be found in the LICENSE file. - - ->>> inflect -8961c3750a47 - -Copyright (c) 2011 Chris Farmiloe - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> mattn/go-runewidth-14207d285c6c197daabb5c9793d63e7af9ab2d50 - -The MIT License (MIT) - -Copyright (c) 2016 Yasuhiro Matsumoto - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> miekg/dns-ca336a1f95a6b89be9c250df26c7a41742eb4a6f - -Extensions of the original work are copyright (c) 2011 Miek Gieben - -As this is fork of the official Go code the same license applies: - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -ADDITIONAL LICENSE INFORMATION: - ->BSD-Style - -dns-master.zip\dns-master\COPYRIGHT - -Copyright 2009 The Go Authors. All rights reserved. Use of this source code is -governed by a BSD-style license that can be found in the LICENSE file. -Extensions of the original work are copyright (c) 2011 Miek Gieben - -Copyright 2011 Miek Gieben. All rights reserved. Use of this source code is -governed by a BSD-style license that can be found in the LICENSE file. - -Copyright 2014 CloudFlare. All rights reserved. Use of this source code is -governed by a BSD-style license that can be found in the LICENSE file. - - ->>> mitchellh/go-wordwrap-ad45545899c7b13c020ea92b2072220eefad42b8 - -The MIT License (MIT) - -Copyright (c) 2014 Mitchell Hashimoto - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> mitchellh/mapstructure-5a0325d7fafaac12dda6e7fb8bd222ec1b69875e - -The MIT License (MIT) - -Copyright (c) 2013 Mitchell Hashimoto - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> mux-acf3be1b335c8ce30b2c8d51300984666f0ceefa - -Copyright (c) 2012 Rodrigo Moraes. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> negroni -c7477ad8e330bef55bf1ebe300cf8aa67c492d1b - -The MIT License (MIT) - -Copyright (c) 2014 Jeremy Saenz - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> nsf/termbox-go-91bae1bb5fa9ee504905ecbe7043fa30e92feaa3 - -Copyright (C) 2012 termbox-go authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> profile-8a808a6967b79da66deacfe508b26d398a69518f - -Copyright (c) 2013 Dave Cheney. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> pty-f7ee69f31298ecbe5d2b349c711e2547a617d398 - -Copyright (c) 2011 Keith Rarick - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> purell-d69616f51cdfcd7514d6a380847a152dfc2a749d - -Copyright (c) 2012, Martin Angers All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this -* list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, -* this list of conditions and the following disclaimer in the documentation -* and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of its contributors may be used -* to endorse or promote products derived from this software without specific -* prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> securecookie-fa5329f913702981df43dcb2a380bac429c810b5 - -Copyright (c) 2012 Rodrigo Moraes. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> serial-edb66533729585748de3d69af96aa8c2deeb8aac - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> sessions-ca9ada44574153444b00d3fd9c8559e4cc95f896 - -Copyright (c) 2012 Rodrigo Moraes. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> siphash-6d8617816bb5d8268011ffbfb8720f17ce9af63c - -Written in 2012 by Dmitry Chestnykh. - -To the extent possible under law, the author have dedicated all copyright and -related and neighboring rights to this software to the public domain -worldwide. This software is distributed without any warranty. -http://creativecommons.org/publicdomain/zero/1.0/ - - ->>> sirupsen_logrus-d26492970760ca5d33129d2d799e34be5c4782eb - -The MIT License (MIT) - -Copyright (c) 2014 Simon Eskildsen - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -ADDITIONAL LICENSE INFORMATION: - ->BSD Style - -logrus-master.zip\logrus-master\terminal_notwindows.go - -Copyright 2011 The Go Authors. All rights reserved. Use of this source code -is governed by a BSD-style license that can be found in the LICENSE file. - - ->>> smartystreets goconvey-bf58a9a1291224109919756b4dcc469c670cc7e4 - -Copyright (c) 2014 SmartyStreets, LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -NOTE: Various optional and subordinate components carry their own licensing -requirements and restrictions. Use of those components is subject to the -terms and conditions outlined the respective license of each component. - -ADDITIONAL LICENSE INFORMATION: - -> Apache 2.0 - -goconvey-master.zip\goconvey-master\web\client\resources\js\lib\diff_match_patch.js - -Copyright 2006 Google Inc. http://code.google.com/p/google-diff-match-patch/ - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -> SIL Open Font License, Version 1.1 - -goconvey-master.zip\goconvey-master\web\client\resources\fonts\Orbitron\OFL.txt - -Copyright (c) 2009, Matt McInerney (matt@pixelspread.com), with Reserved Font -Name Orbitron. This Font Software is licensed under the SIL Open Font -License, Version 1.1. This license is copied below, and is also available -with a FAQ at: http://scripts.sil.org/OFL - - ------------------------------------------------------------ SIL OPEN FONT -LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and open -framework in which fonts may be shared and improved in partnership with -others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The fonts, -including any derivative works, can be bundled, embedded, redistributed and/or -sold with any software provided that any reserved names are not used by -derivative works. The fonts and derivatives, however, cannot be released under -any other type of license. The requirement for fonts to remain under this -license does not apply to any document created using the fonts or their -derivatives. - -DEFINITIONS "Font Software" refers to the set of files released by the -Copyright Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the copyright -statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, or -substituting -- in part or in whole -- any of the components of the Original -Version, by changing formats or by porting the Font Software to a new -environment. - -"Author" refers to any designer, engineer, programmer, technical writer or -other person who contributed to the Font Software. - -PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any -person obtaining a copy of the Font Software, to use, study, copy, merge, -embed, modify, redistribute, and sell modified and unmodified copies of the -Font Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, in Original -or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy contains -the above copyright notice and this license. These can be included either as -stand-alone text files, human-readable headers or in the appropriate -machine-readable metadata fields within text or binary files as long as those -fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font Name(s) -unless explicit written permission is granted by the corresponding Copyright -Holder. This restriction only applies to the primary font name as presented to -the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any Modified -Version, except to acknowledge the contribution(s) of the Copyright Holder(s) -and the Author(s) or with their explicit written permission. - -5) The Font Software, modified or unmodified, in part or in whole, must be -distributed entirely under this license, and must not be distributed under any -other license. The requirement for fonts to remain under this license does not -apply to any document created using the Font Software. - -TERMINATION This license becomes null and void if any of the above conditions -are not met. - -DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF -COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT -HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY -GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR -INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT -SOFTWARE. - - ->>> stretchr objx-1a9d0bb9f541897e62256577b352fdbc1fb4fd94 - -objx - by Mat Ryer and Tyler Bunnell - -The MIT License (MIT) - -Copyright (c) 2014 Stretchr, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> stretchr testify-9f9027faeb0dad515336ed2f28317f9f8f527ab4 - -Copyright (c) 2012 - 2013 Mat Ryer and Tyler Bunnell - -Please consider promoting this project if you find it useful. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -ADDITIONAL LICENSE INFORMATION: - ->BSD - -testify-master.zip\testify-master\vendor\github.com\pmezard\go-difflib\LICENSE - -Copyright (c) 2013, Patrick Mezard All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. The names of its contributors may not be used to -endorse or promote products derived from this software without specific prior -written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> tail-a30252cb686a21eb2d0b98132633053ec2f7f1e5 - -The MIT License (MIT) - - Copyright 2015 Hewlett Packard Enterprise Development LP Copyright (c) 2014 -ActiveState - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: The above copyright -notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -ADDITIONAL LICENSE INFORMATION: - -> BSD-3 - -github.com/hpcloud/tail/vendor/gopkg.in/fsnotify.va/LICENSE - -Copyright (c) 2012 The Go Authors. All rights reserved. Copyright (c) 2012 -fsnotify Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> BSD-3 - -github.com/hpcloud/tail/vendor/gopkg.in/tomb.v1/LICENSE - -Copyright (c) 2010-2011 - Gustavo Niemeyer - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - * notice, - this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> tomb.v1-dd632973f1e7218eb1089048e0798ec9ae7dceb8 - -Copyright (c) 2010-2011 - Gustavo Niemeyer - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - * notice, - this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> ugorji/go/codec-708a42d246822952f38190a8d8c4e6b16a0e600c - -The MIT License (MIT) - -Copyright (c) 2012-2015 Ugorji Nwoke. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> urfave/cli.v1-0bdeddeeb0f650497d603c4ad7b20cfe685682f6 - -MIT License - -Copyright (c) 2016 Jeremy Saenz & Contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> urlesc -5fa9ff0392746aeae1c4b37fcc42c65afa7a9587 - -Copyright (c) 2012 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -ADDITIONAL LICENSE INFORMATION: - ->MIT - -urlesc-master.zip\urlesc-master\README.md - -License : MIT - - ->>> uuid-f3f4b54b2fabcf1f11dcc939025bb0c109b00ed8 - -Copyright (c) 2009,2014 Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> vburenin/nsync-9a75d1c80410815ac45d65fc01ccabac9c98dd4a - -The MIT License (MIT) - -Copyright (c) 2016 Volodymyr Burenin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ---------------- SECTION 2: Apache License, V2.0 ---------- - -Apache License, V2.0 is applicable to the following component(s). - - ->>> coreos/etcd/client-781196fa8746d6c34ace2a62898051af6dc46002 - -Copyright 2016 The etcd Authors - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - -> MIT - -etcd-master.zip\etcd-master\cmd\vendor\github.com\beorn7\perks\LICENSE - -Copyright (C) 2013 Blake Mizerany - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -> BSD-3 clause - -etcd-master.zip\etcd-master\cmd\vendor\github.com\gogo\protobuf\proto\clone.go - -Copyright 2011 The Go Authors. All rights reserved. -https:github.com/golang/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> BSD-2 clause - -etcd-master.zip\etcd-master\cmd\vendor\github.com\gogo\protobuf\proto\text_gogo.go - -Copyright (c) 2013, The GoGo Authors. All rights reserved. -http:github.com/gogo/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> BSD-3 clause with Google Patents - -etcd-master.zip\etcd-master\cmd\vendor\golang.org\x\crypto\LICENSE - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> LGPL 3.0 with exception - -****[VMware doesnot distribute the sub-components licensed under LGPL -3.0]***** - -etcd-master.zip\etcd-master\cmd\vendor\gopkg.in\yaml.v2\LICENSE - -Copyright (c) 2011-2014 - Canonical Inc. - -This software is licensed under the LGPLv3, included below. - -As a special exception to the GNU Lesser General Public License version 3 -("LGPL3"), the copyright holders of this Library give you permission to convey -to a third party a Combined Work that links statically or dynamically to this -Library without providing any Minimal Corresponding Source or Minimal -Application Code as set out in 4d or providing the installation information -set out in section 4e, provided that you comply with the other provisions of -LGPL3 and provided that you meet, for the Application the terms and conditions -of the license(s) which apply to the Application. - -Except as stated in this special exception, the provisions of LGPL3 will -continue to comply in full to this Library. If you modify this Library, you -may apply this exception to your version of this Library, but you are not -obliged to do so. If you do not wish to do so, delete this exception statement -from your version. This exception does not (and cannot) modify any license -terms which apply to the Application, with which you must still comply. - -> Public Domain - -etcd-master.zip\etcd-master\DCO - -Developer Certificate of Origin Version 1.1 - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 660 York -Street, Suite 102, San Francisco, CA 94110 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I have the -right to submit it under the open source license indicated in the file; or - -(b) The contribution is based upon previous work that, to the best of my -knowledge, is covered under an appropriate open source license and I have the -right under that license to submit that work with modifications, whether -created in whole or in part by me, under the same open source license (unless -I am permitted to submit under a different license), as indicated in the file; -or - -(c) The contribution was provided directly to me by some other person who -certified (a), (b) or (c) and I have not modified it. - -(d) I understand and agree that this project and the contribution are public -and that a record of the contribution (including all personal information I -submit with it, including my sign-off) is maintained indefinitely and may be -redistributed consistent with this project or the open source license(s) -involved. - - ->>> coreos/etcd/pkg/pathutil-a4624666fec6b9f82400ea873d5c3d2f968fb737 - -Copyright 2016 The etc d Authors - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - -> MIT - -etcd-master.zip\etcd-master\cmd\vendor\github.com\beorn7\perks\LICENSE - -Copyright (C) 2013 Blake Mizerany - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -> BSD-3 clause - -etcd-master.zip\etcd-master\cmd\vendor\github.com\gogo\protobuf\proto\clone.go - -Copyright 2011 The Go Authors. All rights reserved. -https:github.com/golang/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> BSD-2 clause - -etcd-master.zip\etcd-master\cmd\vendor\github.com\gogo\protobuf\proto\text_gogo.go - -Copyright (c) 2013, The GoGo Authors. All rights reserved. -http:github.com/gogo/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> BSD-3 clause with Google Patents - -etcd-master.zip\etcd-master\cmd\vendor\golang.org\x\crypto\LICENSE - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> LGPL 3.0 with exception - -****[VMware doesnot distribute the sub-components licensed under LGPL -3.0]***** - -etcd-master.zip\etcd-master\cmd\vendor\gopkg.in\yaml.v2\LICENSE - -Copyright (c) 2011-2014 - Canonical Inc. - -This software is licensed under the LGPLv3, included below. - -As a special exception to the GNU Lesser General Public License version 3 -("LGPL3"), the copyright holders of this Library give you permission to convey -to a third party a Combined Work that links statically or dynamically to this -Library without providing any Minimal Corresponding Source or Minimal -Application Code as set out in 4d or providing the installation information -set out in section 4e, provided that you comply with the other provisions of -LGPL3 and provided that you meet, for the Application the terms and conditions -of the license(s) which apply to the Application. - -Except as stated in this special exception, the provisions of LGPL3 will -continue to comply in full to this Library. If you modify this Library, you -may apply this exception to your version of this Library, but you are not -obliged to do so. If you do not wish to do so, delete this exception statement -from your version. This exception does not (and cannot) modify any license -terms which apply to the Application, with which you must still comply. - -> Public Domain - -etcd-master.zip\etcd-master\DCO - -Developer Certificate of Origin Version 1.1 - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 660 York -Street, Suite 102, San Francisco, CA 94110 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I have the -right to submit it under the open source license indicated in the file; or - -(b) The contribution is based upon previous work that, to the best of my -knowledge, is covered under an appropriate open source license and I have the -right under that license to submit that work with modifications, whether -created in whole or in part by me, under the same open source license (unless -I am permitted to submit under a different license), as indicated in the file; -or - -(c) The contribution was provided directly to me by some other person who -certified (a), (b) or (c) and I have not modified it. - -(d) I understand and agree that this project and the contribution are public -and that a record of the contribution (including all personal information I -submit with it, including my sign-off) is maintained indefinitely and may be -redistributed consistent with this project or the open source license(s) -involved. - - ->>> coreos/etcd/pkg/types-a4624666fec6b9f82400ea873d5c3d2f968fb737 - -Copyright 2016 The etcd Authors - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - -> MIT - -etcd-master.zip\etcd-master\cmd\vendor\github.com\beorn7\perks\LICENSE - -Copyright (C) 2013 Blake Mizerany - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -> BSD-3 clause - -etcd-master.zip\etcd-master\cmd\vendor\github.com\gogo\protobuf\proto\clone.go - -Copyright 2011 The Go Authors. All rights reserved. -https:github.com/golang/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> BSD-2 clause - -etcd-master.zip\etcd-master\cmd\vendor\github.com\gogo\protobuf\proto\text_gogo.go - -Copyright (c) 2013, The GoGo Authors. All rights reserved. -http:github.com/gogo/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> BSD-3 clause with Google Patents - -etcd-master.zip\etcd-master\cmd\vendor\golang.org\x\crypto\LICENSE - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> LGPL 3.0 with exception - -*****[VMware doesnot distribute the sub-components licensed under LGPL -3.0]***** - -etcd-master.zip\etcd-master\cmd\vendor\gopkg.in\yaml.v2\LICENSE - -Copyright (c) 2011-2014 - Canonical Inc. - -This software is licensed under the LGPLv3, included below. - -As a special exception to the GNU Lesser General Public License version 3 -("LGPL3"), the copyright holders of this Library give you permission to convey -to a third party a Combined Work that links statically or dynamically to this -Library without providing any Minimal Corresponding Source or Minimal -Application Code as set out in 4d or providing the installation information -set out in section 4e, provided that you comply with the other provisions of -LGPL3 and provided that you meet, for the Application the terms and conditions -of the license(s) which apply to the Application. - -Except as stated in this special exception, the provisions of LGPL3 will -continue to comply in full to this Library. If you modify this Library, you -may apply this exception to your version of this Library, but you are not -obliged to do so. If you do not wish to do so, delete this exception statement -from your version. This exception does not (and cannot) modify any license -terms which apply to the Application, with which you must still comply. - -> Public Domain - -etcd-master.zip\etcd-master\DCO - -Developer Certificate of Origin Version 1.1 - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 660 York -Street, Suite 102, San Francisco, CA 94110 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I have the -right to submit it under the open source license indicated in the file; or - -(b) The contribution is based upon previous work that, to the best of my -knowledge, is covered under an appropriate open source license and I have the -right under that license to submit that work with modifications, whether -created in whole or in part by me, under the same open source license (unless -I am permitted to submit under a different license), as indicated in the file; -or - -(c) The contribution was provided directly to me by some other person who -certified (a), (b) or (c) and I have not modified it. - -(d) I understand and agree that this project and the contribution are public -and that a record of the contribution (including all personal information I -submit with it, including my sign-off) is maintained indefinitely and may be -redistributed consistent with this project or the open source license(s) -involved. - - ->>> coreos/go-semver/semver-5e3acbb5668c4c3deb4842615c4098eb61fb6b1e - -Copyright 2013-2015 CoreOS, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> docker distribution-2.6.0 - -Copyright 2014 Gary Burd - -Licensed under the Apache License, Version 2.0 (the "License"): you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - -> MIT - -distribution-2.6.0.tar.gz\distribution-2.6.0.tar\distribution-2.6.0\vendor\github.com\bugsnag\bugsnag-go\LICENSE.txt - -Copyright (c) 2014 Bugsnag - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -> MIT Style - -distribution-2.6.0.tar.gz\distribution-2.6.0.tar\distribution-2.6.0\vendor\github.com\bugsnag\osext\LICENSE - -Copyright (c) 2012 Daniel Theophanes - -This software is provided 'as-is', without any express or implied warranty. In -no event will the authors be held liable for any damages arising from the use -of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not claim -that you wrote the original software. If you use this software in a product, -an acknowledgment in the product documentation would be appreciated but is not -required. - -2. Altered source versions must be plainly marked as such, and must not be -misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. - ->BSD 3 Clause - -distribution-2.6.0.tar.gz\distribution-2.6.0.tar\distribution-2.6.0\vendor\github.com\golang\protobuf\LICENSE - -Go support for Protocol Buffers - Google's data interchange format - -Copyright 2010 The Go Authors. All rights reserved. -https://github.com/golang/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this -list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. - -Neither the name of Google Inc. nor the names of its contributors may be used -to endorse or promote products derived from this software without specific -prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -PATENTS: - -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by Google as -part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, -royalty-free, irrevocable (except as stated in this section) patent license to -make, have made, use, offer to sell, sell, import, transfer and otherwise run, -modify and propagate the contents of this implementation of Go, where such -license applies only to those patent claims, both currently owned or -controlled by Google and acquired in the future, licensable by Google that are -necessarily infringed by this implementation of Go. This grant does not -include claims that would be infringed only as a consequence of further -modification of this implementation. If you or your agent or exclusive -licensee institute or order or agree to the institution of patent litigation -against any entity (including a cross-claim or counterclaim in a lawsuit) -alleging that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent infringement, -or inducement of patent infringement, then any patent rights granted to you -under this License for this implementation of Go shall terminate as of the -date such litigation is filed. - -> BSD 2-Clause - -distribution-2.6.0.tar.gz\distribution-2.6.0.tar\distribution-2.6.0\vendor\gopkg.in\check.v1\LICENSE - -Gocheck - A rich testing framework for Go - -Copyright (c) 2010-2013 Gustavo Niemeyer - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. 2. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> LGPL 3.0 - -****[VMware doesnot distribute the sub-components licensed under LGPL -3.0]***** - -distribution-2.5.1-rc.1.tar.gz\distribution-2.5.1-rc.1.tar\distribution-2.5.1-rc.1\vendor\gopkg.in\yaml.v2\LICENSE - -Copyright (c) 2011-2014 - Canonical Inc. - -This software is licensed under the LGPLv3, included below. - -As a special exception to the GNU Lesser General Public License version 3 -("LGPL3"), the copyright holders of this Library give you permission to convey -to a third party a Combined Work that links statically or dynamically to this -Library without providing any Minimal Corresponding Source or Minimal -Application Code as set out in 4d or providing the installation information -set out in section 4e, provided that you comply with the other provisions of -LGPL3 and provided that you meet, for the Application the terms and conditions -of the license(s) which apply to the Application. - -Except as stated in this special exception, the provisions of LGPL3 will -continue to comply in full to this Library. If you modify this Library, you -may apply this exception to your version of this Library, but you are not -obliged to do so. If you do not wish to do so, delete this exception statement -from your version. This exception does not (and cannot) modify any license -terms which apply to the Application, with which you must still comply. - - ->>> docker-1.13.0 - -Docker Copyright 2012-2016 Docker, Inc. - -This product includes software developed at Docker, Inc. -(https:www.docker.com). - -This product contains software (https:github.com/kr/pty) developed by Keith -Rarick, licensed under the MIT License. - -The following is courtesy of our legal counsel: - -Use and transfer of Docker may be subject to certain restrictions by the -United States and other governments. It is your responsibility to ensure that -your use and/or transfer does not violate applicable laws. - -For more information, please see https:www.bis.doc.gov - -See also https:www.apache.org/dev/crypto.html and/or seek legal counsel. - -Copyright 2014 Google Inc. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -Package cloud contains Google Cloud Platform APIs related types and common -functions. - -ADDITIONAL LICENSE INFORMATION: - -> BSD 3 Clause - -docker-1.13.0.tar.gz\docker-1.13.0.tar\docker-1.13.0\vendor\golang.org\x\crypto\LICENSE - - -Copyright (c) 2013, Felix Riedel All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. Neither the name of the nor the names -of its contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by Google as -part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, -royalty-free, irrevocable (except as stated in this section) patent license to -make, have made, use, offer to sell, sell, import, transfer and otherwise run, -modify and propagate the contents of this implementation of Go, where such -license applies only to those patent claims, both currently owned or -controlled by Google and acquired in the future, licensable by Google that are -necessarily infringed by this implementation of Go. This grant does not -include claims that would be infringed only as a consequence of further -modification of this implementation. If you or your agent or exclusive -licensee institute or order or agree to the institution of patent litigation -against any entity (including a cross-claim or counterclaim in a lawsuit) -alleging that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent infringement, -or inducement of patent infringement, then any patent rights granted to you -under this License for this implementation of Go shall terminate as of the -date such litigation is filed. - -> GPL2.0 - -****[VMware doesnot distribute sub-components licensed under GPL 2.0]***** - -docker-1.13.0.tar.gz\docker-1.13.0.tar\docker-1.13.0\contrib\init\openrc\docker.initd - -Copyright 1999-2013 Gentoo Foundation Distributed under the terms of the GNU -General Public License v2 - -> BSD2 Clause - -docker-1.13.0.tar.gz\docker-1.13.0.tar\docker-1.13.0\contrib\syntax\vim\LICENSE - -Copyright (c) 2013 Honza Pokorny All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. 2. Redistributions in binary -form must reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other materials provided -with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> WTFPL - -docker-1.13.0.tar.gz\docker-1.13.0.tar\docker-1.13.0\vendor\github.com\BurntSushi\toml\COPYING -DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 - -Copyright (C) 2004 Sam Hocevar - -Everyone is permitted to copy and distribute verbatim or modified copies of -this license document, and changing it is allowed as long as the name is -changed. - -DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, -DISTRIBUTION AND MODIFICATION - -0. You just DO WHAT THE FUCK YOU WANT TO. - - -> MIT - -docker-1.13.0.tar.gz\docker-1.13.0.tar\docker-1.13.0\vendor\github.com\armon\go-metrics\LICENSE - - -The MIT License (MIT) - -Copyright (c) 2013 Armon Dadgar - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -> MPL2.0 - -docker-1.13.0.tar.gz\docker-1.13.0.tar\docker-1.13.0\vendor\github.com\hashicorp\consul\LICENSE - -License: MPL2.0 - - -> Public Domain - -docker-1.13.0.tar.gz\docker-1.13.0.tar\docker-1.13.0\vendor\github.com\mattn\go-sqlite3\code\sqlite3-binding.c - - -2010 August 30 - -The author disclaims copyright to this source code. In place of a legal -notice, here is a blessing: - -May you do good and not evil. May you find forgiveness for yourself and -forgive others. May you share freely, never taking more than you give. - -> RSA DATA SECURITY - -docker-1.13.0.tar.gz\docker-1.13.0.tar\docker-1.13.0\vendor\github.com\miekg\pkcs11\pkcs11.h - - -License to copy and use this software is granted provided that it is -identified as "RSA Security Inc. PKCS 11 Cryptographic Token Interface -(Cryptoki)" in all material mentioning or referencing this software. - -License is also granted to make and use derivative works provided that such -works are identified as "derived from the RSA Security Inc. PKCS 11 -Cryptographic Token Interface (Cryptoki)" in all material mentioning or -referencing the derived work. - -RSA Security Inc. makes no representations concerning either the -merchantability of this software or the suitability of this software for any -particular purpose. It is provided "as is" without express or implied warranty -of any kind. - -> LGPL3.0 - - -****[VMware doesnot distribute sub-components licensed under LGPL 3.0]***** - -docker-1.13.0.tar.gz\docker-1.13.0.tar\docker-1.13.0\vendor\gopkg.in\yaml.v2\LICENSE - -License: LGPL3.0 - - ->>> gas-1c8e7ff6861b2ee1c4d48a279b5eee07448baa5f - -(c) Copyright 2016 Hewlett Packard Enterprise Development LP - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.orglicensesLICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION : - -> MIT - -gas-master.zip\gas-master\vendor\github.com\nbutton23\zxcvbn-go\LICENSE.txt - -Copyright (c) Nathan Button - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> github.com/coreos/etcd/version-781196fa8746d6c34ace2a62898051af6dc46002 - -Copyright 2016 The etcd Authors - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - -> MIT - -etcd-master.zip\etcd-master\cmd\vendor\github.com\beorn7\perks\LICENSE - -Copyright (C) 2013 Blake Mizerany - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -> BSD-3 clause - -etcd-master.zip\etcd-master\cmd\vendor\github.com\gogo\protobuf\proto\clone.go - -Copyright 2011 The Go Authors. All rights reserved. -https:github.com/golang/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> BSD-2 clause - -etcd-master.zip\etcd-master\cmd\vendor\github.com\gogo\protobuf\proto\text_gogo.go - -Copyright (c) 2013, The GoGo Authors. All rights reserved. -http:github.com/gogo/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> BSD-3 clause with Google Patents - -etcd-master.zip\etcd-master\cmd\vendor\golang.org\x\crypto\LICENSE - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> LGPL 3.0 with exception - -****[VMware doesnot distribute the sub-components licensed under LGPL 3.0]**** - -etcd-master.zip\etcd-master\cmd\vendor\gopkg.in\yaml.v2\LICENSE - -Copyright (c) 2011-2014 - Canonical Inc. - -This software is licensed under the LGPLv3, included below. - -As a special exception to the GNU Lesser General Public License version 3 -("LGPL3"), the copyright holders of this Library give you permission to convey -to a third party a Combined Work that links statically or dynamically to this -Library without providing any Minimal Corresponding Source or Minimal -Application Code as set out in 4d or providing the installation information -set out in section 4e, provided that you comply with the other provisions of -LGPL3 and provided that you meet, for the Application the terms and conditions -of the license(s) which apply to the Application. - -Except as stated in this special exception, the provisions of LGPL3 will -continue to comply in full to this Library. If you modify this Library, you -may apply this exception to your version of this Library, but you are not -obliged to do so. If you do not wish to do so, delete this exception statement -from your version. This exception does not (and cannot) modify any license -terms which apply to the Application, with which you must still comply. - -> Public Domain - -etcd-master.zip\etcd-master\DCO - -Developer Certificate of Origin Version 1.1 - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 660 York -Street, Suite 102, San Francisco, CA 94110 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I have the -right to submit it under the open source license indicated in the file; or - -(b) The contribution is based upon previous work that, to the best of my -knowledge, is covered under an appropriate open source license and I have the -right under that license to submit that work with modifications, whether -created in whole or in part by me, under the same open source license (unless -I am permitted to submit under a different license), as indicated in the file; -or - -(c) The contribution was provided directly to me by some other person who -certified (a), (b) or (c) and I have not modified it. - -(d) I understand and agree that this project and the contribution are public -and that a record of the contribution (including all personal information I -submit with it, including my sign-off) is maintained indefinitely and may be -redistributed consistent with this project or the open source license(s) -involved. - - ->>> go-openapi/analysis-7222828b8ce19afee3c595aef6643b9e42150120 - -Copyright 2015 go-swagger maintainers - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> go-openapi/analysis-d5a75b7d751ca3f11ad5d93cfe97405f2c3f6a47 - -Copyright 2015 go-swagger maintainers - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> go-openapi/errors-fc3f73a224499b047eda7191e5d22e1e9631e86f - -Copyright 2015 go-swagger maintainers - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> go-openapi/jsonpointer-779f45308c19820f1a69e9a4cd965f496e0da10f - -Copyright 2013 sigu-399 ( https:github.com/sigu-399 ) - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - -> Public Domain - -jsonpointer-master.zip\jsonpointer-master\.github\CONTRIBUTING.md - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 660 York -Street, Suite 102, San Francisco, CA 94110 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I have the -right to submit it under the open source license indicated in the file; or - -(b) The contribution is based upon previous work that, to the best of my -knowledge, is covered under an appropriate open source license and I have the -right under that license to submit that work with modifications, whether -created in whole or in part by me, under the same open source license (unless -I am permitted to submit under a different license), as indicated in the file; -or - -(c) The contribution was provided directly to me by some other person who -certified (a), (b) or (c) and I have not modified it. - -(d) I understand and agree that this project and the contribution are public -and that a record of the contribution (including all personal information I -submit with it, including my sign-off) is maintained indefinitely and may be -redistributed consistent with this project or the open source license(s) -involved. - - ->>> go-openapi/jsonreference-36d33bfe519efae5632669801b180bf1a245da3b - -Copyright 2013 sigu-399 ( https:github.comsigu-399 ) - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.orglicensesLICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> go-openapi/loads-6bb6486231e079ea125c0f39994ed3d0c53399ed - -Copyright 2015 go-swagger maintainers - - Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - - http:www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - -ADDITIONAL LICENSE INFORMATION: - - - ->Creative Commons 4.0 International - -loads-master.zip\loads-master\fixtures\json\resources\resourceWithRelativeHost.json - -License: Creative Commons 4.0 International - - ->>> go-openapi/runtime-3b13ebb46790d871d74a6c2450fa4b1280f90854 - -Copyright 2015 go-swagger maintainers - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - -> CC-Attribution 4.0 - -runtime-master.zip\runtime-master\internal\testing\data.go - -License: CC-Attribution 4.0 - -> MIT - -runtime-master.zip\runtime-master\middleware\denco\LICENSE - -Copyright (c) 2014 Naoya Inada - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - ->>> go-openapi/spec-e072eb2390d3a03736a6eb617d30f48369160447 - -Copyright 2015 go-swagger maintainers - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. ADDITIONAL LICENSE INFORMATION: - ->MIT - -spec-master.zip\spec-master\fixtures\expansion\all-the-things.json - -License : MIT - - ->>> go-openapi/strfmt-0cb3db44c13bad3b3f567b762a66751972a310cc - -Copyright 2015 go-swagger maintainers - - Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - - http:www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> go-openapi/swag-96d7b9ebd181a1735a1c9ac87914f2b32fbf56c9 - -Copyright 2015 go-swagger maintainers - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - -> Public Domain - -swag-master.zip\swag-master\.github\CONTRIBUTING.md - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 660 York -Street, Suite 102, San Francisco, CA 94110 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I have the -right to submit it under the open source license indicated in the file; or - -(b) The contribution is based upon previous work that, to the best of my -knowledge, is covered under an appropriate open source license and I have the -right under that license to submit that work with modifications, whether -created in whole or in part by me, under the same open source license (unless -I am permitted to submit under a different license), as indicated in the file; -or - -(c) The contribution was provided directly to me by some other person who -certified (a), (b) or (c) and I have not modified it. - -(d) I understand and agree that this project and the contribution are public -and that a record of the contribution (including all personal information I -submit with it, including my sign-off) is maintained indefinitely and may be -redistributed consistent with this project or the open source license(s) -involved. - - ->>> go-openapi/validate-035dcd74f1f61e83debe1c22950dc53556e7e4b2 - -Copyright 2015 go-swagger maintainers - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> go-swagger-04e27555375e7d9a3251bfb35fcb9ae13cec99a1 - -Copyright 2015 go-swagger maintainers - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - -> Creative Commons 4.0 International - -go-swagger-master.zip\go-swagger-master\fixtures\expansion\invalid-refs.json - -License: Creative Commons 4.0 International - -> MPL 2.0 - -go-swagger-master.zip\go-swagger-master\vendor\github.com\armon\consul-api\LICENSE - -License: MPL 2.0 - - -> MIT - -go-swagger-master.zip\go-swagger-master\vendor\github.com\asaskevich\govalidator\LICENSE - -The MIT License (MIT) - -Copyright (c) 2014 Alex Saskevich - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -> BSD-3 Clause - -go-swagger-master.zip\go-swagger-master\vendor\github.com\fsnotify\fsnotify\LICENSE - -Copyright (c) 2012 The Go Authors. All rights reserved. Copyright (c) 2012 -fsnotify Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -> BSD-2 Clause - -go-swagger-master.zip\go-swagger-master\vendor\github.com\gorilla\handlers\LICENSE - -Copyright (c) 2013 The Gorilla Handlers Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this -list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> go-systemd-7b2428fec40033549c68f54e26e89e7ca9a9ce31 - -Copyright 2015 CoreOS, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -Package util contains utility functions related to systemd that applications -can use to check things like whether systemd is running. Note that some of -these functions attempt to manually load systemd libraries at runtime rather -than linking against them. - -ADDITIONAL LICENSE INFORMATION: - ->MIT Style - -go-systemd-master.zip\go-systemd-master\DCO - -Developer Certificate of Origin Version 1.1 - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 660 York -Street, Suite 102, San Francisco, CA 94110 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I have the -right to submit it under the open source license indicated in the file; or - -(b) The contribution is based upon previous work that, to the best of my -knowledge, is covered under an appropriate open source license and I have the -right under that license to submit that work with modifications, whether -created in whole or in part by me, under the same open source license (unless -I am permitted to submit under a different license), as indicated in the file; -or - -(c) The contribution was provided directly to me by some other person who -certified (a), (b) or (c) and I have not modified it. - -(d) I understand and agree that this project and the contribution are public -and that a record of the contribution (including all personal information I -submit with it, including my sign-off) is maintained indefinitely and may be -redistributed consistent with this project or the open source license(s) -involved. - - ->>> gocloud-cd0da878c66091060d2e7403abd62192b3e387e0 - -License : Apache 2.0 - - ->>> golang/glog-23def4e6c14b4da8ac2ed8007337bc5eb5007998 - -Copyright 2013 Google Inc. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> golang/groupcache/lru-72d04f9fcdec7d3821820cc4a6f150eae553639a - -Copyright 2012 Google Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> maruel/panicparse/stack-25bcac0d793cf4109483505a0d66e066a3a90a80 - -Copyright 2015 Marc-Antoine Ruel - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - -ADDITIONAL LICNESE INFORMATION : - -> MIT - -panicparse-master.zip\panicparse-master\vendor\github.com\kr\pretty\License - -The MIT License (MIT) - -Copyright 2012 Keith Rarick - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -> BSD-3 - -panicparse-master.zip\panicparse-master\vendor\github.com\pmezard\go-difflib\LICENSE - -Copyright (c) 2013, Patrick Mezard All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - - The names of its contributors may not be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> shakers-24d7f1d6a71aa5d9cbe7390e4afb66b7eef9e1b3 - -License : Apache 2.0 - - ->>> sigma/bdoor-b9c82b7b3c0b1e57ec2f8809b6219fbe6a58d92a - -Copyright 2016 Yann Hodique - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> syncutil/singleflight-7ce08ca145dbe0e66a127c447b80ee7914f3e4f9 - -Copyright 2015 The Camlistore Authors - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - -> BSD-Style - -go4-master.zip\go4-master\sort\example_test.go - -Copyright 2011 The Go Authors. All rights reserved. Use of this source code -is governed by a BSD-style license that can be found in the LICENSE file. - - ->>> vishvananda/netlink-482f7a52b758233521878cb6c5904b6bd63f3457 - -LICENSE: Apache 2.0 - - ->>> vishvananda/netns-604eaf189ee867d8c147fafc28def2394e878d25 - -License: Apache 2.0 - - ->>> vmware/govmomi-2cb26d57e70f93bd98a4e3b66580c2638736e40e - -Copyright (c) 2014-2015 VMware, Inc. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - ->MIT - -govmomi-master.zip\govmomi-master\vendor\github.com\davecgh\go-spew\spew\dump.go - -Copyright (c) 2013 Dave Collins - -Permission to use, copy, modify, and distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright -notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - ->BSD 3Clause - -govmomi-master.zip\govmomi-master\vim25\xml\LICENSE - -Copyright (c) 2012 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ->>> vmware/vmw-guestinfo-0b8dbcdd226303bf776dcac49c2d5f3b8a8190fd - -Copyright 2016 VMware, Inc. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http:www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - - ->>> yaml.v2-4c78c975fe7c825c6d1466c42be594d1d6f3aba6 - -Copyright 2011-2016 Canonical Ltd. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations under -the License. - -ADDITIONAL LICENSE INFORMATION: - -> MIT - -yaml-2.zip\yaml-2\LICENSE.libyaml - -The following files were ported to Go from C files of libyaml, and thus are -still covered by their original copyright and license: - -apic.go emitterc.go parserc.go readerc.go scannerc.go writerc.go yamlh.go -yamlprivateh.go - -Copyright (c) 2006 Kirill Simonov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -=============== APPENDIX. Standard License Files ============== - - - ---------------- SECTION 1: Apache License, V2.0 ----------- - -Apache License - -Version 2.0, January 2004 http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and -distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the -copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other -entities that control, are controlled by, or are under common control with -that entity. For the purposes of this definition, "control" means (i) the -power, direct or indirect, to cause the direction or management of such -entity, whether by contract or otherwise, or (ii) ownership of fifty percent -(50%) or more of the outstanding shares, or (iii) beneficial ownership of such -entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation source, and -configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or -translation of a Source form, including but not limited to compiled object -code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, -made available under the License, as indicated by a copyright notice that is -included in or attached to the work (an example is provided in the Appendix -below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that -is based on (or derived from) the Work and for which the editorial revisions, -annotations, elaborations, or other modifications represent, as a whole, an -original work of authorship. For the purposes of this License, Derivative -Works shall not include works that remain separable from, or merely link (or -bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original -version of the Work and any modifications or additions to that Work or -Derivative Works thereof, that is intentionally submitted to Licensor for -inclusion in the Work by the copyright owner or by an individual or Legal -Entity authorized to submit on behalf of the copyright owner. For the purposes -of this definition, "submitted" means any form of electronic, verbal, or -written communication sent to the Licensor or its representatives, including -but not limited to communication on electronic mailing lists, source code -control systems, and issue tracking systems that are managed by, or on behalf -of, the Licensor for the purpose of discussing and improving the Work, but -excluding communication that is conspicuously marked or otherwise designated -in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf -of whom a Contribution has been received by Licensor and subsequently -incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this -License, each Contributor hereby grants to You a perpetual, worldwide, -non-exclusive, no-charge, royalty-free, irrevocable copyright license to -reproduce, prepare Derivative Works of, publicly display, publicly perform, -sublicense, and distribute the Work and such Derivative Works in Source or -Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this -License, each Contributor hereby grants to You a perpetual, worldwide, -non-exclusive, no-charge, royalty- free, irrevocable (except as stated in this -section) patent license to make, have made, use, offer to sell, sell, import, -and otherwise transfer the Work, where such license applies only to those -patent claims licensable by such Contributor that are necessarily infringed by -their Contribution(s) alone or by combination of their Contribution(s) with -the Work to which such Contribution(s) was submitted. If You institute patent -litigation against any entity (including a cross-claim or counterclaim in a -lawsuit) alleging that the Work or a Contribution incorporated within the Work -constitutes direct or contributory patent infringement, then any patent -licenses granted to You under this License for that Work shall terminate as of -the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or -Derivative Works thereof in any medium, with or without modifications, and in -Source or Object form, provided that You meet the following conditions: - - a. You must give any other recipients of the Work or Derivative Works a copy -of this License; and - - b. You must cause any modified files to carry prominent notices stating that -You changed the files; and - - c. You must retain, in the Source form of any Derivative Works that You -distribute, all copyright, patent, trademark, and attribution notices from the -Source form of the Work, excluding those notices that do not pertain to any -part of the Derivative Works; and - - d. If the Work includes a "NOTICE" text file as part of its distribution, -then any Derivative Works that You distribute must include a readable copy of -the attribution notices contained within such NOTICE file, excluding those -notices that do not pertain to any part of the Derivative Works, in at least -one of the following places: within a NOTICE text file distributed as part of -the Derivative Works; within the Source form or documentation, if provided -along with the Derivative Works; or, within a display generated by the -Derivative Works, if and wherever such third-party notices normally appear. -The contents of the NOTICE file are for informational purposes only and do not -modify the License. You may add Your own attribution notices within Derivative -Works that You distribute, alongside or as an addendum to the NOTICE text from -the Work, provided that such additional attribution notices cannot be -construed as modifying the License. You may add Your own copyright statement -to Your modifications and may provide additional or different license terms -and conditions for use, reproduction, or distribution of Your modifications, -or for any such Derivative Works as a whole, provided Your use, reproduction, -and distribution of the Work otherwise complies with the conditions stated in -this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any -Contribution intentionally submitted for inclusion in the Work by You to the -Licensor shall be under the terms and conditions of this License, without any -additional terms or conditions. Notwithstanding the above, nothing herein -shall supersede or modify the terms of any separate license agreement you may -have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, -trademarks, service marks, or product names of the Licensor, except as -required for reasonable and customary use in describing the origin of the Work -and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in -writing, Licensor provides the Work (and each Contributor provides its -Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied, including, without limitation, any warranties -or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any risks -associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in -tort (including negligence), contract, or otherwise, unless required by -applicable law (such as deliberate and grossly negligent acts) or agreed to in -writing, shall any Contributor be liable to You for damages, including any -direct, indirect, special, incidental, or consequential damages of any -character arising as a result of this License or out of the use or inability -to use the Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all other -commercial damages or losses), even if such Contributor has been advised of -the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work -or Derivative Works thereof, You may choose to offer, and charge a fee for, -acceptance of support, warranty, indemnity, or other liability obligations -and/or rights consistent with this License. However, in accepting such -obligations, You may act only on Your own behalf and on Your sole -responsibility, not on behalf of any other Contributor, and only if You agree -to indemnify, defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason of your -accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - - ---------------- SECTION 2: Mozilla Public License, V2.0 ----------- - -Mozilla Public License Version 2.0 - -1. Definitions - -1.1. “Contributor” means each individual or legal entity that creates, -contributes to the creation of, or owns Covered Software. - -1.2. “Contributor Version” means the combination of the Contributions of -others (if any) used by a Contributor and that particular Contributor’s -Contribution. - -1.3. “Contribution” means Covered Software of a particular Contributor. - -1.4. “Covered Software” means Source Code Form to which the initial -Contributor has attached the notice in Exhibit A, the Executable Form of such -Source Code Form, and Modifications of such Source Code Form, in each case -including portions thereof. - -1.5. “Incompatible With Secondary Licenses” means - -that the initial Contributor has attached the notice described in Exhibit B to -the Covered Software; or - -that the Covered Software was made available under the terms of version 1.1 or -earlier of the License, but not also under the terms of a Secondary License. - -1.6. “Executable Form” means any form of the work other than Source Code -Form. - -1.7. “Larger Work” means a work that combines Covered Software with -other material, in a separate file or files, that is not Covered Software. - -1.8. “License” means this document. - -1.9. “Licensable” means having the right to grant, to the maximum extent -possible, whether at the time of the initial grant or subsequently, any and -all of the rights conveyed by this License. - -1.10. “Modifications” means any of the following: - -any file in Source Code Form that results from an addition to, deletion from, -or modification of the contents of Covered Software; or - -any new file in Source Code Form that contains any Covered Software. - -1.11. “Patent Claims” of a Contributor means any patent claim(s), -including without limitation, method, process, and apparatus claims, in any -patent Licensable by such Contributor that would be infringed, but for the -grant of the License, by the making, using, selling, offering for sale, having -made, import, or transfer of either its Contributions or its Contributor -Version. - -1.12. “Secondary License” means either the GNU General Public License, -Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU -Affero General Public License, Version 3.0, or any later versions of those -licenses. - -1.13. “Source Code Form” means the form of the work preferred for making -modifications. - -1.14. “You” (or “Your”) means an individual or a legal entity -exercising rights under this License. For legal entities, “You” includes -any entity that controls, is controlled by, or is under common control with -You. For purposes of this definition, “control” means (a) the power, -direct or indirect, to cause the direction or management of such entity, -whether by contract or otherwise, or (b) ownership of more than fifty percent -(50%) of the outstanding shares or beneficial ownership of such entity. - -2. License Grants and Conditions - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive -license: - -under intellectual property rights (other than patent or trademark) Licensable -by such Contributor to use, reproduce, make available, modify, display, -perform, distribute, and otherwise exploit its Contributions, either on an -unmodified basis, with Modifications, or as part of a Larger Work; and - -under Patent Claims of such Contributor to make, use, sell, offer for sale, -have made, import, and otherwise transfer either its Contributions or its -Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution become -effective for each Contribution on the date the Contributor first distributes -such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under this -License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -for any code that a Contributor has removed from Covered Software; or - -for infringements caused by: (i) Your and any other third party’s -modifications of Covered Software, or (ii) the combination of its -Contributions with other software (except as part of its Contributor Version); -or - -under Patent Claims infringed by Covered Software in the absence of its -Contributions. - -This License does not grant any rights in the trademarks, service marks, or -logos of any Contributor (except as may be necessary to comply with the notice -requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this License -(see Section 10.2) or under the terms of a Secondary License (if permitted -under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its Contributions -are its original creation(s) or it has sufficient rights to grant the rights -to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under applicable -copyright doctrines of fair use, fair dealing, or other equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in -Section 2.1. - -3. Responsibilities - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under the -terms of this License. You must inform recipients that the Source Code Form of -the Covered Software is governed by the terms of this License, and how they -can obtain a copy of this License. You may not attempt to alter or restrict -the recipients’ rights in the Source Code Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -such Covered Software must also be made available in Source Code Form, as -described in Section 3.1, and You must inform recipients of the Executable -Form how they can obtain a copy of such Source Code Form by reasonable means -in a timely manner, at a charge no more than the cost of distribution to the -recipient; and - -You may distribute such Executable Form under the terms of this License, or -sublicense it under different terms, provided that the license for the -Executable Form does not attempt to limit or alter the recipients’ rights -in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for the -Covered Software. If the Larger Work is a combination of Covered Software with -a work governed by one or more Secondary Licenses, and the Covered Software is -not Incompatible With Secondary Licenses, this License permits You to -additionally distribute such Covered Software under the terms of such -Secondary License(s), so that the recipient of the Larger Work may, at their -option, further distribute the Covered Software under the terms of either this -License or such Secondary License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices (including -copyright notices, patent notices, disclaimers of warranty, or limitations of -liability) contained within the Source Code Form of the Covered Software, -except that You may alter any license notices to the extent required to remedy -known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, indemnity -or liability obligations to one or more recipients of Covered Software. -However, You may do so only on Your own behalf, and not on behalf of any -Contributor. You must make it absolutely clear that any such warranty, -support, indemnity, or liability obligation is offered by You alone, and You -hereby agree to indemnify every Contributor for any liability incurred by such -Contributor as a result of warranty, support, indemnity or liability terms You -offer. You may include additional disclaimers of warranty and limitations of -liability specific to any jurisdiction. - -4. Inability to Comply Due to Statute or Regulation - -If it is impossible for You to comply with any of the terms of this License -with respect to some or all of the Covered Software due to statute, judicial -order, or regulation then You must: (a) comply with the terms of this License -to the maximum extent possible; and (b) describe the limitations and the code -they affect. Such description must be placed in a text file included with all -distributions of the Covered Software under this License. Except to the extent -prohibited by statute or regulation, such description must be sufficiently -detailed for a recipient of ordinary skill to be able to understand it. - -5. Termination - -5.1. The rights granted under this License will terminate automatically if You -fail to comply with any of its terms. However, if You become compliant, then -the rights granted under this License from a particular Contributor are -reinstated (a) provisionally, unless and until such Contributor explicitly and -finally terminates Your grants, and (b) on an ongoing basis, if such -Contributor fails to notify You of the non-compliance by some reasonable means -prior to 60 days after You have come back into compliance. Moreover, Your -grants from a particular Contributor are reinstated on an ongoing basis if -such Contributor notifies You of the non-compliance by some reasonable means, -this is the first time You have received notice of non-compliance with this -License from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, counter-claims, -and cross-claims) alleging that a Contributor Version directly or indirectly -infringes any patent, then the rights granted to You by any and all -Contributors for the Covered Software under Section 2.1 of this License shall -terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user -license agreements (excluding distributors and resellers) which have been -validly granted by You or Your distributors under this License prior to -termination shall survive termination. - -6. Disclaimer of Warranty - -Covered Software is provided under this License on an “as is” basis, -without warranty of any kind, either expressed, implied, or statutory, -including, without limitation, warranties that the Covered Software is free of -defects, merchantable, fit for a particular purpose or non-infringing. The -entire risk as to the quality and performance of the Covered Software is with -You. Should any Covered Software prove defective in any respect, You (not any -Contributor) assume the cost of any necessary servicing, repair, or -correction. This disclaimer of warranty constitutes an essential part of this -License. No use of any Covered Software is authorized under this License -except under this disclaimer. - -7. Limitation of Liability - -Under no circumstances and under no legal theory, whether tort (including -negligence), contract, or otherwise, shall any Contributor, or anyone who -distributes Covered Software as permitted above, be liable to You for any -direct, indirect, special, incidental, or consequential damages of any -character including, without limitation, damages for lost profits, loss of -goodwill, work stoppage, computer failure or malfunction, or any and all other -commercial damages or losses, even if such party shall have been informed of -the possibility of such damages. This limitation of liability shall not apply -to liability for death or personal injury resulting from such party’s -negligence to the extent applicable law prohibits such limitation. Some -jurisdictions do not allow the exclusion or limitation of incidental or -consequential damages, so this exclusion and limitation may not apply to You. - -8. Litigation - -Any litigation relating to this License may be brought only in the courts of a -jurisdiction where the defendant maintains its principal place of business and -such litigation shall be governed by laws of that jurisdiction, without -reference to its conflict-of-law provisions. Nothing in this Section shall -prevent a party’s ability to bring cross-claims or counter-claims. - -9. Miscellaneous - -This License represents the complete agreement concerning the subject matter -hereof. If any provision of this License is held to be unenforceable, such -provision shall be reformed only to the extent necessary to make it -enforceable. Any law or regulation which provides that the language of a -contract shall be construed against the drafter shall not be used to construe -this License against a Contributor. - -10. Versions of the License - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section 10.3, -no one other than the license steward has the right to modify or publish new -versions of this License. Each version will be given a distinguishing version -number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version of the -License under which You originally received the Covered Software, or under the -terms of any subsequent version published by the license steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to create a -new license for such software, you may create and use a modified version of -this License if you rename the license and remove any references to the name -of the license steward (except to note that such modified license differs from -this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the notice -described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice - -This Source Code Form is subject to the terms of the Mozilla Public License, -v. 2.0. If a copy of the MPL was not distributed with this file, You can -obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular file, -then You may include the notice in a location (such as a LICENSE file in a -relevant directory) where a recipient would be likely to look for such a -notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - “Incompatible With Secondary Licenses” Notice - -This Source Code Form is “Incompatible With Secondary Licenses”, as -defined by the Mozilla Public License, v. 2.0. - - ---------------- SECTION 3: Creative Commons Attribution 4.0 International ------------ - -Creative Commons Corporation (“Creative Commons”) is not a law firm and -does not provide legal services or legal advice. Distribution of Creative -Commons public licenses does not create a lawyer-client or other relationship. -Creative Commons makes its licenses and related information available on an -“as-is” basis. Creative Commons gives no warranties regarding its -licenses, any material licensed under their terms and conditions, or any -related information. Creative Commons disclaims all liability for damages -resulting from their use to the fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and -conditions that creators and other rights holders may use to share original -works of authorship and other material subject to copyright and certain other -rights specified in the public license below. The following considerations are -for informational purposes only, are not exhaustive, and do not form part of -our licenses. - -Considerations for licensors: Our public licenses are intended for use by -those authorized to give the public permission to use material in ways -otherwise restricted by copyright and certain other rights. Our licenses are -irrevocable. Licensors should read and understand the terms and conditions of -the license they choose before applying it. Licensors should also secure all -rights necessary before applying our licenses so that the public can reuse the -material as expected. Licensors should clearly mark any material not subject -to the license. This includes other CC-licensed material, or material used -under an exception or limitation to copyright. More considerations for -licensors. - -Considerations for the public: By using one of our public licenses, a licensor -grants the public permission to use the licensed material under specified -terms and conditions. If the licensor’s permission is not necessary for any -reason–for example, because of any applicable exception or limitation to -copyright–then that use is not regulated by the license. Our licenses grant -only permissions under copyright and certain other rights that a licensor has -authority to grant. Use of the licensed material may still be restricted for -other reasons, including because others have copyright or other rights in the -material. A licensor may make special requests, such as asking that all -changes be marked or described. Although not required by our licenses, you are -encouraged to respect those requests where reasonable. More considerations for -the public. - -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree to be -bound by the terms and conditions of this Creative Commons Attribution 4.0 -International Public License ("Public License"). To the extent this Public -License may be interpreted as a contract, You are granted the Licensed Rights -in consideration of Your acceptance of these terms and conditions, and the -Licensor grants You such rights in consideration of benefits the Licensor -receives from making the Licensed Material available under these terms and -conditions. - -Section 1 – Definitions. - -Adapted Material means material subject to Copyright and Similar Rights that -is derived from or based upon the Licensed Material and in which the Licensed -Material is translated, altered, arranged, transformed, or otherwise modified -in a manner requiring permission under the Copyright and Similar Rights held -by the Licensor. For purposes of this Public License, where the Licensed -Material is a musical work, performance, or sound recording, Adapted Material -is always produced where the Licensed Material is synched in timed relation -with a moving image. Adapter's License means the license You apply to Your -Copyright and Similar Rights in Your contributions to Adapted Material in -accordance with the terms and conditions of this Public License. Copyright -and Similar Rights means copyright and/or similar rights closely related to -copyright including, without limitation, performance, broadcast, sound -recording, and Sui Generis Database Rights, without regard to how the rights -are labeled or categorized. For purposes of this Public License, the rights -specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. -Effective Technological Measures means those measures that, in the absence of -proper authority, may not be circumvented under laws fulfilling obligations -under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, -and/or similar international agreements. Exceptions and Limitations means -fair use, fair dealing, and/or any other exception or limitation to Copyright -and Similar Rights that applies to Your use of the Licensed Material. -Licensed Material means the artistic or literary work, database, or other -material to which the Licensor applied this Public License. Licensed Rights -means the rights granted to You subject to the terms and conditions of this -Public License, which are limited to all Copyright and Similar Rights that -apply to Your use of the Licensed Material and that the Licensor has authority -to license. Licensor means the individual(s) or entity(ies) granting rights -under this Public License. Share means to provide material to the public by -any means or process that requires permission under the Licensed Rights, such -as reproduction, public display, public performance, distribution, -dissemination, communication, or importation, and to make material available -to the public including in ways that members of the public may access the -material from a place and at a time individually chosen by them. Sui Generis -Database Rights means rights other than copyright resulting from Directive -96/9/EC of the European Parliament and of the Council of 11 March 1996 on the -legal protection of databases, as amended and/or succeeded, as well as other -essentially equivalent rights anywhere in the world. You means the individual -or entity exercising the Licensed Rights under this Public License. Your has a -corresponding meaning. - -Section 2 – Scope. - -License grant. Subject to the terms and conditions of this Public License, -the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, -non-exclusive, irrevocable license to exercise the Licensed Rights in the -Licensed Material to: reproduce and Share the Licensed Material, in whole or -in part; and produce, reproduce, and Share Adapted Material. Exceptions and -Limitations. For the avoidance of doubt, where Exceptions and Limitations -apply to Your use, this Public License does not apply, and You do not need to -comply with its terms and conditions. Term. The term of this Public License -is specified in Section 6(a). Media and formats; technical modifications -allowed. The Licensor authorizes You to exercise the Licensed Rights in all -media and formats whether now known or hereafter created, and to make -technical modifications necessary to do so. The Licensor waives and/or agrees -not to assert any right or authority to forbid You from making technical -modifications necessary to exercise the Licensed Rights, including technical -modifications necessary to circumvent Effective Technological Measures. For -purposes of this Public License, simply making modifications authorized by -this Section 2(a)(4) never produces Adapted Material. Downstream recipients. -Offer from the Licensor – Licensed Material. Every recipient of the -Licensed Material automatically receives an offer from the Licensor to -exercise the Licensed Rights under the terms and conditions of this Public -License. No downstream restrictions. You may not offer or impose any -additional or different terms or conditions on, or apply any Effective -Technological Measures to, the Licensed Material if doing so restricts -exercise of the Licensed Rights by any recipient of the Licensed Material. No -endorsement. Nothing in this Public License constitutes or may be construed as -permission to assert or imply that You are, or that Your use of the Licensed -Material is, connected with, or sponsored, endorsed, or granted official -status by, the Licensor or others designated to receive attribution as -provided in Section 3(a)(1)(A)(i). - -Other rights. Moral rights, such as the right of integrity, are not licensed -under this Public License, nor are publicity, privacy, and/or other similar -personality rights; however, to the extent possible, the Licensor waives -and/or agrees not to assert any such rights held by the Licensor to the -limited extent necessary to allow You to exercise the Licensed Rights, but not -otherwise. Patent and trademark rights are not licensed under this Public -License. To the extent possible, the Licensor waives any right to collect -royalties from You for the exercise of the Licensed Rights, whether directly -or through a collecting society under any voluntary or waivable statutory or -compulsory licensing scheme. In all other cases the Licensor expressly -reserves any right to collect such royalties. - -Section 3 – License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. - -Attribution. - -If You Share the Licensed Material (including in modified form), You must: -retain the following if it is supplied by the Licensor with the Licensed -Material: identification of the creator(s) of the Licensed Material and any -others designated to receive attribution, in any reasonable manner requested -by the Licensor (including by pseudonym if designated); a copyright notice; a -notice that refers to this Public License; a notice that refers to the -disclaimer of warranties; a URI or hyperlink to the Licensed Material to the -extent reasonably practicable; indicate if You modified the Licensed Material -and retain an indication of any previous modifications; and indicate the -Licensed Material is licensed under this Public License, and include the text -of, or the URI or hyperlink to, this Public License. You may satisfy the -conditions in Section 3(a)(1) in any reasonable manner based on the medium, -means, and context in which You Share the Licensed Material. For example, it -may be reasonable to satisfy the conditions by providing a URI or hyperlink to -a resource that includes the required information. If requested by the -Licensor, You must remove any of the information required by Section -3(a)(1)(A) to the extent reasonably practicable. If You Share Adapted -Material You produce, the Adapter's License You apply must not prevent -recipients of the Adapted Material from complying with this Public License. - -Section 4 – Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that apply to -Your use of the Licensed Material: - -for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, -reuse, reproduce, and Share all or a substantial portion of the contents of -the database; if You include all or a substantial portion of the database -contents in a database in which You have Sui Generis Database Rights, then the -database in which You have Sui Generis Database Rights (but not its individual -contents) is Adapted Material; and You must comply with the conditions in -Section 3(a) if You Share all or a substantial portion of the contents of the -database. - -For the avoidance of doubt, this Section 4 supplements and does not replace -Your obligations under this Public License where the Licensed Rights include -other Copyright and Similar Rights. - -Section 5 – Disclaimer of Warranties and Limitation of Liability. - -Unless otherwise separately undertaken by the Licensor, to the extent -possible, the Licensor offers the Licensed Material as-is and as-available, -and makes no representations or warranties of any kind concerning the Licensed -Material, whether express, implied, statutory, or other. This includes, -without limitation, warranties of title, merchantability, fitness for a -particular purpose, non-infringement, absence of latent or other defects, -accuracy, or the presence or absence of errors, whether or not known or -discoverable. Where disclaimers of warranties are not allowed in full or in -part, this disclaimer may not apply to You. To the extent possible, in no -event will the Licensor be liable to You on any legal theory (including, -without limitation, negligence) or otherwise for any direct, special, -indirect, incidental, consequential, punitive, exemplary, or other losses, -costs, expenses, or damages arising out of this Public License or use of the -Licensed Material, even if the Licensor has been advised of the possibility of -such losses, costs, expenses, or damages. Where a limitation of liability is -not allowed in full or in part, this limitation may not apply to You. - -The disclaimer of warranties and limitation of liability provided above shall -be interpreted in a manner that, to the extent possible, most closely -approximates an absolute disclaimer and waiver of all liability. - -Section 6 – Term and Termination. - -This Public License applies for the term of the Copyright and Similar Rights -licensed here. However, if You fail to comply with this Public License, then -Your rights under this Public License terminate automatically. - -Where Your right to use the Licensed Material has terminated under Section -6(a), it reinstates: automatically as of the date the violation is cured, -provided it is cured within 30 days of Your discovery of the violation; or -upon express reinstatement by the Licensor. For the avoidance of doubt, this -Section 6(b) does not affect any right the Licensor may have to seek remedies -for Your violations of this Public License. For the avoidance of doubt, the -Licensor may also offer the Licensed Material under separate terms or -conditions or stop distributing the Licensed Material at any time; however, -doing so will not terminate this Public License. Sections 1, 5, 6, 7, and 8 -survive termination of this Public License. - -Section 7 – Other Terms and Conditions. - -The Licensor shall not be bound by any additional or different terms or -conditions communicated by You unless expressly agreed. Any arrangements, -understandings, or agreements regarding the Licensed Material not stated -herein are separate from and independent of the terms and conditions of this -Public License. - -Section 8 – Interpretation. - -For the avoidance of doubt, this Public License does not, and shall not be -interpreted to, reduce, limit, restrict, or impose conditions on any use of -the Licensed Material that could lawfully be made without permission under -this Public License. To the extent possible, if any provision of this Public -License is deemed unenforceable, it shall be automatically reformed to the -minimum extent necessary to make it enforceable. If the provision cannot be -reformed, it shall be severed from this Public License without affecting the -enforceability of the remaining terms and conditions. No term or condition of -this Public License will be waived and no failure to comply consented to -unless expressly agreed to by the Licensor. Nothing in this Public License -constitutes or may be interpreted as a limitation upon, or waiver of, any -privileges and immunities that apply to the Licensor or You, including from -the legal processes of any jurisdiction or authority. - -Creative Commons is not a party to its public licenses. Notwithstanding, -Creative Commons may elect to apply one of its public licenses to material it -publishes and in those instances will be considered the “Licensor.” -Except for the limited purpose of indicating that material is shared under a -Creative Commons public license or as otherwise permitted by the Creative -Commons policies published at creativecommons.org/policies, Creative Commons -does not authorize the use of the trademark “Creative Commons” or any -other trademark or logo of Creative Commons without its prior written consent -including, without limitation, in connection with any unauthorized -modifications to any of its public licenses or any other arrangements, -understandings, or agreements concerning use of licensed material. For the -avoidance of doubt, this paragraph does not form part of the public licenses. - -Creative Commons may be contacted at creativecommons.org. - - ---------------- SECTION 4: Creative Commons Attribution License, V3.0 ------------ - -Creative Commons Attribution 3.0 Unported - -CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL -SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT -RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. -CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND -DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. - -License - -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE -COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY -COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS -AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE -BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE -CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE -IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. - -1. Definitions - - a. "Adaptation" means a work based upon the Work, or upon the Work and -other pre-existing works, such as a translation, adaptation, derivative work, -arrangement of music or other alterations of a literary or artistic work, or -phonogram or performance and includes cinematographic adaptations or any other -form in which the Work may be recast, transformed, or adapted including in any -form recognizably derived from the original, except that a work that -constitutes a Collection will not be considered an Adaptation for the purpose -of this License. For the avoidance of doubt, where the Work is a musical work, -performance or phonogram, the synchronization of the Work in timed-relation -with a moving image ("synching") will be considered an Adaptation for the -purpose of this License. - - b. "Collection" means a collection of literary or artistic works, such as -encyclopedias and anthologies, or performances, phonograms or broadcasts, or -other works or subject matter other than works listed in Section 1(f) below, -which, by reason of the selection and arrangement of their contents, -constitute intellectual creations, in which the Work is included in its -entirety in unmodified form along with one or more other contributions, each -constituting separate and independent works in themselves, which together are -assembled into a collective whole. A work that constitutes a Collection will -not be considered an Adaptation (as defined above) for the purposes of this -License. - - c. "Distribute" means to make available to the public the original and -copies of the Work or Adaptation, as appropriate, through sale or other -transfer of ownership. - - d. "Licensor" means the individual, individuals, entity or entities that -offer(s) the Work under the terms of this License. - - e. "Original Author" means, in the case of a literary or artistic work, the -individual, individuals, entity or entities who created the Work or if no -individual or entity can be identified, the publisher; and in addition (i) in -the case of a performance the actors, singers, musicians, dancers, and other -persons who act, sing, deliver, declaim, play in, interpret or otherwise -perform literary or artistic works or expressions of folklore; (ii) in the -case of a phonogram the producer being the person or legal entity who first -fixes the sounds of a performance or other sounds; and, (iii) in the case of -broadcasts, the organization that transmits the broadcast. - - f. "Work" means the literary and/or artistic work offered under the terms -of this License including without limitation any production in the literary, -scientific and artistic domain, whatever may be the mode or form of its -expression including digital form, such as a book, pamphlet and other writing; -a lecture, address, sermon or other work of the same nature; a dramatic or -dramatico-musical work; a choreographic work or entertainment in dumb show; a -musical composition with or without words; a cinematographic work to which are -assimilated works expressed by a process analogous to cinematography; a work -of drawing, painting, architecture, sculpture, engraving or lithography; a -photographic work to which are assimilated works expressed by a process -analogous to photography; a work of applied art; an illustration, map, plan, -sketch or three-dimensional work relative to geography, topography, -architecture or science; a performance; a broadcast; a phonogram; a -compilation of data to the extent it is protected as a copyrightable work; or -a work performed by a variety or circus performer to the extent it is not -otherwise considered a literary or artistic work. - - g. "You" means an individual or entity exercising rights under this License -who has not previously violated the terms of this License with respect to the -Work, or who has received express permission from the Licensor to exercise -rights under this License despite a previous violation. - - h. "Publicly Perform" means to perform public recitations of the Work and -to communicate to the public those public recitations, by any means or -process, including by wire or wireless means or public digital performances; -to make available to the public Works in such a way that members of the public -may access these Works from a place and at a place individually chosen by -them; to perform the Work to the public by any means or process and the -communication to the public of the performances of the Work, including by -public digital performance; to broadcast and rebroadcast the Work by any means -including signs, sounds or images. - - i. "Reproduce" means to make copies of the Work by any means including -without limitation by sound or visual recordings and the right of fixation and -reproducing fixations of the Work, including storage of a protected -performance or phonogram in digital form or other electronic medium. - -2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, -or restrict any uses free from copyright or rights arising from limitations or -exceptions that are provided for in connection with the copyright protection -under copyright law or other applicable laws. - -3. License Grant. Subject to the terms and conditions of this License, -Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual -(for the duration of the applicable copyright) license to exercise the rights -in the Work as stated below: - - a. to Reproduce the Work, to incorporate the Work into one or more -Collections, and to Reproduce the Work as incorporated in the Collections; - - b. to create and Reproduce Adaptations provided that any such Adaptation, -including any translation in any medium, takes reasonable steps to clearly -label, demarcate or otherwise identify that changes were made to the original -Work. For example, a translation could be marked "The original work was -translated from English to Spanish," or a modification could indicate "The -original work has been modified."; - - c. to Distribute and Publicly Perform the Work including as incorporated in -Collections; and, - - d. to Distribute and Publicly Perform Adaptations. - - e. For the avoidance of doubt: - - i. Non-waivable Compulsory License Schemes. In those jurisdictions in -which the right to collect royalties through any statutory or compulsory -licensing scheme cannot be waived, the Licensor reserves the exclusive right -to collect such royalties for any exercise by You of the rights granted under -this License; - - ii. Waivable Compulsory License Schemes. In those jurisdictions in which -the right to collect royalties through any statutory or compulsory licensing -scheme can be waived, the Licensor waives the exclusive right to collect such -royalties for any exercise by You of the rights granted under this License; -and, - - iii. Voluntary License Schemes. The Licensor waives the right to collect -royalties, whether individually or, in the event that the Licensor is a member -of a collecting society that administers voluntary licensing schemes, via that -society, from any exercise by You of the rights granted under this License. -The above rights may be exercised in all media and formats whether now known -or hereafter devised. The above rights include the right to make such -modifications as are technically necessary to exercise the rights in other -media and formats. Subject to Section 8(f), all rights not expressly granted -by Licensor are hereby reserved. - -4. Restrictions. The license granted in Section 3 above is expressly made -subject to and limited by the following restrictions: - - a. You may Distribute or Publicly Perform the Work only under the terms of -this License. You must include a copy of, or the Uniform Resource Identifier -(URI) for, this License with every copy of the Work You Distribute or Publicly -Perform. You may not offer or impose any terms on the Work that restrict the -terms of this License or the ability of the recipient of the Work to exercise -the rights granted to that recipient under the terms of the License. You may -not sublicense the Work. You must keep intact all notices that refer to this -License and to the disclaimer of warranties with every copy of the Work You -Distribute or Publicly Perform. When You Distribute or Publicly Perform the -Work, You may not impose any effective technological measures on the Work that -restrict the ability of a recipient of the Work from You to exercise the -rights granted to that recipient under the terms of the License. This Section -4(a) applies to the Work as incorporated in a Collection, but this does not -require the Collection apart from the Work itself to be made subject to the -terms of this License. If You create a Collection, upon notice from any -Licensor You must, to the extent practicable, remove from the Collection any -credit as required by Section 4(b), as requested. If You create an Adaptation, -upon notice from any Licensor You must, to the extent practicable, remove from -the Adaptation any credit as required by Section 4(b), as requested. - - b. If You Distribute, or Publicly Perform the Work or any Adaptations or -Collections, You must, unless a request has been made pursuant to Section -4(a), keep intact all copyright notices for the Work and provide, reasonable -to the medium or means You are utilizing: (i) the name of the Original Author -(or pseudonym, if applicable) if supplied, and/or if the Original Author -and/or Licensor designate another party or parties (e.g., a sponsor institute, -publishing entity, journal) for attribution ("Attribution Parties") in -Licensor's copyright notice, terms of service or by other reasonable means, -the name of such party or parties; (ii) the title of the Work if supplied; -(iii) to the extent reasonably practicable, the URI, if any, that Licensor -specifies to be associated with the Work, unless such URI does not refer to -the copyright notice or licensing information for the Work; and (iv) , -consistent with Section 3(b), in the case of an Adaptation, a credit -identifying the use of the Work in the Adaptation (e.g., "French translation -of the Work by Original Author," or "Screenplay based on original Work by -Original Author"). The credit required by this Section 4 (b) may be -implemented in any reasonable manner; provided, however, that in the case of a -Adaptation or Collection, at a minimum such credit will appear, if a credit -for all contributing authors of the Adaptation or Collection appears, then as -part of these credits and in a manner at least as prominent as the credits for -the other contributing authors. For the avoidance of doubt, You may only use -the credit required by this Section for the purpose of attribution in the -manner set out above and, by exercising Your rights under this License, You -may not implicitly or explicitly assert or imply any connection with, -sponsorship or endorsement by the Original Author, Licensor and/or Attribution -Parties, as appropriate, of You or Your use of the Work, without the separate, -express prior written permission of the Original Author, Licensor and/or -Attribution Parties. - - c. Except as otherwise agreed in writing by the Licensor or as may be -otherwise permitted by applicable law, if You Reproduce, Distribute or -Publicly Perform the Work either by itself or as part of any Adaptations or -Collections, You must not distort, mutilate, modify or take other derogatory -action in relation to the Work which would be prejudicial to the Original -Author's honor or reputation. Licensor agrees that in those jurisdictions -(e.g. Japan), in which any exercise of the right granted in Section 3(b) of -this License (the right to make Adaptations) would be deemed to be a -distortion, mutilation, modification or other derogatory action prejudicial to -the Original Author's honor and reputation, the Licensor will waive or not -assert, as appropriate, this Section, to the fullest extent permitted by the -applicable national law, to enable You to reasonably exercise Your right under -Section 3(b) of this License (right to make Adaptations) but not otherwise. - -5. Representations, Warranties and Disclaimer UNLESS OTHERWISE MUTUALLY AGREED -TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO -REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, -IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF -TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR -THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE -OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE -EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, -IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY -SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT -OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF -THE POSSIBILITY OF SUCH DAMAGES. - -7. Termination - - a. This License and the rights granted hereunder will terminate -automatically upon any breach by You of the terms of this License. Individuals -or entities who have received Adaptations or Collections from You under this -License, however, will not have their licenses terminated provided such -individuals or entities remain in full compliance with those licenses. -Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. - - b. Subject to the above terms and conditions, the license granted here is -perpetual (for the duration of the applicable copyright in the Work). -Notwithstanding the above, Licensor reserves the right to release the Work -under different license terms or to stop distributing the Work at any time; -provided, however that any such election will not serve to withdraw this -License (or any other license that has been, or is required to be, granted -under the terms of this License), and this License will continue in full force -and effect unless terminated as stated above. - -8. Miscellaneous - - a. Each time You Distribute or Publicly Perform the Work or a Collection, -the Licensor offers to the recipient a license to the Work on the same terms -and conditions as the license granted to You under this License. - - b. Each time You Distribute or Publicly Perform an Adaptation, Licensor -offers to the recipient a license to the original Work on the same terms and -conditions as the license granted to You under this License. - - c. If any provision of this License is invalid or unenforceable under -applicable law, it shall not affect the validity or enforceability of the -remainder of the terms of this License, and without further action by the -parties to this agreement, such provision shall be reformed to the minimum -extent necessary to make such provision valid and enforceable. - - d. No term or provision of this License shall be deemed waived and no -breach consented to unless such waiver or consent shall be in writing and -signed by the party to be charged with such waiver or consent. - - e. This License constitutes the entire agreement between the parties with -respect to the Work licensed here. There are no understandings, agreements or -representations with respect to the Work not specified here. Licensor shall -not be bound by any additional provisions that may appear in any communication -from You. This License may not be modified without the mutual written -agreement of the Licensor and You. - - f. The rights granted under, and the subject matter referenced, in this -License were drafted utilizing the terminology of the Berne Convention for the -Protection of Literary and Artistic Works (as amended on September 28, 1979), -the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO -Performances and Phonograms Treaty of 1996 and the Universal Copyright -Convention (as revised on July 24, 1971). These rights and subject matter take -effect in the relevant jurisdiction in which the License terms are sought to -be enforced according to the corresponding provisions of the implementation of -those treaty provisions in the applicable national law. If the standard suite -of rights granted under applicable copyright law includes additional rights -not granted under this License, such additional rights are deemed to be -included in the License; this License is not intended to restrict the license -of any rights under applicable law. - - - -=========================================================================== - -To the extent any open source components are licensed under the GPL and/or -LGPL, or other similar licenses that require the source code and/or -modifications to source code to be made available (as would be noted above), -you may obtain a copy of the source code corresponding to the binaries for -such open source components and modifications thereto, if any, (the "Source -Files"), by downloading the Source Files from VMware's github site, or by -sending a request, with your name and address to: VMware, Inc., 3401 Hillview -Avenue, Palo Alto, CA 94304, United States of America. All such requests -should clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. -VMware shall mail a copy of the Source Files to you on a CD or equivalent -physical medium. This offer to obtain a copy of the Source Files is valid for -three years from the date you acquired this Software product. - -[VIC110GAMG041417] diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/README.md b/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/README.md deleted file mode 100644 index 7e5bf97d583..00000000000 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# govcsim - A vCenter and ESXi API based simulator - -This package implements a vSphere Web Services (SOAP) SDK endpoint intended for testing consumers of the API. -While the package is written in the Go language, it can be used by any language that can talk to the vSphere API. - -## Installation - -Note: This package is currently being incubated with the VIC repository, but at some point will be moved to the govmomi -repository. - -``` -% export GOPATH=$HOME/gopath -% go get -u github.com/vmware/vic/cmd/vcsim -% $GOPATH/bin/vcsim -h -``` - -## Usage - -The **vcsim** program by default creates a *vCenter* model with a datacenter, hosts, cluster, resource pools, networks -and a datastore. The naming is similar to that of the original *vcsim* mode that was included with vCenter. The number -of resources can be increased or decreased using the various resource type flags. Resources can also be created and -removed using the API. - -Example using the default settings: - -``` -% export GOVC_URL=https://user:pass@127.0.0.1:8989 -% $GOPATH/vcsim -% govc find -/ -/DC0 -/DC0/vm -/DC0/vm/DC0_H0_VM0 -/DC0/vm/DC0_H0_VM1 -/DC0/vm/DC0_C0_RP0_VM0 -/DC0/vm/DC0_C0_RP0_VM1 -/DC0/host -/DC0/host/DC0_H0 -/DC0/host/DC0_H0/DC0_H0 -/DC0/host/DC0_H0/Resources -/DC0/host/DC0_C0 -/DC0/host/DC0_C0/DC0_C0_H0 -/DC0/host/DC0_C0/DC0_C0_H1 -/DC0/host/DC0_C0/DC0_C0_H2 -/DC0/host/DC0_C0/Resources -/DC0/datastore -/DC0/datastore/LocalDS_0 -/DC0/network -/DC0/network/VM Network -/DC0/network/DVS0 -/DC0/network/DC0_DVPG0 -``` - -Example using ESX mode: - -``` -% $GOPATH/vcsim -esx -% govc find -/ -/ha-datacenter -/ha-datacenter/vm -/ha-datacenter/vm/ha-host_VM0 -/ha-datacenter/vm/ha-host_VM1 -/ha-datacenter/host -/ha-datacenter/host/localhost.localdomain -/ha-datacenter/host/localhost.localdomain/localhost.localdomain -/ha-datacenter/host/localhost.localdomain/Resources -/ha-datacenter/datastore -/ha-datacenter/datastore/LocalDS_0 -/ha-datacenter/network -/ha-datacenter/network/VM Network - -``` - -## Supported methods - -The simulator supports a subset of API methods. However, the generated [govmomi](https://github.com/vmware/govmomi) -code includes all types and methods defined in the vmodl, which can be used to implement any method documented in the -[VMware vSphere API Reference](http://pubs.vmware.com/vsphere-65/index.jsp#com.vmware.wssdk.apiref.doc/right-pane.html). - -To see the list of supported methods: - -``` -curl -k https://user:pass@127.0.0.1:8989/about -``` diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/doc.go b/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/doc.go deleted file mode 100644 index 8d7e4700416..00000000000 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/esx/doc.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* -Package esx contains SOAP responses from an ESX server, captured using `govc ... -debug`. -*/ -package esx diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/file_manager.go b/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/file_manager.go deleted file mode 100644 index 714fa603484..00000000000 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/file_manager.go +++ /dev/null @@ -1,207 +0,0 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package simulator - -import ( - "os" - "path" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" - "github.com/vmware/vic/pkg/vsphere/simulator/esx" -) - -type FileManager struct { - mo.FileManager -} - -func NewFileManager(ref types.ManagedObjectReference) object.Reference { - m := &FileManager{} - m.Self = ref - return m -} - -func (f *FileManager) findDatastore(dc *types.ManagedObjectReference, name string) (*Datastore, types.BaseMethodFault) { - if dc == nil { - dc = &esx.Datacenter.Self - } - - folder := Map.Get(Map.Get(*dc).(*mo.Datacenter).DatastoreFolder).(*Folder) - - ds := Map.FindByName(name, folder.ChildEntity) - if ds == nil { - return nil, &types.InvalidDatastore{Name: name} - } - - return ds.(*Datastore), nil -} - -func (f *FileManager) fault(name string, err error, fault types.BaseFileFault) types.BaseMethodFault { - switch { - case os.IsNotExist(err): - fault = new(types.FileNotFound) - } - - fault.GetFileFault().File = name - - return fault.(types.BaseMethodFault) -} - -type deleteDatastoreFileTask struct { - *FileManager - - req *types.DeleteDatastoreFile_Task -} - -func (s *deleteDatastoreFileTask) Run(Task *Task) (types.AnyType, types.BaseMethodFault) { - p, fault := parseDatastorePath(s.req.Name) - if fault != nil { - return nil, fault - } - - ds, fault := s.findDatastore(s.req.Datacenter, p.Datastore) - if fault != nil { - return nil, fault - } - - dir := ds.Info.GetDatastoreInfo().Url - file := path.Join(dir, p.Path) - - _, err := os.Stat(file) - if err != nil { - if os.IsNotExist(err) { - return nil, s.fault(file, err, new(types.CannotDeleteFile)) - } - } - - err = os.RemoveAll(file) - if err != nil { - return nil, s.fault(file, err, new(types.CannotDeleteFile)) - } - - return nil, nil -} - -func (f *FileManager) DeleteDatastoreFileTask(d *types.DeleteDatastoreFile_Task) soap.HasFault { - task := NewTask(&deleteDatastoreFileTask{f, d}) - - task.Run() - - return &methods.DeleteDatastoreFile_TaskBody{ - Res: &types.DeleteDatastoreFile_TaskResponse{ - Returnval: task.Self, - }, - } -} - -func (f *FileManager) MakeDirectory(r *types.MakeDirectory) soap.HasFault { - body := &methods.MakeDirectoryBody{} - - p, fault := parseDatastorePath(r.Name) - if fault != nil { - body.Fault_ = Fault("", fault) - return body - } - - ds, fault := f.findDatastore(r.Datacenter, p.Datastore) - if fault != nil { - body.Fault_ = Fault("", fault) - return body - } - - name := path.Join(ds.Info.GetDatastoreInfo().Url, p.Path) - - mkdir := os.Mkdir - - if isTrue(r.CreateParentDirectories) { - mkdir = os.MkdirAll - } - - err := mkdir(name, 0700) - if err != nil { - fault = f.fault(r.Name, err, new(types.CannotCreateFile)) - body.Fault_ = Fault(err.Error(), fault) - return body - } - - return body -} - -type moveDatastoreFileTask struct { - *FileManager - - req *types.MoveDatastoreFile_Task -} - -func (s *moveDatastoreFileTask) Run(Task *Task) (types.AnyType, types.BaseMethodFault) { - src, fault := parseDatastorePath(s.req.SourceName) - if fault != nil { - return nil, fault - } - - srcDs, fault := s.findDatastore(s.req.SourceDatacenter, src.Datastore) - if fault != nil { - return nil, fault - } - - srcDir := srcDs.Info.GetDatastoreInfo().Url - srcFile := path.Join(srcDir, src.Path) - - dst, fault := parseDatastorePath(s.req.DestinationName) - if fault != nil { - return nil, fault - } - - dstDs, fault := s.findDatastore(s.req.DestinationDatacenter, dst.Datastore) - if fault != nil { - return nil, fault - } - - dstDir := dstDs.Info.GetDatastoreInfo().Url - dstFile := path.Join(dstDir, dst.Path) - - if !isTrue(s.req.Force) { - _, err := os.Stat(dstFile) - if err == nil { - return nil, &types.FileAlreadyExists{ - FileFault: types.FileFault{ - File: dstFile, - }, - } - } - } - - err := os.Rename(srcFile, dstFile) - if err != nil { - return nil, s.fault(srcFile, err, new(types.CannotAccessFile)) - } - - return nil, nil -} - -func (f *FileManager) MoveDatastoreFileTask(d *types.MoveDatastoreFile_Task) soap.HasFault { - task := NewTask(&moveDatastoreFileTask{f, d}) - - task.Run() - - return &methods.MoveDatastoreFile_TaskBody{ - Res: &types.MoveDatastoreFile_TaskResponse{ - Returnval: task.Self, - }, - } -} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/property_filter.go b/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/property_filter.go deleted file mode 100644 index f5b9a672fdf..00000000000 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/property_filter.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2016-2017 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package simulator - -import ( - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type PropertyFilter struct { - mo.PropertyFilter - - pc *PropertyCollector -} - -func (f *PropertyFilter) DestroyPropertyFilter(c *types.DestroyPropertyFilter) soap.HasFault { - body := &methods.DestroyPropertyFilterBody{} - - f.pc.Filter = RemoveReference(c.This, f.pc.Filter) - - Map.Remove(c.This) - - body.Res = &types.DestroyPropertyFilterResponse{} - - return body -} diff --git a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/vc/doc.go b/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/vc/doc.go deleted file mode 100644 index d58b8b24a9b..00000000000 --- a/metricbeat/module/vsphere/vendor/github.com/vmware/vic/pkg/vsphere/simulator/vc/doc.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2016 VMware, Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* -Package vc contains SOAP responses from a vCenter server, captured using `govc ... -debug`. -*/ -package vc diff --git a/metricbeat/module/vsphere/vendor/vendor.json b/metricbeat/module/vsphere/vendor/vendor.json index fa0ec2c2b0c..4ce5713cf4d 100644 --- a/metricbeat/module/vsphere/vendor/vendor.json +++ b/metricbeat/module/vsphere/vendor/vendor.json @@ -1,120 +1,132 @@ { "comment": "", - "ignore": "test github.com/elastic/beats", + "ignore": "test", "package": [ { - "checksumSHA1": "WMTjT/WhwABW0CP22n1KeXxb96w=", + "checksumSHA1": "KNBQcbF54kfQiSZbzYSLGtzh/WQ=", "path": "github.com/google/uuid", - "revision": "6a5e28554805e78ea6141142aba763936c4761c0", - "revisionTime": "2017-03-06T14:51:42Z" + "revision": "281f560d28af7174109514e936f94c2ab2cb2823", + "revisionTime": "2017-07-28T17:43:18Z" }, { - "checksumSHA1": "VK+9fon/pJt+ZebKV+iCx3ILZFI=", + "checksumSHA1": "aqeInPjyAcytMRrpn9KWIBr0+tA=", "path": "github.com/vmware/govmomi", - "revision": "9bfdc5ce62c0585b48b154cc460f8664dcd124c3", - "revisionTime": "2017-04-08T23:52:50Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { - "checksumSHA1": "L/z6VeAmwdnp4Prod4EAlTcPYRY=", + "checksumSHA1": "hb70n+hgA6nsrZWYQQT+aRgvye0=", "path": "github.com/vmware/govmomi/find", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { "checksumSHA1": "J3JrwZagGYMX6oNMkdsUFf8hHo8=", "path": "github.com/vmware/govmomi/list", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { - "checksumSHA1": "9UNb35KvKyGnJh7m70kBW8Jz1nc=", + "checksumSHA1": "rgAG0tTJnKBgCX2qFMFZ3/15R4s=", + "path": "github.com/vmware/govmomi/nfc", + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" + }, + { + "checksumSHA1": "332sEKU0NgJB/TruIIH1G8VATE8=", "path": "github.com/vmware/govmomi/object", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { - "checksumSHA1": "INNHeHhLFq+1BzuX/E3el2wZpVs=", + "checksumSHA1": "zB+5BDLfpbNfTwxX6eBRBr32vVg=", "path": "github.com/vmware/govmomi/property", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { "checksumSHA1": "eqoHqcnyVN3klOJ89N7xmJhRgu0=", "path": "github.com/vmware/govmomi/session", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" + }, + { + "checksumSHA1": "vn4+inqjWY4KraMwR18acw/m2Lk=", + "path": "github.com/vmware/govmomi/simulator", + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" + }, + { + "checksumSHA1": "w4xoF3MEWV7N2GUWUZwqcMaPhGo=", + "path": "github.com/vmware/govmomi/simulator/esx", + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" + }, + { + "checksumSHA1": "W6PwkszNP5Zh9Yd6DuRw/y6YqdU=", + "path": "github.com/vmware/govmomi/simulator/vpx", + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { "checksumSHA1": "FQR3yNgiShaqUiJREkeqQCKYJ84=", "path": "github.com/vmware/govmomi/task", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" + }, + { + "checksumSHA1": "Z6i/BdS9A2NZnvOAz9gvzu5oLAI=", + "path": "github.com/vmware/govmomi/view", + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { "checksumSHA1": "zLg5y/6xx/yr8swoqdyxISyQfoU=", "path": "github.com/vmware/govmomi/vim25", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { "checksumSHA1": "xLvppq0NUD6Hv2GIx1gh75xUzyM=", "path": "github.com/vmware/govmomi/vim25/debug", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { "checksumSHA1": "FIwHoeb/lzICWAoECQkmKLJg4PE=", "path": "github.com/vmware/govmomi/vim25/methods", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { "checksumSHA1": "kiVMrAiW8EBFQvhDMHdE9SFe3N4=", "path": "github.com/vmware/govmomi/vim25/mo", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { "checksumSHA1": "tN9fHudMKhR3LjGw/V0fM4xXUJw=", "path": "github.com/vmware/govmomi/vim25/progress", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { - "checksumSHA1": "AJtbBqLTzFe75nAfBVZctd6EnR0=", + "checksumSHA1": "aiV6wdCCgijnyoQTAq4uFIN7OUo=", "path": "github.com/vmware/govmomi/vim25/soap", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { - "checksumSHA1": "POHY24Xq2VlYYrw6xnABPC5DkQA=", + "checksumSHA1": "zthVYB/EefaNfVGrhBluqkd8ZyE=", "path": "github.com/vmware/govmomi/vim25/types", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" }, { "checksumSHA1": "6XLRzLEvncx5ORtvBjp41KfRTjc=", "path": "github.com/vmware/govmomi/vim25/xml", - "revision": "5072cda664c79ada30834d171d2ed1f76317d3b2", - "revisionTime": "2017-04-25T22:21:48Z" - }, - { - "checksumSHA1": "hQxAbFdZhdr5OIYViCHDaZMLeGE=", - "path": "github.com/vmware/vic/pkg/vsphere/simulator", - "revision": "a2b2afb419d70009cd4d0b58f37b1a095c58b526", - "revisionTime": "2017-04-25T22:08:26Z" - }, - { - "checksumSHA1": "eocox1dMrVGkrmOcA460XrzTq00=", - "path": "github.com/vmware/vic/pkg/vsphere/simulator/esx", - "revision": "925885047d6e49f5701ed9c43ee40c8bb9fb3707", - "revisionTime": "2017-04-27T02:48:19Z" - }, - { - "checksumSHA1": "xvkaoDXBCGPLIsc4gkGzJpF6mGI=", - "path": "github.com/vmware/vic/pkg/vsphere/simulator/vc", - "revision": "a2b2afb419d70009cd4d0b58f37b1a095c58b526", - "revisionTime": "2017-04-25T22:08:26Z" + "revision": "2cad15190b417804d82edb4981e7b3e62907c4ee", + "revisionTime": "2017-08-02T21:42:08Z" } ], "rootPath": "github.com/elastic/beats/metricbeat/module/vsphere" diff --git a/metricbeat/module/vsphere/virtualmachine/_meta/data.json b/metricbeat/module/vsphere/virtualmachine/_meta/data.json index 9f791c4ad38..a2b34b7c28d 100644 --- a/metricbeat/module/vsphere/virtualmachine/_meta/data.json +++ b/metricbeat/module/vsphere/virtualmachine/_meta/data.json @@ -18,7 +18,7 @@ "mhz": 0 } }, - "datacenter": "ha-datacenter", + "host": "ha-host", "memory": { "free": { "guest": { @@ -42,4 +42,4 @@ "name": "ha-host_VM1" } } -} \ No newline at end of file +} diff --git a/metricbeat/module/vsphere/virtualmachine/_meta/fields.yml b/metricbeat/module/vsphere/virtualmachine/_meta/fields.yml index 57a262a8377..0360bd62794 100644 --- a/metricbeat/module/vsphere/virtualmachine/_meta/fields.yml +++ b/metricbeat/module/vsphere/virtualmachine/_meta/fields.yml @@ -4,10 +4,10 @@ virtualmachine release: beta fields: - - name: datacenter + - name: host type: keyword description: > - Datacenter name + Host name - name: name type: keyword description: > diff --git a/metricbeat/module/vsphere/virtualmachine/virtualmachine.go b/metricbeat/module/vsphere/virtualmachine/virtualmachine.go index becdbc11943..a87f135969e 100644 --- a/metricbeat/module/vsphere/virtualmachine/virtualmachine.go +++ b/metricbeat/module/vsphere/virtualmachine/virtualmachine.go @@ -12,9 +12,8 @@ import ( "github.com/pkg/errors" "github.com/vmware/govmomi" - "github.com/vmware/govmomi/find" "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/property" + "github.com/vmware/govmomi/view" "github.com/vmware/govmomi/vim25" "github.com/vmware/govmomi/vim25/mo" "github.com/vmware/govmomi/vim25/types" @@ -28,7 +27,8 @@ func init() { type MetricSet struct { mb.BaseMetricSet - Client *vim25.Client + HostURL *url.URL + Insecure bool GetCustomFields bool } @@ -55,122 +55,112 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { u.User = url.UserPassword(config.Username, config.Password) - c, err := govmomi.NewClient(context.TODO(), u, config.Insecure) - if err != nil { - return nil, err - } - return &MetricSet{ BaseMetricSet: base, - Client: c.Client, + HostURL: u, + Insecure: config.Insecure, GetCustomFields: config.GetCustomFields, }, nil } func (m *MetricSet) Fetch() ([]common.MapStr, error) { - f := find.NewFinder(m.Client, true) - ctx, cancel := context.WithCancel(context.Background()) defer cancel() + events := []common.MapStr{} + + client, err := govmomi.NewClient(ctx, m.HostURL, m.Insecure) + if err != nil { + return nil, err + } + + defer client.Logout(ctx) + + c := client.Client + // Get custom fields (attributes) names if get_custom_fields is true. customFieldsMap := make(map[int32]string) if m.GetCustomFields { var err error - customFieldsMap, err = setCustomFieldsMap(ctx, m.Client) + customFieldsMap, err = setCustomFieldsMap(ctx, c) if err != nil { return nil, err } } - // Get all data centers. - dcs, err := f.DatacenterList(ctx, "*") + // Create view of VirtualMachine objects + mgr := view.NewManager(c) + + v, err := mgr.CreateContainerView(ctx, c.ServiceContent.RootFolder, []string{"VirtualMachine"}, true) if err != nil { return nil, err } - events := []common.MapStr{} + defer v.Destroy(ctx) + + // Retrieve summary property for all machines + var vmt []mo.VirtualMachine + err = v.Retrieve(ctx, []string{"VirtualMachine"}, []string{"summary"}, &vmt) + if err != nil { + return nil, err + } var wg sync.WaitGroup var mutex sync.Mutex - for _, dc := range dcs { - f.SetDatacenter(dc) - - vms, err := f.VirtualMachineList(ctx, "*") - if err != nil { - return nil, errors.Wrap(err, "failed to get virtual machine list") - } - - pc := property.DefaultCollector(m.Client) - - // Convert virtual machines into list of references. - var refs []types.ManagedObjectReference - for _, vm := range vms { - refs = append(refs, vm.Reference()) - } - - // Retrieve summary property (VirtualMachineSummary). - var vmt []mo.VirtualMachine - err = pc.Retrieve(ctx, refs, []string{"summary"}, &vmt) - if err != nil { - return nil, err - } - - for _, vm := range vmt { + for _, vm := range vmt { - wg.Add(1) + wg.Add(1) - go func(vm mo.VirtualMachine) { + go func(vm mo.VirtualMachine) { - defer wg.Done() + defer wg.Done() - freeMemory := (int64(vm.Summary.Config.MemorySizeMB) * 1024 * 1024) - (int64(vm.Summary.QuickStats.GuestMemoryUsage) * 1024 * 1024) + freeMemory := (int64(vm.Summary.Config.MemorySizeMB) * 1024 * 1024) - (int64(vm.Summary.QuickStats.GuestMemoryUsage) * 1024 * 1024) - event := common.MapStr{ - "datacenter": dc.Name(), - "name": vm.Summary.Config.Name, - "cpu": common.MapStr{ - "used": common.MapStr{ - "mhz": vm.Summary.QuickStats.OverallCpuUsage, - }, + event := common.MapStr{ + "host": vm.Summary.Runtime.Host.Value, + "name": vm.Summary.Config.Name, + "cpu": common.MapStr{ + "used": common.MapStr{ + "mhz": vm.Summary.QuickStats.OverallCpuUsage, }, - "memory": common.MapStr{ - "used": common.MapStr{ - "guest": common.MapStr{ - "bytes": (int64(vm.Summary.QuickStats.GuestMemoryUsage) * 1024 * 1024), - }, - "host": common.MapStr{ - "bytes": (int64(vm.Summary.QuickStats.HostMemoryUsage) * 1024 * 1024), - }, + }, + "memory": common.MapStr{ + "used": common.MapStr{ + "guest": common.MapStr{ + "bytes": (int64(vm.Summary.QuickStats.GuestMemoryUsage) * 1024 * 1024), }, - "total": common.MapStr{ - "guest": common.MapStr{ - "bytes": (int64(vm.Summary.Config.MemorySizeMB) * 1024 * 1024), - }, + "host": common.MapStr{ + "bytes": (int64(vm.Summary.QuickStats.HostMemoryUsage) * 1024 * 1024), }, - "free": common.MapStr{ - "guest": common.MapStr{ - "bytes": freeMemory, - }, + }, + "total": common.MapStr{ + "guest": common.MapStr{ + "bytes": (int64(vm.Summary.Config.MemorySizeMB) * 1024 * 1024), }, }, - } + "free": common.MapStr{ + "guest": common.MapStr{ + "bytes": freeMemory, + }, + }, + }, + } - // Get custom fields (attributes) values if get_custom_fields is true. - if m.GetCustomFields { - customFields := getCustomFields(vm.Summary.CustomValue, customFieldsMap) + // Get custom fields (attributes) values if get_custom_fields is true. + if m.GetCustomFields { + customFields := getCustomFields(vm.Summary.CustomValue, customFieldsMap) - if len(customFields) > 0 { - event["custom_fields"] = customFields - } + if len(customFields) > 0 { + event["custom_fields"] = customFields } + } - mutex.Lock() - events = append(events, event) - mutex.Unlock() - }(vm) - } + mutex.Lock() + events = append(events, event) + mutex.Unlock() + }(vm) } wg.Wait() diff --git a/metricbeat/module/vsphere/virtualmachine/virtualmachine_test.go b/metricbeat/module/vsphere/virtualmachine/virtualmachine_test.go index 4decd5dd4a5..3dc565a164c 100644 --- a/metricbeat/module/vsphere/virtualmachine/virtualmachine_test.go +++ b/metricbeat/module/vsphere/virtualmachine/virtualmachine_test.go @@ -8,7 +8,7 @@ import ( mbtest "github.com/elastic/beats/metricbeat/mb/testing" "github.com/stretchr/testify/assert" - "github.com/vmware/vic/pkg/vsphere/simulator" + "github.com/vmware/govmomi/simulator" ) func TestFetchEventContents(t *testing.T) { @@ -30,7 +30,7 @@ func TestFetchEventContents(t *testing.T) { t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - assert.EqualValues(t, "ha-datacenter", event["datacenter"]) + assert.EqualValues(t, "ha-host", event["host"]) assert.True(t, strings.Contains(event["name"].(string), "ha-host_VM")) cpu := event["cpu"].(common.MapStr) diff --git a/metricbeat/modules.d/vsphere.yml.disabled b/metricbeat/modules.d/vsphere.yml.disabled index f305061defa..c53563791d0 100644 --- a/metricbeat/modules.d/vsphere.yml.disabled +++ b/metricbeat/modules.d/vsphere.yml.disabled @@ -9,3 +9,4 @@ insecure: false # Get custom fields when using virtualmachine metric set. Default false. # get_custom_fields: false +