Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
packer
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kristopher Ruzic
packer
Commits
ce2304c9
Commit
ce2304c9
authored
Dec 10, 2013
by
Mitchell Hashimoto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
packer/rpc: remove unused methods
parent
8d4ba1fc
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
128 additions
and
247 deletions
+128
-247
packer/rpc/artifact.go
packer/rpc/artifact.go
+0
-4
packer/rpc/artifact_test.go
packer/rpc/artifact_test.go
+1
-1
packer/rpc/build.go
packer/rpc/build.go
+0
-4
packer/rpc/build_test.go
packer/rpc/build_test.go
+1
-1
packer/rpc/builder.go
packer/rpc/builder.go
+0
-4
packer/rpc/builder_test.go
packer/rpc/builder_test.go
+1
-1
packer/rpc/cache.go
packer/rpc/cache.go
+0
-4
packer/rpc/cache_test.go
packer/rpc/cache_test.go
+1
-5
packer/rpc/command.go
packer/rpc/command.go
+0
-4
packer/rpc/command_test.go
packer/rpc/command_test.go
+1
-1
packer/rpc/hook.go
packer/rpc/hook.go
+0
-4
packer/rpc/provisioner.go
packer/rpc/provisioner.go
+0
-3
packer/rpc/provisioner_test.go
packer/rpc/provisioner_test.go
+1
-1
packer/rpc/server.go
packer/rpc/server.go
+122
-55
packer/rpc/server_new.go
packer/rpc/server_new.go
+0
-155
No files found.
packer/rpc/artifact.go
View file @
ce2304c9
...
...
@@ -18,10 +18,6 @@ type ArtifactServer struct {
artifact
packer
.
Artifact
}
func
Artifact
(
client
*
rpc
.
Client
)
*
artifact
{
return
&
artifact
{
client
:
client
}
}
func
(
a
*
artifact
)
BuilderId
()
(
result
string
)
{
a
.
client
.
Call
(
a
.
endpoint
+
".BuilderId"
,
new
(
interface
{}),
&
result
)
return
...
...
packer/rpc/artifact_test.go
View file @
ce2304c9
...
...
@@ -37,5 +37,5 @@ func TestArtifactRPC(t *testing.T) {
}
func
TestArtifact_Implements
(
t
*
testing
.
T
)
{
var
_
packer
.
Artifact
=
Artifact
(
nil
)
var
_
packer
.
Artifact
=
new
(
artifact
)
}
packer/rpc/build.go
View file @
ce2304c9
...
...
@@ -24,10 +24,6 @@ type BuildPrepareResponse struct {
Error
error
}
func
Build
(
client
*
rpc
.
Client
)
*
build
{
return
&
build
{
client
:
client
}
}
func
(
b
*
build
)
Name
()
(
result
string
)
{
b
.
client
.
Call
(
"Build.Name"
,
new
(
interface
{}),
&
result
)
return
...
...
packer/rpc/build_test.go
View file @
ce2304c9
...
...
@@ -154,5 +154,5 @@ func TestBuildPrepare_Warnings(t *testing.T) {
}
func
TestBuild_ImplementsBuild
(
t
*
testing
.
T
)
{
var
_
packer
.
Build
=
Build
(
nil
)
var
_
packer
.
Build
=
new
(
build
)
}
packer/rpc/builder.go
View file @
ce2304c9
...
...
@@ -29,10 +29,6 @@ type BuilderPrepareResponse struct {
Error
error
}
func
Builder
(
client
*
rpc
.
Client
)
*
builder
{
return
&
builder
{
client
:
client
}
}
func
(
b
*
builder
)
Prepare
(
config
...
interface
{})
([]
string
,
error
)
{
var
resp
BuilderPrepareResponse
cerr
:=
b
.
client
.
Call
(
"Builder.Prepare"
,
&
BuilderPrepareArgs
{
config
},
&
resp
)
...
...
packer/rpc/builder_test.go
View file @
ce2304c9
...
...
@@ -141,5 +141,5 @@ func TestBuilderCancel(t *testing.T) {
}
func
TestBuilder_ImplementsBuilder
(
t
*
testing
.
T
)
{
var
_
packer
.
Builder
=
Builder
(
nil
)
var
_
packer
.
Builder
=
new
(
builder
)
}
packer/rpc/cache.go
View file @
ce2304c9
...
...
@@ -17,10 +17,6 @@ type CacheServer struct {
cache
packer
.
Cache
}
func
Cache
(
client
*
rpc
.
Client
)
*
cache
{
return
&
cache
{
client
}
}
type
CacheRLockResponse
struct
{
Path
string
Exists
bool
...
...
packer/rpc/cache_test.go
View file @
ce2304c9
...
...
@@ -39,11 +39,7 @@ func (t *testCache) RUnlock(key string) {
}
func
TestCache_Implements
(
t
*
testing
.
T
)
{
var
raw
interface
{}
raw
=
Cache
(
nil
)
if
_
,
ok
:=
raw
.
(
packer
.
Cache
);
!
ok
{
t
.
Fatal
(
"Cache must be a cache."
)
}
var
_
packer
.
Cache
=
new
(
cache
)
}
func
TestCacheRPC
(
t
*
testing
.
T
)
{
...
...
packer/rpc/command.go
View file @
ce2304c9
...
...
@@ -26,10 +26,6 @@ type CommandRunArgs struct {
type
CommandSynopsisArgs
byte
func
Command
(
client
*
rpc
.
Client
)
*
command
{
return
&
command
{
client
:
client
}
}
func
(
c
*
command
)
Help
()
(
result
string
)
{
err
:=
c
.
client
.
Call
(
"Command.Help"
,
new
(
interface
{}),
&
result
)
if
err
!=
nil
{
...
...
packer/rpc/command_test.go
View file @
ce2304c9
...
...
@@ -67,5 +67,5 @@ func TestRPCCommand(t *testing.T) {
}
func
TestCommand_Implements
(
t
*
testing
.
T
)
{
var
_
packer
.
Command
=
Command
(
nil
)
var
_
packer
.
Command
=
new
(
command
)
}
packer/rpc/hook.go
View file @
ce2304c9
...
...
@@ -26,10 +26,6 @@ type HookRunArgs struct {
StreamId
uint32
}
func
Hook
(
client
*
rpc
.
Client
)
*
hook
{
return
&
hook
{
client
:
client
}
}
func
(
h
*
hook
)
Run
(
name
string
,
ui
packer
.
Ui
,
comm
packer
.
Communicator
,
data
interface
{})
error
{
nextId
:=
h
.
mux
.
NextId
()
server
:=
NewServerWithMux
(
h
.
mux
,
nextId
)
...
...
packer/rpc/provisioner.go
View file @
ce2304c9
...
...
@@ -24,9 +24,6 @@ type ProvisionerPrepareArgs struct {
Configs
[]
interface
{}
}
func
Provisioner
(
client
*
rpc
.
Client
)
*
provisioner
{
return
&
provisioner
{
client
:
client
}
}
func
(
p
*
provisioner
)
Prepare
(
configs
...
interface
{})
(
err
error
)
{
args
:=
&
ProvisionerPrepareArgs
{
configs
}
if
cerr
:=
p
.
client
.
Call
(
"Provisioner.Prepare"
,
args
,
&
err
);
cerr
!=
nil
{
...
...
packer/rpc/provisioner_test.go
View file @
ce2304c9
...
...
@@ -43,5 +43,5 @@ func TestProvisionerRPC(t *testing.T) {
}
func
TestProvisioner_Implements
(
t
*
testing
.
T
)
{
var
_
packer
.
Provisioner
=
Provisioner
(
nil
)
var
_
packer
.
Provisioner
=
new
(
provisioner
)
}
packer/rpc/server.go
View file @
ce2304c9
package
rpc
import
(
"fmt"
"github.com/mitchellh/packer/packer"
"io"
"log"
"net/rpc"
"sync/atomic"
)
// Registers the appropriate endpoint on an RPC server to serve an
// Artifact.
func
RegisterArtifact
(
s
*
rpc
.
Server
,
a
packer
.
Artifact
)
{
registerComponent
(
s
,
"Artifact"
,
&
ArtifactServer
{
a
},
false
)
var
endpointId
uint64
const
(
DefaultArtifactEndpoint
string
=
"Artifact"
DefaultBuildEndpoint
=
"Build"
DefaultBuilderEndpoint
=
"Builder"
DefaultCacheEndpoint
=
"Cache"
DefaultCommandEndpoint
=
"Command"
DefaultCommunicatorEndpoint
=
"Communicator"
DefaultEnvironmentEndpoint
=
"Environment"
DefaultHookEndpoint
=
"Hook"
DefaultPostProcessorEndpoint
=
"PostProcessor"
DefaultProvisionerEndpoint
=
"Provisioner"
DefaultUiEndpoint
=
"Ui"
)
// Server represents an RPC server for Packer. This must be paired on
// the other side with a Client.
type
Server
struct
{
mux
*
MuxConn
streamId
uint32
server
*
rpc
.
Server
}
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Build.
func
RegisterBuild
(
s
*
rpc
.
Server
,
b
packer
.
Build
)
{
registerComponent
(
s
,
"Build"
,
&
BuildServer
{
build
:
b
},
false
)
// NewServer returns a new Packer RPC server.
func
NewServer
(
conn
io
.
ReadWriteCloser
)
*
Server
{
return
NewServerWithMux
(
NewMuxConn
(
conn
),
0
)
}
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Builder.
func
RegisterBuilder
(
s
*
rpc
.
Server
,
b
packer
.
Builder
)
{
registerComponent
(
s
,
"Builder"
,
&
BuilderServer
{
builder
:
b
},
false
)
func
NewServerWithMux
(
mux
*
MuxConn
,
streamId
uint32
)
*
Server
{
return
&
Server
{
mux
:
mux
,
streamId
:
streamId
,
server
:
rpc
.
NewServer
(),
}
}
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Cache.
func
RegisterCache
(
s
*
rpc
.
Server
,
c
packer
.
Cache
)
{
registerComponent
(
s
,
"Cache"
,
&
CacheServer
{
c
},
false
)
func
(
s
*
Server
)
Close
()
error
{
return
s
.
mux
.
Close
()
}
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Command.
func
RegisterCommand
(
s
*
rpc
.
Server
,
c
packer
.
Command
)
{
registerComponent
(
s
,
"Command"
,
&
CommandServer
{
command
:
c
},
false
)
func
(
s
*
Server
)
RegisterArtifact
(
a
packer
.
Artifact
)
{
s
.
server
.
RegisterName
(
DefaultArtifactEndpoint
,
&
ArtifactServer
{
artifact
:
a
,
}
)
}
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Communicator.
func
RegisterCommunicator
(
s
*
rpc
.
Server
,
c
packer
.
Communicator
)
{
registerComponent
(
s
,
"Communicator"
,
&
CommunicatorServer
{
c
:
c
},
false
)
func
(
s
*
Server
)
RegisterBuild
(
b
packer
.
Build
)
{
s
.
server
.
RegisterName
(
DefaultBuildEndpoint
,
&
BuildServer
{
build
:
b
,
mux
:
s
.
mux
,
})
}
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Environment
func
RegisterEnvironment
(
s
*
rpc
.
Server
,
e
packer
.
Environment
)
{
registerComponent
(
s
,
"Environment"
,
&
EnvironmentServer
{
env
:
e
},
false
)
func
(
s
*
Server
)
RegisterBuilder
(
b
packer
.
Builder
)
{
s
.
server
.
RegisterName
(
DefaultBuilderEndpoint
,
&
BuilderServer
{
builder
:
b
,
mux
:
s
.
mux
,
})
}
// Registers the appropriate endpoint on an RPC server to serve a
// Hook.
func
RegisterHook
(
s
*
rpc
.
Server
,
h
packer
.
Hook
)
{
registerComponent
(
s
,
"Hook"
,
&
HookServer
{
hook
:
h
},
false
)
func
(
s
*
Server
)
RegisterCache
(
c
packer
.
Cache
)
{
s
.
server
.
RegisterName
(
DefaultCacheEndpoint
,
&
CacheServer
{
cache
:
c
,
}
)
}
// Registers the appropriate endpoing on an RPC server to serve a
// PostProcessor.
func
RegisterPostProcessor
(
s
*
rpc
.
Server
,
p
packer
.
PostProcessor
)
{
registerComponent
(
s
,
"PostProcessor"
,
&
PostProcessorServer
{
p
:
p
},
false
)
func
(
s
*
Server
)
RegisterCommand
(
c
packer
.
Command
)
{
s
.
server
.
RegisterName
(
DefaultCommandEndpoint
,
&
CommandServer
{
command
:
c
,
mux
:
s
.
mux
,
})
}
// Registers the appropriate endpoint on an RPC server to serve a packer.Provisioner
func
RegisterProvisioner
(
s
*
rpc
.
Server
,
p
packer
.
Provisioner
)
{
registerComponent
(
s
,
"Provisioner"
,
&
ProvisionerServer
{
p
:
p
},
false
)
func
(
s
*
Server
)
RegisterCommunicator
(
c
packer
.
Communicator
)
{
s
.
server
.
RegisterName
(
DefaultCommunicatorEndpoint
,
&
CommunicatorServer
{
c
:
c
,
mux
:
s
.
mux
,
})
}
// Registers the appropriate endpoint on an RPC server to serve a
// Packer UI
func
RegisterUi
(
s
*
rpc
.
Server
,
ui
packer
.
Ui
)
{
registerComponent
(
s
,
"Ui"
,
&
UiServer
{
ui
},
false
)
func
(
s
*
Server
)
RegisterEnvironment
(
b
packer
.
Environment
)
{
s
.
server
.
RegisterName
(
DefaultEnvironmentEndpoint
,
&
EnvironmentServer
{
env
:
b
,
mux
:
s
.
mux
,
})
}
func
serveSingleConn
(
s
*
rpc
.
Server
)
string
{
l
:=
netListenerInRange
(
portRangeMin
,
portRangeMax
)
func
(
s
*
Server
)
RegisterHook
(
h
packer
.
Hook
)
{
s
.
server
.
RegisterName
(
DefaultHookEndpoint
,
&
HookServer
{
hook
:
h
,
mux
:
s
.
mux
,
})
}
// Accept a single connection in a goroutine and then exit
go
func
()
{
defer
l
.
Close
()
conn
,
err
:=
l
.
Accept
()
if
err
!=
nil
{
panic
(
err
)
}
func
(
s
*
Server
)
RegisterPostProcessor
(
p
packer
.
PostProcessor
)
{
s
.
server
.
RegisterName
(
DefaultPostProcessorEndpoint
,
&
PostProcessorServer
{
mux
:
s
.
mux
,
p
:
p
,
})
}
s
.
ServeConn
(
conn
)
}()
func
(
s
*
Server
)
RegisterProvisioner
(
p
packer
.
Provisioner
)
{
s
.
server
.
RegisterName
(
DefaultProvisionerEndpoint
,
&
ProvisionerServer
{
mux
:
s
.
mux
,
p
:
p
,
})
}
func
(
s
*
Server
)
RegisterUi
(
ui
packer
.
Ui
)
{
s
.
server
.
RegisterName
(
DefaultUiEndpoint
,
&
UiServer
{
ui
:
ui
,
})
}
// ServeConn serves a single connection over the RPC server. It is up
// to the caller to obtain a proper io.ReadWriteCloser.
func
(
s
*
Server
)
Serve
()
{
// Accept a connection on stream ID 0, which is always used for
// normal client to server connections.
stream
,
err
:=
s
.
mux
.
Accept
(
s
.
streamId
)
defer
stream
.
Close
()
if
err
!=
nil
{
log
.
Printf
(
"[ERR] Error retrieving stream for serving: %s"
,
err
)
return
}
s
.
server
.
ServeConn
(
stream
)
}
return
l
.
Addr
()
.
String
()
// registerComponent registers a single Packer RPC component onto
// the RPC server. If id is true, then a unique ID number will be appended
// onto the end of the endpoint.
//
// The endpoint name is returned.
func
registerComponent
(
server
*
rpc
.
Server
,
name
string
,
rcvr
interface
{},
id
bool
)
string
{
endpoint
:=
name
if
id
{
fmt
.
Sprintf
(
"%s.%d"
,
endpoint
,
atomic
.
AddUint64
(
&
endpointId
,
1
))
}
server
.
RegisterName
(
endpoint
,
rcvr
)
return
endpoint
}
packer/rpc/server_new.go
deleted
100644 → 0
View file @
8d4ba1fc
package
rpc
import
(
"fmt"
"github.com/mitchellh/packer/packer"
"io"
"log"
"net/rpc"
"sync/atomic"
)
var
endpointId
uint64
const
(
DefaultArtifactEndpoint
string
=
"Artifact"
DefaultBuildEndpoint
=
"Build"
DefaultBuilderEndpoint
=
"Builder"
DefaultCacheEndpoint
=
"Cache"
DefaultCommandEndpoint
=
"Command"
DefaultCommunicatorEndpoint
=
"Communicator"
DefaultEnvironmentEndpoint
=
"Environment"
DefaultHookEndpoint
=
"Hook"
DefaultPostProcessorEndpoint
=
"PostProcessor"
DefaultProvisionerEndpoint
=
"Provisioner"
DefaultUiEndpoint
=
"Ui"
)
// Server represents an RPC server for Packer. This must be paired on
// the other side with a Client.
type
Server
struct
{
mux
*
MuxConn
streamId
uint32
server
*
rpc
.
Server
}
// NewServer returns a new Packer RPC server.
func
NewServer
(
conn
io
.
ReadWriteCloser
)
*
Server
{
return
NewServerWithMux
(
NewMuxConn
(
conn
),
0
)
}
func
NewServerWithMux
(
mux
*
MuxConn
,
streamId
uint32
)
*
Server
{
return
&
Server
{
mux
:
mux
,
streamId
:
streamId
,
server
:
rpc
.
NewServer
(),
}
}
func
(
s
*
Server
)
Close
()
error
{
return
s
.
mux
.
Close
()
}
func
(
s
*
Server
)
RegisterArtifact
(
a
packer
.
Artifact
)
{
s
.
server
.
RegisterName
(
DefaultArtifactEndpoint
,
&
ArtifactServer
{
artifact
:
a
,
})
}
func
(
s
*
Server
)
RegisterBuild
(
b
packer
.
Build
)
{
s
.
server
.
RegisterName
(
DefaultBuildEndpoint
,
&
BuildServer
{
build
:
b
,
mux
:
s
.
mux
,
})
}
func
(
s
*
Server
)
RegisterBuilder
(
b
packer
.
Builder
)
{
s
.
server
.
RegisterName
(
DefaultBuilderEndpoint
,
&
BuilderServer
{
builder
:
b
,
mux
:
s
.
mux
,
})
}
func
(
s
*
Server
)
RegisterCache
(
c
packer
.
Cache
)
{
s
.
server
.
RegisterName
(
DefaultCacheEndpoint
,
&
CacheServer
{
cache
:
c
,
})
}
func
(
s
*
Server
)
RegisterCommand
(
c
packer
.
Command
)
{
s
.
server
.
RegisterName
(
DefaultCommandEndpoint
,
&
CommandServer
{
command
:
c
,
mux
:
s
.
mux
,
})
}
func
(
s
*
Server
)
RegisterCommunicator
(
c
packer
.
Communicator
)
{
s
.
server
.
RegisterName
(
DefaultCommunicatorEndpoint
,
&
CommunicatorServer
{
c
:
c
,
mux
:
s
.
mux
,
})
}
func
(
s
*
Server
)
RegisterEnvironment
(
b
packer
.
Environment
)
{
s
.
server
.
RegisterName
(
DefaultEnvironmentEndpoint
,
&
EnvironmentServer
{
env
:
b
,
mux
:
s
.
mux
,
})
}
func
(
s
*
Server
)
RegisterHook
(
h
packer
.
Hook
)
{
s
.
server
.
RegisterName
(
DefaultHookEndpoint
,
&
HookServer
{
hook
:
h
,
mux
:
s
.
mux
,
})
}
func
(
s
*
Server
)
RegisterPostProcessor
(
p
packer
.
PostProcessor
)
{
s
.
server
.
RegisterName
(
DefaultPostProcessorEndpoint
,
&
PostProcessorServer
{
mux
:
s
.
mux
,
p
:
p
,
})
}
func
(
s
*
Server
)
RegisterProvisioner
(
p
packer
.
Provisioner
)
{
s
.
server
.
RegisterName
(
DefaultProvisionerEndpoint
,
&
ProvisionerServer
{
mux
:
s
.
mux
,
p
:
p
,
})
}
func
(
s
*
Server
)
RegisterUi
(
ui
packer
.
Ui
)
{
s
.
server
.
RegisterName
(
DefaultUiEndpoint
,
&
UiServer
{
ui
:
ui
,
})
}
// ServeConn serves a single connection over the RPC server. It is up
// to the caller to obtain a proper io.ReadWriteCloser.
func
(
s
*
Server
)
Serve
()
{
// Accept a connection on stream ID 0, which is always used for
// normal client to server connections.
stream
,
err
:=
s
.
mux
.
Accept
(
s
.
streamId
)
defer
stream
.
Close
()
if
err
!=
nil
{
log
.
Printf
(
"[ERR] Error retrieving stream for serving: %s"
,
err
)
return
}
s
.
server
.
ServeConn
(
stream
)
}
// registerComponent registers a single Packer RPC component onto
// the RPC server. If id is true, then a unique ID number will be appended
// onto the end of the endpoint.
//
// The endpoint name is returned.
func
registerComponent
(
server
*
rpc
.
Server
,
name
string
,
rcvr
interface
{},
id
bool
)
string
{
endpoint
:=
name
if
id
{
fmt
.
Sprintf
(
"%s.%d"
,
endpoint
,
atomic
.
AddUint64
(
&
endpointId
,
1
))
}
server
.
RegisterName
(
endpoint
,
rcvr
)
return
endpoint
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment