mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 05:40:42 +00:00 
			
		
		
		
	godep restore pushd $GOPATH/src/github.com/appc/spec git co master popd go get go4.org/errorutil rm -rf Godeps godep save ./... git add vendor git add -f $(git ls-files --other vendor/) git co -- Godeps/LICENSES Godeps/.license_file_state Godeps/OWNERS
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| /**
 | |
|  * Licensed to the Apache Software Foundation (ASF) under one
 | |
|  * or more contributor license agreements.  See the NOTICE file
 | |
|  * distributed with this work for additional information
 | |
|  * regarding copyright ownership.  The ASF licenses this file
 | |
|  * to you 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 upid
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"net"
 | |
| 	"strings"
 | |
| )
 | |
| 
 | |
| // UPID is a equivalent of the UPID in libprocess.
 | |
| type UPID struct {
 | |
| 	ID   string
 | |
| 	Host string
 | |
| 	Port string
 | |
| }
 | |
| 
 | |
| // Parse parses the UPID from the input string.
 | |
| func Parse(input string) (*UPID, error) {
 | |
| 	upid := new(UPID)
 | |
| 
 | |
| 	splits := strings.Split(input, "@")
 | |
| 	if len(splits) != 2 {
 | |
| 		return nil, fmt.Errorf("Expect one `@' in the input")
 | |
| 	}
 | |
| 	upid.ID = splits[0]
 | |
| 
 | |
| 	if _, err := net.ResolveTCPAddr("tcp4", splits[1]); err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	upid.Host, upid.Port, _ = net.SplitHostPort(splits[1])
 | |
| 	return upid, nil
 | |
| }
 | |
| 
 | |
| // String returns the string representation.
 | |
| func (u UPID) String() string {
 | |
| 	return fmt.Sprintf("%s@%s:%s", u.ID, u.Host, u.Port)
 | |
| }
 | |
| 
 | |
| // Equal returns true if two upid is equal
 | |
| func (u *UPID) Equal(upid *UPID) bool {
 | |
| 	if u == nil {
 | |
| 		return upid == nil
 | |
| 	} else {
 | |
| 		return upid != nil && u.ID == upid.ID && u.Host == upid.Host && u.Port == upid.Port
 | |
| 	}
 | |
| }
 |