shu-san-scripts 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.rdoc CHANGED
@@ -38,6 +38,60 @@ should get you started.
38
38
  assume the host they are running on is somewhat disposable. Your needs
39
39
  may differ...
40
40
 
41
+ == Synopsis
42
+
43
+ General help can be obtained by running +store --help+, or +store+ with no
44
+ arguments
45
+
46
+ A command-line tool for managing iSCSI targets on OpenSolaris.
47
+
48
+ Available commands:
49
+
50
+ help Show help for a command
51
+ new_vol Create a new iSCSI volume in the SAN volume store.
52
+
53
+ Global options:
54
+
55
+ -h --help show this help message and quit
56
+ -C --no-color disable color
57
+ -V --verbose make store command output more detailed
58
+ -v --version show version information and quit
59
+
60
+ Help on individual commands can then be obtained using the command as an
61
+ argument to +store help+. For instance
62
+
63
+ # store help new_vol
64
+
65
+ produces
66
+
67
+ store new_volume [--volume-store ZFS_PATH][--name GUID] [--size INTEGER]
68
+
69
+ aliases: new add add_vol
70
+
71
+ Create a new iSCSI volume in the SAN volume store.
72
+
73
+ By default, this command creates a 20G ZFS volume, and marks it for sharing
74
+ as an iSCSI target on the local network.
75
+
76
+ Warning: By default this commands sets up the iSCSI target with NO security.
77
+ This is fine for testing and use in the labs, but obviously is not ideal if
78
+ you care about the data stored on this new volume...
79
+
80
+ options:
81
+
82
+ -n --name the name of the new volume. This must be a valid ZFS volume name, and
83
+ defaults to an RFC 4122 GUID.
84
+
85
+ -s --size the size of the new iSCSI volume. Note that while ZFS allows you to change
86
+ the size of the new volume relatively easily, because the iSCSI initiator
87
+ sees this volume as a raw device changing the size later may be very easy or
88
+ very difficult depending on the initiators operating system (and the specific
89
+ file system being used). In other words, choose with care: by default this
90
+ command uses a size of 20G, which should be enough for most tasks in the
91
+ labs.
92
+
93
+ -v --volume_store specifify the ZFS root of the new iSCSI volume. Defaults to "store/volumes".
94
+
41
95
  == Contributing to the SHU SAN Scripts
42
96
 
43
97
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shu-san-scripts
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - David Love
@@ -65,8 +65,23 @@ dependencies:
65
65
  name: uuidtools
66
66
  prerelease: false
67
67
  - !ruby/object:Gem::Dependency
68
- type: :development
68
+ type: :runtime
69
69
  requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 11
75
+ segments:
76
+ - 1
77
+ - 2
78
+ version: "1.2"
79
+ version_requirements: *id004
80
+ name: ansi
81
+ prerelease: false
82
+ - !ruby/object:Gem::Dependency
83
+ type: :development
84
+ requirement: &id005 !ruby/object:Gem::Requirement
70
85
  none: false
71
86
  requirements:
72
87
  - - ~>
@@ -77,12 +92,12 @@ dependencies:
77
92
  - 0
78
93
  - 0
79
94
  version: 1.0.0
80
- version_requirements: *id004
95
+ version_requirements: *id005
81
96
  name: bundler
82
97
  prerelease: false
83
98
  - !ruby/object:Gem::Dependency
84
99
  type: :development
85
- requirement: &id005 !ruby/object:Gem::Requirement
100
+ requirement: &id006 !ruby/object:Gem::Requirement
86
101
  none: false
87
102
  requirements:
88
103
  - - ~>
@@ -93,12 +108,12 @@ dependencies:
93
108
  - 6
94
109
  - 0
95
110
  version: 1.6.0
96
- version_requirements: *id005
111
+ version_requirements: *id006
97
112
  name: jeweler
98
113
  prerelease: false
99
114
  - !ruby/object:Gem::Dependency
100
115
  type: :development
