From d340dc53d6e309e98b613e3ed1e47edaea2637f6 Mon Sep 17 00:00:00 2001 From: Andrew Kim Date: Tue, 29 Jan 2019 14:47:48 -0500 Subject: [PATCH] update vendor k8s.io/utils to ed37f7428a91fc2a81070808937195dcd46d320e --- Godeps/Godeps.json | 22 +- Godeps/LICENSES | 210 ++++++++++++++++++ .../Godeps/Godeps.json | 6 +- .../src/k8s.io/apiserver/Godeps/Godeps.json | 8 +- .../src/k8s.io/cli-runtime/Godeps/Godeps.json | 2 +- .../src/k8s.io/client-go/Godeps/Godeps.json | 6 +- .../k8s.io/cloud-provider/Godeps/Godeps.json | 6 +- .../k8s.io/component-base/Godeps/Godeps.json | 2 +- staging/src/k8s.io/csi-api/Godeps/Godeps.json | 6 +- .../k8s.io/kube-aggregator/Godeps/Godeps.json | 6 +- .../Godeps/Godeps.json | 2 +- .../src/k8s.io/kube-proxy/Godeps/Godeps.json | 2 +- .../k8s.io/kube-scheduler/Godeps/Godeps.json | 2 +- staging/src/k8s.io/metrics/Godeps/Godeps.json | 2 +- .../src/k8s.io/node-api/Godeps/Godeps.json | 6 +- .../sample-apiserver/Godeps/Godeps.json | 6 +- .../sample-cli-plugin/Godeps/Godeps.json | 2 +- .../sample-controller/Godeps/Godeps.json | 6 +- vendor/BUILD | 1 + vendor/k8s.io/utils/nsenter/BUILD | 2 - vendor/k8s.io/utils/nsenter/exec.go | 67 ------ .../k8s.io/utils/nsenter/exec_unsupported.go | 58 ----- vendor/k8s.io/utils/nsenter/nsenter.go | 57 +++-- .../utils/nsenter/nsenter_unsupported.go | 35 ++- vendor/k8s.io/utils/path/BUILD | 23 ++ vendor/k8s.io/utils/path/file.go | 78 +++++++ 26 files changed, 429 insertions(+), 194 deletions(-) delete mode 100644 vendor/k8s.io/utils/nsenter/exec.go delete mode 100644 vendor/k8s.io/utils/nsenter/exec_unsupported.go create mode 100644 vendor/k8s.io/utils/path/BUILD create mode 100644 vendor/k8s.io/utils/path/file.go diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 0febbc8e82..441f4354cb 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -4090,39 +4090,43 @@ }, { "ImportPath": "k8s.io/utils/buffer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/clock", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/exec", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/exec/testing", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/io", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/nsenter", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" + }, + { + "ImportPath": "k8s.io/utils/path", + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/pointer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/trace", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/Godeps/LICENSES b/Godeps/LICENSES index 41628249ad..a8bec98bd7 100644 --- a/Godeps/LICENSES +++ b/Godeps/LICENSES @@ -116423,6 +116423,216 @@ third-party archives. ================================================================================ +================================================================================ += vendor/k8s.io/utils/path licensed under: = + + + 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. + += vendor/k8s.io/utils/LICENSE 3b83ef96387f14655fc854ddc3c6bd57 +================================================================================ + + ================================================================================ = vendor/k8s.io/utils/pointer licensed under: = diff --git a/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json b/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json index 5c303ad9b5..850dc10b21 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json +++ b/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json @@ -2556,15 +2556,15 @@ }, { "ImportPath": "k8s.io/utils/buffer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/trace", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/staging/src/k8s.io/apiserver/Godeps/Godeps.json b/staging/src/k8s.io/apiserver/Godeps/Godeps.json index c3ee8cbccd..f620b658ba 100644 --- a/staging/src/k8s.io/apiserver/Godeps/Godeps.json +++ b/staging/src/k8s.io/apiserver/Godeps/Godeps.json @@ -2052,19 +2052,19 @@ }, { "ImportPath": "k8s.io/utils/buffer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/pointer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/trace", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/staging/src/k8s.io/cli-runtime/Godeps/Godeps.json b/staging/src/k8s.io/cli-runtime/Godeps/Godeps.json index 2f973b487d..d7a51f3423 100644 --- a/staging/src/k8s.io/cli-runtime/Godeps/Godeps.json +++ b/staging/src/k8s.io/cli-runtime/Godeps/Godeps.json @@ -612,7 +612,7 @@ }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/staging/src/k8s.io/client-go/Godeps/Godeps.json b/staging/src/k8s.io/client-go/Godeps/Godeps.json index 69318cbc89..766154c6ad 100644 --- a/staging/src/k8s.io/client-go/Godeps/Godeps.json +++ b/staging/src/k8s.io/client-go/Godeps/Godeps.json @@ -616,15 +616,15 @@ }, { "ImportPath": "k8s.io/utils/buffer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/trace", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/staging/src/k8s.io/cloud-provider/Godeps/Godeps.json b/staging/src/k8s.io/cloud-provider/Godeps/Godeps.json index c976b07d2b..93aae245fc 100644 --- a/staging/src/k8s.io/cloud-provider/Godeps/Godeps.json +++ b/staging/src/k8s.io/cloud-provider/Godeps/Godeps.json @@ -952,15 +952,15 @@ }, { "ImportPath": "k8s.io/utils/buffer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/trace", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/staging/src/k8s.io/component-base/Godeps/Godeps.json b/staging/src/k8s.io/component-base/Godeps/Godeps.json index 774c215ba5..9ad4bcc8e7 100644 --- a/staging/src/k8s.io/component-base/Godeps/Godeps.json +++ b/staging/src/k8s.io/component-base/Godeps/Godeps.json @@ -152,7 +152,7 @@ }, { "ImportPath": "k8s.io/utils/pointer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" } ] } diff --git a/staging/src/k8s.io/csi-api/Godeps/Godeps.json b/staging/src/k8s.io/csi-api/Godeps/Godeps.json index 1218aa5cc2..c4e39f69fe 100644 --- a/staging/src/k8s.io/csi-api/Godeps/Godeps.json +++ b/staging/src/k8s.io/csi-api/Godeps/Godeps.json @@ -548,15 +548,15 @@ }, { "ImportPath": "k8s.io/utils/buffer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/trace", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json b/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json index bf8d2e1568..e39d8fa453 100644 --- a/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json +++ b/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json @@ -1832,15 +1832,15 @@ }, { "ImportPath": "k8s.io/utils/buffer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/trace", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/staging/src/k8s.io/kube-controller-manager/Godeps/Godeps.json b/staging/src/k8s.io/kube-controller-manager/Godeps/Godeps.json index 7d41706b78..fd72952019 100644 --- a/staging/src/k8s.io/kube-controller-manager/Godeps/Godeps.json +++ b/staging/src/k8s.io/kube-controller-manager/Godeps/Godeps.json @@ -152,7 +152,7 @@ }, { "ImportPath": "k8s.io/utils/pointer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" } ] } diff --git a/staging/src/k8s.io/kube-proxy/Godeps/Godeps.json b/staging/src/k8s.io/kube-proxy/Godeps/Godeps.json index 94aa516125..538d561a2b 100644 --- a/staging/src/k8s.io/kube-proxy/Godeps/Godeps.json +++ b/staging/src/k8s.io/kube-proxy/Godeps/Godeps.json @@ -152,7 +152,7 @@ }, { "ImportPath": "k8s.io/utils/pointer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" } ] } diff --git a/staging/src/k8s.io/kube-scheduler/Godeps/Godeps.json b/staging/src/k8s.io/kube-scheduler/Godeps/Godeps.json index 1532f61221..5e62cd9764 100644 --- a/staging/src/k8s.io/kube-scheduler/Godeps/Godeps.json +++ b/staging/src/k8s.io/kube-scheduler/Godeps/Godeps.json @@ -152,7 +152,7 @@ }, { "ImportPath": "k8s.io/utils/pointer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" } ] } diff --git a/staging/src/k8s.io/metrics/Godeps/Godeps.json b/staging/src/k8s.io/metrics/Godeps/Godeps.json index 80d6aa9b7c..317fa041e5 100644 --- a/staging/src/k8s.io/metrics/Godeps/Godeps.json +++ b/staging/src/k8s.io/metrics/Godeps/Godeps.json @@ -524,7 +524,7 @@ }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/staging/src/k8s.io/node-api/Godeps/Godeps.json b/staging/src/k8s.io/node-api/Godeps/Godeps.json index 945acb3adc..b262245985 100644 --- a/staging/src/k8s.io/node-api/Godeps/Godeps.json +++ b/staging/src/k8s.io/node-api/Godeps/Godeps.json @@ -548,15 +548,15 @@ }, { "ImportPath": "k8s.io/utils/buffer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/trace", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json b/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json index b920ad905a..d117d1fbea 100644 --- a/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json +++ b/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json @@ -1784,15 +1784,15 @@ }, { "ImportPath": "k8s.io/utils/buffer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/trace", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json b/staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json index d881a452c5..a58978263b 100644 --- a/staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json +++ b/staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json @@ -576,7 +576,7 @@ }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/staging/src/k8s.io/sample-controller/Godeps/Godeps.json b/staging/src/k8s.io/sample-controller/Godeps/Godeps.json index 9f77150d79..f125e65ca5 100644 --- a/staging/src/k8s.io/sample-controller/Godeps/Godeps.json +++ b/staging/src/k8s.io/sample-controller/Godeps/Godeps.json @@ -1156,15 +1156,15 @@ }, { "ImportPath": "k8s.io/utils/buffer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/integer", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "k8s.io/utils/trace", - "Rev": "8a87304934321b4b0ad72a7cb3cbc715d67d38c7" + "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, { "ImportPath": "sigs.k8s.io/yaml", diff --git a/vendor/BUILD b/vendor/BUILD index 0ae266cc1a..4df7144898 100644 --- a/vendor/BUILD +++ b/vendor/BUILD @@ -473,6 +473,7 @@ filegroup( "//vendor/k8s.io/utils/integer:all-srcs", "//vendor/k8s.io/utils/io:all-srcs", "//vendor/k8s.io/utils/nsenter:all-srcs", + "//vendor/k8s.io/utils/path:all-srcs", "//vendor/k8s.io/utils/pointer:all-srcs", "//vendor/k8s.io/utils/trace:all-srcs", "//vendor/sigs.k8s.io/yaml:all-srcs", diff --git a/vendor/k8s.io/utils/nsenter/BUILD b/vendor/k8s.io/utils/nsenter/BUILD index 31fa8ba240..b8f8051b72 100644 --- a/vendor/k8s.io/utils/nsenter/BUILD +++ b/vendor/k8s.io/utils/nsenter/BUILD @@ -3,8 +3,6 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = [ - "exec.go", - "exec_unsupported.go", "nsenter.go", "nsenter_unsupported.go", ], diff --git a/vendor/k8s.io/utils/nsenter/exec.go b/vendor/k8s.io/utils/nsenter/exec.go deleted file mode 100644 index 134497f0a7..0000000000 --- a/vendor/k8s.io/utils/nsenter/exec.go +++ /dev/null @@ -1,67 +0,0 @@ -// +build linux - -/* -Copyright 2018 The Kubernetes 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. -*/ - -package nsenter - -import ( - "context" - "fmt" - "path/filepath" - - "k8s.io/klog" - "k8s.io/utils/exec" -) - -// Executor wraps executor interface to be executed via nsenter -type Executor struct { - // Exec implementation - executor exec.Interface - // Path to the host's root proc path - hostProcMountNsPath string -} - -// NewNsenterExecutor returns new nsenter based executor -func NewNsenterExecutor(hostRootFsPath string, executor exec.Interface) *Executor { - hostProcMountNsPath := filepath.Join(hostRootFsPath, mountNsPath) - nsExecutor := &Executor{ - hostProcMountNsPath: hostProcMountNsPath, - executor: executor, - } - return nsExecutor -} - -// Command returns a command wrapped with nenter -func (nsExecutor *Executor) Command(cmd string, args ...string) exec.Cmd { - fullArgs := append([]string{fmt.Sprintf("--mount=%s", nsExecutor.hostProcMountNsPath), "--"}, - append([]string{cmd}, args...)...) - klog.V(5).Infof("Running nsenter command: %v %v", nsenterPath, fullArgs) - return nsExecutor.executor.Command(nsenterPath, fullArgs...) -} - -// CommandContext returns a CommandContext wrapped with nsenter -func (nsExecutor *Executor) CommandContext(ctx context.Context, cmd string, args ...string) exec.Cmd { - fullArgs := append([]string{fmt.Sprintf("--mount=%s", nsExecutor.hostProcMountNsPath), "--"}, - append([]string{cmd}, args...)...) - klog.V(5).Infof("Running nsenter command: %v %v", nsenterPath, fullArgs) - return nsExecutor.executor.CommandContext(ctx, nsenterPath, fullArgs...) -} - -// LookPath returns a LookPath wrapped with nsenter -func (nsExecutor *Executor) LookPath(file string) (string, error) { - return "", fmt.Errorf("not implemented, error looking up : %s", file) -} diff --git a/vendor/k8s.io/utils/nsenter/exec_unsupported.go b/vendor/k8s.io/utils/nsenter/exec_unsupported.go deleted file mode 100644 index eecbdfc292..0000000000 --- a/vendor/k8s.io/utils/nsenter/exec_unsupported.go +++ /dev/null @@ -1,58 +0,0 @@ -// +build !linux - -/* -Copyright 2017 The Kubernetes 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. -*/ - -package nsenter - -import ( - "context" - "fmt" - - "k8s.io/utils/exec" -) - -// Executor wraps executor interface to be executed via nsenter -type Executor struct { - // Exec implementation - executor exec.Interface - // Path to the host's root proc path - hostProcMountNsPath string -} - -// NewNsenterExecutor returns new nsenter based executor -func NewNsenterExecutor(hostRootFsPath string, executor exec.Interface) *Executor { - nsExecutor := &Executor{ - hostProcMountNsPath: hostRootFsPath, - executor: executor, - } - return nsExecutor -} - -// Command returns a command wrapped with nenter -func (nsExecutor *Executor) Command(cmd string, args ...string) exec.Cmd { - return nil -} - -// CommandContext returns a CommandContext wrapped with nsenter -func (nsExecutor *Executor) CommandContext(ctx context.Context, cmd string, args ...string) exec.Cmd { - return nil -} - -// LookPath returns a LookPath wrapped with nsenter -func (nsExecutor *Executor) LookPath(file string) (string, error) { - return "", fmt.Errorf("not implemented, error looking up : %s", file) -} diff --git a/vendor/k8s.io/utils/nsenter/nsenter.go b/vendor/k8s.io/utils/nsenter/nsenter.go index 13532f0633..a6fa0c2237 100644 --- a/vendor/k8s.io/utils/nsenter/nsenter.go +++ b/vendor/k8s.io/utils/nsenter/nsenter.go @@ -40,10 +40,13 @@ const ( nsenterPath = "nsenter" ) -// Nsenter is part of experimental support for running the kubelet +// Nsenter is a type alias for backward compatibility +type Nsenter = NSEnter + +// NSEnter is part of experimental support for running the kubelet // in a container. // -// Nsenter requires: +// NSEnter requires: // // 1. Docker >= 1.6 due to the dependency on the slave propagation mode // of the bind-mount of the kubelet root directory in the container. @@ -65,20 +68,20 @@ const ( // systemd is installed/enabled in the operating system. // For more information about mount propagation modes, see: // https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt -type Nsenter struct { +type NSEnter struct { // a map of commands to their paths on the host filesystem paths map[string]string // Path to the host filesystem, typically "/rootfs". Used only for testing. hostRootFsPath string - // Exec implementation, used only for testing + // Exec implementation executor exec.Interface } -// NewNsenter constructs a new instance of Nsenter -func NewNsenter(hostRootFsPath string, executor exec.Interface) (*Nsenter, error) { - ne := &Nsenter{ +// NewNsenter constructs a new instance of NSEnter +func NewNsenter(hostRootFsPath string, executor exec.Interface) (*NSEnter, error) { + ne := &NSEnter{ hostRootFsPath: hostRootFsPath, executor: executor, } @@ -88,7 +91,7 @@ func NewNsenter(hostRootFsPath string, executor exec.Interface) (*Nsenter, error return ne, nil } -func (ne *Nsenter) initPaths() error { +func (ne *NSEnter) initPaths() error { ne.paths = map[string]string{} binaries := []string{ "mount", @@ -122,7 +125,7 @@ func (ne *Nsenter) initPaths() error { } // Exec executes nsenter commands in hostProcMountNsPath mount namespace -func (ne *Nsenter) Exec(cmd string, args []string) exec.Cmd { +func (ne *NSEnter) Exec(cmd string, args []string) exec.Cmd { hostProcMountNsPath := filepath.Join(ne.hostRootFsPath, mountNsPath) fullArgs := append([]string{fmt.Sprintf("--mount=%s", hostProcMountNsPath), "--"}, append([]string{ne.AbsHostPath(cmd)}, args...)...) @@ -130,8 +133,27 @@ func (ne *Nsenter) Exec(cmd string, args []string) exec.Cmd { return ne.executor.Command(nsenterPath, fullArgs...) } +// Command returns a command wrapped with nsenter +func (ne *NSEnter) Command(cmd string, args ...string) exec.Cmd { + return ne.Exec(cmd, args) +} + +// CommandContext returns a CommandContext wrapped with nsenter +func (ne *NSEnter) CommandContext(ctx context.Context, cmd string, args ...string) exec.Cmd { + hostProcMountNsPath := filepath.Join(ne.hostRootFsPath, mountNsPath) + fullArgs := append([]string{fmt.Sprintf("--mount=%s", hostProcMountNsPath), "--"}, + append([]string{ne.AbsHostPath(cmd)}, args...)...) + klog.V(5).Infof("Running nsenter command: %v %v", nsenterPath, fullArgs) + return ne.executor.CommandContext(ctx, nsenterPath, fullArgs...) +} + +// LookPath returns a LookPath wrapped with nsenter +func (ne *NSEnter) LookPath(file string) (string, error) { + return "", fmt.Errorf("not implemented, error looking up : %s", file) +} + // AbsHostPath returns the absolute runnable path for a specified command -func (ne *Nsenter) AbsHostPath(command string) string { +func (ne *NSEnter) AbsHostPath(command string) string { path, ok := ne.paths[command] if !ok { return command @@ -140,7 +162,7 @@ func (ne *Nsenter) AbsHostPath(command string) string { } // SupportsSystemd checks whether command systemd-run exists -func (ne *Nsenter) SupportsSystemd() (string, bool) { +func (ne *NSEnter) SupportsSystemd() (string, bool) { systemdRunPath, ok := ne.paths["systemd-run"] return systemdRunPath, ok && systemdRunPath != "" } @@ -158,7 +180,7 @@ func (ne *Nsenter) SupportsSystemd() (string, bool) { // // BEWARE! EvalSymlinks is not able to detect symlink looks with mustExist=false! // If /tmp/link is symlink to /tmp/link, EvalSymlinks(/tmp/link/foo) returns /tmp/link/foo. -func (ne *Nsenter) EvalSymlinks(pathname string, mustExist bool) (string, error) { +func (ne *NSEnter) EvalSymlinks(pathname string, mustExist bool) (string, error) { var args []string if mustExist { // "realpath -e: all components of the path must exist" @@ -178,16 +200,16 @@ func (ne *Nsenter) EvalSymlinks(pathname string, mustExist bool) (string, error) // KubeletPath returns the path name that can be accessed by containerized // kubelet. It is recommended to resolve symlinks on the host by EvalSymlinks // before calling this function -func (ne *Nsenter) KubeletPath(pathname string) string { +func (ne *NSEnter) KubeletPath(pathname string) string { return filepath.Join(ne.hostRootFsPath, pathname) } -// NewFakeNsenter returns a Nsenter that does not run "nsenter --mount=... --", +// NewFakeNsenter returns a NSEnter that does not run "nsenter --mount=... --", // but runs everything in the same mount namespace as the unit test binary. // rootfsPath is supposed to be a symlink, e.g. /tmp/xyz/rootfs -> /. -// This fake Nsenter is enough for most operations, e.g. to resolve symlinks, +// This fake NSEnter is enough for most operations, e.g. to resolve symlinks, // but it's not enough to call /bin/mount - unit tests don't run as root. -func NewFakeNsenter(rootfsPath string) (*Nsenter, error) { +func NewFakeNsenter(rootfsPath string) (*NSEnter, error) { executor := &fakeExec{ rootfsPath: rootfsPath, } @@ -218,7 +240,7 @@ type fakeExec struct { } func (f fakeExec) Command(cmd string, args ...string) exec.Cmd { - // This will intentionaly panic if Nsenter does not provide enough arguments. + // This will intentionaly panic if NSEnter does not provide enough arguments. realCmd := args[2] realArgs := args[3:] return exec.New().Command(realCmd, realArgs...) @@ -233,3 +255,4 @@ func (fakeExec) CommandContext(ctx context.Context, cmd string, args ...string) } var _ exec.Interface = fakeExec{} +var _ exec.Interface = &NSEnter{} diff --git a/vendor/k8s.io/utils/nsenter/nsenter_unsupported.go b/vendor/k8s.io/utils/nsenter/nsenter_unsupported.go index 0618b9da46..e38c7e8113 100644 --- a/vendor/k8s.io/utils/nsenter/nsenter_unsupported.go +++ b/vendor/k8s.io/utils/nsenter/nsenter_unsupported.go @@ -19,6 +19,9 @@ limitations under the License. package nsenter import ( + "context" + "fmt" + "k8s.io/utils/exec" ) @@ -28,29 +31,49 @@ const ( DefaultHostRootFsPath = "/rootfs" ) -// Nsenter is part of experimental support for running the kubelet +// Nsenter is a type alias for backward compatibility +type Nsenter = NSEnter + +// NSEnter is part of experimental support for running the kubelet // in a container. -type Nsenter struct { +type NSEnter struct { // a map of commands to their paths on the host filesystem Paths map[string]string } -// NewNsenter constructs a new instance of Nsenter +// NewNsenter constructs a new instance of NSEnter func NewNsenter(hostRootFsPath string, executor exec.Interface) (*Nsenter, error) { return &Nsenter{}, nil } // Exec executes nsenter commands in hostProcMountNsPath mount namespace -func (ne *Nsenter) Exec(cmd string, args []string) exec.Cmd { +func (ne *NSEnter) Exec(cmd string, args []string) exec.Cmd { return nil } // AbsHostPath returns the absolute runnable path for a specified command -func (ne *Nsenter) AbsHostPath(command string) string { +func (ne *NSEnter) AbsHostPath(command string) string { return "" } // SupportsSystemd checks whether command systemd-run exists -func (ne *Nsenter) SupportsSystemd() (string, bool) { +func (ne *NSEnter) SupportsSystemd() (string, bool) { return "", false } + +// Command returns a command wrapped with nenter +func (ne *NSEnter) Command(cmd string, args ...string) exec.Cmd { + return nil +} + +// CommandContext returns a CommandContext wrapped with nsenter +func (ne *NSEnter) CommandContext(ctx context.Context, cmd string, args ...string) exec.Cmd { + return nil +} + +// LookPath returns a LookPath wrapped with nsenter +func (ne *NSEnter) LookPath(file string) (string, error) { + return "", fmt.Errorf("not implemented, error looking up : %s", file) +} + +var _ exec.Interface = &NSEnter{} diff --git a/vendor/k8s.io/utils/path/BUILD b/vendor/k8s.io/utils/path/BUILD new file mode 100644 index 0000000000..43e3f6f88d --- /dev/null +++ b/vendor/k8s.io/utils/path/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["file.go"], + importmap = "k8s.io/kubernetes/vendor/k8s.io/utils/path", + importpath = "k8s.io/utils/path", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/utils/path/file.go b/vendor/k8s.io/utils/path/file.go new file mode 100644 index 0000000000..a57285d3b4 --- /dev/null +++ b/vendor/k8s.io/utils/path/file.go @@ -0,0 +1,78 @@ +/* +Copyright 2017 The Kubernetes 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. +*/ + +package path + +import ( + "errors" + "os" +) + +// LinkTreatment is the base type for constants used by Exists that indicate +// how symlinks are treated for existence checks. +type LinkTreatment int + +const ( + // CheckFollowSymlink follows the symlink and verifies that the target of + // the symlink exists. + CheckFollowSymlink LinkTreatment = iota + + // CheckSymlinkOnly does not follow the symlink and verfies only that they + // symlink itself exists. + CheckSymlinkOnly +) + +// ErrInvalidLinkTreatment indicates that the link treatment behavior requested +// is not a valid behavior. +var ErrInvalidLinkTreatment = errors.New("unknown link behavior") + +// Exists checks if specified file, directory, or symlink exists. The behavior +// of the test depends on the linkBehaviour argument. See LinkTreatment for +// more details. +func Exists(linkBehavior LinkTreatment, filename string) (bool, error) { + var err error + + if linkBehavior == CheckFollowSymlink { + _, err = os.Stat(filename) + } else if linkBehavior == CheckSymlinkOnly { + _, err = os.Lstat(filename) + } else { + return false, ErrInvalidLinkTreatment + } + + if os.IsNotExist(err) { + return false, nil + } else if err != nil { + return false, err + } + return true, nil +} + +// ReadDirNoStat returns a string of files/directories contained +// in dirname without calling lstat on them. +func ReadDirNoStat(dirname string) ([]string, error) { + if dirname == "" { + dirname = "." + } + + f, err := os.Open(dirname) + if err != nil { + return nil, err + } + defer f.Close() + + return f.Readdirnames(-1) +}