| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- // Copyright 2019 Yunion
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package baremetal
- import (
- "sort"
- "yunion.io/x/jsonutils"
- "yunion.io/x/pkg/errors"
- baremetalapi "yunion.io/x/onecloud/pkg/apis/compute/baremetal"
- "yunion.io/x/onecloud/pkg/mcclient"
- "yunion.io/x/onecloud/pkg/mcclient/modulebase"
- "yunion.io/x/onecloud/pkg/mcclient/modules"
- baremetaloptions "yunion.io/x/onecloud/pkg/mcclient/options/compute/baremetal"
- )
- type BaremetalProfileManager struct {
- modulebase.ResourceManager
- }
- func (m *BaremetalProfileManager) GetMatchProfiles(s *mcclient.ClientSession, oemName string, model string) ([]baremetalapi.BaremetalProfileSpec, error) {
- params := baremetaloptions.BaremetalProfileListOptions{}
- limit := 0
- params.Limit = &limit
- params.OemName = []string{"", oemName}
- if len(model) > 0 {
- params.Model = []string{"", model}
- }
- results, err := m.List(s, jsonutils.Marshal(params))
- if err != nil {
- return nil, errors.Wrap(err, "List")
- }
- ret := make([]baremetalapi.BaremetalProfileSpec, 0)
- for i := range results.Data {
- details := baremetalapi.BaremetalProfileDetails{}
- err := results.Data[i].Unmarshal(&details)
- if err != nil {
- return nil, errors.Wrap(err, "Unmarshal")
- }
- ret = append(ret, details.ToSpec())
- }
- sort.Sort(baremetalapi.BaremetalProfileSpecs(ret))
- return ret, nil
- }
- var (
- BaremetalProfiles BaremetalProfileManager
- )
- func init() {
- BaremetalProfiles = BaremetalProfileManager{modules.NewComputeManager("baremetal_profile", "baremetal_profiles",
- []string{
- "oem_name",
- "model",
- "lan_channel",
- "root_id",
- "root_name",
- "string_pass",
- },
- []string{},
- )}
- modules.RegisterCompute(&BaremetalProfiles)
- }
|