101
- requirement: &id006 !ruby/object:Gem::Requirement
116
+ requirement: &id007 !ruby/object:Gem::Requirement
102
117
  none: false
103
118
  requirements:
104
119
  - - ~>
@@ -109,12 +124,12 @@ dependencies:
109
124
  - 6
110
125
  - 0
111
126
  version: 0.6.0
112
- version_requirements: *id006
127
+ version_requirements: *id007
113
128
  name: yard
114
129
  prerelease: false
115
130
  - !ruby/object:Gem::Dependency
116
131
  type: :development
117
- requirement: &id007 !ruby/object:Gem::Requirement
132
+ requirement: &id008 !ruby/object:Gem::Requirement
118
133
  none: false
119
134
  requirements:
120
135
  - - ~>
@@ -125,12 +140,12 @@ dependencies:
125
140
  - 8
126
141
  - 1
127
142
  version: 1.8.1
128
- version_requirements: *id007
143
+ version_requirements: *id008
129
144
  name: vclog
130
145
  prerelease: false
131
146
  - !ruby/object:Gem::Dependency
132
147
  type: :development
133
- requirement: &id008 !ruby/object:Gem::Requirement
148
+ requirement: &id009 !ruby/object:Gem::Requirement
134
149
  none: false
135
150
  requirements:
136
151
  - - ">="
@@ -139,12 +154,12 @@ dependencies:
139
154
  segments:
140
155
  - 0
141
156
  version: "0"
142
- version_requirements: *id008
157
+ version_requirements: *id009
143
158
  name: minitest
144
159
  prerelease: false
145
160
  - !ruby/object:Gem::Dependency
146
161
  type: :development
147
- requirement: &id009 !ruby/object:Gem::Requirement
162
+ requirement: &id010 !ruby/object:Gem::Requirement
148
163
  none: false
149
164
  requirements:
150
165
  - - ">="
@@ -153,49 +168,21 @@ dependencies:
153
168
  segments:
154
169
  - 0
155
170
  version: "0"
156
- version_requirements: *id009
171
+ version_requirements: *id010
157
172
  name: riot
158
173
  prerelease: false
159
174
  description: See the README file.
160
175
  email: david@homeunix.org.uk
161
- executables:
162
- - store
176
+ executables: []
177
+
163
178
  extensions: []
164
179
 
165
180
  extra_rdoc_files:
166
181
  - LICENSE.txt
167
182
  - README.rdoc
168
183
  files:
169
- - .document
170
- - .rvmrc
171
- - Gemfile
172
- - Gemfile.lock
173
- - HISTORY
174
184
  - LICENSE.txt
175
185
  - README.rdoc
176
- - Rakefile
177
- - VERSION
178
- - bin/store
179
- - lib/SANStore.rb
180
- - lib/SANStore/cli.rb
181
- - lib/SANStore/cli/base.rb
182
- - lib/SANStore/cli/commands.rb
183
- - lib/SANStore/cli/commands/help.rb
184
- - lib/SANStore/cli/commands/list_vols.rb
185
- - lib/SANStore/cli/commands/new_vol.rb
186
- - lib/SANStore/cli/logger.rb
187
- - lib/SANStore/cri.rb
188
- - lib/SANStore/cri/base.rb
189
- - lib/SANStore/cri/command.rb
190
- - lib/SANStore/cri/core_ext.rb
191
- - lib/SANStore/cri/core_ext/string.rb
192
- - lib/SANStore/cri/option_parser.rb
193
- - lib/SANStore/helpers/uuid.rb
194
- - lib/SANStore/iSCSI/comstar.rb
195
- - lib/SANStore/zfs/zfs.rb
196
- - shu-san-scripts.gemspec
197
- - test/helper.rb
198
- - test/test_shu-san-scripts.rb
199
186
  homepage: http://github.com/dlove24/shu-san-scripts
200
187
  licenses:
201
188
  - ISC
@@ -225,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
225
212
  requirements: []
226
213
 
227
214
  rubyforge_project:
228
- rubygems_version: 1.8.6
215
+ rubygems_version: 1.8.10
229
216
  signing_key:
