diff --git a/zititest/models/simple/actions/start.go b/zititest/models/simple/actions/start.go index a1220c129..00790589c 100644 --- a/zititest/models/simple/actions/start.go +++ b/zititest/models/simple/actions/start.go @@ -28,11 +28,8 @@ import ( "github.com/openziti/ziti/zititest/zitilab/models" ) -func NewStartAction(metricbeat MetricbeatConfig, consul ConsulConfig) model.ActionBinder { - action := &startAction{ - Metricbeat: metricbeat, - Consul: consul, - } +func NewStartAction() model.ActionBinder { + action := &startAction{} return action.bind } @@ -44,8 +41,6 @@ func (a *startAction) bind(m *model.Model) model.Action { workflow.AddAction(component.StartInParallel(".iperf", 5)) workflow.AddAction(semaphore.Sleep(2 * time.Second)) - workflow.AddAction(zitilib_actions.StartMetricbeat("*", a.Metricbeat.ConfigPath, a.Metricbeat.DataPath, a.Metricbeat.LogPath)) - workflow.AddAction(zitilib_actions.StartConsul("*", a.Consul.ServerAddr, a.Consul.ConfigDir, a.Consul.DataPath, a.Consul.LogPath)) workflow.AddAction(semaphore.Sleep(2 * time.Second)) workflow.AddAction(component.StartInParallel(".sdk-app", 5)) @@ -57,19 +52,4 @@ func (a *startAction) bind(m *model.Model) model.Action { } type startAction struct { - Metricbeat MetricbeatConfig - Consul ConsulConfig -} - -type MetricbeatConfig struct { - ConfigPath string - DataPath string - LogPath string -} - -type ConsulConfig struct { - ConfigDir string - ServerAddr string - DataPath string - LogPath string } diff --git a/zititest/models/simple/configs/consul.hcl b/zititest/models/simple/configs/consul.hcl deleted file mode 100644 index 0f333bb3b..000000000 --- a/zititest/models/simple/configs/consul.hcl +++ /dev/null @@ -1,24 +0,0 @@ -datacenter = "ziti-build-metrics" -data_dir = "/opt/consul" -encrypt = "${encryption_key}" -advertise_addr="${public_ip}" - - -tls { - defaults { - verify_incoming = false - verify_outgoing = true - - ca_file="consul/consul-agent-ca.pem" - } -} - -auto_encrypt { - tls = true -} - -acl { - enabled = true - default_policy = "allow" - enable_token_persistence = true -} diff --git a/zititest/models/simple/configs/elasticsearch.repo b/zititest/models/simple/configs/elasticsearch.repo deleted file mode 100644 index e90d3f65d..000000000 --- a/zititest/models/simple/configs/elasticsearch.repo +++ /dev/null @@ -1,8 +0,0 @@ -[logstash-6.x] -name=Elastic repository for 6.x packages -baseurl=https://artifacts.elastic.co/packages/6.x/yum -gpgcheck=1 -gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch -enabled=1 -autorefresh=1 -type=rpm-md \ No newline at end of file diff --git a/zititest/models/simple/configs/metricbeat.yml b/zititest/models/simple/configs/metricbeat.yml deleted file mode 100644 index 35c1cc9f6..000000000 --- a/zititest/models/simple/configs/metricbeat.yml +++ /dev/null @@ -1,53 +0,0 @@ -fields_under_root: true -fields: - build_number: ${build_number} - ziti_version: ${ziti_version} - -processors: - - add_cloud_metadata: ~ - -metricbeat.modules: -- module: system - metricsets: - - cpu # CPU usage - - load # CPU load averages - - memory # Memory usage - - network # Network IO - enabled: true - period: 30s - cpu.metrics: ["percentages"] # The other available options are normalized_percentages and ticks. - core.metrics: ["percentages"] # The other available option is ticks. -#- module: docker -# metricsets: -# - "container" -# - "cpu" -# - "diskio" -# - "healthcheck" -# - "info" -# - "image" -# - "memory" -# - "network" -# hosts: ["unix:///var/run/docker.sock"] -# period: 30s -# enabled: true -# # If set to true, replace dots in labels with `_`. -# labels.dedot: true - - -output.elasticsearch: - # Array of hosts to connect to. - hosts: ["${host}"] - - # Optional protocol and basic auth credentials. - protocol: "https" - username: "${user}" - password: "${password}" - index: 'zt-%{[agent.version]}-%{+yyyy.MM.dd}' - -setup.template.enabled: true -setup.template.name: 'zt-%{[agent.version]}' -setup.template.pattern: 'zt-%{[agent.version]}-*' -setup.template.fields: "/etc/metricbeat/fields.yml" -setup.template.settings: - index.number_of_shards: 1 - index.codec: best_compression \ No newline at end of file diff --git a/zititest/models/simple/configs/ziti.hcl b/zititest/models/simple/configs/ziti.hcl deleted file mode 100644 index 4af438cc0..000000000 --- a/zititest/models/simple/configs/ziti.hcl +++ /dev/null @@ -1,9 +0,0 @@ -service { - name = "ziti" - id = "ziti" - port = 6262 - meta { - build_number= "${build_number}" - ziti_version= "${ziti_version}" - } -} \ No newline at end of file diff --git a/zititest/models/simple/simple.go b/zititest/models/simple/simple.go index dee895868..02e636588 100644 --- a/zititest/models/simple/simple.go +++ b/zititest/models/simple/simple.go @@ -40,6 +40,8 @@ import ( "time" ) +const ZitiEdgeTunnelVersion = "v0.21.4" + //go:embed configs var configResource embed.FS @@ -156,7 +158,7 @@ var Model = &model.Model{ "ziti-edge-tunnel-client": { Scope: model.Scope{Tags: model.Tags{"sdk-app", "client"}}, Type: &zitilab.ZitiEdgeTunnelType{ - Version: "v0.21.4", + Version: ZitiEdgeTunnelVersion, }, }, }, @@ -206,7 +208,7 @@ var Model = &model.Model{ "ziti-edge-tunnel-host": { Scope: model.Scope{Tags: model.Tags{"sdk-app", "host", "zet-host"}}, Type: &zitilab.ZitiEdgeTunnelType{ - Version: "v0.21.4", + Version: ZitiEdgeTunnelVersion, }, }, "iperf-server-zet": { @@ -235,19 +237,9 @@ var Model = &model.Model{ Actions: model.ActionBinders{ "bootstrap": actions.NewBootstrapAction(), - "start": actions.NewStartAction(actions.MetricbeatConfig{ - ConfigPath: "metricbeat", - DataPath: "metricbeat/data", - LogPath: "metricbeat/logs", - }, - actions.ConsulConfig{ - ServerAddr: os.Getenv("CONSUL_ENDPOINT"), - ConfigDir: "consul", - DataPath: "consul/data", - LogPath: "consul/log.out", - }), - "stop": model.Bind(component.StopInParallel("*", 15)), - "login": model.Bind(edge.Login("#ctrl1")), + "start": actions.NewStartAction(), + "stop": model.Bind(component.StopInParallel("*", 15)), + "login": model.Bind(edge.Login("#ctrl1")), }, Infrastructure: model.Stages{ @@ -262,68 +254,6 @@ var Model = &model.Model{ Distribution: model.Stages{ distribution.DistributeSshKey("*"), - distribution.Locations("*", "logs"), - distribution.DistributeDataWithReplaceCallbacks( - "*", - string(getConfigData("metricbeat.yml")), - "metricbeat/metricbeat.yml", - os.FileMode(0644), - map[string]func(*model.Host) string{ - "${host}": func(h *model.Host) string { - return os.Getenv("ELASTIC_ENDPOINT") - }, - "${user}": func(h *model.Host) string { - return os.Getenv("ELASTIC_USERNAME") - }, - "${password}": func(h *model.Host) string { - return os.Getenv("ELASTIC_PASSWORD") - }, - "${build_number}": func(h *model.Host) string { - return os.Getenv("BUILD_NUMBER") - }, - "${ziti_version}": func(h *model.Host) string { - return h.MustStringVariable("ziti_version") - }, - }, - ), - - distribution.DistributeDataWithReplaceCallbacks( - "*", - string(getConfigData("consul.hcl")), - "consul/consul.hcl", - os.FileMode(0644), - map[string]func(*model.Host) string{ - "${public_ip}": func(h *model.Host) string { - return h.PublicIp - }, - "${encryption_key}": func(h *model.Host) string { - return os.Getenv("CONSUL_ENCRYPTION_KEY") - }, - "${build_number}": func(h *model.Host) string { - return os.Getenv("BUILD_NUMBER") - }, - "${ziti_version}": func(h *model.Host) string { - return h.MustStringVariable("ziti_version") - }, - }, - ), - distribution.DistributeDataWithReplaceCallbacks( - "#ctrl", - string(getConfigData("ziti.hcl")), - "consul/ziti.hcl", - os.FileMode(0644), - map[string]func(*model.Host) string{ - "${build_number}": func(h *model.Host) string { - return os.Getenv("BUILD_NUMBER") - }, - "${ziti_version}": func(h *model.Host) string { - return h.MustStringVariable("ziti_version") - }, - }), - distribution.DistributeData( - "*", - []byte(os.Getenv("CONSUL_AGENT_CERT")), - "consul/consul-agent-ca.pem"), rsync.RsyncStaged(), }, diff --git a/zititest/tests/files_test.go b/zititest/tests/files_test.go index 562025bd4..5d181a478 100644 --- a/zititest/tests/files_test.go +++ b/zititest/tests/files_test.go @@ -117,7 +117,7 @@ func testFileDownload(t *testing.T, hostSelector string, client httpClient, host success := false - t.Run(fmt.Sprintf("%v-(%s->%s)-%s-%v", client, hostSelector, hostType, fileSize, encDesk), func(t *testing.T) { + t.Run(fmt.Sprintf("%v-(%s<-%s)-%s-%v", client, hostSelector, hostType, fileSize, encDesk), func(t *testing.T) { host, err := model.GetModel().SelectHost("." + hostSelector + "-client") req := require.New(t) req.NoError(err) diff --git a/zititest/tests/scp_test.go b/zititest/tests/scp_test.go index 6cc39f7ae..5f20143b0 100644 --- a/zititest/tests/scp_test.go +++ b/zititest/tests/scp_test.go @@ -76,8 +76,7 @@ func TestScp(t *testing.T) { req := require.New(t) req.False(allZetHostedFailed, "all zet hosted file transfer should not failed, indicates bigger issue") - // TODO: fix once ZET client tests are working - req.True(allZetClientsFailed, "all zet client file transfers should not failed, indicates bigger issue") + req.False(allZetClientsFailed, "all zet client file transfers should not failed, indicates bigger issue") } func testScp(t *testing.T, hostSelector string, hostType string, encrypted bool) bool { @@ -88,40 +87,44 @@ func testScp(t *testing.T, hostSelector string, hostType string, encrypted bool) success := false - t.Run(fmt.Sprintf("(%s->%s)-%v", hostSelector, hostType, encDesk), func(t *testing.T) { - if hostSelector == "zet" { - t.Skipf("zet is currently failing as client") - } - host, err := model.GetModel().SelectHost("." + hostSelector + "-client") - req := require.New(t) - req.NoError(err) - - nameExtra := "" - if !encrypted { - nameExtra = "-unencrypted" - } - - sshConfigFactory := lib.NewSshConfigFactory(host) - - cmds := []string{ - fmt.Sprintf("scp -o StrictHostKeyChecking=no ssh-%s%s.ziti:./fablab/bin/ziti /tmp/ziti-%s", hostType, nameExtra, uuid.NewString()), - fmt.Sprintf("scp -o StrictHostKeyChecking=no ./fablab/bin/ziti ssh-%s%s.ziti:/tmp/ziti-%s", hostType, nameExtra, uuid.NewString()), - } - - o, err := lib.RemoteExecAllWithTimeout(sshConfigFactory, 30*time.Second, cmds...) - if hostType == "zet" && err != nil { - t.Skipf("zet hosted ssh failed [%v]", err.Error()) - return - } - - if hostSelector == "zet" && err != nil { - t.Skipf("zet client ssh failed [%v]", err.Error()) - return - } - - t.Log(o) - req.NoError(err) - success = true - }) + nameExtra := "" + if !encrypted { + nameExtra = "-unencrypted" + } + + tests := []struct { + direction string + cmd string + }{ + { + direction: "<-", + cmd: fmt.Sprintf("scp -o StrictHostKeyChecking=no scp://ssh-%s%s.ziti:2022/fablab/bin/ziti /tmp/ziti-%s", hostType, nameExtra, uuid.NewString()), + }, { + direction: "->", + cmd: fmt.Sprintf("scp -o StrictHostKeyChecking=no ./fablab/bin/ziti scp://ssh-%s%s.ziti:2022//tmp/ziti-%s", hostType, nameExtra, uuid.NewString()), + }, + } + + for _, test := range tests { + t.Run(fmt.Sprintf("(%s%s%s)-%v", hostSelector, test.direction, hostType, encDesk), func(t *testing.T) { + host, err := model.GetModel().SelectHost("." + hostSelector + "-client") + req := require.New(t) + req.NoError(err) + + sshConfigFactory := lib.NewSshConfigFactory(host) + + o, err := lib.RemoteExecAllWithTimeout(sshConfigFactory, 50*time.Second, test.cmd) + if hostType == "zet" && err != nil { + t.Skipf("zet hosted ssh failed [%v]", err.Error()) + } else if hostSelector == "zet" && err != nil { + t.Skipf("zet client ssh failed [%v]", err.Error()) + } else { + t.Log(o) + req.NoError(err) + success = true + } + }) + } + return success }