Changeset 20147
- Timestamp:
- Oct 14, 2008, 11:56:04 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/Nebulous-Server/bin/neb-voladm (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous-Server/bin/neb-voladm
r20143 r20147 3 3 # Copyright (C) 2008 Joshua Hoblitt 4 4 # 5 # $Id: neb-voladm,v 1. 2 2008-10-14 20:13:17jhoblitt Exp $5 # $Id: neb-voladm,v 1.3 2008-10-14 21:56:04 jhoblitt Exp $ 6 6 7 7 use strict; … … 20 20 use Pod::Usage qw( pod2usage ); 21 21 22 my ($db, $dbhost, $dbuser, $dbpass, $vname, $vhost); 22 my ( 23 $allocate, 24 $available, 25 $db, 26 $dbhost, 27 $dbpass, 28 $dbuser, 29 $debug, 30 $vhost, 31 $vname, 32 $xattr, 33 ); 23 34 24 35 $db = $ENV{'NEB_DB'} unless $db; … … 28 39 29 40 GetOptions( 41 'allocate=i' => \$allocate, 42 'available=i' => \$available, 30 43 'db|d=s' => \$db, 44 'debug' => \$debug, 31 45 'host=s' => \$dbhost, 46 'pass|p=s' => \$dbpass, 32 47 'user|u=s' => \$dbuser, 33 ' pass|p=s' => \$dbpass,48 'vhost=s' => \$vhost, 34 49 'vname|n=s' => \$vname, 35 ' vhost=s' => \$vhost,50 'xattr=i' => \$xattr, 36 51 ) || pod2usage( 2 ); 37 52 38 53 pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV; 39 54 pod2usage( -msg => "Required options: --db --user --pass", -exitval => 2 ) 40 unless $db && $dbuser && $dbpass; 55 unless defined $db && defined $dbuser && defined $dbpass; 56 57 # are we listing the volumes or updating? 58 if (defined $allocate or defined $available or defined $xattr) { 59 pod2usage( -msg => "Options: --allocate, --avaiable, and --xattr Require options --vhost or --vname", -exitval => 2 ) 60 unless defined $vhost or defined $vname; 61 pod2usage( -msg => "Options: --allocate, --avaiable, and --xattr Must be 0 or 1", -exitval => 2) 62 if (defined $allocate and $allocate !~ m/^[01]$/) 63 or (defined $available and $available !~ m/^[01]$/) 64 or (defined $xattr and $xattr !~ m/^[01]$/); 65 } 41 66 42 67 my $dbh = DBI->connect( … … 51 76 ); 52 77 78 my %constraint; 79 $constraint{'v.host'} = $vhost if defined $vhost; 80 $constraint{'v.name'} = $vname if defined $vname; 81 82 my %set; 83 $set{'v.allocate'} = $allocate if defined $allocate; 84 $set{'v.available'} = $available if defined $available; 85 $set{'v.xattr'} = $xattr if defined $xattr; 86 87 if (%set) { 88 my ($q, @bind) = sql_interp("UPDATE volume AS v SET", \%set, "WHERE", \%constraint); 89 warn "$q\n" if $debug; 90 my $query = $dbh->prepare($q); 91 $query->execute(@bind); 92 } 93 53 94 my $sql = Nebulous::Server::SQL->new(); 54 55 my %constraint; 56 $constraint{host} = $vhost if defined $vhost; 57 $constraint{name} = $vname if defined $vname; 58 59 my $select = sql_inerp($sql->get_volumes . " WHERE", \%constraint); 60 61 my $query = $dbh->prepare($select); 62 $query->execute(); 95 my ($q, @bind); 96 if (%constraint) { 97 ($q, @bind) = sql_interp($sql->get_volumes . "WHERE", \%constraint); 98 } else { 99 $q = $sql->get_volumes; 100 } 101 102 warn "$q\n" if $debug; 103 my $query = $dbh->prepare($q); 104 $query->execute(@bind); 105 106 my $format = "%-15s %-15s %-10s %-10s %-10s %-10s\n"; 107 my @columns = qw(host name mounted allocate available xattr); 108 printf($format, @columns); 109 110 while (my $row = $query->fetchrow_hashref) { 111 printf($format, @$row{@columns}); 112 } 63 113 64 114 __END__ … … 68 118 =head1 NAME 69 119 70 neb- addvol - add a storage volume to a Nebulous server120 neb-voladm - manage Nebulous server storage volumes 71 121 72 122 =head1 SYNOPSIS
Note:
See TracChangeset
for help on using the changeset viewer.
