From c95a7470f14b63f9d11b5d8da3fc469c2a4ca030 Mon Sep 17 00:00:00 2001 From: Eric Paris Date: Sat, 19 Sep 2015 11:10:55 -0400 Subject: [PATCH 1/2] Update godeps using the new -t option I want to drop all _test.go files, but godep will drop dependancies for OUR _test.go files. Which is bad. So we have to keep them until that bug is fixed in godep... --- Godeps/Godeps.json | 3 +- .../compute/metadata/metadata.go | 279 ------------------ .../metrics/testdata/prometheus_metrics | 155 ++++++++++ .../cadvisor/utils/machine/testdata/cpuinfo | 251 ++++++++++++++++ 4 files changed, 408 insertions(+), 280 deletions(-) delete mode 100644 Godeps/_workspace/src/github.com/GoogleCloudPlatform/gcloud-golang/compute/metadata/metadata.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/metrics/testdata/prometheus_metrics create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/utils/machine/testdata/cpuinfo diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index f836f5b9411..b83e3f3954e 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -154,7 +154,7 @@ }, { "ImportPath": "github.com/cpuguy83/go-md2man/md2man", - "Comment": "v1.0.3-2-g71acacd", + "Comment": "v1.0.4", "Rev": "71acacd42f85e5e82f70a55327789582a5200a90" }, { @@ -516,6 +516,7 @@ }, { "ImportPath": "github.com/spf13/pflag", + "Comment": "v0.0.1-99-g8e7dc10", "Rev": "8e7dc108ab3a1ab6ce6d922bbaff5657b88e8e49" }, { diff --git a/Godeps/_workspace/src/github.com/GoogleCloudPlatform/gcloud-golang/compute/metadata/metadata.go b/Godeps/_workspace/src/github.com/GoogleCloudPlatform/gcloud-golang/compute/metadata/metadata.go deleted file mode 100644 index b007cde6366..00000000000 --- a/Godeps/_workspace/src/github.com/GoogleCloudPlatform/gcloud-golang/compute/metadata/metadata.go +++ /dev/null @@ -1,279 +0,0 @@ -// 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 metadata provides access to Google Compute Engine (GCE) -// metadata and API service accounts. -// -// This package is a wrapper around the GCE metadata service, -// as documented at https://developers.google.com/compute/docs/metadata. -package metadata - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "net" - "net/http" - "os" - "strings" - "sync" - "time" - - "google.golang.org/cloud/internal" -) - -type cachedValue struct { - k string - trim bool - mu sync.Mutex - v string -} - -var ( - projID = &cachedValue{k: "project/project-id", trim: true} - projNum = &cachedValue{k: "project/numeric-project-id", trim: true} - instID = &cachedValue{k: "instance/id", trim: true} -) - -var metaClient = &http.Client{ - Transport: &internal.Transport{ - Base: &http.Transport{ - Dial: (&net.Dialer{ - Timeout: 750 * time.Millisecond, - KeepAlive: 30 * time.Second, - }).Dial, - ResponseHeaderTimeout: 750 * time.Millisecond, - }, - }, -} - -// NotDefinedError is returned when requested metadata is not defined. -// -// The underlying string is the suffix after "/computeMetadata/v1/". -// -// This error is not returned if the value is defined to be the empty -// string. -type NotDefinedError string - -func (suffix NotDefinedError) Error() string { - return fmt.Sprintf("metadata: GCE metadata %q not defined", string(suffix)) -} - -// Get returns a value from the metadata service. -// The suffix is appended to "http://${GCE_METADATA_HOST}/computeMetadata/v1/". -// -// If the GCE_METADATA_HOST environment variable is not defined, a default of -// 169.254.169.254 will be used instead. -// -// If the requested metadata is not defined, the returned error will -// be of type NotDefinedError. -func Get(suffix string) (string, error) { - // Using a fixed IP makes it very difficult to spoof the metadata service in - // a container, which is an important use-case for local testing of cloud - // deployments. To enable spoofing of the metadata service, the environment - // variable GCE_METADATA_HOST is first inspected to decide where metadata - // requests shall go. - host := os.Getenv("GCE_METADATA_HOST") - if host == "" { - // Using 169.254.169.254 instead of "metadata" here because Go - // binaries built with the "netgo" tag and without cgo won't - // know the search suffix for "metadata" is - // ".google.internal", and this IP address is documented as - // being stable anyway. - host = "169.254.169.254" - } - url := "http://" + host + "/computeMetadata/v1/" + suffix - req, _ := http.NewRequest("GET", url, nil) - req.Header.Set("Metadata-Flavor", "Google") - res, err := metaClient.Do(req) - if err != nil { - return "", err - } - defer res.Body.Close() - if res.StatusCode == http.StatusNotFound { - return "", NotDefinedError(suffix) - } - if res.StatusCode != 200 { - return "", fmt.Errorf("status code %d trying to fetch %s", res.StatusCode, url) - } - all, err := ioutil.ReadAll(res.Body) - if err != nil { - return "", err - } - return string(all), nil -} - -func getTrimmed(suffix string) (s string, err error) { - s, err = Get(suffix) - s = strings.TrimSpace(s) - return -} - -func (c *cachedValue) get() (v string, err error) { - defer c.mu.Unlock() - c.mu.Lock() - if c.v != "" { - return c.v, nil - } - if c.trim { - v, err = getTrimmed(c.k) - } else { - v, err = Get(c.k) - } - if err == nil { - c.v = v - } - return -} - -var onGCE struct { - sync.Mutex - set bool - v bool -} - -// OnGCE reports whether this process is running on Google Compute Engine. -func OnGCE() bool { - defer onGCE.Unlock() - onGCE.Lock() - if onGCE.set { - return onGCE.v - } - onGCE.set = true - - // We use the DNS name of the metadata service here instead of the IP address - // because we expect that to fail faster in the not-on-GCE case. - res, err := metaClient.Get("http://metadata.google.internal") - if err != nil { - return false - } - onGCE.v = res.Header.Get("Metadata-Flavor") == "Google" - return onGCE.v -} - -// ProjectID returns the current instance's project ID string. -func ProjectID() (string, error) { return projID.get() } - -// NumericProjectID returns the current instance's numeric project ID. -func NumericProjectID() (string, error) { return projNum.get() } - -// InternalIP returns the instance's primary internal IP address. -func InternalIP() (string, error) { - return getTrimmed("instance/network-interfaces/0/ip") -} - -// ExternalIP returns the instance's primary external (public) IP address. -func ExternalIP() (string, error) { - return getTrimmed("instance/network-interfaces/0/access-configs/0/external-ip") -} - -// Hostname returns the instance's hostname. This will be of the form -// ".c..internal". -func Hostname() (string, error) { - return getTrimmed("instance/hostname") -} - -// InstanceTags returns the list of user-defined instance tags, -// assigned when initially creating a GCE instance. -func InstanceTags() ([]string, error) { - var s []string - j, err := Get("instance/tags") - if err != nil { - return nil, err - } - if err := json.NewDecoder(strings.NewReader(j)).Decode(&s); err != nil { - return nil, err - } - return s, nil -} - -// InstanceID returns the current VM's numeric instance ID. -func InstanceID() (string, error) { - return instID.get() -} - -// InstanceName returns the current VM's instance ID string. -func InstanceName() (string, error) { - host, err := Hostname() - if err != nil { - return "", err - } - return strings.Split(host, ".")[0], nil -} - -// Zone returns the current VM's zone, such as "us-central1-b". -func Zone() (string, error) { - zone, err := getTrimmed("instance/zone") - // zone is of the form "projects//zones/". - if err != nil { - return "", err - } - return zone[strings.LastIndex(zone, "/")+1:], nil -} - -// InstanceAttributes returns the list of user-defined attributes, -// assigned when initially creating a GCE VM instance. The value of an -// attribute can be obtained with InstanceAttributeValue. -func InstanceAttributes() ([]string, error) { return lines("instance/attributes/") } - -// ProjectAttributes returns the list of user-defined attributes -// applying to the project as a whole, not just this VM. The value of -// an attribute can be obtained with ProjectAttributeValue. -func ProjectAttributes() ([]string, error) { return lines("project/attributes/") } - -func lines(suffix string) ([]string, error) { - j, err := Get(suffix) - if err != nil { - return nil, err - } - s := strings.Split(strings.TrimSpace(j), "\n") - for i := range s { - s[i] = strings.TrimSpace(s[i]) - } - return s, nil -} - -// InstanceAttributeValue returns the value of the provided VM -// instance attribute. -// -// If the requested attribute is not defined, the returned error will -// be of type NotDefinedError. -// -// InstanceAttributeValue may return ("", nil) if the attribute was -// defined to be the empty string. -func InstanceAttributeValue(attr string) (string, error) { - return Get("instance/attributes/" + attr) -} - -// ProjectAttributeValue returns the value of the provided -// project attribute. -// -// If the requested attribute is not defined, the returned error will -// be of type NotDefinedError. -// -// ProjectAttributeValue may return ("", nil) if the attribute was -// defined to be the empty string. -func ProjectAttributeValue(attr string) (string, error) { - return Get("project/attributes/" + attr) -} - -// Scopes returns the service account scopes for the given account. -// The account may be empty or the string "default" to use the instance's -// main account. -func Scopes(serviceAccount string) ([]string, error) { - if serviceAccount == "" { - serviceAccount = "default" - } - return lines("instance/service-accounts/" + serviceAccount + "/scopes") -} diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/metrics/testdata/prometheus_metrics b/Godeps/_workspace/src/github.com/google/cadvisor/metrics/testdata/prometheus_metrics new file mode 100644 index 00000000000..5e7de5efda8 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/metrics/testdata/prometheus_metrics @@ -0,0 +1,155 @@ +# HELP container_cpu_system_seconds_total Cumulative system cpu time consumed in seconds. +# TYPE container_cpu_system_seconds_total counter +container_cpu_system_seconds_total{id="testcontainer",image="test",name="testcontainer"} 7e-09 +# HELP container_cpu_usage_seconds_total Cumulative cpu time consumed per cpu in seconds. +# TYPE container_cpu_usage_seconds_total counter +container_cpu_usage_seconds_total{cpu="cpu00",id="testcontainer",image="test",name="testcontainer"} 2e-09 +container_cpu_usage_seconds_total{cpu="cpu01",id="testcontainer",image="test",name="testcontainer"} 3e-09 +container_cpu_usage_seconds_total{cpu="cpu02",id="testcontainer",image="test",name="testcontainer"} 4e-09 +container_cpu_usage_seconds_total{cpu="cpu03",id="testcontainer",image="test",name="testcontainer"} 5e-09 +# HELP container_cpu_user_seconds_total Cumulative user cpu time consumed in seconds. +# TYPE container_cpu_user_seconds_total counter +container_cpu_user_seconds_total{id="testcontainer",image="test",name="testcontainer"} 6e-09 +# HELP container_fs_io_current Number of I/Os currently in progress +# TYPE container_fs_io_current gauge +container_fs_io_current{device="sda1",id="testcontainer",image="test",name="testcontainer"} 42 +container_fs_io_current{device="sda2",id="testcontainer",image="test",name="testcontainer"} 47 +# HELP container_fs_io_time_seconds_total Cumulative count of seconds spent doing I/Os +# TYPE container_fs_io_time_seconds_total counter +container_fs_io_time_seconds_total{device="sda1",id="testcontainer",image="test",name="testcontainer"} 4.3e-08 +container_fs_io_time_seconds_total{device="sda2",id="testcontainer",image="test",name="testcontainer"} 4.8e-08 +# HELP container_fs_io_time_weighted_seconds_total Cumulative weighted I/O time in seconds +# TYPE container_fs_io_time_weighted_seconds_total counter +container_fs_io_time_weighted_seconds_total{device="sda1",id="testcontainer",image="test",name="testcontainer"} 4.4e-08 +container_fs_io_time_weighted_seconds_total{device="sda2",id="testcontainer",image="test",name="testcontainer"} 4.9e-08 +# HELP container_fs_limit_bytes Number of bytes that can be consumed by the container on this filesystem. +# TYPE container_fs_limit_bytes gauge +container_fs_limit_bytes{device="sda1",id="testcontainer",image="test",name="testcontainer"} 22 +container_fs_limit_bytes{device="sda2",id="testcontainer",image="test",name="testcontainer"} 37 +# HELP container_fs_read_seconds_total Cumulative count of seconds spent reading +# TYPE container_fs_read_seconds_total counter +container_fs_read_seconds_total{device="sda1",id="testcontainer",image="test",name="testcontainer"} 2.7e-08 +container_fs_read_seconds_total{device="sda2",id="testcontainer",image="test",name="testcontainer"} 4.2e-08 +# HELP container_fs_reads_merged_total Cumulative count of reads merged +# TYPE container_fs_reads_merged_total counter +container_fs_reads_merged_total{device="sda1",id="testcontainer",image="test",name="testcontainer"} 25 +container_fs_reads_merged_total{device="sda2",id="testcontainer",image="test",name="testcontainer"} 40 +# HELP container_fs_reads_total Cumulative count of reads completed +# TYPE container_fs_reads_total counter +container_fs_reads_total{device="sda1",id="testcontainer",image="test",name="testcontainer"} 24 +container_fs_reads_total{device="sda2",id="testcontainer",image="test",name="testcontainer"} 39 +# HELP container_fs_sector_reads_total Cumulative count of sector reads completed +# TYPE container_fs_sector_reads_total counter +container_fs_sector_reads_total{device="sda1",id="testcontainer",image="test",name="testcontainer"} 26 +container_fs_sector_reads_total{device="sda2",id="testcontainer",image="test",name="testcontainer"} 41 +# HELP container_fs_sector_writes_total Cumulative count of sector writes completed +# TYPE container_fs_sector_writes_total counter +container_fs_sector_writes_total{device="sda1",id="testcontainer",image="test",name="testcontainer"} 40 +container_fs_sector_writes_total{device="sda2",id="testcontainer",image="test",name="testcontainer"} 45 +# HELP container_fs_usage_bytes Number of bytes that are consumed by the container on this filesystem. +# TYPE container_fs_usage_bytes gauge +container_fs_usage_bytes{device="sda1",id="testcontainer",image="test",name="testcontainer"} 23 +container_fs_usage_bytes{device="sda2",id="testcontainer",image="test",name="testcontainer"} 38 +# HELP container_fs_write_seconds_total Cumulative count of seconds spent writing +# TYPE container_fs_write_seconds_total counter +container_fs_write_seconds_total{device="sda1",id="testcontainer",image="test",name="testcontainer"} 4.1e-08 +container_fs_write_seconds_total{device="sda2",id="testcontainer",image="test",name="testcontainer"} 4.6e-08 +# HELP container_fs_writes_merged_total Cumulative count of writes merged +# TYPE container_fs_writes_merged_total counter +container_fs_writes_merged_total{device="sda1",id="testcontainer",image="test",name="testcontainer"} 39 +container_fs_writes_merged_total{device="sda2",id="testcontainer",image="test",name="testcontainer"} 44 +# HELP container_fs_writes_total Cumulative count of writes completed +# TYPE container_fs_writes_total counter +container_fs_writes_total{device="sda1",id="testcontainer",image="test",name="testcontainer"} 28 +container_fs_writes_total{device="sda2",id="testcontainer",image="test",name="testcontainer"} 43 +# HELP container_last_seen Last time a container was seen by the exporter +# TYPE container_last_seen gauge +container_last_seen{id="testcontainer",image="test",name="testcontainer"} 1.426203694e+09 +# HELP container_memory_failures_total Cumulative count of memory allocation failures. +# TYPE container_memory_failures_total counter +container_memory_failures_total{id="testcontainer",image="test",name="testcontainer",scope="container",type="pgfault"} 10 +container_memory_failures_total{id="testcontainer",image="test",name="testcontainer",scope="container",type="pgmajfault"} 11 +container_memory_failures_total{id="testcontainer",image="test",name="testcontainer",scope="hierarchy",type="pgfault"} 12 +container_memory_failures_total{id="testcontainer",image="test",name="testcontainer",scope="hierarchy",type="pgmajfault"} 13 +# HELP container_memory_usage_bytes Current memory usage in bytes. +# TYPE container_memory_usage_bytes gauge +container_memory_usage_bytes{id="testcontainer",image="test",name="testcontainer"} 8 +# HELP container_memory_working_set_bytes Current working set in bytes. +# TYPE container_memory_working_set_bytes gauge +container_memory_working_set_bytes{id="testcontainer",image="test",name="testcontainer"} 9 +# HELP container_network_receive_bytes_total Cumulative count of bytes received +# TYPE container_network_receive_bytes_total counter +container_network_receive_bytes_total{id="testcontainer",image="test",interface="eth0",name="testcontainer"} 14 +# HELP container_network_receive_errors_total Cumulative count of errors encountered while receiving +# TYPE container_network_receive_errors_total counter +container_network_receive_errors_total{id="testcontainer",image="test",interface="eth0",name="testcontainer"} 16 +# HELP container_network_receive_packets_dropped_total Cumulative count of packets dropped while receiving +# TYPE container_network_receive_packets_dropped_total counter +container_network_receive_packets_dropped_total{id="testcontainer",image="test",interface="eth0",name="testcontainer"} 17 +# HELP container_network_receive_packets_total Cumulative count of packets received +# TYPE container_network_receive_packets_total counter +container_network_receive_packets_total{id="testcontainer",image="test",interface="eth0",name="testcontainer"} 15 +# HELP container_network_transmit_bytes_total Cumulative count of bytes transmitted +# TYPE container_network_transmit_bytes_total counter +container_network_transmit_bytes_total{id="testcontainer",image="test",interface="eth0",name="testcontainer"} 18 +# HELP container_network_transmit_errors_total Cumulative count of errors encountered while transmitting +# TYPE container_network_transmit_errors_total counter +container_network_transmit_errors_total{id="testcontainer",image="test",interface="eth0",name="testcontainer"} 20 +# HELP container_network_transmit_packets_dropped_total Cumulative count of packets dropped while transmitting +# TYPE container_network_transmit_packets_dropped_total counter +container_network_transmit_packets_dropped_total{id="testcontainer",image="test",interface="eth0",name="testcontainer"} 21 +# HELP container_network_transmit_packets_total Cumulative count of packets transmitted +# TYPE container_network_transmit_packets_total counter +container_network_transmit_packets_total{id="testcontainer",image="test",interface="eth0",name="testcontainer"} 19 +# HELP container_scrape_error 1 if there was an error while getting container metrics, 0 otherwise +# TYPE container_scrape_error gauge +container_scrape_error 0 +# HELP container_tasks_state Number of tasks in given state +# TYPE container_tasks_state gauge +container_tasks_state{id="testcontainer",image="test",name="testcontainer",state="iowaiting"} 54 +container_tasks_state{id="testcontainer",image="test",name="testcontainer",state="running"} 51 +container_tasks_state{id="testcontainer",image="test",name="testcontainer",state="sleeping"} 50 +container_tasks_state{id="testcontainer",image="test",name="testcontainer",state="stopped"} 52 +container_tasks_state{id="testcontainer",image="test",name="testcontainer",state="uninterruptible"} 53 +# HELP http_request_duration_microseconds The HTTP request latencies in microseconds. +# TYPE http_request_duration_microseconds summary +http_request_duration_microseconds{handler="prometheus",quantile="0.5"} 0 +http_request_duration_microseconds{handler="prometheus",quantile="0.9"} 0 +http_request_duration_microseconds{handler="prometheus",quantile="0.99"} 0 +http_request_duration_microseconds_sum{handler="prometheus"} 0 +http_request_duration_microseconds_count{handler="prometheus"} 0 +# HELP http_request_size_bytes The HTTP request sizes in bytes. +# TYPE http_request_size_bytes summary +http_request_size_bytes{handler="prometheus",quantile="0.5"} 0 +http_request_size_bytes{handler="prometheus",quantile="0.9"} 0 +http_request_size_bytes{handler="prometheus",quantile="0.99"} 0 +http_request_size_bytes_sum{handler="prometheus"} 0 +http_request_size_bytes_count{handler="prometheus"} 0 +# HELP http_response_size_bytes The HTTP response sizes in bytes. +# TYPE http_response_size_bytes summary +http_response_size_bytes{handler="prometheus",quantile="0.5"} 0 +http_response_size_bytes{handler="prometheus",quantile="0.9"} 0 +http_response_size_bytes{handler="prometheus",quantile="0.99"} 0 +http_response_size_bytes_sum{handler="prometheus"} 0 +http_response_size_bytes_count{handler="prometheus"} 0 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 0 +# HELP process_goroutines Number of goroutines that currently exist. +# TYPE process_goroutines gauge +process_goroutines 16 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1024 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 4 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 7.74144e+06 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.42620369439e+09 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 1.16420608e+08 diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/utils/machine/testdata/cpuinfo b/Godeps/_workspace/src/github.com/google/cadvisor/utils/machine/testdata/cpuinfo new file mode 100644 index 00000000000..ca2b722a560 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/utils/machine/testdata/cpuinfo @@ -0,0 +1,251 @@ +processor : 0 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 1596.000 +cache size : 12288 KB +physical id : 0 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 0 +initial apicid : 0 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual + +processor : 1 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 1596.000 +cache size : 12288 KB +physical id : 0 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 2 +initial apicid : 2 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual + +processor : 2 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 1596.000 +cache size : 12288 KB +physical id : 0 +siblings : 6 +core id : 2 +cpu cores : 6 +apicid : 4 +initial apicid : 4 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual + +processor : 3 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 1596.000 +cache size : 12288 KB +physical id : 1 +siblings : 6 +core id : 3 +cpu cores : 6 +apicid : 16 +initial apicid : 16 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual + +processor : 4 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 1596.000 +cache size : 12288 KB +physical id : 1 +siblings : 6 +core id : 4 +cpu cores : 6 +apicid : 18 +initial apicid : 18 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual + +processor : 5 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 1596.000 +cache size : 12288 KB +physical id : 1 +siblings : 6 +core id : 5 +cpu cores : 6 +apicid : 20 +initial apicid : 20 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual + +processor : 6 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 2661.000 +cache size : 12288 KB +physical id : 0 +siblings : 6 +core id : 0 +cpu cores : 6 +apicid : 1 +initial apicid : 1 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual + +processor : 7 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 2661.000 +cache size : 12288 KB +physical id : 0 +siblings : 6 +core id : 1 +cpu cores : 6 +apicid : 3 +initial apicid : 3 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual + +processor : 8 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 1596.000 +cache size : 12288 KB +physical id : 0 +siblings : 6 +core id : 2 +cpu cores : 6 +apicid : 5 +initial apicid : 5 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual + +processor : 9 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 2661.000 +cache size : 12288 KB +physical id : 1 +siblings : 6 +core id : 3 +cpu cores : 6 +apicid : 17 +initial apicid : 17 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual + +processor : 10 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 1596.000 +cache size : 12288 KB +physical id : 1 +siblings : 6 +core id : 4 +cpu cores : 6 +apicid : 19 +initial apicid : 19 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual +processor : 11 +cpu family : 6 +stepping : 2 +microcode : 0x10 +cpu MHz : 2661.000 +cache size : 12288 KB +physical id : 1 +siblings : 6 +core id : 5 +cpu cores : 6 +apicid : 21 +initial apicid : 21 +fpu : yes +fpu_exception : yes +cpuid level : 11 +wp : yes +bogomips : 5333.60 +clflush size : 64 +cache_alignment : 64 +address sizes : 40 bits physical, 48 bits virtual + From 6766b732a51e2400c1fb00cedf166d4f7ca438b6 Mon Sep 17 00:00:00 2001 From: Eric Paris Date: Fri, 18 Sep 2015 16:30:06 -0400 Subject: [PATCH 2/2] Update verify-godeps.sh to actually work The diff was incorrect. It was doing `diff -NIaupr`. And so diff was interpreting the argument to -I to be `aupr`. So it was not running recursively. The fix is not so simple because there is an intentionally broken symlink in one of the godeps. Which diff -r fails on by default. On linux there is an options to not dereference symlink and just make sure they point to the same thing. No so on OS X. So we have to exclude all files called "symlink". Which thankfully there is only one of. --- hack/verify-godeps.sh | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/hack/verify-godeps.sh b/hack/verify-godeps.sh index c816ec8575b..325836b1dfe 100755 --- a/hack/verify-godeps.sh +++ b/hack/verify-godeps.sh @@ -70,7 +70,7 @@ preload-dep "github.com/prometheus" "client_golang" "692492e54b553a81013254cc1fb echo "Download finished" # copy the contents of your kube directory into the nice clean place -_kubetmp="${_tmpdir}/src/k8s.io/" +_kubetmp="${_tmpdir}/src/k8s.io" mkdir -p "${_kubetmp}" #should create ${_kubectmp}/kubernetes git archive --format=tar --prefix=kubernetes/ $(git write-tree) | (cd "${_kubetmp}" && tar xf -) @@ -78,17 +78,25 @@ _kubetmp="${_kubetmp}/kubernetes" # destroy godeps in our COPY of the kube tree pushd "${_kubetmp}" > /dev/null -rm -rf ./Godeps + rm -rf ./Godeps -# for some reason the kube tree needs to be a git repo for the godep tool to run. Doesn't make sense -git init > /dev/null 2>&1 + # for some reason the kube tree needs to be a git repo for the godep tool to run. Doesn't make sense + git init > /dev/null 2>&1 -# recreate the Godeps using the nice clean set we just downloaded -"${GODEP}" save ./... + # recreate the Godeps using the nice clean set we just downloaded + "${GODEP}" save -t ./... popd > /dev/null -# Check for any (meaninful) differences between the godeps in the tree and this nice clean one we just built -if ! _out="$(diff -NIaupr --ignore-matching-lines='^\s*\"GoVersion\":' --ignore-matching-lines='^\s*\"Comment\":' ${KUBE_ROOT}/Godeps/ ${_kubetmp}/Godeps/)"; then +if ! _out="$(diff -Naupr --ignore-matching-lines='^\s*\"GoVersion\":' --ignore-matching-lines='^\s*\"Comment\":' ${KUBE_ROOT}/Godeps/Godeps.json ${_kubetmp}/Godeps/Godeps.json)"; then + echo "Your Godeps.json is different:" + echo "${_out}" + exit 1 +fi + +# Godeps/_workstapces/src/github.com/fsouza/go-dockerclient/testing/data/symlink' +# is an intentionally broken symlink. Linux can use --no-dereference. OS X cannot. +# So we --exclude='symlink' so diff -r doesn't die following a bad symlink. +if ! _out="$(diff -Naupr --exclude='symlink' ${KUBE_ROOT}/Godeps/_workspace/src ${_kubetmp}/Godeps/_workspace/src)"; then echo "Your godeps changes are not reproducable" echo "${_out}" exit 1