// Register installs an extension to the target func (p *Pluginator) Register() error { defer trace.End(trace.Begin("")) var err error if !p.connected { return errors.New("not connected") } desc := types.Description{ Label: p.info.Name, Summary: p.info.Summary, } e := types.Extension{ Key: p.info.Key, Version: p.info.Version, Company: p.info.Company, Description: &desc, } eci := types.ExtensionClientInfo{ Version: p.info.Version, Company: p.info.Company, Description: &desc, Type: p.info.Type, Url: p.info.URL, } e.Client = append(e.Client, eci) d := types.KeyValue{ Key: "name", Value: p.info.Name, } eri := types.ExtensionResourceInfo{ Locale: "en_US", Module: "name", } eri.Data = append(eri.Data, d) e.ResourceList = append(e.ResourceList, eri) // HTTPS requires extension server info if strings.HasPrefix(strings.ToLower(p.info.URL), "https://") { esi := types.ExtensionServerInfo{ Url: p.info.URL, Description: &desc, Company: p.info.Company, Type: "HTTPS", AdminEmail: []string{"*****@*****.**"}, ServerThumbprint: p.info.ServerThumbprint, } e.Server = append(e.Server, esi) } e.ShownInSolutionManager = &p.info.ShowInSolutionManager e.LastHeartbeatTime = time.Now().UTC() err = p.ExtensionManager.Register(p.Context, e) if err != nil { return err } return nil }