230
217
  specification_version: 3
231
218
  summary: Scripts used to set-up and manage iSCSI targets on OpenSolaris (ZFS) systems.
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
data/.rvmrc DELETED
@@ -1,27 +0,0 @@
1
- ruby_string="ruby-1.8.7-p352"
2
- gemset_name="san-scripts"
3
-
4
- if rvm list strings | grep -q "${ruby_string}" ; then
5
-
6
- # Load or create the specified environment
7
- if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
8
- && -s "${rvm_path:-$HOME/.rvm}/environments/${ruby_string}@${gemset_name}" ]] ; then
9
- \. "${rvm_path:-$HOME/.rvm}/environments/${ruby_string}@${gemset_name}"
10
- else
11
- rvm --create "${ruby_string}@${gemset_name}"
12
- fi
13
-
14
- # Ensure that Bundler is installed, install it if it is not.
15
- if ! command -v bundle ; then
16
- gem install bundler
17
- fi
18
-
19
- # Bundle while reducing excess noise.
20
- bundle | grep -v 'Using' | grep -v 'complete' | sed '/^$/d'
21
-
22
- else
23
-
24
- # Notify the user to install the desired interpreter before proceeding.
25
- echo "${ruby_string} was not found, please run 'rvm install ${ruby_string}' and then cd back into the project directory."
26
-
27
- fi
data/Gemfile DELETED
@@ -1,40 +0,0 @@
1
- ###
2
- ### Sources
3
- ###
4
-
5
- # Main Ruby Gems site
6
- source "http://rubygems.org"
7
-
8
- ###
9
- ### Core Gems. These are required in _all_ environments (additional environments
10
- ### follow).
11
- ###
12
-
13
- # Command Line Interface Library
14
- gem "cri", "~> 2.0.2"
15
-
16
- # Library extensions
17
- gem "facets", ">= 2.4"
18
-
19
- # GUID library
20
- gem "uuidtools", "~> 2.1.2"
21
-
22
- ###
23
- ### Development Gems. All _additional_ gems required by development (as opposed to
24
- ### production environments). If it is required at run-time, it
25
- ### belongs above.
26
- group :development do
27
-
28
- # Gem management tools
29
- gem "bundler", "~> 1.0.0"
30
- gem "jeweler", "~> 1.6.0"
31
-
32
- # Documentation Tools
33
- gem "yard", "~> 0.6.0"
34
- gem "vclog", "~> 1.8.1"
35
-
36
- # Testing Tools
37
- gem "minitest", ">= 0"
38
- gem "riot"
39
-
40
- end
data/Gemfile.lock DELETED
@@ -1,35 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- ansi (1.3.0)
5
- cri (2.0.2)
6
- facets (2.9.2)
7
- git (1.2.5)
8
- jeweler (1.6.4)
9
- bundler (~> 1.0)
10
- git (>= 1.2.5)
11
- rake
12
- minitest (2.6.0)
13
- rake (0.9.2)
14
- riot (0.12.5)
15
- rr
16
- rr (1.0.4)
17
- uuidtools (2.1.2)
18
- vclog (1.8.1)
19
- ansi (>= 1.2)
20
- facets (>= 2.4)
21
- yard (0.6.8)
22
-
23
- PLATFORMS
24
- ruby
25
-
26
- DEPENDENCIES
27
- bundler (~> 1.0.0)
28
- cri (~> 2.0.2)
29
- facets (>= 2.4)
30
- jeweler (~> 1.6.0)
31
- minitest
32
- riot
33
- uuidtools (~> 2.1.2)
34
- vclog (~> 1.8.1)
35
- yard (~> 0.6.0)
data/HISTORY DELETED
@@ -1,41 +0,0 @@
1
- RELEASE HISTORY
2
-
3
- v0.0.2 / 2011-09-23
4
-
5
- Regenerate gemspec for version 0.0.2 (David Love david@homeunix.org.uk)
6
-
7
- Changes:
8
-
9
- * 3 General Enhancements
10
-
11
- * Version bump to 0.0.1
12
- * Version bump to 0.0.0
13
- * Initial commit to shu-san-scripts.
14
-
15
- * 1 Patch Enhancements
16
-
17
- * Version bump to 0.0.2. Added infrastructure needed for minimally working version
18
-
19
-
20
- HEAD / 2011-09-25
21
-
22
- Current Development (David Love)
23
-
24
- Changes:
25
-
26
- * 3 General Enhancements
27
-
28
- * Version bump to 0.0.3
29
- * Regenerate gemspec for version 0.0.2
30
- * Regenerate gemspec for version 0.0.2
31
-
32
- * 1 Bug Fixes
33
-
34
- * Format options as well as the text description
35
-
36
- * 3 Patch Enhancements
37
-
38
- * Add ability to generate the correct ZFS commands. Don't actually act on them yet
39
- * Added support for sequential UUID's
40
- * Require the Facets library in the main gem as well
41
-
data/Rakefile DELETED
@@ -1,45 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
- require 'bundler'
5
- begin
6
- Bundler.setup(:default, :development)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
12
- require 'rake'
13
-
14
- require 'jeweler'
15
- Jeweler::Tasks.new do |gem|
16
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "shu-san-scripts"
18
- gem.homepage = "http://github.com/dlove24/shu-san-scripts"
19
- gem.license = "ISC"
20
- gem.summary = %Q{Scripts used to set-up and manage iSCSI targets on OpenSolaris (ZFS) systems.}
21
- gem.description = %Q{See the README file.}
22
- gem.email = "david@homeunix.org.uk"
23
- gem.authors = ["David Love"]
24
- # dependencies defined in Gemfile
25
- end
26
- Jeweler::RubygemsDotOrgTasks.new
27
-
28
- require 'rake/testtask'
29
- Rake::TestTask.new(:test) do |test|
30
- test.libs << 'lib' << 'test'
31
- test.pattern = 'test/**/test_*.rb'
32
- test.verbose = true
33
- end
34
-
35
- task :default => :test
36
-
37
- require 'rake/rdoctask'
38
- Rake::RDocTask.new do |rdoc|
39
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
40
-
41
- rdoc.rdoc_dir = 'rdoc'
42
- rdoc.title = "shu-san-scripts #{version}"
43
- rdoc.rdoc_files.include('README*')
44
- rdoc.rdoc_files.include('lib/**/*.rb')
45
- end
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.0
data/bin/store DELETED
@@ -1,50 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- ### Copyright (c) 2011 David Love <david@homeunix.org.uk>
4
- ###
5
- ### Permission to use, copy, modify, and/or distribute this software for
6
- ### any purpose with or without fee is hereby granted, provided that the
7
- ### above copyright notice and this permission notice appear in all copies.
8
- ###
9
- ### THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- ### WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- ### MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- ### ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- ### WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- ### ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
- ### OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
- ###
17
-
18
- ### @author David Love
19
- ###
20
- ### Boot straping Command. Used to initalize various aspects of the Mercury
21
- ### environment.
22
- ###
23
- ### @note The sub-commands provided by the bootstrap command assume (at-least)
24
- ### a minimally working Ruby environment, with the required gems installed. Various
25
- ### 'First Boot' scripts are available in the `scripts` directory for different
26
- ### platforms which will achieve at least this minimal state
27
- ###
28
-
29
- # Add lib to load path
30
- $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + '/../lib'))
31
-
32
- # Load the rubygems library
33
- require 'rubygems'
34
-
35
- # Load core application library
36
- require 'SANStore'
37
-
38
- # Load command line handler
39
- require 'SANStore/cri'
40
- require 'SANStore/cli'
41
-
42
- # Load the commands from the cmds dir
43
- plugin_dir = File.expand_path(File.dirname(__FILE__) + '/../cmds')
44
-
45
- Dir[plugin_dir + '/*.rb'].sort.each{|file|
46
- require file
47
- }
48
-
49
- # Run base
50
- SANStore::CLI::Base.new.run(ARGV)