Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
surister authored Dec 21, 2019
2 parents bec1714 + 7a3b804 commit 2016810
Show file tree
Hide file tree
Showing 9 changed files with 320 additions and 3 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -601,9 +601,11 @@ Stop the instance, the type of the instance to match the desired RAM and start t
<details>
<summary>What is AWS WAF? Give an example of how it can used and describe what resources or services you can use it with</summary><br><b>
</b></details>

<details>
<summary>What AWS VPN is used for?</summary><br><b>
</b></details>

<details>
<summary>What is the difference between Site-to-Site VPN and Client VPN?</summary><br><b>
</b></details>
Expand Down Expand Up @@ -940,7 +942,8 @@ As to fix it there are serveral options:
3. You would look for your distro default $PATH variable, copy paste using method #1

Note: There are many ways of getting errors like this: if bash_profile or any configuration file of your interpreter was wrongly modified; causing erratics behaviours,
permissions issues, bad compiled software (if you compiled it by yourself)... there is no answer that will be true 100% of the time.</b>
permissions issues, bad compiled software (if you compiled it by yourself)... there is no answer that will be true 100% of the time.
</b>
</p>
</details>

Expand Down Expand Up @@ -1293,7 +1296,7 @@ execution or run forever
</b></details>

<details>
<summary>What signal is used by default when you run 'kill <process id>'?</summary><br><b>
<summary>What signal is used by default when you run 'kill *process id*'?</summary><br><b>
<pre>
The default signal is SIGTERM (15). This signal kills
process gracefully which means it allows it to save current
Expand Down
3 changes: 2 additions & 1 deletion coding/python/binary_search.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

import random

rand_num_li = sorted([random.randint(1, 50) for iter in range(10)])
rand_num_li = sorted([random.randint(1, 50) for _ in range(10)])
target = random.randint(1, 50)


def binary_search(li, le, ri, target):
if le <= ri:
mid = ri + le // 2
Expand Down
91 changes: 91 additions & 0 deletions scripts/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
import pathlib

p = pathlib.Path(__file__).parent.parent.joinpath('README.md')

with open(p, 'rb') as f:
file_list = [line.rstrip() for line in f.readlines()]

details_final_count = 0
details_count = 0
print(len(file_list))
for q in file_list:
if b'<details>' in q:
details_count += 1
if b'</details>' in q:
details_final_count += 1
print(details_count, details_final_count)

# TODO Checkear que tenemos mismo numero de details tabs, aunque esto no asegura al 100% que esta bien formateado.
# Una vez que tenemos un número par, podemos más o menos estar seguros de que la cosa va bien, y hacer ya entonces
# el checkeo de las demás tags.
# Problema: No obtenemos el lugar de donde esta mal el details, entonces; hacerlo.
# IDEA: comprobar que despues de un detail va un /detail y mas o menos supongo que podremos acotar, hacer pruebas.


def get_question_list(f):

questions_list = []
temp = []
after_summary_tag = False

for line in f:
if line.startswith(b'<details>'):
temp.append(line)
after_summary_tag = True

elif after_summary_tag and line != b'' and b'</details>' not in line:
temp.append(line)

elif after_summary_tag and b'</details>' in line:
temp.append(line)
after_summary_tag = False

questions_list.append(temp)
temp = []

return questions_list


def get_answered_questions(question_list) -> int:
c = 0
for q in question_list:
index = 0
for i in q:
if b'</summary>' in i:
index = q.index(i)
if q[index+1: len(q) - 1]:
# print(q[2: len(q) - 1], '-->', q)
c += 1
return c


def check_even_tags(question_list):
summary_count = 0
details_count = 0
# details count not necessary cus we already have that checked beforehand
for q in question_list:
print(q)
for l in q:
print(l)
if b'<details>' in l:
details_count += 1
if b'<summary>' in l:
summary_count += 1
if b'</details>' in l:
details_count += 1
if b'</summary>' in l:
summary_count += 1
print(summary_count, details_count)
if summary_count != 2 or details_count != 2:
raise Exception(f'You are missing a tag in {q}')
details_count = 0
summary_count = 0


# check_even_tags(get_question_list(file_list))


# if __name__ == '__main__':
# q_list = get_question_list(file_list)
# print(len(q_list))
# print(get_answered_questions(q_list))
29 changes: 29 additions & 0 deletions scripts/tests/test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import unittest
import pathlib

from scripts.main import get_answered_questions, get_question_list


def open_test_case_file(n: int):
p = pathlib.Path(rf'D:\PycharmProjects\devops-interview-questions\scripts\tests\testcase{n}.md')

with open(p, 'rb') as f:
file_list = [line.rstrip() for line in f.readlines()]
return file_list


class QuestionCount(unittest.TestCase):
solutions = (

)

def test_count_case_1(self):
raw_list = open_test_case_file(1)
question_list = get_question_list(raw_list)
answers = get_answered_questions(question_list)

