in pkg/client/gerrit/gerrit.go [272:328]
func (gc *Client) InitAllProjects(instance *gerritApi.Gerrit, k8sService platform.PlatformService,
gerritScriptsPath string, podName string, _ string,
) error {
initAllProjectsScript, err := os.ReadFile(filepath.FromSlash(fmt.Sprintf("%v/init-all-projects.sh", gerritScriptsPath)))
if err != nil {
return errors.Wrapf(err, "Failed to read init-all-projects.sh script")
}
gerritConfig, err := os.ReadFile(filepath.FromSlash(fmt.Sprintf("%v/../gerrit.config", gerritScriptsPath)))
if err != nil {
return errors.Wrapf(err, "Failed to read init-all-projects.sh script")
}
ciToolsGroupUuid, err := gc.getGroupUuid(spec.GerritCIToolsGroupName)
if err != nil {
return errors.Wrapf(err, "Failed to get %v group ID", spec.GerritCIToolsGroupName)
}
projectBootstrappersGroupUuid, err := gc.getGroupUuid(spec.GerritProjectBootstrappersGroupName)
if err != nil {
return errors.Wrapf(err, "Failed to get %v group ID", spec.GerritCIToolsGroupName)
}
developersGroupUuid, err := gc.getGroupUuid(spec.GerritProjectDevelopersGroupName)
if err != nil {
return errors.Wrapf(err, "Failed to get %v group ID", spec.GerritCIToolsGroupName)
}
readOnlyGroupUuid, err := gc.getGroupUuid(spec.GerritReadOnlyGroupName)
if err != nil {
return errors.Wrapf(err, "Failed to get %s group ID", spec.GerritReadOnlyGroupName)
}
_, _, err = k8sService.ExecInPod(instance.Namespace, podName,
[]string{path, containerFlag, "mkdir -p /tmp/scripts && touch /tmp/scripts/init-all-projects.sh && chmod +x /tmp/scripts/init-all-projects.sh"})
if err != nil {
return errors.Wrapf(err, "Failed to create init-all-projects.sh script inside gerrit pod")
}
_, _, err = k8sService.ExecInPod(instance.Namespace, podName,
[]string{path, containerFlag, fmt.Sprintf("echo \"%v\" > /tmp/scripts/init-all-projects.sh", string(initAllProjectsScript))})
if err != nil {
return errors.Wrapf(err, "Failed to create init-all-projects.sh script inside gerrit pod")
}
_, _, err = k8sService.ExecInPod(instance.Namespace, podName,
[]string{
path, containerFlag,
fmt.Sprintf("sh /tmp/scripts/init-all-projects.sh \"%v\" \"%v\" \"%v\" \"%v\" \"%v\"",
string(gerritConfig), ciToolsGroupUuid, projectBootstrappersGroupUuid, developersGroupUuid, readOnlyGroupUuid),
})
if err != nil {
return errors.Wrapf(err, "Failed to execute init-all-projects.sh script inside gerrit pod")
}
return nil
}