[mdatagen] delete generated_status.go in case it is not required (#12348)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Delete generated_status.go if the component type doesn't require it. <!-- Issue number if applicable --> #### Link to tracking issue Fixes #12346
This commit is contained in:
parent
4f9fc6bb2d
commit
bfaf8da9b8
|
|
@ -0,0 +1,25 @@
|
|||
# Use this changelog template to create an entry for release notes.
|
||||
|
||||
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
|
||||
change_type: enhancement
|
||||
|
||||
# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
|
||||
component: mdatagen
|
||||
|
||||
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
|
||||
note: Delete generated_status.go if the component type doesn't require it.
|
||||
|
||||
# One or more tracking issues or pull requests related to the change
|
||||
issues: [12346]
|
||||
|
||||
# (Optional) One or more lines of additional information to render under the primary note.
|
||||
# These lines will be padded with 2 spaces and then inserted directly into the document.
|
||||
# Use pipe (|) for multiline entries.
|
||||
subtext:
|
||||
|
||||
# Optional: The change log or logs in which this entry should be included.
|
||||
# e.g. '[user]' or '[user, api]'
|
||||
# Include 'user' if the change is relevant to end users.
|
||||
# Include 'api' if there is a change to a library API.
|
||||
# Default: '[user]'
|
||||
change_logs: []
|
||||
|
|
@ -92,6 +92,17 @@ func run(ymlPath string) error {
|
|||
filepath.Join(ymlDir, "generated_component_test.go"), md, packageName); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
if _, err = os.Stat(filepath.Join(codeDir, "generated_status.go")); err == nil {
|
||||
if err = os.Remove(filepath.Join(codeDir, "generated_status.go")); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if _, err = os.Stat(filepath.Join(ymlDir, "generated_component_test.go")); err == nil {
|
||||
if err = os.Remove(filepath.Join(ymlDir, "generated_component_test.go")); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if err = generateFile(filepath.Join(tmplDir, "package_test.go.tmpl"),
|
||||
|
|
@ -124,6 +135,27 @@ func run(ymlPath string) error {
|
|||
toGenerate[filepath.Join(tmplDir, "telemetry_test.go.tmpl")] = filepath.Join(codeDir, "generated_telemetry_test.go")
|
||||
toGenerate[filepath.Join(tmplDir, "telemetrytest.go.tmpl")] = filepath.Join(testDir, "generated_telemetrytest.go")
|
||||
toGenerate[filepath.Join(tmplDir, "telemetrytest_test.go.tmpl")] = filepath.Join(testDir, "generated_telemetrytest_test.go")
|
||||
} else {
|
||||
if _, err = os.Stat(filepath.Join(ymlDir, "generated_telemetry.go")); err == nil {
|
||||
if err = os.Remove(filepath.Join(ymlDir, "generated_telemetry.go")); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if _, err = os.Stat(filepath.Join(ymlDir, "generated_telemetry_test.go")); err == nil {
|
||||
if err = os.Remove(filepath.Join(ymlDir, "generated_telemetry_test.go")); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if _, err = os.Stat(filepath.Join(ymlDir, "generated_telemetrytest.go")); err == nil {
|
||||
if err = os.Remove(filepath.Join(ymlDir, "generated_telemetrytest.go")); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if _, err = os.Stat(filepath.Join(ymlDir, "generated_telemetrytest_test.go")); err == nil {
|
||||
if err = os.Remove(filepath.Join(ymlDir, "generated_telemetrytest_test.go")); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if len(md.Metrics) != 0 || len(md.Telemetry.Metrics) != 0 || len(md.ResourceAttributes) != 0 { // if there's metrics or internal metrics, generate documentation for them
|
||||
|
|
|
|||
|
|
@ -37,7 +37,9 @@ func TestRunContents(t *testing.T) {
|
|||
wantConfigGenerated bool
|
||||
wantTelemetryGenerated bool
|
||||
wantResourceAttributesGenerated bool
|
||||
wantReadmeGenerated bool
|
||||
wantStatusGenerated bool
|
||||
wantComponentTestGenerated bool
|
||||
wantGoleakIgnore bool
|
||||
wantGoleakSkip bool
|
||||
wantGoleakSetup bool
|
||||
|
|
@ -49,89 +51,131 @@ func TestRunContents(t *testing.T) {
|
|||
wantErr: true,
|
||||
},
|
||||
{
|
||||
yml: "basic_connector.yaml",
|
||||
wantErr: false,
|
||||
wantStatusGenerated: true,
|
||||
yml: "basic_connector.yaml",
|
||||
wantErr: false,
|
||||
wantStatusGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "basic_receiver.yaml",
|
||||
wantErr: false,
|
||||
wantStatusGenerated: true,
|
||||
yml: "basic_receiver.yaml",
|
||||
wantErr: false,
|
||||
wantStatusGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "metrics_and_type.yaml",
|
||||
wantMetricsGenerated: true,
|
||||
wantConfigGenerated: true,
|
||||
wantStatusGenerated: true,
|
||||
yml: "basic_pkg.yaml",
|
||||
wantErr: false,
|
||||
wantStatusGenerated: false,
|
||||
wantReadmeGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "metrics_and_type.yaml",
|
||||
wantMetricsGenerated: true,
|
||||
wantConfigGenerated: true,
|
||||
wantStatusGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "resource_attributes_only.yaml",
|
||||
wantConfigGenerated: true,
|
||||
wantStatusGenerated: true,
|
||||
wantResourceAttributesGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "status_only.yaml",
|
||||
wantStatusGenerated: true,
|
||||
yml: "status_only.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "with_tests_receiver.yaml",
|
||||
wantStatusGenerated: true,
|
||||
yml: "with_tests_receiver.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "with_tests_exporter.yaml",
|
||||
wantStatusGenerated: true,
|
||||
yml: "with_tests_exporter.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "with_tests_processor.yaml",
|
||||
wantStatusGenerated: true,
|
||||
yml: "with_tests_processor.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "with_tests_extension.yaml",
|
||||
wantStatusGenerated: true,
|
||||
yml: "with_tests_extension.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "with_tests_connector.yaml",
|
||||
wantStatusGenerated: true,
|
||||
yml: "with_tests_connector.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "with_goleak_ignores.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantGoleakIgnore: true,
|
||||
yml: "with_goleak_ignores.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantGoleakIgnore: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "with_goleak_skip.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantGoleakSkip: true,
|
||||
yml: "with_goleak_skip.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantGoleakSkip: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "with_goleak_setup.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantGoleakSetup: true,
|
||||
yml: "with_goleak_setup.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantGoleakSetup: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "with_goleak_teardown.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantGoleakTeardown: true,
|
||||
yml: "with_goleak_teardown.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantGoleakTeardown: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "with_telemetry.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantTelemetryGenerated: true,
|
||||
yml: "with_telemetry.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantTelemetryGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "invalid_telemetry_missing_value_type_for_histogram.yaml",
|
||||
wantErr: true,
|
||||
yml: "invalid_telemetry_missing_value_type_for_histogram.yaml",
|
||||
wantErr: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "async_metric.yaml",
|
||||
wantMetricsGenerated: true,
|
||||
wantConfigGenerated: true,
|
||||
wantStatusGenerated: true,
|
||||
yml: "async_metric.yaml",
|
||||
wantMetricsGenerated: true,
|
||||
wantConfigGenerated: true,
|
||||
wantStatusGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
{
|
||||
yml: "custom_generated_package_name.yaml",
|
||||
wantStatusGenerated: true,
|
||||
yml: "custom_generated_package_name.yaml",
|
||||
wantStatusGenerated: true,
|
||||
wantReadmeGenerated: true,
|
||||
wantComponentTestGenerated: true,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
|
|
@ -147,17 +191,20 @@ func TestRunContents(t *testing.T) {
|
|||
<!-- status autogenerated section -->
|
||||
foo
|
||||
<!-- end autogenerated section -->`), 0o600))
|
||||
|
||||
err = run(metadataFile)
|
||||
md, err := LoadMetadata(metadataFile)
|
||||
if tt.wantErr {
|
||||
require.Error(t, err)
|
||||
return
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
md, err := LoadMetadata(metadataFile)
|
||||
require.NoError(t, err)
|
||||
generatedPackageDir := filepath.Join("internal", md.GeneratedPackageName)
|
||||
require.NoError(t, os.MkdirAll(filepath.Join(tmpdir, generatedPackageDir), 0o700))
|
||||
require.NoError(t, os.WriteFile(filepath.Join(tmpdir, generatedPackageDir, "generated_status.go"), []byte("status"), 0o600))
|
||||
require.NoError(t, os.WriteFile(filepath.Join(tmpdir, generatedPackageDir, "generated_telemetry_test.go"), []byte("test"), 0o600))
|
||||
require.NoError(t, os.WriteFile(filepath.Join(tmpdir, generatedPackageDir, "generated_component_test.go"), []byte("test"), 0o600))
|
||||
|
||||
err = run(metadataFile)
|
||||
require.NoError(t, err)
|
||||
|
||||
var contents []byte
|
||||
if tt.wantMetricsGenerated {
|
||||
|
|
@ -197,7 +244,6 @@ foo
|
|||
}
|
||||
} else {
|
||||
require.NoFileExists(t, filepath.Join(tmpdir, generatedPackageDir, "generated_telemetry.go"))
|
||||
require.NoFileExists(t, filepath.Join(tmpdir, generatedPackageDir, "generated_telemetry_test.go"))
|
||||
}
|
||||
|
||||
if !tt.wantMetricsGenerated && !tt.wantTelemetryGenerated && !tt.wantResourceAttributesGenerated {
|
||||
|
|
@ -206,22 +252,28 @@ foo
|
|||
|
||||
if tt.wantStatusGenerated {
|
||||
require.FileExists(t, filepath.Join(tmpdir, generatedPackageDir, "generated_status.go"))
|
||||
contents, err = os.ReadFile(filepath.Join(tmpdir, "README.md")) //nolint:gosec
|
||||
require.NoError(t, err)
|
||||
require.NotContains(t, string(contents), "foo")
|
||||
} else {
|
||||
require.NoFileExists(t, filepath.Join(tmpdir, generatedPackageDir, "generated_status.go"))
|
||||
contents, err = os.ReadFile(filepath.Join(tmpdir, "README.md")) //nolint:gosec
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
contents, err = os.ReadFile(filepath.Join(tmpdir, "README.md")) //nolint:gosec
|
||||
require.NoError(t, err)
|
||||
if tt.wantReadmeGenerated {
|
||||
require.NotContains(t, string(contents), "foo")
|
||||
} else {
|
||||
require.Contains(t, string(contents), "foo")
|
||||
}
|
||||
|
||||
require.FileExists(t, filepath.Join(tmpdir, "generated_component_test.go"))
|
||||
contents, err = os.ReadFile(filepath.Join(tmpdir, "generated_component_test.go")) //nolint:gosec
|
||||
require.NoError(t, err)
|
||||
require.Contains(t, string(contents), "func Test")
|
||||
_, err = parser.ParseFile(token.NewFileSet(), "", contents, parser.DeclarationErrors)
|
||||
require.NoError(t, err)
|
||||
if tt.wantComponentTestGenerated {
|
||||
require.FileExists(t, filepath.Join(tmpdir, "generated_component_test.go"))
|
||||
contents, err = os.ReadFile(filepath.Join(tmpdir, "generated_component_test.go")) //nolint:gosec
|
||||
require.NoError(t, err)
|
||||
require.Contains(t, string(contents), "func Test")
|
||||
_, err = parser.ParseFile(token.NewFileSet(), "", contents, parser.DeclarationErrors)
|
||||
require.NoError(t, err)
|
||||
} else {
|
||||
require.NoFileExists(t, filepath.Join(tmpdir, "generated_component_test.go"))
|
||||
}
|
||||
|
||||
require.FileExists(t, filepath.Join(tmpdir, "generated_package_test.go"))
|
||||
contents, err = os.ReadFile(filepath.Join(tmpdir, "generated_package_test.go")) //nolint:gosec
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
type: test
|
||||
|
||||
status:
|
||||
class: pkg
|
||||
stability:
|
||||
beta: [logs]
|
||||
Loading…
Reference in New Issue