linodeapi 0.1.1 → 0.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2bb89d05c98ea7f75197a191ff416262b6264c32
4
- data.tar.gz: cb9ee0b2f15d1fbd7c5434502e4d37c126be1edd
3
+ metadata.gz: 6394f88d9c7358a4903ea5245de4916b3d0318c6
4
+ data.tar.gz: 4fc2de46d5e3aaf95844b4720bda4285e81f7ba4
5
5
  SHA512:
6
- metadata.gz: 4cbd8c6355395392e01ddae32c7392cee3950bbbbd2b00c59b8085cc86c5047b5eb2e750e09795767f952f9832e4289ab9b068d2afd6c4479570496c521fb036
7
- data.tar.gz: 4dc00e59bbb2d9186f9e33bbf969d290ecd5002d7db33292c4c6f1286d998355079d3c66865dfafc2191b26f2cde2f539184f5ef739e8a97815a253ef5c1fd04
6
+ metadata.gz: f9364ea374b898fa6035724c49233f74b003a7732d0f047d3b386eae0a1c9da9be8ffb39560f08d99f9b923afbd2121932d55de4b27a104d261cd4a2be9de711
7
+ data.tar.gz: 9e90e89aea6e51a67bad8cbed56c8b277c01a4aaed11d292020af15596d10e3cd09b1de5c5deacc2d597b6185b4794f49a18c827e4836f2f78de19e62763ca6b
data/README.md CHANGED
@@ -12,6 +12,48 @@ Ruby API wrapper for the [Linode API](https://www.linode.com/api)
12
12
 
13
13
  ## Usage
14
14
 
15
+ Create an API object from the LinodeAPI::Raw class, by providing it with either an API key or username and password:
16
+
17
+ ```
18
+ require 'linodeapi'
19
+
20
+ api_one = LinodeAPI::Raw(apikey: 'YOUR_KEY_HERE')
21
+ api_two = LinodeAPI::Raw(username: 'akerl', password: 'cyberpond')
22
+ ```
23
+
24
+ The Raw API object is a faithful representation of Linode's [API spec](https://www.linode.com/api/utility/api.spec), parsed directly from the upstream source at runtime. Calls can be made using the methods shown in Linode's [API docs](https://www.linode.com/api):
25
+
26
+ ```
27
+ # cat list.rb
28
+ require 'linodeapi'
29
+
30
+ api = LinodeAPI::Raw.new(apikey: 'KEY')
31
+
32
+ result = api.linode.list
33
+
34
+ puts "#{result.size} Linodes found: #{result.map(&:label).join(', ')}"
35
+ p result.first
36
+ ```
37
+
38
+ ```
39
+ # ruby list.rb
40
+ 6 Linodes found: miro, olhado, quara, grego, ela, quim
41
+ #<OpenStruct alert_cpu_enabled=0, alert_bwin_enabled=0, alert_bwquota_enabled=0, alert_diskio_threshold=1000, backupwindow=4, watchdog=1, distributionvendor="Arch", datacenterid=6, status=1, alert_diskio_enabled=0, create_dt="2014-07-30 20:09:12.0", totalhd=49152, alert_bwquota_threshold=80, totalram=2048, alert_bwin_threshold=5, linodeid=591319, alert_bwout_threshold=5, alert_bwout_enabled=0, backupsenabled=0, alert_cpu_threshold=90, planid=2, backupweeklyday=0, label="miro", lpm_displaygroup="cluster", totalxfer=3000>
42
+ ```
43
+
44
+ Arguments passed in are named just like in the docs:
45
+
46
+ ```
47
+ api.linode.ip.list(linodeid: 591319)
48
+ ```
49
+
50
+ The library will raise an exception if you exclude a required parameter:
51
+
52
+ ```
53
+ api.linode.create
54
+ # ArgumentError: linode.create requires planid
55
+ ```
56
+
15
57
  ## Installation
16
58
 
17
59
  gem install linodeapi
data/dev/spec.yml CHANGED
@@ -80,6 +80,10 @@ avail:
80
80
  kernels:
81
81
  - desc: List available kernels.
82
82
  - params:
83
+ - iskvm:
84
+ - desc: Limits the results to show only KVM kernels
85
+ - required: false
86
+ - type: :boolean
83
87
  - isxen:
84
88
  - desc: Limits the results to show only Xen kernels
85
89
  - required: false
@@ -479,14 +483,18 @@ linode:
479
483
  - desc: Enable the disableUpdateDB filesystem helper
480
484
  - required: false
481
485
  - type: :boolean
486
+ - helper_distro:
487
+ - desc: Enable the Distro filesystem helper. Corrects fstab and inittab/upstart
488
+ entries depending on the kernel you're booting. You want this.
489
+ - required: false
490
+ - type: :boolean
482
491
  - helper_network:
483
492
  - desc: Automatically creates network configuration files for your distro
484
493
  and places them into your filesystem.
485
494
  - required: false
486
495
  - type: :boolean
487
496
  - helper_xen:
488
- - desc: Enable the Xen filesystem helper. Corrects fstab and inittab/upstart
489
- entries depending on the kernel you're booting. You want this.
497
+ - desc: Deprecated - use helper_distro.
490
498
  - required: false
491
499
  - type: :boolean
492
500
  - kernelid:
@@ -522,6 +530,10 @@ linode:
522
530
  - desc: 'One of ''default'', ''single'', ''binbash'' '
523
531
  - required: false
524
532
  - type: :string
533
+ - virt_mode:
534
+ - desc: 'Controls the virtualization mode. One of ''paravirt'', ''fullvirt'' '
535
+ - required: false
536
+ - type: :string
525
537
  - throws:
526
538
  - NOTFOUND
527
539
  - VALIDATION
@@ -580,14 +592,18 @@ linode:
580
592
  - desc: Enable the disableUpdateDB filesystem helper
581
593
  - required: false
582
594
  - type: :boolean
595
+ - helper_distro:
596
+ - desc: Enable the Distro filesystem helper. Corrects fstab and inittab/upstart
597
+ entries depending on the kernel you're booting. You want this.
598
+ - required: false
599
+ - type: :boolean
583
600
  - helper_network:
584
601
  - desc: Automatically creates network configuration files for your distro
585
602
  and places them into your filesystem.
586
603
  - required: false
587
604
  - type: :boolean
588
605
  - helper_xen:
589
- - desc: Enable the Xen filesystem helper. Corrects fstab and inittab/upstart
590
- entries depending on the kernel you're booting. You want this.
606
+ - desc: Deprecated - use helper_distro.
591
607
  - required: false
592
608
  - type: :boolean
593
609
  - kernelid:
@@ -623,6 +639,10 @@ linode:
623
639
  - desc: 'One of ''default'', ''single'', ''binbash'' '
624
640
  - required: false
625
641
  - type: :string
642
+ - virt_mode:
643
+ - desc: 'Controls the virtualization mode. One of ''paravirt'', ''fullvirt'' '
644
+ - required: false
645
+ - type: :string
626
646
  - throws:
627
647
  - NOTFOUND
628
648
  - VALIDATION
@@ -1174,13 +1194,19 @@ nodebalancer:
1174
1194
  - required: false
1175
1195
  - type: :string
1176
1196
  - check_body:
1177
- - desc: When check=http_body, a regex against the expected result body
1197
+ - desc: When check=http, a regex to match within the first 16,384 bytes of
1198
+ the response body
1178
1199
  - required: false
1179
1200
  - type: :string
1180
1201
  - check_interval:
1181
1202
  - desc: Seconds between health check probes. 2-3600
1182
1203
  - required: false
1183
1204
  - type: :numeric
1205
+ - check_passive:
1206
+ - desc: Enable passive checks based on observing communication with back-end
1207
+ nodes.
1208
+ - required: false
1209
+ - type: :boolean
1184
1210
  - check_path:
1185
1211
  - desc: When check=http, the path to request
1186
1212
  - required: false
@@ -1261,13 +1287,19 @@ nodebalancer:
1261
1287
  - required: false
1262
1288
  - type: :string
1263
1289
  - check_body:
1264
- - desc: When check=http_body, a regex against the expected result body
1290
+ - desc: When check=http, a regex to match within the first 16,384 bytes of
1291
+ the response body
1265
1292
  - required: false
1266
1293
  - type: :string
1267
1294
  - check_interval:
1268
1295
  - desc: Seconds between health check probes. 2-3600
1269
1296
  - required: false
1270
1297
  - type: :numeric
1298
+ - check_passive:
1299
+ - desc: Enable passive checks based on observing communication with back-end
1300
+ nodes.
1301
+ - required: false
1302
+ - type: :boolean
1271
1303
  - check_path:
1272
1304
  - desc: When check=http, the path to request
1273
1305
  - required: false
@@ -1440,6 +1472,117 @@ nodebalancer:
1440
1472
  - throws:
1441
1473
  - NOTFOUND
1442
1474
  - VALIDATION
1475
+ professionalservices:
1476
+ scope:
1477
+ create:
1478
+ - desc: Creates a new Professional Services scope submission
1479
+ - params:
1480
+ - application_quantity:
1481
+ - desc: How many separate applications or websites are involved in this migration?
1482
+ - required: false
1483
+ - type: :string
1484
+ - content_management:
1485
+ - desc: Centralized interfaces for editing, organizing, and publishing content
1486
+ - required: false
1487
+ - type: :string
1488
+ - crossover:
1489
+ - desc: These can assist in providing reliable crossover--failures of individual
1490
+ components can be transparent to the application.
1491
+ - required: false
1492
+ - type: :string
1493
+ - current_provider:
1494
+ - desc: ''
1495
+ - required: false
1496
+ - type: :string
1497
+ - customer_name:
1498
+ - desc: ''
1499
+ - required: false
1500
+ - type: :string
1501
+ - database_server:
1502
+ - desc: Generally used by applications to provide an organized way to capture
1503
+ and manipulate data
1504
+ - required: false
1505
+ - type: :string
1506
+ - email_address:
1507
+ - desc: ''
1508
+ - required: false
1509
+ - type: :string
1510
+ - linode_datacenter:
1511
+ - desc: Which datacenters would you like your Linodes to be deployed in?
1512
+ - required: false
1513
+ - type: :string
1514
+ - linode_plan:
1515
+ - desc: Which Linode plans would you like to deploy?
1516
+ - required: false
1517
+ - type: :string
1518
+ - mail_filtering:
1519
+ - desc: Services here manipulate recieved messages in various ways
1520
+ - required: false
1521
+ - type: :string
1522
+ - mail_retrieval:
1523
+ - desc: User mail clients connect to these to retrieve delivered mail
1524
+ - required: false
1525
+ - type: :string
1526
+ - mail_transfer:
1527
+ - desc: Mail transfer agents facilitate message transfer between servers
1528
+ - required: false
1529
+ - type: :string
1530
+ - managed:
1531
+ - desc: ''
1532
+ - required: false
1533
+ - type: :string
1534
+ - monitoring:
1535
+ - desc: Constant monitoring of your deployed systems--these can also provide
1536
+ automatic notifications for service failures.
1537
+ - required: false
1538
+ - type: :string
1539
+ - notes:
1540
+ - desc: ''
1541
+ - required: false
1542
+ - type: :string
1543
+ - phone_number:
1544
+ - desc: ''
1545
+ - required: false
1546
+ - type: :string
1547
+ - provider_access:
1548
+ - desc: What types of server access do you have at your current provider?
1549
+ - required: false
1550
+ - type: :string
1551
+ - replication:
1552
+ - desc: Redundant services often have shared state--replication automatically
1553
+ propagates state changes between individual components.
1554
+ - required: false
1555
+ - type: :string
1556
+ - requested_service:
1557
+ - desc: ''
1558
+ - required: false
1559
+ - type: :string
1560
+ - server_quantity:
1561
+ - desc: How many separate servers are involved in this migration?
1562
+ - required: false
1563
+ - type: :string
1564
+ - system_administration:
1565
+ - desc: Various web interfaces for performing system administration tasks
1566
+ - required: false
1567
+ - type: :string
1568
+ - ticket_number:
1569
+ - desc: ''
1570
+ - required: false
1571
+ - type: :string
1572
+ - web_cache:
1573
+ - desc: Caching mechanisms provide temporary storage for web requests--cached
1574
+ content can generally be retrieved faster.
1575
+ - required: false
1576
+ - type: :string
1577
+ - web_server:
1578
+ - desc: These provide network protocol handling for hosting websites.
1579
+ - required: false
1580
+ - type: :string
1581
+ - webmail:
1582
+ - desc: Access and administrate mail via web interfaces
1583
+ - required: false
1584
+ - type: :string
1585
+ - throws: []
1443
1586
  stackscript:
1444
1587
  create:
1445
1588
  - desc: Create a StackScript.
@@ -1558,6 +1701,6 @@ user:
1558
1701
  - type: :string
1559
1702
  - throws:
1560
1703
  - AUTHFAIL
1561
- - " NEEDTOKEN"
1562
- - " PASSWORDEXPIRED"
1563
- - " KEYLIMIT"
1704
+ - NEEDTOKEN
1705
+ - PASSWORDEXPIRED
1706
+ - KEYLIMIT
data/lib/linodeapi.rb CHANGED
@@ -10,13 +10,6 @@ module LinodeAPI
10
10
  SPEC_URL = 'https://api.linode.com/?api_action=api.spec'
11
11
 
12
12
  class << self
13
- ##
14
- # Insert a helper .new() method for creating a new API object
15
-
16
- def new(*args)
17
- self::API.new(*args)
18
- end
19
-
20
13
  def spec
21
14
  @spec ||= { type: :group, subs: fetch_spec }
22
15
  end
data/linodeapi.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'linodeapi'
3
- s.version = '0.1.1'
3
+ s.version = '0.2.0'
4
4
  s.date = Time.now.strftime("%Y-%m-%d")
5
5
 
6
6
  s.summary = 'Linode API wrapper'
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.add_dependency 'httparty', '~> 0.13.1'
17
17
 
18
- s.add_development_dependency 'rubocop', '~> 0.32.0'
18
+ s.add_development_dependency 'rubocop', '~> 0.33.0'
19
19
  s.add_development_dependency 'rake', '~> 10.4.0'
20
20
  s.add_development_dependency 'coveralls', '~> 0.8.0'
21
21
  s.add_development_dependency 'rspec', '~> 3.3.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linodeapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Les Aker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-28 00:00:00.000000000 Z
11
+ date: 2015-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.32.0
33
+ version: 0.33.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.32.0
40
+ version: 0.33.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -125,7 +125,6 @@ files:
125
125
  - dev/cache_spec.rb
126
126
  - dev/spec.yml
127
127
  - lib/linodeapi.rb
128
- - lib/linodeapi/api.rb
129
128
  - lib/linodeapi/raw.rb
130
129
  - linodeapi.gemspec
131
130
  - spec/linodeapi_spec.rb
data/lib/linodeapi/api.rb DELETED
@@ -1,7 +0,0 @@
1
- ##
2
- # Friendlier Ruby interface to the Linode API
3
-
4
- module LinodeAPI
5
- class API
6
- end
7
- end