in cmd/install.go [43:118]
func installCommandAction(cmd *cobra.Command, _ []string) error {
zipPathFile, err := cmd.Flags().GetString(cobraext.ZipPackageFilePathFlagName)
if err != nil {
return cobraext.FlagParsingError(err, cobraext.ZipPackageFilePathFlagName)
}
packageRootPath, err := cmd.Flags().GetString(cobraext.PackageRootFlagName)
if err != nil {
return cobraext.FlagParsingError(err, cobraext.PackageRootFlagName)
}
skipValidation, err := cmd.Flags().GetBool(cobraext.BuildSkipValidationFlagName)
if err != nil {
return cobraext.FlagParsingError(err, cobraext.BuildSkipValidationFlagName)
}
profile, err := cobraext.GetProfileFlag(cmd)
if err != nil {
return err
}
var opts []kibana.ClientOption
tlsSkipVerify, _ := cmd.Flags().GetBool(cobraext.TLSSkipVerifyFlagName)
if tlsSkipVerify {
opts = append(opts, kibana.TLSSkipVerify())
}
kibanaClient, err := stack.NewKibanaClientFromProfile(profile, opts...)
if err != nil {
return fmt.Errorf("could not create kibana client: %w", err)
}
if zipPathFile == "" && packageRootPath == "" {
var found bool
var err error
packageRootPath, found, err = packages.FindPackageRoot()
if !found {
return errors.New("package root not found")
}
if err != nil {
return fmt.Errorf("locating package root failed: %w", err)
}
}
installer, err := installer.NewForPackage(cmd.Context(), installer.Options{
Kibana: kibanaClient,
RootPath: packageRootPath,
SkipValidation: skipValidation,
ZipPath: zipPathFile,
})
if err != nil {
return fmt.Errorf("package installation failed: %w", err)
}
// Check conditions
keyValuePairs, err := cmd.Flags().GetStringSlice(cobraext.CheckConditionFlagName)
if err != nil {
return fmt.Errorf("can't process check-condition flag: %w", err)
}
if len(keyValuePairs) > 0 {
manifest, err := installer.Manifest(cmd.Context())
if err != nil {
return err
}
cmd.Println("Check conditions for package")
err = packages.CheckConditions(*manifest, keyValuePairs)
if err != nil {
return fmt.Errorf("checking conditions failed: %w", err)
}
cmd.Println("Requirements satisfied - the package can be installed.")
cmd.Println("Done")
return nil
}
_, err = installer.Install(cmd.Context())
return err
}