self.assertEqual(len(question_list), 21)
self.assertEqual(answers, 2)

def test_count_case_2(self):
pass
101 changes: 101 additions & 0 deletions scripts/tests/testcase1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
<details>
<summary>What objects in S3 consists of?
* Another way to ask it: explain key, value, version id and meta data in context of objects</summary><br><b>
</b></details>

<details>
<summary>Explain data consistency</summary><br><b>
</b></details>

<details>
<summary>Can you host dynamic websites on S3?. What about static websites?</summary><br><b>
</b></details>

<details>
<summary>What security measures have you taken in context of S3?</summary><br><b>
</b></details>

<details>
<summary>What is a storage class? What storage classes are you familiar with?</summary><br><b>
</b></details>

##### EC2

<details>
<summary>What is EC2? What is it used for?</summary><br><b>
</b></details>

<details>
<summary>What EC2 pricing models are there?</summary><br><b>
</b></details>

<details>
<summary>How to increase RAM for a given EC2 instance?</summary><br><b>

Stop the instance, the type of the instance to match the desired RAM and start the instance.
</b></details>

<details>
<summary>What is an AMI?</summary><br><b>
</b></details>

<details>
<summary>How many storage options are there for EC2 Instances?</summary><br><b>
</b></details>

<details>
<summary>What happens when an EC2 instance is stopped or terminated?</summary><br><b>
</b></details>

<details>
<summary>What are Security Groups?</summary><br><b>
</b></details>

<details>
<summary>How to migrate an instance to another availability zone?</summary><br><b>
</b></details>

<details>
<summary>What are spot instances?</summary><br><b>
</b></details>

##### CloudFront

<details>
<summary>Explain what is CloudFront and what is it used for</summary><br><b>
</b></details>

<details>
<summary>Explain the following
* Origin
* Edge location
* Distribution</summary><br><b>
</b></details>

<details>
<summary>What delivery methods available for the user with CDN?</summary><br><b>
</b></details>

<details>
<summary>True or False?. Objects are cached for the life of TTL</summary><br><b>
</b></details>

##### Load Balancers

<details>
<summary>What types of load balancers are supported in EC2 and what are they used for?</summary><br><b>

* Application LB - layer 7 traffic
* Network LB - ultra-high performances or static IP address
* Classic LB - low costs, good for test or dev environments
</b></details>

##### AWS Security

<details>
<summary>What is the shared responsibility model? In other words, what AWS is responsible for and what the user is responsible for in regards to Security?</summary><br><b>
</b></details>

<details>
<summary>What is the AWS compliance program?</summary><br><b>
</b></details>
92 changes: 92 additions & 0 deletions scripts/tests/testcase2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
<details>
<summary>Explain what each of the following services is used for

* AWS Inspector
* AWS Artifact
* AWS Shield</summary><br><b>
</b></details>

<details>
<summary>What is AWS WAF? Give an example of how it can used and describe what resources or services you can use it with</summary><br><b>
</b></details>

<details>
<summary>What AWS VPN is usef for?</summary><br><b>
</b></details>

<details>
<summary>What is the difference between Site-to-Site VPN and Client VPN?</summary><br><b>
</b></details>

<details>
<summary>True or False? AWS Inspector can perform both network and host assessments</summary><br><b>

True
</b></details>

#### AWS Databases

<details>
<summary>What is RDS?</summary><br><b>
</b></details>

<details>
<summary>What are some features or benefits of using RDS?</summary><br><b>

1. Multi AZ - great for Disaster Recovery
2. Read Replicas - for better performances
</b></details>

<details>
<summary>What is EBS?</summary><br><b>
</b></details>

#### AWS Networking

<details>
<summary>What is VPC?</summary><br><b>
</b></details>

<details>
<summary>Explain Security Groups and Network ACLs</summary><br><b>
</b></details>

#### Misc

<details>
<summary>Explain what are the following services and give an use case example for each one them:

* CloudTrail
* CloudWatch
* CloudSearch</summary><br><b>
</b></details>


## Network

<a name="network-beginner"></a>
#### :baby: Beginner

<details>
<summary>What is Ethernet?</summary><br><b>
</b></details>

<details>
<summary>What is a MAC address? What is it used for?</summary><br><b>
</b></details>

<details>
<summary>When is this MAC address used?: ff:ff:ff:ff:ff:ff</summary><br><b>
</b></details>

<details>
<summary>What is an IP address?</summary><br><b>
</b></details>

<details>
<summary>Explain subnet mask and given an example</summary><br><b>
</b></details>

<details>
<summary>What is a private IP address? What do we need it for?</summary><br><b>
</b></details>
Empty file added scripts/tests/testcase3.md
Empty file.
Empty file added scripts/tests/testcase4.md
Empty file.
Empty file added scripts/tests/testcase5.md
Empty file.

0 comments on commit 2016810

Please sign in to comment.