aboutsummaryrefslogtreecommitdiffstats
path: root/vm/proxyapp/proxyappclient.go
diff options
context:
space:
mode:
Diffstat (limited to 'vm/proxyapp/proxyappclient.go')
-rw-r--r--vm/proxyapp/proxyappclient.go29
1 files changed, 21 insertions, 8 deletions
diff --git a/vm/proxyapp/proxyappclient.go b/vm/proxyapp/proxyappclient.go
index 946556f24..daf73df0e 100644
--- a/vm/proxyapp/proxyappclient.go
+++ b/vm/proxyapp/proxyappclient.go
@@ -118,7 +118,7 @@ func (p *pool) init(params *proxyAppParams, cfg *Config) error {
p.proxy.doLogPooling(params.LogOutput)
- count, err := p.proxy.CreatePool(string(cfg.ProxyAppConfig), p.env.Debug)
+ count, err := p.proxy.CreatePool(cfg, p.env.Image, p.env.Debug)
if err != nil || count == 0 || (p.count != 0 && p.count != count) {
if err == nil {
err = fmt.Errorf("wrong pool size %v, prev was %v", count, p.count)
@@ -163,7 +163,7 @@ func (p *pool) Create(workdir string, index int) (vmimpl.Instance, error) {
return nil, fmt.Errorf("can't create instance using nil pool")
}
- return proxy.CreateInstance(workdir, index)
+ return proxy.CreateInstance(workdir, p.env.Image, index)
}
// Close is not used now. Its support require wide code changes.
@@ -342,15 +342,28 @@ func (proxy *ProxyApp) doLogPooling(writer io.Writer) {
}()
}
-func (proxy *ProxyApp) CreatePool(config string, debug bool) (int, error) {
+func (proxy *ProxyApp) CreatePool(config *Config, image string, debug bool) (int, error) {
var reply proxyrpc.CreatePoolResult
+ params := proxyrpc.CreatePoolParams{
+ Debug: debug,
+ Param: string(config.ProxyAppConfig),
+ Image: image,
+ }
+
+ if config.TransferFileContent {
+ imageData, err := os.ReadFile(image)
+ if err != nil {
+ return 0, fmt.Errorf("read image on host: %v", err)
+ }
+
+ params.ImageData = imageData
+ }
+
err := proxy.Call(
"ProxyVM.CreatePool",
- proxyrpc.CreatePoolParams{
- Debug: debug,
- Param: config,
- },
+ params,
&reply)
+
if err != nil {
return 0, err
}
@@ -358,7 +371,7 @@ func (proxy *ProxyApp) CreatePool(config string, debug bool) (int, error) {
return reply.Count, nil
}
-func (proxy *ProxyApp) CreateInstance(workdir string, index int) (vmimpl.Instance, error) {
+func (proxy *ProxyApp) CreateInstance(workdir, image string, index int) (vmimpl.Instance, error) {
var reply proxyrpc.CreateInstanceResult
params := proxyrpc.CreateInstanceParams{