func newCinderClient(configFile string) (*cinderClient, error) { cfg, err := readConfig(configFile) if err != nil { return nil, err } provider, err := openstack.AuthenticatedClient(cfg.toAuthOptions()) if err != nil { return nil, err } client, err := openstack.NewBlockStorageV2(provider, gophercloud.EndpointOpts{ Region: cfg.Global.Region, }) if err != nil { return nil, err } cc := cinderClient{ cinder: client, keyring: cfg.RBD.Keyring, } return &cc, nil }
func newClient(t *testing.T) (*gophercloud.ServiceClient, error) { ao, err := openstack.AuthOptionsFromEnv() th.AssertNoErr(t, err) client, err := openstack.AuthenticatedClient(ao) th.AssertNoErr(t, err) return openstack.NewBlockStorageV2(client, gophercloud.EndpointOpts{ Region: os.Getenv("OS_REGION_NAME"), }) }
func New(cfgFile string) CinderDriver { conf, err := processConfig(cfgFile) isV3 := strings.Contains(conf.Endpoint, "v3") if err != nil { log.Fatal("Error processing cinder driver config file: ", err) } _, err = os.Lstat(conf.MountPoint) if os.IsNotExist(err) { if err := os.MkdirAll(conf.MountPoint, 0755); err != nil { log.Fatal("Failed to create Mount directory during driver init: %v", err) } } auth := gophercloud.AuthOptions{ IdentityEndpoint: conf.Endpoint, Username: conf.Username, Password: conf.Password, TenantID: conf.TenantID, AllowReauth: true, } if isV3 == true && conf.DomainName == "" { log.Warning("V3 endpoint specified, but DomainName not set!") log.Warning("Setting to \"Default\", maybe it'll work.") auth.DomainName = "Default" } if conf.DomainName != "" && isV3 == true { log.Info("Authorizing to a V3 Endpoint") auth.DomainName = conf.DomainName } providerClient, err := openstack.AuthenticatedClient(auth) if err != nil { log.Fatal("Error initiating gophercloud provider client: ", err) } client, err := openstack.NewBlockStorageV2(providerClient, gophercloud.EndpointOpts{Region: "RegionOne"}) if err != nil { log.Fatal("Error initiating gophercloud cinder client: ", err) } d := CinderDriver{ Conf: &conf, Mutex: &sync.Mutex{}, Client: client, } return d }
func (c *Config) blockStorageV2Client(region string) (*gophercloud.ServiceClient, error) { return openstack.NewBlockStorageV2(c.osClient, gophercloud.EndpointOpts{ Region: region, Availability: c.getEndpointType(), }) }
func (d *driver) Init(r *core.RexRay) error { d.r = r fields := ef() var err error if d.instanceID, err = getInstanceID(d.r.Config); err != nil { return err } fields["instanceId"] = d.instanceID if d.regionName() == "" { if d.region, err = getInstanceRegion(d.r.Config); err != nil { return err } } else { d.region = d.regionName() } fields["region"] = d.region if d.availabilityZoneName() == "" { if d.availabilityZone, err = getInstanceAvailabilityZone(); err != nil { return err } } else { d.availabilityZone = d.availabilityZoneName() } fields["availabilityZone"] = d.availabilityZone authOpts := d.getAuthOptions() fields["identityEndpoint"] = d.authURL() fields["userId"] = d.userID() fields["userName"] = d.userName() if d.password() == "" { fields["password"] = "" } else { fields["password"] = "******" } fields["tenantId"] = d.tenantID() fields["tenantName"] = d.tenantName() fields["domainId"] = d.domainID() fields["domainName"] = d.domainName() if d.provider, err = openstack.AuthenticatedClient(authOpts); err != nil { return goof.WithFieldsE(fields, "error getting authenticated client", err) } if d.client, err = openstack.NewComputeV2(d.provider, gophercloud.EndpointOpts{Region: d.region}); err != nil { goof.WithFieldsE(fields, "error getting newComputeV2", err) } if d.clientBlockStorage, err = openstack.NewBlockStorageV1(d.provider, gophercloud.EndpointOpts{Region: d.region}); err != nil { return goof.WithFieldsE(fields, "error getting newBlockStorageV1", err) } if d.clientBlockStoragev2, err = openstack.NewBlockStorageV2(d.provider, gophercloud.EndpointOpts{Region: d.region}); err != nil { return goof.WithFieldsE(fields, "error getting newBlockStorageV2", err) } log.WithField("provider", providerName).Info("storage driver initialized") return nil }