// Generates apiserver-like line with average length of 100 symbols func generateLogLine(id int) string { method := httpMethods[rand.Intn(len(httpMethods))] namespace := namespaces[rand.Intn(len(namespaces))] podName := rand.String(rand.IntnRange(3, 5)) url := fmt.Sprintf("/api/v1/namespaces/%s/pods/%s", namespace, podName) status := rand.IntnRange(200, 600) return fmt.Sprintf("%d %s %s %d", id, method, url, status) }
func (util *FlockerUtil) CreateVolume(c *flockerVolumeProvisioner) (datasetUUID string, volumeSizeGB int, labels map[string]string, err error) { if c.flockerClient == nil { c.flockerClient, err = c.plugin.newFlockerClient("") if err != nil { return } } nodes, err := c.flockerClient.ListNodes() if err != nil { return } if len(nodes) < 1 { err = fmt.Errorf("no nodes found inside the flocker cluster to provision a dataset") return } // select random node rand.Seed(time.Now().UTC().UnixNano()) node := nodes[rand.Intn(len(nodes))] glog.V(2).Infof("selected flocker node with UUID '%s' to provision dataset", node.UUID) capacity := c.options.PVC.Spec.Resources.Requests[v1.ResourceName(v1.ResourceStorage)] requestBytes := capacity.Value() volumeSizeGB = int(volume.RoundUpSize(requestBytes, 1024*1024*1024)) createOptions := &flockerapi.CreateDatasetOptions{ MaximumSize: requestBytes, Metadata: map[string]string{ "type": "k8s-dynamic-prov", "pvc": c.options.PVC.Name, }, Primary: node.UUID, } datasetState, err := c.flockerClient.CreateDataset(createOptions) if err != nil { return } datasetUUID = datasetState.DatasetID glog.V(2).Infof("successfully created Flocker dataset with UUID '%s'", datasetUUID) return }